Programação Usando a Linguagem C

 

Fluxo de Controle

 

1.    ·        Os comandos de fluxo de controle especificam a ordem em que a computação é realizada.

 

Comandos e Blocos

 

2.    ·        Uma expressão torna-se um comando quando seguida pelo símbolo ";". Exemplo:

 

       x = 0; i++; printf(...);

 

3.    ·        O símbolo ";" é um terminador de comandos e não um separador.

4.    ·        O conjunto { } agrupa declarações e comandos num bloco (comando composto), considerado como um único comando.

5.    ·        Variáveis podem ser declaradas dentro de qualquer bloco.

 

Comandos  de decisão: if-else

 

6.    ·        O comando if-else é usado para expressar decisões (executar testes condicionais) no programa.

7.    ·        Observe o programa abaixo:

8.                            

/*

    UFPB/CCT/DSC - Introducao a Programacao/2001.1

 

    Este programa determina o maior de um grupo de 3 valores inteiros

 

    Versao 1.0

 

*/

 

 

#include <stdio.h>

 

void main() {

 

    /*declaracao de variaveis*/

    int valor1, valor2, valor3;

    const char prompt[] = "\nDigite 3 valores inteiros para localizar o maior\n(separe os valores com espaco): ";

 

 

    clrscr();/*comando para limpar a tela*/

 

    /*entrada de dados*/

    printf("%s", prompt);

    scanf("%d %d %d", &valor1, &valor2, &valor3);

 

    /*processamento*/

    if (valor1 > valor2) {

       if (valor1 > valor3) {

           printf("O maior valor entre %d %d %d => %d", valor1, valor2, valor3, valor1);

       } else {

           printf("O maior valor entre %d %d %d => %d", valor1, valor2, valor3, valor3);

       }

    } else {

       if (valor2 > valor3) {

           printf("O maior valor entre %d %d %d => %d", valor1, valor2, valor3, valor2);

       } else {

           printf("O maior valor entre %d %d %d => %d", valor1, valor2, valor3, valor3);

       }

    }

 

    getch();

}

9.    ·        Forma geral do comando if-else:

 

       if (expressão) {

           comando1; /*bloco VERDADE*/

       } else {

           comando2; /*bloco FALSO*/

       }

 

10.                      ·        Onde, expressão é uma expressão lógica.

11.                      ·        Uma expressão é verdadeira quando seu valor é diferente de zero, nesse caso, executa-se o bloco VERDADE;

12.                      ·        Por outro lado, uma expressão é tida como falsa quando seu valor é igual a zero, nesse caso, executa-se o bloco FALSO.

13.                      ·        É melhor usar:

 

       if (expressão)

 

14.                      ·         Ao invés de:

 

       if (expressão != 0)

 

 

 

    if (n > 0)            if (n > 0)

       if ( a > b)      =        if (a > b)

           z = a;                z = a;

       else              else

           z = b;            z = b;

                        

 

/*

    UFPB/CCT/DSC - Introducao a Programacao/2001.1

 

    Este programa determina o maior de um grupo de 3 valores inteiros

 

    Versao 2.0

 

*/

 

 

#include <stdio.h>

#include <limits.h>

 

void main() {

 

    /*declaracao de variaveis*/

    int valor1, valor2, valor3, maior;

    const char prompt[] = "\nDigite 3 valores inteiros para localizar o maior\n(separe os valores com espaco): ";

 

 

    /*INT_MIN: constante pre-definida da linguagem, equivale ao valor minino de "int"*/

    maior = INT_MIN;

 

    clrscr();/*comando para limpar a tela*/

 

    /*entrada de dados*/

    printf("%s", prompt);

    scanf("%d %d %d", &valor1, &valor2, &valor3);

 

    /*processamento*/

    if (valor1 > maior) {

       maior = valor1;

    }

    if (valor2 > maior) {

       maior = valor2;

    }

    if (valor3 > maior) {

       maior = valor3;

    }

 

    /*saida de dados*/

    printf("O maior valor entre %d %d %d => %d", valor1, valor2, valor3, maior);

 

    getch();

}

 

Comandos de decisão: else-if

 

15.                      ·        A construção a seguir é a forma mais genérica de se escrever uma decisão múltipla:

 

       if (expressão1) {

           comando1;

       } else if (expressão2) {

           comando2;

       } else if (expressão3) {

           comando3;

       } else {

           comando4;

       }

 

O comando switch

 

16.                      ·        O comando switch é uma estrutura de decisão múltipla.

17.                      ·        Funcionalidade: verifica se o valor da expressão coincide com um dentre vários valores inteiros constantes, desviando o fluxo de execução de acordo com o resultado.

18.                      ·        Observe o programa abaixo:

19.                      ·        O comando break causa uma saída imediata do switch (pode ser utilizado também em comandos de repetição).

20.                      ·        Forma geral do comando switch:

 

       switch (expressão) {

           case expressão-constante: comandos;

           case expressão-constante: comandos;

           . . .

           default: comandos;

       }

 

