Introdução à Programação Sintaxe do C Sumário Sintaxe Variáveis e arrays Funções Instruções condicionais Introdução à Programação 2006/2007 1 Sintaxe Algumas partes fundamentais do C: Comentários Variáveis Funções Instruções condicionais Introdução à Programação 2006/2007 Identificador São exemplos de identificadores os nomes das funções e das variáveis O C distingue maiúsculas de minúsculas Algarismo Letra Letra Introdução à Programação 2006/2007 2 Variáveis Definição de uma variável Reserva da quantidade de memória necessária Associação dessa memória a um identificador Uma variável só pode ser usada após ser declarada Introdução à Programação 2006/2007 Definição de variáveis Na sua definição, pode ser atribuído um valor inicial às variáveis. Tipo Identificador Valor inicial Introdução à Programação 2006/2007 3 Tipos de Variáveis int Número inteiro float Número real char Carácter (letra, digito ou símbolo) short Inteiro (reduzido) long Inteiro (longo) double Real com maior resolução Signed ou unsigned Introdução à Programação 2006/2007 Exemplo: char c; float pi=3.14159; O tipo Carácter em C Os caracteres são representados em memória como números inteiros Cada carácter tem um único código numérico Cada inteiro representando um carácter ocupa apenas 1 byte, pelo que o número máximo de caracteres é 256 Para saber qual a codificação numérica atribuída pelo sistema um determinado carácter, bastara imprimi-lo com o especificador de conversão de inteiros em vez do especificador de caracteres Char car = ‘!’; Printf (“o inteiro %d codifica \’%c\’.”,car,car); O inteiro 33 codifica ‘!’. A uma variável do tipo carácter pode afectar-se o inteiro correspondente ao carácter, mas isso deve evitar-se por perder em legibilidade e potabilidade do programa char car = 33; /* 0x21 em hexadecimal */ Introdução à Programação 2006/2007 Não precisamos de conhece os códigos dos caracteres 4 Arrays Array é um conjunto de variáveis do mesmo tipo São definidos com [ ]: int inteiros[10]; char letras[15]; float reais[ ] = { 2.4 , 3.6, 2.2 }; char frase[ ] = “Diga a frase”; Introdução à Programação 2006/2007 Funções Permitem compartimentar o código Permitem reutilização do código Identificador Tipo Identificador ( Tipo ) Introdução à Programação 2006/2007 5 Funções 2 Comentários /* Função de exemplo */ int minhaFuncao (int par1, int par2) { Tipo devolvido ... Parâmetro par1 pela função (variável válida return 0; dentro da função) } Tipo do parâmetro par1 Introdução à Programação 2006/2007 Sintaxe das funções <tipo> nomeFuncao ( <parâmetros> ) { <statements> return <variável do tipo de retorno>; } Em que <parâmetros> é representado por: <data-type> var1, <data-type> var2, ... <data-type> varN Introdução à Programação 2006/2007 6 Função main Todos os programas em C têm uma função “main” Número de argumentos do programa Vector de argumentos int main() { printf ("Hello world\n") ; getchar (); return 0; } Introdução à Programação 2006/2007 Chamar uma função Função devolve um inteiro e aceita outro inteiro int minhaFuncao (int a) { printf ("A minha funcao com numero %d\n", a); return 0; Outra}função chamada O valor passado à função int main () { minhaFuncao (101); return 0; } Função é chamada com o inteiro 101 Introdução à Programação 2006/2007 7 Função printf() Declarada em <stdio.h> Imprime texto formatado na saída standard Exemplo: printf (“Valor inteiro é %d\n”, a); Introdução à Programação 2006/2007 Formatação de printf() O texto de formatação é composto por zero ou mais directivas Caracteres sem % são copiados para a saída Especificação das conversões (correspondentes aos argumentos subsequentes) printf (“Primeiro: %d, Segundo: %d\n”, a, b); Introdução à Programação 2006/2007 8 Formatação de printf() 2 %d %i %u Inteiro em notação decimal com sinal %o Inteiro em notação octal %x Inteiro em notação hexadecial %f Número real (double ou float) %c Carácter (a partir de int) %e Número Real com notação cientifica %s Ponteiro para cadeira (array) de caracteres Inteiro em notação decimal sem sinal Introdução à Programação 2006/2007 Função scanf() Declarada em <stdio.h> Lê entradas formatadas Devolve o número de elementos atribuídos Exemplo: scanf (“%d”, &a); Introdução à Programação 2006/2007 9 Exemplo Variável definida int main () { Referência para a variável int x=0; printf (“Digite um numero inteiro: "); scanf ("%d", &x); printf ("%d < %d < %d\n", x-1, x, x+1); return 0; } Valor da variável usado Introdução à Programação 2006/2007 Exercício Faça um programa que calcule a distância a que se encontra uma trovoada, dado o tempo em segundos que separam o relâmpago do trovão. Velocidade de propagação do som: 340m/s Distância deve ser apresentada em metros e quilómetros. Introdução à Programação 2006/2007 10 Solução int main ( ) { int velSom = 340; /* Velocidade em m/s */ int tempo = 0; /* Tempo entre relampago e trovao */ printf ("Insira o tempo, em segundos, entre o \ relampago e o trovao: "); scanf ("%d", &tempo); printf ("Sendo o tempo entre o relampago e o \ trovao de %d segundos, a trovoada encontra-se a %d \ metros (%f km)\n", tempo, tempo*velSom, tempo*velSom/1000.0 ); return 0; } Introdução à Programação 2006/2007 Casting Printf (“O caracter ‘%c’ tem o ASCII nº %d\n”, ch, (int) ch); Permite promover ou despromover uma variável dum tipo a um outro, colocando o novo tipo entre parêntisis. Introdução à Programação 2006/2007 11 Caracteres especiais \7 Bell (sinal sonoro do computador) \a Bell (sinal sonoro do computador) \b Backspace \n New Line (mudança de linha) \r Carriage return \t Tabulação horizontal \v Tabulação Vertical \\ Carácter \ (forma de representar o próprio carácter especial) \’ Carácter ‘ \” Carácter “ \? Carácter ? \ooo Carácter cujo código ASCII em octal é ooo \xyy Carácter cujo código ASCII em hexadecimal é yy Introdução à Programação 2006/2007 Constantes simbólicas É habitual (mas não obrigatório) um programador de C exprimir as constantes simbólicas por intermédio de letras maiúsculas Introdução à Programação 2006/2007 12