Mudanças entre as edições de "AULA 7 - Programação 1 - Engenharia"
Ir para navegação
Ir para pesquisar
(Criou página com '== AULA 7== ===Objetivos=== *Uso do break e do while; *uso do gdb *uso da biblioteca matemática. ====Uso de break para sair de loops==== Em exercícios anteriores, a finali...') |
|||
Linha 43: | Linha 43: | ||
if (i==2) | if (i==2) | ||
break; | break; | ||
− | ("valor de i = %d\n", i); | + | printf("valor de i = %d\n", i); |
} | } | ||
Edição atual tal como às 10h01min de 21 de agosto de 2014
AULA 7
Objetivos
- Uso do break e do while;
- uso do gdb
- uso da biblioteca matemática.
Uso de break para sair de loops
Em exercícios anteriores, a finalização de um loop normalmente se dá pela expressão de controle de loop associado a instrução usada. É possível sair de um loop na força bruta usando a instrução break:
#include <stdio.h>
main()
{
int i,j;
for (i=0;i<10;i++) {
if (i==5)
break;
}
printf("valor de i=%d\n", i);
}
Note que o break sempre sai do loop mais próximo a ele.
#include <stdio.h>
main()
{
int i,j;
for (i=0;i<3;i++) {
for (j=0;j<4;j++) {
if (j==1) {
break;
}
printf("valor de j = %d\n", j);
}
if (i==2)
break;
printf("valor de i = %d\n", i);
}
}
Uso do continue para prosseguir no início do loop
#include <stdio.h>
main()
{
int i,j;
for (i=0;i<3;i++) {
if (i==1) {
continue;
}
printf("valor de j = %d\n", j);
for (j=0;j<4;j++) {
if (j==1) {
continue;
}
printf("valor de j = %d\n", j);
}
}
}
Usando funções da biblioteca matemática
Para usar as funções matemáticas da biblioteca padrão, fazer os seguintes passos:
- No arquivo-fonte incluir o header math.h da biblioteca matemática:
#include <stdio.h>
#include <math.h>
main()
{
float x,y; /* declaração de duas variáveis reais */
printf ("Entre com o valor de x ");
scanf("%f",&x);
y = sqrtf(x);
printf ("Raiz de x = %lf", y);
}
NOTA: a maior parte de parâmetros e valores de retorno das funções matemáticas são reais de dupla precisão (double).
- Compilar e linkar o arquivo da forma:
gcc ex1.c -o ex1 -lm
EXERCÍCIOS
- Faça uma versão "politicamente incorreta" do programa de adivinhação da aula passada, Faça um loop infinito com o do while() e use uma instrução goto para sair do loop.
/* rand example: guess the number */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int iSecret, iGuess; /* initialize random seed: */ srand ( time(NULL) ); /* generate secret number: */ iSecret = rand() % 10 + 1; do { printf ("Guess the number (1 to 10): "); scanf ("%d",&iGuess); if (iSecret<iGuess) printf ("The secret number is lower\n"); else { if (iSecret>iGuess) printf ("The secret number is higher\n"); } if (iSecret==iGuess) /* se acertou salta para FIM */ goto FIM; } while(1); FIM: printf ("Congratulations!\n"); return 0; }
- Ainda sobre o exercício 1, implemente uma versão usando o comando while().
/* rand example: guess the number */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int iSecret, iGuess; /* initialize random seed: */ srand ( time(NULL) ); /* generate secret number: */ iSecret = rand() % 10 + 1; /* coloca um valor em iGuess que nunca será inserido pelo usuário */ iGuess = -1; while (iSecret!=iGuess) { printf ("Guess the number (1 to 10): "); scanf ("%d",&iGuess); if (iSecret<iGuess) printf ("The secret number is lower\n"); else { if (iSecret>iGuess) printf ("The secret number is higher\n"); } } printf ("Congratulations!\n"); return 0; }
- Ainda sobre o exercício 1, implemente uma versão usando loop infinito e o comando break;
/* rand example: guess the number */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int iSecret, iGuess; /* initialize random seed: */ srand ( time(NULL) ); /* generate secret number: */ iSecret = rand() % 10 + 1; do { printf ("Guess the number (1 to 10): "); scanf ("%d",&iGuess); if (iSecret<iGuess) printf ("The secret number is lower\n"); else { if (iSecret>iGuess) printf ("The secret number is higher\n"); } if (iSecret==iGuess) /* se acertou sai do loop */ break; } while(1); printf ("Congratulations!\n"); return 0; }