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

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

Profa. Maria Augusta Constante Puget

Apresentações semelhantes


Apresentação em tema: "Profa. Maria Augusta Constante Puget"— Transcrição da apresentação:

1 Profa. Maria Augusta Constante Puget
Programação II – Parte 5 Profa. Maria Augusta Constante Puget

2 Comandos de Repetição (1)
Os comandos de repetição (ou laços) são úteis quando se tem tarefas a serem executadas repetitivamente. A linguagem C oferece os seguintes comandos de repetição: while for do-while

3 O Comando while (1) O uso do laço while é indicado quando se tem situações em que o laço pode ser terminado inesperadamente, por condições desenvolvidas dentro do corpo do laço.

4 O Comando while (2) Exemplo: #include <stdio.h>
#include <stdlib.h> int main(){ int i; i = 1; while (i <= 10){ printf(“i = %i\n“, i); i++; } system("pause"); return 0; Inicialização da variável de controle de laço Condição do laço Alteração da variável de controle do laço Este laço imprime todos os inteiros contidos no intervalo de 1 a 10. Note que: 1 é o valor com o qual a variável de controle é inicializada. i <= 10 é a condição de parada do laço. Dentro do laço a variável i é incrementada de 1 unidade a cada execução do laço.

5 Sintaxe do comando while (enquanto):
while (condição) { instrução_1; instrução_2; ... instrução_n; } Não há ponto-e-vírgula aqui A condição entre parênteses é uma expressão booleana, isto é, que envolve operadores relacionais e, possivelmente, também operadores lógicos. Quando avaliada, uma tal expressão resulta em Verdadeiro (1) ou Falso (0). Se a condição entre parênteses for avaliada como: Verdadeira (1): As instruções entre chaves serão executadas. Após a execução da última instrução (instrução_n), a condição torna a ser avaliada. Falsa (0): As instruções entre chaves não são executadas e o fluxo do programa prossegue a partir da próxima instrução após o fecha-chaves.

