Estruturas Básicas da Linguagem C Flashcards
Linguagem de alto Nível
A linguagem interna do computador é
- conhecida como “linguagem de máquina”, e
- muito complicada de usar na implementação de programas
Uma linguagem de alto nível
- está mais próxima da linguagem natural, e
- é muito fácil de utilizar na implementação de programas
Tradutores
Um programa numa linguagem de alto nível para poder ser “executado” (para
funcionar) precisa de ser traduzido para linguagem de máquina
Existem dois tipos de programas tradutores:
- interpretadores
- compiladores
Interpretador
As instruções de um programa escrito em linguagem de alto nível (código-fonte)
são traduzidas e executadas uma e uma,
- cada vez que o programa é executado é necessário fazer a tradução,
pois não é criada uma versão executável (ficheiro em linguagem de máquina)
Exemplos de linguagens que usam interpretadores:
- LISP
- MatLab
- PHP
- JavaScript
Compilador
Todas as instruções de um programa escrito em linguagem de alto nível são
traduzidas de uma só vez
- ou seja, o compilador cria uma versão executável do programa, bastando compilar o
código-fonte uma única vez
Exemplos de linguagens que usam compiladores:
- C
- Pascal
- Java
- C++
- C#
Os compiladores analisam o código-fonte em três fases:
- análise léxica
- análise sintática
- análise semântica
Análise léxica
Separação do código-fonte (texto) em palavras (os elementos/tokens léxicos)
- lê o texto caráter a caráter, formando palavras (tokens) e identificando cada uma
delas segundo as suas regras de construção (sintaxe)
- se as regras de alguns tokens são violadas, são identificados erros léxicos
Despreza os espaços em branco, as formatações e os comentários
Análise sintática
Verificação sintática/gramatical de construção das frases (cadeias de tokens) que
compõem um texto, em que as frases são as instruções e o texto é o programa
- verifica se a estrutura das frases seguem as regras da gramática formal da
linguagem de programação (cada frase tem as suas regras de construção)
- ou seja, verifica se existem erros sintáticos na sintaxe do programa
Análise semântica
Verificação de outras regras, associadas ao significado de cada instrução e do programa
Nomes ou identificadores
As regras de formação de nomes/identificadores são as seguintes
- diferenciação gráfica (maiúsculas e minúsculas)
- tamanho variável (ANSI C limitado a 31 caracteres)
- validade (caráter inicial é: a…z, A…Z)
- nomes válidos: j, j5, mat3
- nomes inválidos: 5j, j5%, const
- O nome de uma variável,
- deve começar sempre com uma letra,
- pode ser seguida por letras, digitos e alguns outros carateres (underscore: _)
Diretivas para o compilador
Permite que o programador modifique a compilação
- O pré-processador é um programa que examina e modifica o código-fonte antes
da compilação
- As diretivas são os comandos utilizados pelo pré-processador
- Estes comandos estão disponíveis no código-fonte, mas não no código compilado
- As diretivas iniciam-se com #
include
Principal diretiva, pois é usado em praticamente todos os programas em C
- Permite inserir um arquivo (biblioteca de funções) qualquer no código-fonte
- A diretiva include é substituída pelo conteúdo do arquivo
- Usa-se <> para indicar que o arquivo é procurado apenas na pasta include
(pasta criada automaticamente aquando da instalação do compilador)
- Usa-se “” para indicar que o arquivo é procurado na pasta atual, e se não for
encontrado é procurado na pasta include
- As bibliotecas mais usadas são:
#include <stdio.h>
- usada em praticamente todos os programas
- inclui as funções de entrada e saída (input e output) de dados: scanf, printf, ...
#include <math.h>
- inclui as funções matemáticas: sqrt, pow, sin, cos, tan, log, ...</math.h></stdio.h>
define
Permite definir constantes sem consumir memória durante a execução
main
A função principal (programa propriamente dito)
-Formado por:
- Declarações
- Instruções
- As Declarações devem aparecer antes das Instruções
- As declarações mais comuns são das variáveis que o programa pode utilizar
(indicadas nas Instruções)
- Na declaração de uma variável, o nome desta segue a sintaxe de nomes ou
identificadores (ver antes)
- As declarações e as instruções terminam sempre com ponto e vírgula (;)
- A execução do programa começa na primeira instrução e segue até à última,
sequencialmente
Tipos de dados simples
*Inteiros
*Reais
*Caracteres
Inteiros
A representação de um número inteiro, em formato decimal, é composta por
duas partes (pela ordem apresentada):
- um sinal (+, -), sendo que o sinal + (positivo) pode ser omitido,
- uma sequência de dígitos
- Exemplos: 2563, -753, +35
Inteiros - declaração de variáveis
Sintaxe para declarar variáveis do tipo inteiro (todas as variáveis devem estar
identificadas)
- Sintaxe para declarar apenas uma variável do tipo inteiro
int variável; (; obrigatório no fim da declaração)
- Sintaxe para declarar duas variáveis do tipo inteiro
int variável1, variável2; (; obrigatório no fim da declaração)