A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C.

Apresentações semelhantes


Apresentação em tema: "© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C."— Transcrição da apresentação:

1 © 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C

2 Introdução à programaçãoComputadores e programação I © 2004 Sumário Execução de programas interpretadores, compiladores Linguagem Manipulação de informação Variáveis tipos de dados Operadores aritméticos, lógicos Leitura e escrita entrada e saída de dados Selecção de instruções Instrução if Instrução Switch Erros em programação

3 Introdução à programaçãoComputadores e programação I © 2004 Interpretação de Programas Basic, Java, Portugol interpretador Programa que converte as instruções da linguagem de alto nível em instruções máquina e as executa.

4 Introdução à programaçãoComputadores e programação I © 2004 Compilação de programas C,C++, Pascal Compilador (compiler) Programa que converte as instruções da linguagem de alto nível em instruções máquina formando um programa objecto Ligador (linker) Programa que reúne todos os programas objecto e faz um programa executável Programas Executados pelo sistema operativo

5 © 2003 Introdução à programaçãoComputadores e programação I Introdução à linguagem C

6 Introdução à programaçãoComputadores e programação I © 2004 Porquê C++ É a base de linguagens de programação modernas É um investimento Linguagem estandardizada Muitos programas escritos em C / C++ È uma linguagem genérica Serve para vários fins É disciplinadora Programar com método É eficiente Existem bons compiladores

7 Introdução à programaçãoComputadores e programação I © 2004 Ola mundo #include #include Biblioteca de funções de entrada e saida de dados int main(int argc, char* argv[]) int main(int argc, char* argv[]) Função principal Função principal { } { } Definição de um bloco de instruções Definição de um bloco de instruções printf("ola mundo"); printf("ola mundo"); escrever escrever return 0; return 0; Retorno do programa Retorno do programa Olá mundo #include #include int main(int argc, char* argv[]) { printf("ola mundo"); printf("ola mundo"); return 0; return 0;} #include #include int main(int argc, char* argv[]) { printf("ola mundo"); printf("ola mundo"); return 0; return 0;}

8 Introdução à programaçãoComputadores e programação I © 2004 Algoritmos computacionais Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

9 Introdução à programaçãoComputadores e programação I © 2004 Tipos de dados em C Simples Numéricos inteiros reais Caracter Lógico Compostos Matrizes Estruturas Uniões Variáveis Um nome Um Tipo Um só valor

10 Introdução à programaçãoComputadores e programação I © 2004 Declaração de variáveis Tipo_de_dado nome_da_variável; Tipo_de_dado nome_da_variável = valor_inicial; Tipo_de_dado nome_da_variável1, nome_da_variável2,...; NOTA A declaração das variáveis deve ser feita antes da sua utilização Exemplos int soma; float saldo = 0.0; doule x, y, z; int soma; float saldo = 0.0; doule x, y, z;

11 Introdução à programaçãoComputadores e programação I © 2004 Regras dos nomes de variáveis Pode ser constituído por letras do alfabeto por dígitos e pelo caracter _ (underscore) O primeiro caracter não pode ser um dígito As letras maiúsculas e minúsculas representam caracteres diferentes Não pode ter o nome de uma palavra reservado da linguagem Deve ser descritivo daquilo que armazena Caso tenha mais que uma palavra utilizar o caracter _ para unir as palavras ou capitular as iniciais Não é aconselhado A utilização de caracteres acentuados Começar por _ Ter apenas letras maiúsculas

12 Introdução à programaçãoComputadores e programação I © 2004 Palavras reservadas do C

13 Introdução à programaçãoComputadores e programação I © 2004 Atribuição de Valores – operador = NOTA O operado = é o operador de atribuição e significa que a variável passa a ter um novo valor (<- no portugol) O operador == (igual) é o operador de comparação e devolve verdadeiro ou falso ( = no portugol) O operado = é o operador de atribuição e significa que a variável passa a ter um novo valor (<- no portugol) O operador == (igual) é o operador de comparação e devolve verdadeiro ou falso ( = no portugol) Exemplos soma = 10 ; saldo = soma + 1; area = lado1 * lado2; soma = 10 ; saldo = soma + 1; area = lado1 * lado2; variavel = expressão ;

