Repet i Coes

8
INF1004/INF1005 – Programação 1 Capítulo 05: Repetições 1 Capítulo 5: Repetições Pontifícia Universidade Católica Departamento de Informática INF1004 e INF1005 – Programação 1 Construção de Laços Repetição: Diversos problemas de difícil solução podem ser resolvidos numericamente por um computador se dividido em partes. Acumulando o resultado de pequenas computações, podemos chegar à solução do problema como um todo. Precisamos de mecanismos de programação que nos permitam requisitar que um conjunto de instruções seja repetidamente executado, até que uma determinada condição seja alcançada. REPETIÇÕES SÃO PROGRAMADAS ATRAVÉS DA CONSTRUÇÃO DE LAÇOS (OU CICLOS).

description

repetições , loop . laços

Transcript of Repet i Coes

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    1

    Captulo 5: Repeties

    Pontifcia Universidade CatlicaDepartamento de Informtica

    INF1004 e INF1005 Programao 1

    Construo de Laos

    Repetio: Diversos problemas de difcil soluo podem ser resolvidos

    numericamente por um computador se dividido em partes. Acumulando o resultado de pequenas computaes, podemos

    chegar soluo do problema como um todo. Precisamos de mecanismos de programao que nos permitam

    requisitar que um conjunto de instrues seja repetidamente executado, at que uma determinada condio seja alcanada.

    REPETIES SO PROGRAMADAS ATRAVS DA CONSTRUO DE LAOS (OU CICLOS).

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    2

    Construo de Laos:o comando while

    Em C, uma das formas de se trabalhar com repeties atravs do comando while.

    Enquanto uma determinada _expresso_booleana_for verdadeira, o _bloco de comandos_ executado! Depois, a execuo procede nos comandos subsequentes ao bloco while.

    ...

    while(_expressao_booleana) {_bloco_de_comandos_

    ...

    }...

    Exemplo:Imprimir 100 nmeros: 0 a 99

    #include

    int main(void) {int x = 0;while(x < 100){printf("%d\n", x);x++;

    }return 0;

    }

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    3

    Exemplo:Fatorial de um nmero no-negativo

    Exemplo: Fatorial de um nmero no-negativo.

    int fatorial(int n) {int f = 1;while(n > 1){f = f * n;n = n 1;

    }return f;

    }

    Exemplo:Clculo do MDC entre dois nmeros inteiros positivos

    Exemplo: MDC (mximo divisor comum entre dois nmeros inteiros positivos usando o algoritmo de Euclides)

    MDC entre 42 e 24:

    x = 42, y = 24Na etapa seguinte o y passaa ser x e o resto passa a ser y.O processo se repete at que o restoda diviso seja 0. e o valor em y o MDC desejado

    MDC entre 42 e 23:

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    4

    Exemplo:Clculo do MDC entre dois nmeros inteiros positivos

    int mdc(int x, int y) {int r = x%y;while(r != 0){

    x = y;y = r;r = x%y;

    }return y;

    }

    Exemplo:Verificar se um Nmero Primo

    Exemplo: determinar se um dado nmero inteiro positivo ou no primo. Como se sabe, um nmero dito primo se for divisvel apenas pelo

    nmero 1 e pelo prprio nmero, sendo que 1 no primo (2 o primeiro nmero primo)

    /* retorna 0 se n nao for primo, 1 se for)*/

    int primo(int n) {int i;if (n

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    5

    Exemplo: Imprimir o n-simo termo da Srie de Fibonacci

    /* retorna o n-esimo termo da serie de fibonacci */int fibonacci(int n) {

    if (n

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    6

    Exemplo:Imprimir 100 nmeros: 0 a 99

    Exemplo: imprimir na tela os valores de 0 a 99:

    #include

    int main(void) {int x;for(x=0;x

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    7

    Exemplo:Clculo do MDC entre dois nmeros inteiros positivos

    int mdc(int x, int y) {int r;for(r=x%y; r!=0; r = x%y) {

    x=y;y=r;

    }return y;

    }

    Exemplo:Verificar se um Nmero Primo

    Exemplo: determinar se um dado nmero inteiro positivo ou no primo. Como se sabe, um nmero dito primo se for divisvel apenas

    pelo nmero 1 e pelo prprio nmero, sendo que 1 no primo.

    #include

    int primo(int n){int i;if (n

  • INF1004/INF1005 Programao 1Captulo 05: Repeties

    8

    Exemplo: Imprimir o n-simo termo da Srie de Fibonacci

    Repetio com Teste no Final

    while e for: avaliam a expresso booleana que controla a execuo do bloco de comandos no incio do lao.

    A linguagem C oferece uma terceira construo de laos atravs do comando do-while: A expresso booleana avaliada no final do lao. Isso significa que o bloco de comandos avaliado pelo menos

    uma vez!