Expressões lógicas e relacionais

 

> >= < <=

 

 

     == !=

 

 

&&(and) ||(or) !(not)

 

 

    10 > 5 && !(10 < 9) || 3 <= 4

 

O resultado da expressão acima é verdadeiro.

 

 

mais alta =>

Operadores aritméticos

 

!

 

==  !=

 

>  >=  <  <=

 

&&

mais baixa =>

||

 

 

!0 && 0 ||

!(0 && 0) || 0

é falso

é verdadeiro

          

Comandos de repetição: while, for

 

 

/*

    UFPB/CCT/DSC - Introducao a Programacao/2001.1

 

    Este programa determina o maior de um grupo de N valores inteiros

 

    Versao 3.0

 

*/

 

#include <stdio.h>

#include <limits.h>

 

void main() {

 

    /*declaracao de variaveis*/

    int valor, maior;

    char resposta = 's';

    const char prompt[] = "\nDigite os valores inteiros para localizar o maior:";

    const char prompt2[] = "\nOutro valor?\n(tecle \'s\' para sim e \'n\' para terminar): ";

 

    /*INT_MIN: constante pre-definida da linguagem, equivale ao valor minino de "int"*/

    maior = INT_MIN;

 

    clrscr(); /*comando para limpar a tela*/

 

    /*processamento*/

    printf ("%s", prompt);

    while (resposta == 's') {

       printf("\nValor: ");

       scanf("%d", &valor);

       if (valor > maior)

           maior = valor;

       printf("%s", prompt2);

       scanf(" %c", &resposta);

    }

 

    /*saida de dados*/

    printf ("\nMaior valor digitado => %d", maior);

 

    getch();

}

 

 

       while (expressão) {

           comandos;

       }

 

21.                      ·        Note que, o bloco de comandos do while será repetido até que o resultado da avaliação de expressão  seja diferente de zero.

22.                      ·        Representação de um laço infinito com o comando while:

      

       while(1) {

           comandos;

       }

 

23.                      ·        Outra versão do programa para encontrar o maior valor:

24.                       

/*

    UFPB/CCT/DSC - Introducao a Programacao/2001.1

 

    Este programa determina o maior de um grupo de 3 valores inteiros

 

    Versao 4.0

 

*/

 

#include <stdio.h>

#include <limits.h>

 

void main() {

 

    /*declaracao de variaveis*/

    int valor, maior, i;

    const char prompt[] = "\nEntrada dos 10 valores inteiros para localizar o maior...";

    const char prompt2[] = "\nInforme um valor: ";

 

    /*INT_MIN: constante pre-definida da linguagem, equivale ao valor minino de "int"*/

    maior = INT_MIN;

 

    clrscr();/*comando para limpar a tela*/

 

    /*processamento*/

    printf ("%s", prompt);

    for (i = 0; i < 10; i++) {

       printf("%s", prompt2);

       scanf("%d", &valor);

       if (valor > maior)

           maior = valor;

    }

 

    /*saida de dados*/

    printf("\nMaior valor digitado => %d", maior);

 

    getch();

}

 

25.                      ·        Forma geral do comando for:

 

       for(expr-1; expr-2; expr-3){

           comandos;

       }

 

26.                      ·        Onde:

27.                      expr-1 => inicialização da variável de controle;

28.                      expr-2 => teste sobre a variável de controle;

29.                      expr-3 => atualização (incremento/decremento) do valor da variável de controle.

30.                       

 

       for (;;) {

           comandos;

       }

 

      

       expr-1;

       while (expr-2) {

           comandos;

           expr-3;

       }

 

31.                      ·        O comando for é claramente preferível ao comando while quando há inicializações e reinicializações.

32.                      ·        Além disso, utiliza-se o comando for quando o número de repetições é conhecido; e o comando while, caso contrário.

33.                      ·        O operador "," é freqüentemente usado no comando for. Seu efeito é fazer com que várias expressões sejam avaliadas da esquerda para a direita.

 

O comando do-while

 

34.                      ·        O comando do-while é semelhante ao comando while, sendo que, o teste (avaliação da expressão) acontece no final da execução do seu bloco de comandos.

35.                      ·        Forma geral do comando do-while:

       do {

           comando;

       } while (expressão);

 

Comandos break e continue

 

36.                      ·        O break permite a saída antecipada do laço ou switch.

37.                      ·        Um break faz com que o laço (ou switch) mais interno seja terminado imediatamente.

38.                      ·        O comando continue inicia a próxima iteração do laço.

39.                      ·        Dentro do while e do do-while, o continue desvia para o teste; dentro do for, desvia para a execução da próxima reinicialização (expr-3).

 

Programas para discutir em sala:

1 – Série de Fibonacci (código)

2 – Divisores de um número N (código)

3 – Números primos (código)

4 – Calculadora (código)


conteúdo | seguir | voltar