14 Introdução à programaçãoComputadores e programação I © 2004 Atribuição de valores Valores na Base: Decimal numeração normal Octal Começam por 0 (zero) Hexadecimal Começam por 0x (zero xis) 0x 0 0x 2 0x 3f 0x 53 0x 0 0x 2 0x 3f 0x 53 atribuição do valor doze a x X = 12; X = 014; X = 0xC; X = 12; X = 014; X = 0xC;

15 Introdução à programaçãoComputadores e programação I © 2004 Inteiros - int Sinal signed – positivos e negativos 1 bit para representar o sinal unsigned – apenas números positivos Tamanho short – menor dimensão em bytes 2 bytes long – maior dimensão em bytes 4 bytes Exemplos unsigned short int x; signed short int y; unsigned long int total; long int votos; int nota; NOTA por defeito os inteiros são: signed 16 bits short 32 bits long por defeito os inteiros são: signed 16 bits short 32 bits long

16 Introdução à programaçãoComputadores e programação I © 2004 Alcance dos inteiros

17 Introdução à programaçãoComputadores e programação I © 2004 exemplos Nota final da disciplina de IP unsigned short int nota; unsigned short nota; Soma das notas das disciplinas de uma aluno unsigned short int somaNotas; unsigned short somaNotas; Número de segundos de vida de uma pessoa unsigned long int numMinutos; unsigned long numMinutos; Diferença entre o número de segundos de duas pessoas signed long difSegundos; long difsegundos; Diferença entre o número de anos de duas pessoas signed short int difAnos; short difAnos;

18 Introdução à programaçãoComputadores e programação I © 2004 Números Reais Tipo float double Representação Base e Mantissa notação Notação corrente Notação científica 1.2E e-15 Modificadores long Exemplo float raio =.50; long double taxa = 5E-2 ; float raio =.50; long double taxa = 5E-2 ; NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação

19 Introdução à programaçãoComputadores e programação I © 2004 Erro nos Números Reais NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação

20 Introdução à programaçãoComputadores e programação I © 2004 Caracteres (char) Ocupam um byte 256 caracteres disponíveis Representados por um número Tabela ASCII Atribuição Utilização do caracter plica () char sexo = m; char sexo = m; char enter =\n char enter =\n Utilização directa do código ASCII char letra = 98; char letra = 98; Modificadores signed unsigned \aSinal sonoro \nNew line \rCarriage return \vVertical tabulation \tHorizontal tabulation \\Caracter \ \Caracter \ \bBackspace \0xffCaracter 0xff ASCII Caracteres especiais

21 Introdução à programaçãoComputadores e programação I © 2004 Tabela ASCII Exemplo char sexo; Sexo = M; Sexo = 77; char sexo; Sexo = M; Sexo = 77;

22 Introdução à programaçãoComputadores e programação I © 2004 Definição de tipos - Enumerações enum semana { segunda=2, terca=3, quarta=4, quinta=5, sexta=6, sabado=7, domingo=8 } ; Definição de nomes para valores Cores, Dias da semana, Meses, etc. Exemplo teoricaIP, praticaIP; enum semana teoricaIP, praticaIP; teoricaIP = segunda; praticaIP = teoricaIP +1 ; teoricaIP, praticaIP; enum semana teoricaIP, praticaIP; teoricaIP = segunda; praticaIP = teoricaIP +1 ;

23 Introdução à programaçãoComputadores e programação I © 2004 Definição de tipos - Enumerações enum novo_tipo {nome_1=valor_1, nome_2,...,nome_n}; novo_tipo nome_variavel = nome_x; enum novo_tipo {nome_1=valor_1, nome_2,...,nome_n}; novo_tipo nome_variavel = nome_x; enum logica {falso, verdadeiro }; enum logica condicao=verdadeiro; NOTAS Quando omitimos o valor a enumeração toma o valor da anterior mais uma unidade. Por defeito começam em zero Quando omitimos o valor a enumeração toma o valor da anterior mais uma unidade. Por defeito começam em zero enum Cores {verde= 0, amarelo = 1, vermelho =2 }; enum Cores semaforo = verde;

24 Introdução à programaçãoComputadores e programação I © 2004 Valores lógicos (bool) Dois valores definidos false (valor zero) true (um ou qualquer outro valor) Exemplo bool aprovado, trabEstudante; aprovador = true; trabEstudante = false; bool aprovado, trabEstudante; aprovador = true; trabEstudante = false;

