Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Programação Avançada AULA 002 Atenção O material aqui apresentado é um resumo básico dos assuntos de aula, que são baseados na bibliografia recomendada do curso (básica e de consulta). Não é permitida a divulgação deste material com qualquer propósito sem a devida autorização do autor (Pier Marco Ricchetti). Este material deve ser usado como apoio, e não é referência completa para o bom desempenho do aluno na disciplina. Respeite o direito autoral! 2 Decisão if (condição) { comando1; comando2; ... } else { comando3; comando4; ... } Caso a condição seja verdadeira, os comandos “comando1, comando2, ...” serão executados. Caso contrário, os comandos “comando3”, “comando4, ...” serão executados. O else é opcional. F20091SPMRV01 Loop (Laço) • Existem 3 estruturas de loop em C: • while • do...while • for F20091SPMRV01 3 while while (condição) { comando1; comando2; ... controle; } Enquanto a condição for verdadeira, os comandos “comando1, comando2, ...” serão executados. Notar a importância de se incluir o controle da condição, em alguma parte do bloco (inclusive na própria condição!). O controle assegura a finalização do loop. F20091SPMRV01 while while (condição) { comando1; comando2; ... controle; } F20091SPMRV01 4 Exemplo #include <stdio.h> void main(void) { int a; a=10; while (a<14) { printf(“a=%d\n”,a); a++; } } Qual a resposta desta simulação?? F20091SPMRV01 do ... while do { comando1; comando2; ... controle; } while(condição); Os comandos “comando1, comando2, ...” serão executados, enquanto a condição for verdadeira. Notar a importância de se incluir o controle da condição, em alguma parte do bloco (inclusive na própria condição!). O controle assegura a finalização do loop. F20091SPMRV01 5 do ... while do { comando1; comando2; ... controle; } while(condição); F20091SPMRV01 Exemplo #include <stdio.h> void main(void) { int a; a=10; do { printf(“a=%d\n”,a); a++; } while (a<14); } Qual a resposta desta simulação?? F20091SPMRV01 6 while X do ... while while do...while Qual a diferença? F20091SPMRV01 #include <stdio.h> void main(void) { int a; a=10; while (a<14) { printf(“a=%d\n”,a); a++; } } #include <stdio.h> void main(void) { int a; a=10; do { printf(“a=%d\n”,a); a++; } while (a<14); } Os exemplos abaixo produzem o mesmo resultado, mas não são equivalentes! Porquê?? F20091SPMRV01 7 #include <stdio.h> void main(void) { int a; a=100; while (a<14) { printf(“a=%d\n”,a); a++; } } #include <stdio.h> void main(void) { int a; a=100; do { printf(“a=%d\n”,a); a++; } while (a<14); } Os exemplos abaixo NÃO produzem o mesmo resultado, e não são equivalentes! Porquê?? F20091SPMRV01 Conversão Genérica while do ... while while do...while Repete-se o if ! F20091SPMRV01 8 #include <stdio.h> void main(void) { int a; a=100; while (a<14) { printf(“a=%d\n”,a); a++; } } #include <stdio.h> void main(void) { int a; a=100; if (a<14) { do { printf(“a=%d\n”,a); a++; } while (a<14); } } Com o ajuste, os exemplos abaixo produzem o mesmo resultado! Porquê?? F20091SPMRV01 Conversão Genérica do ... while while do...while while Repete-se o bloco de comando ! F20091SPMRV01 9 #include <stdio.h> void main(void) { int a; a=100; printf(“a=%d\n”,a); a++; while (a<14) { printf(“a=%d\n”,a); a++; } } Com o ajuste, os exemplos abaixo produzem o mesmo resultado! Porquê?? #include <stdio.h> void main(void) { int a; a=100; do { printf(“a=%d\n”,a); a++; } while (a<14); } F20091SPMRV01 for •expressão1 : uma expressão ou qualquer comando ou chamada de função. Normalmente uma atribuição; •expressão2 : qualquer comando ou chamada de função; •expressão3 : uma expressão ou qualquer comando ou chamada de função. Normalmente um incremento; F20091SPMRV01 10 Exemplo #include <stdio.h> void main(void) { int a; for(a=10; a<14; a++) { printf(“a=%d\n”,a); } } Qual a resposta desta simulação?? F20091SPMRV01 O “for” é um while ! F20091SPMRV01 11 #include <stdio.h> void main(void) { int a; for(a=10; a<14; a++) { printf(“a=%d\n”,a); } } #include <stdio.h> void main(void) { int a; a=10; while(a<14) { printf(“a=%d\n”,a); a++; } } Os exemplos abaixo produzem o mesmo resultado! Porquê?? F20091SPMRV01 EXERCÍCIOS 12 Exercícios 01. Dado o trecho abaixo: ... do { printf("x=%d\n",x); x = x + 1; } while (x<30); ... Pede-se: altere-o para que use WHILE ao invés de DO...WHILE F20091SPMRV01 Exercícios Resposta: ... printf("x=%d\n",x); x = x + 1; while (x<30) { printf("x=%d\n",x); x = x + 1; } ... F20091SPMRV01 13 Exercícios 02. Dado o trecho: ... while (a<y) { a = a + 1; printf("%d\n", a+y); } ... Pede-se: altere-o para que use DO...WHILE ao invés de WHILE. F20091SPMRV01 Exercícios Resposta: ... if (a<y) { do { a = a + 1; printf("%d\n", a+y); } while (a<y); } ... F20091SPMRV01 14 Exercícios 03. Desenvolva um programa que apresenta os números pares de 0 a 20. F20091SPMRV01 Exercícios Resposta: #include <stdio.h> void main(void) { int x = 0; while (x <= 20) { printf("%d\n", x); x = x + 2; } } F20091SPMRV01 15 04. Desenvolva um programa que: •recebe um número e apresenta o fatorial do número usando while •recebe um número e apresenta o fatorial do número usando do...while; Exercícios F20091SPMRV01 Exercícios 05 - Desenvolva um programa que diz se um número é primo ou não; 06 - Desenvolva um programa que solicite as notas e diz se um aluno passou; 07 - desenvolva um programa que apresenta todos os números que dividem um determinado numero, com resto 0; F20091SPMRV01 16 Exercícios 08 - desenvolva um programa que recebe - resistência, tensão e fornece a potência; 09 - desenvolva um programa que calcule a soma dos números inteiros de 1 até o número fornecido; 10 - idem, dos ímpares; 11 - idem, dos pares. F20091SPMRV01 Bibliografia Básica - Schildt, Herbert – C Completo e Total – Makron Books editora, 1999 - notas de aula ! F20091SPMRV01 17 Fim
Compartilhar