6 O Comando while (4) Assim, o comando while consiste na palavra-chave while seguida de uma expressão de teste entre parênteses. A execução do laço while ocorre, normalmente, na seguinte ordem: A instrução de inicialização é executada. A condição é avaliada. Se a condição for verdadeira (igual a 1), o corpo do laço é executado uma vez e a condição é avaliada novamente. Este ciclo de teste e execução é repetido até que a expressão de teste se torne falsa (igual a zero). Então o laço termina e o controle do programa passa para a linha seguinte ao laço. Elementos de um laço while: instrução de inicialização; while(condição){ //corpo do laço ... incremento(ou decremento); } 1 2 3 4

7 O Comando while (5) Como i inicia valendo 10, a condição
Pode acontecer de a condição do laço não ser nunca verdadeira e o laço não ser executado nenhuma vez. Exemplo: i = 10; while(i < 5){ printf("i = %i\n", i); i++; } Se não houver dentro do laço uma instrução que altere o valor da variável de controle do laço de tal forma que a condição do laço torne-se falsa em algum momento da execução do programa, tem-se um laço infinito. i = 1; while(i < 10){ Como i inicia valendo 10, a condição i < 5 é, logo de início, falsa. Neste caso, o laço não é executado nenhuma vez. Como i inicia valendo 1, a condição i < 10 é verdadeira. Como o valor de i não é alterado dentro do laço, a condição permanece verdadeira “para sempre”.

8 O Comando while (6) Uma outra maneira de implementar um laço infinito é utilizando o literal 1 como condição de laço (lembrando que, em C, 1 = verdadeiro). while(1){ ... }

9 O Comando break (1) O comando break causa a interrupção imediata de um laço. Quando um break é encontrado dentro de um laço o mesmo deixa de ser executado e o controle do programa passa para a próxima instrução após o laço. Exemplo: int valor; while(1){ printf("Digite um inteiro positivo (0 para terminar):"); scanf("%i“, &valor); if (valor == 0){ break; } ...

10 O Comando for (1) O laço for é geralmente usado quando queremos repetir algo por um número fixo de vezes. Ou seja, geralmente utilizamos um laço for quando sabemos de antemão o número de vezes a repetir.

11 O Comando for (2) Exemplo: #include <stdio.h>
#include <stdlib.h> int main(){ int i; for(i = 1; i <= 10; i++){ printf("i = %i\n", i); } system("pause"); return 0; Este laço imprime todos os inteiros contidos no intervalo de 1 a 10. Note que: 1 é o valor com o qual a variável de controle é inicializada. i <= 10 é a condição de parada do laço. A variável i é incrementada de 1 unidade a cada execução do laço.

12 Sintaxe do comando for:
for (expr_inicialização; condição; expr_alteração) { instrução_1; ... instrução_n; } Exemplo: Ponto-e-vírgula Condição Inicialização Incremento for(i = 1; i <= 10; i++) { printf("i = %i\n", i); } Não há ponto-e-vírgula aqui Corpo do laço

13 Ordem de Execução das Expressões no Laço for (1)
2 4 Primeiramente, a expressão de inicialização (1) é avaliada. Isto ocorre uma única vez, no início da execução do laço for. Em seguida, a condição (2) é avaliada. Se a condição for avaliada como verdadeira, o corpo do laço (3) é executado. Após a execução do corpo do laço a expressão de alteração(4) é executada. Novamente a condição (2) é avaliada. O laço é interrompido quando a condição (2) se tornar falsa. for(i = 1; i <= 10; i++) { printf("i = %i\n", i); } 3

14 O Comando for - Exemplo (1)
#include <stdio.h> #include <stdlib.h> int main(){ int i; for(i = 1; i <= 10; i++){ printf("\n%4i X 6 = %4i", i, i*6); } printf("\n"); system("pause"); return 0; Este laço imprime a tabuada do 6.

15 Flexibilidade do laço for (1)
Nos exemplos anteriores utilizamos o laço for na sua forma mais comum, isto é: Primeira expressão para inicializar a variável; Segunda expressão para expressar um limite para a execução do laço; Terceira expressão para incrementar ou decrementar a variável de laço. Podemos, entretanto, utilizar estas expressões de outras formas...

16 Flexibilidade do laço for (2)
O Operador Vírgula Qualquer uma das expressões de um laço for pode conter várias instruções separadas por vírgulas. Exemplo: #include <stdio.h> #include <stdlib.h> int main(){ int i, j; for(i = 0, j = i; (i+j) < 100; i++, j++){ printf("%i ", i+j); } printf("\n"); system("pause"); return 0; Este laço imprime os números do 0 ao 98 de 2 em 2.

17 Flexibilidade do laço for (3)
Omitindo expressões do laço for Qualquer uma das três expressões de um laço for pode ser omitida. Os únicos elementos que não podem ser omitidos são os dois ponto-e-vírgulas. Exemplo: #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(){ unsigned char ch; for( ;(ch = getche()) != '\r'; ){ printf("=%i\n", ch); } printf("\n"); system("pause"); return 0; Neste laço estão sendo omitidas as expressões de inicialização e de alteração. Se as expressões de inicialização ou de alteração forem omitidas, elas são simplesmente desconsideradas.

18 Flexibilidade do laço for (4)
Omitindo expressões do laço for (cont.) Se a condição de teste for omitida, ela será considerada permanentemente verdadeira. Exemplo: #include <stdio.h> #include <stdlib.h> int main(){ for( ; ; ){ printf(“Laco infinito...\n"); } system("pause"); return 0;

19 Flexibilidade do laço for (5)
Omitindo o corpo do laço for (cont.) O corpo do laço pode ser vazio. No entanto, neste caso, deve ser colocado um ponto-e-vírgula após o comando for. Exemplo: #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(){ unsigned char ch; for( ;(ch = getche()) != '\r'; printf("=%i\n", ch)); printf("\n"); system("pause"); return 0; } Só quando o corpo do laço é vazio!!! Aqui há ponto-e-vírgula!

20 Laço for Aninhado (1) Quando um laço for faz parte do corpo de outro laço for, dizemos que o laço interno está aninhado. Para ilustrar esta situação no exemplo seguinte temos um programa que imprime as tabuadas do 2 ao 9.

21 Só quando o corpo do laço
Laço for Aninhado (2) Exemplo: #include <stdio.h> #include <stdlib.h> int main(){ int i, j; for(i = 2; i<=9 ; i++){ system("cls"); printf("Tabuada do %i\n", i); for(j=1; j<=10; j++){ printf("%3d X %3d = %3d\n", i, j, i*j); } system("pause"); printf("\n"); return 0; Só quando o corpo do laço é vazio!!!

22 Laço while Aninhado Da mesma forma que o laço for, também podemos ter laços while aninhados. Para ilustrar vamos reescrever o programa da tabuada utilizando, ao invés do comando for o comando while.

23 O Comando do-while (1) O comando do-while é utilizado em situações em que é necessário executar o corpo do laço pelo menos uma vez. Neste laço, a expressão de teste é avaliada por último.

24 O Comando do-while (2) Exemplo: #include <stdio.h>
#include <stdlib.h> int main(){ int idade; do{ printf("\nForneca sua idade: "); scanf("%i", &idade); }while(idade < 0); printf("\nSua idade vale: %i.\n\n", idade); system("pause"); return 0; } Este laço imprime pelo menos uma vez a frase solicitando a idade, fazendo a leitura da mesma em seguida com o scanf. Se o usuário fornecer um valor negativo para a idade, então o laço é executado novamente, solicitando uma vez mais a idade do usuário. O laço só é interrompido quando o usuário finalmente fornece um valor positivo para a idade, quando então a condição do while se torna falsa.

25 Sintaxe do comando do-while :
{ instrução_1; ... instrução_n; }while(condição); O comando do-while consiste na palavra-chave do seguida de um bloco de uma ou mais instruções entre chaves e terminada pela palavra-chave while seguida por uma expressão de teste entre parênteses (condição), terminada por ponto-e-vírgula. Não há ponto-e-vírgula aqui Ponto-e-vírgula aqui

26 Ordem de Execução do do-while (1)
{ instrução_1; ... instrução_n; }while(condição); Primeiramente o bloco de código é executado. Em seguida, a condição entre parênteses é avaliada. Se a condição for avaliada como verdadeira (igual a 1), o laço é mais uma vez executado. Este ciclo de execução do bloco seguido pela avaliação da condição é repetido até que a expressão de teste se torne falsa (igual a zero), quando então o laço termina e o controle do programa passa para a linha seguinte ao laço.

27 Aplicações do do-while (1)
O comando do-while é utilizado com frequência para: Fazer validação de dados. Apresentação de menus.

28 Representação em Fluxograma
while e for do-while


Carregar ppt "Profa. Maria Augusta Constante Puget"

Apresentações semelhantes


Anúncios Google