25 Introdução à programaçãoComputadores e programação I © 2004 Definição de tipos - Typedef Definição de nomes para tipos typedef tipo_de_dado novo_nome_do_tipo ; Exemplos typedef unsigned long int int32; definição de um novo tipo chamado int32 int32 somatorio; definicao de uma variável do tipo int32

26 Introdução à programaçãoComputadores e programação I © 2004 Tipos de dados do c++ Builder tipo tamanho (bits)MínimoMáximo unsigned char char short int16-32,768 32,767 unsigned int320 4,294,967,295 int32-2, ,147,483,647 unsigned long320 4,294,967,295 enum32-2, ,147,483,647 long32-2, ,147,483,647 float ^-38 < |X| < ^38 double ^-308 < |X| < ^308 long double ^-4932 < |X| < ^4932

27 Introdução à programaçãoComputadores e programação I © 2004 Exercícos Defina variáveis em C para manipular A média das notas de um ano lectivo O salário de um trabalhador O número de alunos de um país O saldo de uma conta bancária Número de dias entre duas datas O sexo de um aluno Factor rhesus do sangue (+ e -) A situação de uma aluno relativo à aprovação A situação de uma aluno relativo á matrícula.

28 © 2003 Introdução à programaçãoComputadores e programação I Entrada e saída de dados

29 Introdução à programaçãoComputadores e programação I © 2004 Entrada e saida de dados scanf Entrada de dados pelo teclado printf Saída de dado para a consola && scanf(string de formato, &variavel, &variavel,…); & scanf(%f", & altura); & scanf(%d", & idade); && scanf(%f %d", & altura, & idade); printf(string de formato, variavel, variavel,…); printf( a altura é %f :", altura); printf( a idade é %d :", idade); printf(\n altura: %f idade :%d \n", altura, idade);

30 Introdução à programaçãoComputadores e programação I © 2004 Formato de dados (I/O) c caracter caracter s cadeia de caracteres cadeia de caracteres d inteiro inteiro f real no formato numérico real no formato numérico e real no formato cientifico real no formato cientifico u sem sinal sem sinal l grande grande h pequeno pequeno o octal octal x Hexadecimal Hexadecimal

31 Introdução à programaçãoComputadores e programação I © 2004 Programa gentil Exemplo #include #include int main(int argc, char* argv[]) { int idade; int idade; printf(qual a sua idade:); printf(qual a sua idade:); scanf( %d, &idade); scanf( %d, &idade); printf(parabens, voce tem %d anos, idade); printf(parabens, voce tem %d anos, idade);} #include #include int main(int argc, char* argv[]) { int idade; int idade; printf(qual a sua idade:); printf(qual a sua idade:); scanf( %d, &idade); scanf( %d, &idade); printf(parabens, voce tem %d anos, idade); printf(parabens, voce tem %d anos, idade);}

32 Introdução à programaçãoComputadores e programação I © 2004 Ficheiros gerados

33 Introdução à programaçãoComputadores e programação I © 2004 Algoritmos computacionais Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

34 © 2003 Introdução à programaçãoComputadores e programação IOperadores

35 © 2004 Inteiros Operadores unários - (sinal) Operadores binários + (Soma) - (Subtracção) / (Divisão inteira) % (Módulo) NOTA Qualquer operação entre inteiros devolve um inteiro Exemplo = = / 2 = = % 2 = 1 25 * 2 = = = / 2 = = % 2 = 1 25 * 2 = 50

36 Introdução à programaçãoComputadores e programação I © 2004 Operadores unários – Pós fixo Operadores unários ++ (incremento) -- (decremento) Nota X++ X = X+1 X++ Nota X-- X = X-1 X-- Nota y = x++ y = x x = x+1 y = x++ y = x x = x+1 Nota y = x-- y = x x = x-1 y = x-- y = x x = x-1 x x33 y y expressão y = x++; y = x++; x x 44 y y 33

37 Introdução à programaçãoComputadores e programação I © 2004 Operadores unários – Pré fixo Operadores unários ++ (incremento) -- (decremento) Nota ++X X = X+1 ++X Nota --X X = X-1 --X Nota y = ++x x = x+1 y = x y = ++x x = x+1 y = x Nota y = --x x = x-1 y = x y = --x x = x-1 y = x x x33 y y expressão y = --x; y = --x; x x 22 y y 22

38 Introdução à programaçãoComputadores e programação I © 2004 Operadores bit a bit Manipulam directamente a representação binária dos números e (and) & ou (or) | ou exclusivo (Xor) ^ Deslocamento à esquerda << Deslocamento à direita >> OU E Multiplicação Lógica Multiplicação Lógica Soma Lógica Soma Lógica xor diferença Lógica diferença Lógica

39 Introdução à programaçãoComputadores e programação I © 2004 Operadores bit a bit - OR x x 9191 y y expressão z = x | y ; z = x | y ; x x 9191 y y z z z z OU Soma Lógica Soma Lógica

40 Introdução à programaçãoComputadores e programação I © 2004 Operadores bit a bit - AND x x 9090 y y 2020 expressão z = x & y ; z = x & y ; x x 9090 y y 2020 z z z z 1616 E Multiplicação Lógica Multiplicação Lógica

41 Introdução à programaçãoComputadores e programação I © 2004 Operadores bit a bit - XOR x x 9090 y y 2020 expressão z = x ^ y ; z = x ^ y ; x x 9090 y y 2020 z z z z 7878 xor diferença Lógica diferença Lógica

42 Introdução à programaçãoComputadores e programação I © 2004 Operadores bit a bit - Deslocamento x x 2020 y y expressão y = x << 2; y = x << 2; x x 2020 y y 8080 Algoritmo deslocam-se os bites para a esquerda os últimos bites perdem-se introduzem-se zeros no inicio

43 Introdução à programaçãoComputadores e programação I © 2004 Operadores bit a bit - Deslocamento x x 2020 y y expressão y = x >> 2; y = x >> 2; x x 2020 y y 55 Algoritmo deslocam-se os bites para a direita os primeiros bites perdem-se introduzem-se zeros no fim

44 Introdução à programaçãoComputadores e programação I © 2004 Operadores sobre reais Aritméticos multiplicação divisão soma subtracção mantissa expoente

45 Introdução à programaçãoComputadores e programação I © 2004 Operadores compostos +=, -=,%=, *=, /=, >>=, <<=, &=, |=, ^= variável Operador= expressão Variavel = variavel operador expressão exemplos X+= 3; X = X+3; X+= 3; X = X+3; exemplos x/=y; x = x /y; x/=y; exemplos X*= 3; X = X*3; X*= 3; X = X*3; exemplos X|= y; X = X | y; X|= y; X = X | y;

46 Introdução à programaçãoComputadores e programação I © 2004 Operadores sobre lógicos RELACIONAIS Maior > Menor < Igual == Maior ou igual >= Menor ou igual <= Diferente != LÒGICOS Conjunção && Disjunção || Negação !

47 Introdução à programaçãoComputadores e programação I © 2004 Associatividade Associatividade esquerda=> direita x + y + z 3 + z 7 z / x * y 2 * z 2 x x 22 y y 11 z z 44 r r 11 Associatividade direita => esquerda r =x + y + z 7 r = 7 teste = !matriculado teste = true x = -z x=-4 matriculado falsefalse teste falsefalse

48 Introdução à programaçãoComputadores e programação I © 2004 Prioridade dos operadores

49 Introdução à programaçãoComputadores e programação I © 2004 Algoritmos computacionais Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

50 Introdução à programaçãoComputadores e programação I © 2004 Exercícios Construa um programa que calcule a área de um rectangulo Ler lado1 Area := lado1*lado2 Inicio Programa Área do rectângulo #include #include int main(int argc, char* argv[]) { double Lado1, lado2, area; double Lado1, lado2, area; scanf(%lf, &lado1); scanf(%lf, &lado1); scanf(%lf, &lado2); area = lado1 * lado2; area = lado1 * lado2; printf( area = %lf, area); } #include #include int main(int argc, char* argv[]) { double Lado1, lado2, area; double Lado1, lado2, area; scanf(%lf, &lado1); scanf(%lf, &lado1); scanf(%lf, &lado2); area = lado1 * lado2; area = lado1 * lado2; printf( area = %lf, area); } fim Ler lado2 Escrever Area

51 Introdução à programaçãoComputadores e programação I © 2004 Exercícios Construa um programa que leia a nota teórica e a nota prática e imprima a nota final (não arredondada) da disciplina de IP Nota de IP #include #include int main(int argc, char* argv[]) { float nTeorica, nPratica, nFinal; float nTeorica, nPratica, nFinal; printf( introduza a nota teórica :); printf( introduza a nota teórica :); scanf(%f, &nTeorica); scanf(%f, &nTeorica); printf(introduza a nota prática:); printf( introduza a nota prática:); scanf(%f, &nPratica); scanf(%f, &nPratica); nFinal = nTeorica * nPratica * 0.4; nFinal = nTeorica * nPratica * 0.4; printf(A nota final e: %f,nFinal); printf(A nota final e: %f,nFinal);} #include #include int main(int argc, char* argv[]) { float nTeorica, nPratica, nFinal; float nTeorica, nPratica, nFinal; printf( introduza a nota teórica :); printf( introduza a nota teórica :); scanf(%f, &nTeorica); scanf(%f, &nTeorica); printf(introduza a nota prática:); printf( introduza a nota prática:); scanf(%f, &nPratica); scanf(%f, &nPratica); nFinal = nTeorica * nPratica * 0.4; nFinal = nTeorica * nPratica * 0.4; printf(A nota final e: %f,nFinal); printf(A nota final e: %f,nFinal);} Ler nTeorica nFinal = nTeorica*0.6 + nPratica * 0.4 nFinal = nTeorica*0.6 + nPratica * 0.4 Inicio fim Ler nPratica Escrever nFinal

52 © 2003 Introdução à programaçãoComputadores e programação I Selecção de intruções

53 Introdução à programaçãoComputadores e programação I © 2004 Selecção Simples... Se então Instruções fim_se... Se então Instruções fim_se Condição Bloco de Instruções Bloco de Instruções Fluxograma Se x > 0 então escrever numero: ler numero fim_se Se x > 0 então escrever numero: ler numero fim_se Exemplo V C++ If (condição) { intrução; intrução;......} If (condição) { intrução; intrução;......} Um Bloco de instruções é limitado por chavetas { } Linguagem estruturada

54 Introdução à programaçãoComputadores e programação I © 2004 Selecção Simples (exemplo) A empresa X faz um desconto de 15% em todas as facturas cujo total ultrapasse 1000 euros. Construa um programa que receba o total da factura e imprima o valor a pagar Exemplo Inicio totalFactura >10000 totalFactura >10000 Ler totalFactura totalFactura = totalFactura *0.85 totalFactura = totalFactura *0.85 Fim v totalFactura

55 Introdução à programaçãoComputadores e programação I © 2004 Selecção Simples (exemplo) Calculo do total da factura #include #include int main(int argc, char* argv[]) { float totalFactura; scanf(%f, &totalFactura); if( totalFactura > ) { totalFactura*= 0.85; } printf( %f, totalFactura);} #include #include int main(int argc, char* argv[]) { float totalFactura; scanf(%f, &totalFactura); if( totalFactura > ) { totalFactura*= 0.85; } printf( %f, totalFactura);} NOTA Se o bloco tiver apenas uma instrução podem omitir- se as chavetas

56 Introdução à programaçãoComputadores e programação I © 2004 Visibilidade das variáveis int main(int argc, char* argv[]) { float totalFactura; sacanf( %f, &totalFactura); if( totalFactura > 1000){ double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(%f, totalFactura); return 0; } int main(int argc, char* argv[]) { float totalFactura; sacanf( %f, &totalFactura); if( totalFactura > 1000){ double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(%f, totalFactura); return 0; } Visibilidade das variáveis : Desde que são declaradas Até final do bloco

57 Introdução à programaçãoComputadores e programação I © 2004 Selecção em Alternativa... Se entao Instruções Senao Instruções Fim_se... Se entao Instruções Senao Instruções Fim_se Linguagem estruturada Condição Instruções Fluxograma Se numero>0 então escreve positivo Senão escreve negativo Fim_se Se numero>0 então escreve positivo Senão escreve negativo Fim_se Exemplo V Instruções F C++ if (condição) { intrução1; intrução1;......}else{ intrução2; intrução2;......} if (condição) { intrução1; intrução1;......}else{ intrução2; intrução2;......}

58 Introdução à programaçãoComputadores e programação I © 2004 Selecção em Alternativa (exemplo) Construa um programa que imprima Par ou Impar consoante o número introduzido pelo utilizador o é ou não. Exercício

59 Introdução à programaçãoComputadores e programação I © 2004 Selecção Simples (exemplo) Programa par ou impar main(){ int numero; printf( numero :); scanf(%d,&numero); if( numero % 2 == 0) printf( O numero é par); else printf( o número é impar); }main(){ int numero; printf( numero :); scanf(%d,&numero); if( numero % 2 == 0) printf( O numero é par); else printf( o número é impar); } n % 2 = 0 V F Fim Inicio Ler n Impar Par

60 Introdução à programaçãoComputadores e programação I © 2004 Selecção encadeada Construa um programa que imprima o maior de três número introduzido pelo utilizador Exercício V1 > v2 e V1 > v3 V1 > v2 e V1 > v3 Maior=v1 V2>v3 Maior=v2 Maior=v3 s s s s n n n n

61 Introdução à programaçãoComputadores e programação I © 2004 Selecção encadeada (exemplo) Programa maior de três int main(int argc, char* argv[]) { int v1, v2; v3; int v1, v2; v3; int maior; int maior; scanf( %d %d %d, &v1, &v2, &v3); scanf( %d %d %d, &v1, &v2, &v3); if( v1 > v2 && v1 > v3) if( v1 > v2 && v1 > v3) maior= v1; maior= v1; else else { if( v2 > v3) if( v2 > v3) maior= v2; maior= v2; else else maior=v3; maior=v3; } printf( O maior é %d :, maior); printf( O maior é %d :, maior); return 0; return 0;} int main(int argc, char* argv[]) { int v1, v2; v3; int v1, v2; v3; int maior; int maior; scanf( %d %d %d, &v1, &v2, &v3); scanf( %d %d %d, &v1, &v2, &v3); if( v1 > v2 && v1 > v3) if( v1 > v2 && v1 > v3) maior= v1; maior= v1; else else { if( v2 > v3) if( v2 > v3) maior= v2; maior= v2; else else maior=v3; maior=v3; } printf( O maior é %d :, maior); printf( O maior é %d :, maior); return 0; return 0;}

62 Introdução à programaçãoComputadores e programação I © 2004 Exercício Contrua um programa que solicite ao utilizador a letra correspondente ao estado civil (S C D V ) e imprima por extenso o mesmo ou erro no caso de não ser um caractér válido

63 Introdução à programaçãoComputadores e programação I © 2004 Exercício Estado civil main(){ char ECivil; scanf(%c,&ECivil); if( ECivil ==S) printf( Solteiro); else if (ECivil ==C ) printf( Casado); else if ( ECivil == D) printf( Divorciado); else if(ECivil == V) printf( Viuvo); else printf( ERRO);}main(){ char ECivil; scanf(%c,&ECivil); if( ECivil ==S) printf( Solteiro); else if (ECivil ==C ) printf( Casado); else if ( ECivil == D) printf( Divorciado); else if(ECivil == V) printf( Viuvo); else printf( ERRO);}

64 Introdução à programaçãoComputadores e programação I © 2004 Selecção Múltipla switch switch ( expressão) { case constante1 : case constante1 : intruções; intruções; break; break; case constante2 : case constante2 : intruções; intruções; break; break; case constanten : case constanten : intruções; intruções; break; break; default: default: intruções; intruções;} switch ( expressão) { case constante1 : case constante1 : intruções; intruções; break; break; case constante2 : case constante2 : intruções; intruções; break; break; case constanten : case constanten : intruções; intruções; break; break; default: default: intruções; intruções;}

65 Introdução à programaçãoComputadores e programação I © 2004 Exercício Estado civil #include #include main(){ char ECivil; char ECivil; scanf(%c,&ECivil); switch ( ECivil) switch ( ECivil) { case S : case S : printf( solteiro); printf( solteiro); break; break; case C : printf( casado); printf( casado); break; break; case D : printf( Divorciado); printf( Divorciado); break; break; case V : printf( Viuvo); printf( Viuvo); break; break; default : printf( ERRO); printf( ERRO); }} #include #include main(){ char ECivil; char ECivil; scanf(%c,&ECivil); switch ( ECivil) switch ( ECivil) { case S : case S : printf( solteiro); printf( solteiro); break; break; case C : printf( casado); printf( casado); break; break; case D : printf( Divorciado); printf( Divorciado); break; break; case V : printf( Viuvo); printf( Viuvo); break; break; default : printf( ERRO); printf( ERRO); }}

66 Introdução à programaçãoComputadores e programação I © 2004 Exercício Estado civil switch ( ECivil) { case d : case d : case D : printf( Divorciado); printf( Divorciado); break; break; } switch ( ECivil) { case d : case d : case D : printf( Divorciado); printf( Divorciado); break; break; } NOTA A escolha termina: quando chegar ao fim quando encontrar a instrução break A escolha termina: quando chegar ao fim quando encontrar a instrução break

67 Introdução à programaçãoComputadores e programação I © 2004 Exercícios Construa um programa que indique se dois números introduzidos pelo utilizador são múltiplos um do outro. Construa um programa que calcule as raízes de uma equação de 2º grau. Altere o programa anterior para calcular as raízes reais e imaginárias.

68 © 2003 Introdução à programaçãoComputadores e programação IErros

69 © 2004 Erros programas Erros de especificação Não compreendemos o problema Erros Lógicos O algoritmo está errado Erros de sintaxe O algoritmo está mal programado Erros de ligação Bibliotecas referenciadas que não existem Erros de execução Dados mal introduzidos Os erros são a base da experiência.

70 Introdução à programaçãoComputadores e programação I © 2004 Erros de especificação Construir um programa que as calcule as interacções do spin de um electrão num campo gravitacional desconhecido dado o número de mesões e fermiões pertencentes ao meio.

71 Introdução à programaçãoComputadores e programação I © 2004 Erros Lógicos Solteiro casado ou erro ecivil Inicio ecivil=s não Estado = Solteiro sim não estado Fim ecivil=c Estado = casado sim

72 Introdução à programaçãoComputadores e programação I © 2004 Erros de sintaxe mais comuns Escrita ambígua if(m == 0) if(n == 0) printf("m e n são zero.); else printf("m não é zero.);

73 Introdução à programaçãoComputadores e programação I © 2004 Erros de sintaxe mais comuns Esquecer as chavetas int main(int argc, char* argv[]) { float totalFactura; sacanf( %f, &totalFactura); if( totalFactura > 1000) double desconto = totalFactura* 0.85; totalFactura -= desconto; printf(%f, totalFactura); return 0; } int main(int argc, char* argv[]) { float totalFactura; sacanf( %f, &totalFactura); if( totalFactura > 1000) double desconto = totalFactura* 0.85; totalFactura -= desconto; printf(%f, totalFactura); return 0; }

74 Introdução à programaçãoComputadores e programação I © 2004 Erros de sintaxe mais comuns Colocar um ; a seguir ao if ou else int main(int argc, char* argv[]) { float totalFactura; sacanf( %f, &totalFactura); if( totalFactura > 1000) ; { double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(%f, totalFactura); return 0; } int main(int argc, char* argv[]) { float totalFactura; sacanf( %f, &totalFactura); if( totalFactura > 1000) ; { double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(%f, totalFactura); return 0; }

75 Introdução à programaçãoComputadores e programação I © 2004 Erros de sintaxe mais comuns Esquecer o break; no ciclo switch Estado civil switch ( ECivil) switch ( ECivil) { case S : case S : printf( solteiro); printf( solteiro); case C : printf( casado); printf( casado); case D : printf( Divorciado); printf( Divorciado); case V : printf( Viuvo); printf( Viuvo); default : printf( ERRO); printf( ERRO); } switch ( ECivil) switch ( ECivil) { case S : case S : printf( solteiro); printf( solteiro); case C : printf( casado); printf( casado); case D : printf( Divorciado); printf( Divorciado); case V : printf( Viuvo); printf( Viuvo); default : printf( ERRO); printf( ERRO); }

76 © 2003 Introdução à programaçãoComputadores e programação IConclusão

77 © 2004 Construção de programas Especificação do problema Compreender o problema Desenvolvimento do algoritmo Especificar as entradas, saídas e uma forma de transformar as entradas em saídas Tradução do algoritmo para uma linguagem de programação programar Tradução do programa para linguagem máquina Compilar e linkar Executar o programa testar


Carregar ppt "© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C."

Apresentações semelhantes


Anúncios Google