Anda di halaman 1dari 0

Programao em C -

Ciclos e decises
[Escrever o subttulo do documento]

Programas desenvolvidos durante as sesses do mdulo em questo.

0783
Tom
[Escrever o nome da empresa]
0783
Programao em C - Ciclos e decises
0783

2


Exerccio 19
O programa pede um nmero ao utilizador e de seguida identifica esse nmero como
positivo ou negativo.
// DECISOES E CICLOS
#include<stdio.h>
main()
{
float num;
system("color 9F");// para inserir cr system("color ??");
printf("\n\n ******* PROGRAMA ELABORADO POR TOME\t******: ");
printf("\t\t\n\n++DECISOES POSITIVO, NEGATIVO++\t");
printf("\n\n\n Insira um numero: ");
scanf("%f", &num);
if(num > 0) // para inserir uma deciso
{
printf("\n\n\tO NUMERO %.2f E NEGATIVO", num );
}
else
{
if(num == 0) // para representar igualdade ==
printf("\n\n\tO NUMERO %.2f E ZERO", num );
else
printf("\n\n\tO NUMERO %.2f E POSITIVO", num );
}
getch();
}



Programao em C - Ciclos e decises
0783

3


Exerccio 20
Este programa realiza uma mdia a partir dos dados introduzidos pelo utilizador.
// DECISOES, E CICLOS
#include<stdio.h>
main()
{
float nota, nota2, media, notafinal;
system("color 9F");// para inserir cr system("color ??");
printf("\n\n ******* PROGRAMA ELABORADO POR TOME\t******: ");
printf("\t\t\n\n++NOTA DE EXAMES++\t");
printf("\n\n\n Insira a nota do Exame: ");
scanf("%f", &nota);
printf("\n\n\n Insira a nota do Trabalho: ");
scanf("%f", &nota2);
media = (nota + nota2) / 2;
if(media>= 10) // para inserir uma deciso
printf("\n\n\tA SUA MEDIA E %.2f VOCE ESTA APROVADO",
media);
else
printf("\n\n\tA SUA MEDIA E %.2f VOCE ESTA REPROVADO",
media);
getch();
}
Exerccio 21
O Este programa calcula a nota final a partir da mdia dos 2 testes, mostrando tambm a
avaliao correspondente a partir do uso dos ciclos else e if.
// DECISOES, E CICLOS
#include<stdio.h>
main()
Programao em C - Ciclos e decises
0783

4


{
float nota, nota2, media, notafinal;
system("color 9F");// para inserir cr system("color ??");
printf("\n\n ******* PROGRAMA ELABORADO POR TOME\t******: ");
printf("\t\t\n\n++OPERACOES++\t");
printf("\n\n\n Insira o primeiro Numero: ");
scanf("%f", &nota);
printf("\n\n\n Insira o segundo Numero: ");
scanf("%f", &nota2);
media = (nota + nota2) / 2;
if(media < 4.5) // para inserir uma deciso SEMPRE UM NMERO A MENOS QUE AS
POSSVEIS DECISES EXEMPLO:
//2 HIPTESES 1 IF, nunca colocar espao entre >=
{
printf("\n\n\tNOTA FINAL: %.2f - FRACO", media);
}
else
{
if(media < 9.5)
{
printf("\n\n\tNOTA FINAL: %.2f - INSUFICIENTE", media);
}
else
{
if(media < 13.5)
{
printf("\n\n\tNOTA FINAL: %.2f - SUFICIENTE", media);
}
Programao em C - Ciclos e decises
0783

5


else
{
if(media < 17.5)
{
printf("\n\n\tNOTA FINAL: %.2f - BOM", media);
}
else
{
printf("\n\n\tNOTA FINAL: %.2f - MUITO BOM", media);
}
}
}
}
getch();
}
Exerccio 22
O programa realiza operaes aritmticas dando a possibilidade ao operador de escolher
qual o tipo de operao a realizar como se fosse uma calculadora convencional.
printf(" QUAL A OPERACAO QUE PERTENDE
EFECTUAR \n");
printf(" 1 - SOMAR\n");
printf(" 2 - SUBTRAIR\n");
printf(" 3 - MULTIPLICAR\n");
printf(" 4 - DIVIDIR\n");
printf(" 5 - POTENCIA\n");
printf(" 6 - RAIZ QUADRADA\n");
printf("\n\n\n: ");
scanf("%d", &opcao);
Programao em C - Ciclos e decises
0783

6



printf("\nInsira o primeiro (base) valor:" );
scanf("%f", &a);
printf("\nInsira o segundo (expoente) valor: ");
scanf("%f", &b);
//.2 o numero de casas decimais
if( opcao == 1 )
{
printf("\n\n\tA Soma dos dois valores e: %.2f\n\n",a+b);
}
else
{
if(opcao == 2 )
{
printf("\n\nA subtracao dos dois valores e: %
.2f\n\n",a-b);
}
else
{
if (opcao == 3)
{
printf("\n\nA multiplicacao dos dois valores
e: %.2f\n\n",a*b);
}
else
{
if(opcao == 4 )
{
printf("\n\nA divisao dos dois valores e:
%.2f\n",a/b);
Programao em C - Ciclos e decises
0783

7


}
else
{
if(opcao == 5 )
{
printf("\n\nO valor da potencia e:
%.2f\n",pow (a,b));
}
else
{
if(opcao == 6 )
{
printf("\n\nO valor da raiz quadrada
do primeiro valor e: %.2f\n",sqrt(a));
printf("\nO valor da raiz quadrada do
segundo valor e: %.2f\n",sqrt(b));
}
else
{
printf("\nERRO!!!!!!!! OPCAO
INVALIDA");
}
}
}
}
}
}
getch();
}

Programao em C - Ciclos e decises
0783

8


Exerccio 23
O programa semelhante ao anterior tendo somente mais uma operao aritmtica e na
programao houve o uso dos ciclos switch e case.
#include<stdio.h>

main()
{
float a,b;
int opcao;

system("color F9");// para inserir cr system("color ??");


printf("********************************************************
************************\n");
printf(" JOAO TOME
\n\n");
printf(" PROGAMA DE CALCULOS
\n\n");

printf("********************************************************
************************\n");

printf(" QUAL A OPERACAO QUE PERTENDE
EFECTUAR \n");
printf(" 1 - SOMAR\n");
printf(" 2 - SUBTRAIR\n");
printf(" 3 - MULTIPLICAR\n");
printf(" 4 - DIVIDIR\n");
printf(" 5 - POTENCIA\n");
printf(" 6 - RAIZ QUADRADA\n");
printf(" 7 - PERCENTAGEM\n");
Programao em C - Ciclos e decises
0783

9



printf("\n\n\n: ");
scanf("%d", &opcao);
switch (opcao){ //switch uma maneira de substituir else &
if.
{
case 1: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para somar
com o anterior: ");
scanf("%f", &b);
printf("\n\n\tA Soma dos dois valores e:
%.2f\n\n",a+b); break;
}
{
case 2: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para subtrair
ao anterior: ");
scanf("%f", &b);
printf("\n\nA subtracao dos dois valores e: %
.2f\n\n",a-b); break;
}
{
case 3: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para
multiplicar com o anterior: ");
scanf("%f", &b);
printf("\n\nA multiplicacao dos dois valores
e: %.2f\n\n",a*b); break;
Programao em C - Ciclos e decises
0783

10


}
{
case 4: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para dividir
o anterior: ");
scanf("%f", &b);
printf("\n\nA divisao dos dois valores e:
%.2f\n",a/b); break;
}
{
case 5: printf("\n\n\tInsira o valor da base: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para o
expoente: ");
scanf("%f", &b);
printf("\n\nO valor da potencia e: %.2f\n",pow
(a,b)); break;
}
{
case 6: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\nO valor da raiz quadrada e:
%.2f\n",sqrt(a)); break;
}
{
case 7: printf("\n\n\tInsira um valor : ");
scanf("%f", &a);
printf("\n\n\tInsira a percentagem: ");
scanf("%f", &b);
Programao em C - Ciclos e decises
0783

11


printf("\nO valor e: %.2f\n%\n\n",a *
(b/100)); break;
}
{
default: printf("\nERRO!!!!!!!! OPCAO INVALIDA");
break;
}
}
getch();
}
Exerccio 24
O programa identifica se o nmero par mpar ou nulo, utilizando ciclos if e else.
#include<stdio.h>
main()
{
int x;
system("color F5");// para inserir cr system("color ??");
printf("***********************************************************************
*********\n");
printf(" JOAO TOME \n\n");
printf(" NUMEROS PARES E IMPARES \n\n");
printf("***********************************************************************
*********\n");
printf(" INSIRA UM VALOR \n");
scanf("%d", &x);
if (x == 0)
{
printf("\n\nO NUMERO E NULO.");
}
Programao em C - Ciclos e decises
0783

12


else
if (x % 2 ==0)
{
printf("\n\nO NUMERO E PAR.");
}
else
{
printf("\n\nO NUMERO E IMPAR.");
}
getch();
}
Exerccio 25
Calculadora com a opo de identificar nmeros pares e mpares, programada a partir do
uso dos ciclos if, else, switch e case.
#include<stdio.h>
main()
{
float a,b;
int opcao;
int c;
system("color F9");// para inserir cr system("color ??");
printf("********************************************************
************************\n");
printf(" JOAO TOME
\n\n");
printf(" PROGAMA DE CALCULOS
\n\n");
printf("********************************************************
************************\n");
Programao em C - Ciclos e decises
0783

13


printf(" QUAL A OPERACAO QUE PERTENDE
EFECTUAR \n");
printf(" 1 - SOMAR\n");
printf(" 2 - SUBTRAIR\n");
printf(" 3 - MULTIPLICAR\n");
printf(" 4 - DIVIDIR\n");
printf(" 5 - POTENCIA\n");
printf(" 6 - RAIZ QUADRADA\n");
printf(" 7 - PERCENTAGEM\n");
printf(" 8 - NUMEROS PARES E IMPARES\n");
printf("\n\n\n: ");
scanf("%d", &opcao);
switch (opcao){ //switch uma maneira de substituir else &
if.
{
case 1: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para somar
com o anterior: ");
scanf("%f", &b);
printf("\n\n\tA Soma dos dois valores e:
%.2f\n\n",a+b); break;
}
{
case 2: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para subtrair
ao anterior: ");
scanf("%f", &b);
printf("\n\nA subtracao dos dois valores e: %
.2f\n\n",a-b); break;
Programao em C - Ciclos e decises
0783

14


}
{
case 3: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para
multiplicar com o anterior: ");
scanf("%f", &b);
printf("\n\nA multiplicacao dos dois valores
e: %.2f\n\n",a*b); break;
}
{
case 4: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para dividir
o anterior: ");
scanf("%f", &b);
printf("\n\nA divisao dos dois valores e:
%.2f\n",a/b); break;
}
{
case 5: printf("\n\n\tInsira o valor da base: ");
scanf("%f", &a);
printf("\n\n\tInsira outro valor para o
expoente: ");
scanf("%f", &b);
printf("\n\nO valor da potencia e: %.2f\n",pow
(a,b)); break;
}
{
case 6: printf("\n\n\tInsira um valor: ");
scanf("%f", &a);
Programao em C - Ciclos e decises
0783

15


printf("\n\nO valor da raiz quadrada e:
%.2f\n",sqrt(a)); break;
}
{
case 7: printf("\n\n\tInsira um valor : ");
scanf("%f", &a);
printf("\n\n\tInsira a percentagem: ");
scanf("%f", &b);
printf("\nO valor e: %.2f\n%\n\n",a *
(b/100)); break;
}
{
case 8: printf("\n\n\tInsira um valor : ");
scanf("%f", &a);
if (c == 0)
{
printf("\n\nO numero e nulo.");
}
else
{
if (c % 2 == 0)
{
printf("\n\nO numero e par.");
}
else
{
printf("\n\nO numero e impar.");
}
}break;
Programao em C - Ciclos e decises
0783

16


default: printf("\n\n\nERRO!!!!!!!! OPCAO INVALIDA");
break;
}
}
getch();
}
Exerccio 26
Programa com as mesmas funes que o anterior apenas diferenciado por ter menos linhas
de cdigo e a melhoria do algoritmo para evitar erros que possam acontecer por a
introduo de opes invlidas.
//Exerccio 26...
#include<stdio.h>
main()
{
float a,b;
int c,d;
system ("color 0");
system ("color A");
printf("********************************************************
************************\n");
printf(" * Joao Tome
*\n\n");
printf("********************************************************
************************\n");
printf(" ** PROGRAMA DE CALCULOS
**\n\n");
printf("\n\n\t1-SOMA");
printf("\n\n\t2-SUBTRACAO");
printf("\n\n\t3-MULTIPLICACAO");
printf("\n\n\t4-DIVISAO");
printf("\n\n\t5-POTENCIA");
Programao em C - Ciclos e decises
0783

17


printf("\n\n\t6-RAIZ QUADRADA");
printf("\n\n\t7-PERCENTAGEM");
printf("\n\n\t8-PAR/IMPAR/NULO");
printf("\n\n\nQual a operacao que pretende realizar? ");
scanf("%d", &c);
switch(c){
case 1:
{
printf("\n\nInsira o primeiro valor: ");
scanf("%f", &a);
printf("\n\nInsira o segundo valor: ");
scanf("%f", &b);
printf("\n\nO resultado da soma de %.2f com %.2f e: %.2f",
a, b, a+b);
break;
}
case 2:
{
printf("\n\nInsira o primeiro valor: ");
scanf("%f", &a);
printf("\n\nInsira o segundo valor: ");
scanf("%f", &b);
printf("\n\nO resultado da subtraccao de %.2f com %.2f e:
%.2f", a, b, a-b);
break;
}
case 3:
{
printf("\n\nInsira o primeiro valor: ");
Programao em C - Ciclos e decises
0783

18


scanf("%f", &a);
printf("\n\nInsira o segundo valor: ");
scanf("%f", &b);
printf("\n\nO resultado da multiplicacao de %.2f com %.2f
e: %.2f", a, b, a*b);
break;
}
case 4:
{
printf("\n\nInsira o primeiro valor: ");
scanf("%f", &a);
printf("\n\nInsira o segundo valor: ");
scanf("%f", &b);
printf("\n\nO resultado da divisao de %.2f com %.2f e:
%.2f", a, b, a/b);
break;
}
case 5:
{
printf("\n\nInsira a base: ");
scanf("%f", &a);
printf("\n\nInsira o expoente: ");
scanf("%f", &b);
printf("\n\nO resultado da potencia de %.2f elevado %.2f e:
%.2f", a, b, pow(a,b));
break;
}
case 6:
{
Programao em C - Ciclos e decises
0783

19


printf("\n\nInsira o valor para calcular a raiz quadrada:
");
scanf("%f", &a);
printf("\n\nO resultado da raiz quadrada de %.2f e: %.2f",
a, sqrt(a));
break;
}
case 7:
{
printf("\n\nInsira o valor: ");
scanf("%f", &a);
printf("\n\nInsira a percentagem: ");
scanf("%f", &b);
printf("\n\nO resultado da percentagem de %.f com %.f
percento e: %.2f", a,b, a*(b/100));
break;
}
case 8:
{
printf("\n\nInsira um numero: ");
scanf("%d", &d);
if(d==0)
{
printf("\nO numero e Nulo!");
}
else
{
d=d%2;
if(d==0)
{
Programao em C - Ciclos e decises
0783

20


printf("\n\nO numero e Par!");
}
else
printf("\n\nO numero e Impar!");
}
break;
}
default:
{
printf("\n\nERRO!!! Opcao Invalida!");
break;
}
}
getch();
}
Exerccio 27
Este programa a introduo ao ciclo while e mostra-nos a contagem decrescente de 20 a 0.
#include<stdio.h>
main()
{
system ("color 0");
system ("color A");
printf("***********************************************************************
*********\n");
printf(" * Joao Tome *\n\n");
printf("***********************************************************************
*********\n");
printf(" ** INTRODUCAO A CICLO WHILE **\n\n");
int n;
Programao em C - Ciclos e decises
0783

21


n = 20;
while (n>=0)
{
printf("%i\n",n);
n--;//numero = numero - 1
}
getch();
}
Exerccio 28
Este programa utiliza o ciclo while e mostra-nos a contagem crescente de 0 a 20.
#include<stdio.h>
main()
{
system ("color 0");
system ("color A");
printf("********************************************************
************************\n");
printf(" * JOAO TOME
*\n\n");
printf("********************************************************
************************\n");
printf(" ** CICLO WHILE **\n\n");
int n;
n = 0 ;
while (n<=20)
{
printf("%i\n",n);
n++;
}
getch();
Programao em C - Ciclos e decises
0783

22


}
Exerccio 29
Este programa utiliza o ciclo while e mostra-nos a contagem crescente de 0 a 20 e tambm a
contagem decrescente de 20 a 0.
#include<stdio.h>
main()
{
system ("color 0");
system ("color A");
printf("********************************************************
************************\n");
printf(" * JOAO TOME *\n\n");
printf("********************************************************
************************\n");
printf(" ** CICLO WHILE **\n\n");
int n ;
int n1 ;
n = 0;
n1 = 20;
while (n<=20&&n1>=0)
{
printf("%i\t%i\n",n,n1);
n++;
n1--;
}
getch();
}



Programao em C - Ciclos e decises
0783

23


Exerccio 30
Este programa cria 3 colunas de nmeros a primeira com os nmeros de 0 a 20, a segunda
coluna com os nmeros de 20 a 0, por fim a terceira coluna obtida por o resultado da
multiplicao dos nmeros que se encontram na horizontal das colunas anteriores. Todo isto
utilizando o ciclo while.
#include<stdio.h>
main()
{
system ("color 3");
system ("color B");
printf("********************************************************
************************\n");
printf(" * JOAO TOME
*\n\n");
printf("********************************************************
************************\n");
printf(" ** CICLO WHILE **\n\n");
int n ;
int n1 ;
n = 0;
n1 = 20;
while (n<=20&&n1>=0)
{
printf("%i\t%i\t%i\n",n,n1,n*n1);
n++;
n1--;
}
getch();
}


Programao em C - Ciclos e decises
0783

24


Exerccio 31
Idntico ao programa anterior s que desta vez o utilizador insere os nmeros.
#include<stdio.h>
main()
{
system ("color 0");
system ("color C");
printf("********************************************************
**************************\n");
printf("* JOAO TOME
*\n\n");
printf("********************************************************
**************************\n");
printf(" ** CICLO WHILE,
MULTIPLICACAO**\n\n");
int n ;
int n1 ;
printf("\n\nInsira o numero 1 : ");
scanf("%i", &n);
printf("\n\nInsira o numero 2: ");
scanf("%i", &n1);
int tmp1 = n; //para que a varivel mantenha o valor inicial
enquanto se usa while
int tmp2 = n1;
if (n<n1)
while (tmp1<=n1&&tmp2>=n)
{
printf("\n%i\t * \t%i\t = %i\n",n,n1,n*n1);
n++;
n1--;
Programao em C - Ciclos e decises
0783

25


}
else
if (n==n1)
{
printf("\nOs numeros sao iguais\n ");
}
while (tmp1>=n1&&tmp2<=n)
{
printf("\n%i\t * \t%i\t = %i\n",n,n1,n*n1);
n--;
n1++;
}
getch();
}
Exerccio 32
Este programa mostra o nmero de divises possveis entre dois nmeros inseridos pelo
utilizador em que o resultado seja inteiro. Aqui tambm introduzido o ciclo do while.
#include<stdio.h>
main()
{
system ("color 0");
system ("color E");
printf("********************************************************
************************\n");
printf("* JOAO TOME
*\n");
printf("********************************************************
************************\n");
printf(" ** CICLO WHILE, DIVISAO E RESOLTADOS POSSIVEIS
INTEIROS **\n\n");
Programao em C - Ciclos e decises
0783

26


int n ;
int n1 ;
int resto;
char opcao;
do{
printf("\n\nInsira o primeiro valor: ");
scanf("%i", &n);
printf("\n\nInsira o segundo valor: ");
scanf("%i", &n1);
int tmp1 = n; //para que a varivel mantenha o valor inicial
enquanto se usa while
int tmp2 = n1;
if (n<n1)
{
while (tmp1<=n1&&tmp2>=n)
{
resto = n % n1;
if (resto == 0)
printf("\n\t%i\t / \t%i\t = %i\n",n,n1,n/n1,resto);
n++;
n1--;
}
}
else
if (n==n1)
{
printf("\nOs numeros sao iguais\n ");
}
while (tmp1>=n1&&tmp2<=n)
Programao em C - Ciclos e decises
0783

27


{
resto = n % n1;
if (resto == 0)
printf("\n\t%i\t / \t%i\t = %i\n",n,n1,n/n1,resto);
n--;
n1++;
}
printf("\n\nPrima r para repetir e outra tecla qualquer para
sair: ");
scanf("%s", &opcao);
system ("CLS"); // clear screen
}while (opcao=='r' || opcao=='R');
//getch(); retirar getch para que saia a seguir a primir
}
Exerccio 33
Este programa d ao utilizador a possibilidade de escolher para visualizar depois qualquer
tabuada at 50, usando os ciclos while e do while.
#include<stdio.h>
main()
{
system ("color 0");
system ("color A");
printf("***********************************************************************
*********\n");
printf("* JOAO TOME *\n");
printf("***********************************************************************
*********\n");
printf(" ** TABUADA DE NUMEROS POSSITIVOS AT 50 **\n\n");
int a, conta, resultado;
Programao em C - Ciclos e decises
0783

28


conta = 0;
do{
printf("\nIntroduza um numero positivo, menor que 50: ");
scanf("%d",&a);
}while (a<=0 || a>50);
printf("\nA tabuada do numero %d: \n",a);
while (conta<10)
{
conta++;
resultado = a * conta;
printf("\n\t%d * %d = %d\n", a, conta, resultado);
}
getch();
}
Exerccio 34
Programa com a mesma finalidade que o exerccio 33, mas usando o ciclo for.
#include<stdio.h>
// programa igual ao 33 mas usando for
main()
{
system ("color 0");
system ("color A");
printf("***********************************************************************
*********\n");
printf("* JOAO TOME *\n");
printf("***********************************************************************
*********\n");
printf(" ** TABUADA DE NUMEROS POSSITIVOS AT 50 **\n\n");
Programao em C - Ciclos e decises
0783

29


int a, contador, resultado;
do{
printf("\nIntroduza um numero positivo, menor que 50: ");
scanf("%d",&a);
}while (a<=0 || a>50);
printf("\nA tabuada do numero %d: \n",a);
for (contador=1; contador<=10; contador++)
{
resultado = contador * a;
printf("\n\t%d * %d = %d\n", a, contador, resultado);
}
getch();
}
Exerccio 35
Aqui o utilizador pode mudar a cor de fundo do ecr, a programar foram usados os ciclos
switch, case e do while.
#include<stdio.h>
main()
{
int opcao;
char repetir;
printf("********************************************************
************************\n");
printf("* JOAO TOME
*\n");
printf("********************************************************
************************\n");
printf(" ** SELECCAO DE CORES DE FUNDO
**\n\n");
do{
Programao em C - Ciclos e decises
0783

30


do{
printf("\nPRIMA [1] PARA VERDE: ");
printf("\nPRIMA [2] PARA VERMELHO: ");
printf("\nPRIMA [3] PARA AZUL: ");
printf("\nPRIMA [4] PARA ROXO: ");
printf("\t\n\n\n: ");
scanf("%d", &opcao);
}while(opcao<=0 || opcao>4 );
switch (opcao)
{
case 1:
{
printf("\n Escolheu a cor verde. ");
system ("color 27 ");
break;
}
case 2:
{
printf("\n Escolheu a cor vermelha. ");
system ("color 47");
break;
}
case 3:
{
printf("\n Escolheu a cor azul. ");
system ("color 17");
break;
}
Programao em C - Ciclos e decises
0783

31


case 4:
{
printf("\n Escolheu a cor roxa. ");
system ("color 50");
break;
}
}
printf("\n\nPrima [r] ou [R] para repetir e
outra tecla qualquer para sair: ");
scanf("%s", &opcao);
system ("CLS"); // clear screen
}while (opcao=='r' || opcao=='R');
}
Exerccio 36
Neste programa a partir do ciclo for gerou-se os nmeros pares de 0 a 50.
#include<stdio.h>
main()
{
printf("********************************************************
************************\n");
printf("* JOAO TOME
*\n");
printf("********************************************************
************************\n");
printf(" ** NUMEROS PARES DE 0 A 50
**\n\n");
int a;
for(a=2; a<=50; a=a+2)
{
printf("\t\t%d \n", a);
Programao em C - Ciclos e decises
0783

32


}
getch();
}
Exerccio 37
O programa gera duas colunas de 0 a 10 uma de forma crescente e outra de forma
decrescente.
#include<stdio.h>
main()
{
printf("********************************************************
************************\n");
printf("* JOAO TOME
*\n");
printf("********************************************************
************************\n");
printf(" ** NUMEROS **\n\n");
int x,y;
for (x=1, y=10; x<=10, y>=1; x++, y--)//s podem existir 2
ponto e vrgula
{
printf("\t\t\t%i\t\t\t%d \n",x , y);
}
getch();
}
Exerccio 38
O utilizador escolhe dois nmeros inteiros, depois so criadas duas colunas uma crescente
outra decrescente, o que delimita o princpio e fim dos valores nas colunas so esses dois
nmeros que o utilizador introduziu.
#include<stdio.h>
main()
{
Programao em C - Ciclos e decises
0783

33


system ("color 1");
system ("color b");
printf("********************************************************
************************\n");
printf("****************************** JOAO TOME
***********************************\n");
printf("********************************************************
************************\n");
printf(" ** NUMEROS **\n\n");
int n1, n2, tmpn1, tmpn2;
char opcao;
do{
printf("\n\n\t\t\tInsira o primeiro numero: ");
scanf("%i", &n1);
printf("\n\n\t\t\tInsira o segundo numero: ");
scanf("%i", &n2);
if (n1 == n2)
{
printf("\n\n\t\t\t Os numeros sao iguais. ");
}
else
{
for (tmpn1=n1, tmpn2=n2; tmpn1<=n2, tmpn2>=n1; tmpn1++,
tmpn2--)//s podem existir 2 ponto e vrgula
{
printf("\n\t\t\t %i\t\t\t%d \n",tmpn1 , tmpn2);
}
//as variveis tmpn1 e tmpn2 so criadas para que o valor se
mantenha o mesmo, so variveis temporrias
for (tmpn1=n1, tmpn2=n2; tmpn1>=n2, tmpn2<=n1; n1--,
n2++)//s podem existir 2 ponto e vrgula
Programao em C - Ciclos e decises
0783

34


{
printf("\n\t\t\t %i\t\t\t%d \n",n1 , n2);
}
}
printf("\n\n\tPrima [r] ou [R] para repetir e outra tecla
qualquer para sair: ");
scanf("%s", &opcao);
system ("CLS"); // clear screen
}while (opcao=='r' || opcao=='R');
getch();
}
Exerccio 39
O programa pede ao utilizador para inserir o nome e a idade, ento a partir de um ciclo for o
nome repetido consoante os anos da idade introduzida, tambm mostra o nmero de
caracteres que o nome contm. Este o primeiro programa que fiz a usar strings.
main()
{
system ("color 1");
system ("color e");
printf("********************************************************
************************\n");
printf("****************************** JOAO TOME
***********************************\n");

printf("********************************************************
************************\n");
printf(" ** Funcoes com strings
**\n\n");
int x,y;
char opcao;
char nome[0];
do{
Programao em C - Ciclos e decises
0783

35


printf("\n\n\t\t\t Insira o seu nome: ");
scanf("%s", &nome);
printf("\n\n\t\t\t Insira a sua idade: ");
scanf("%i", &x);
for (y=1; y<=x; y++ )
{
printf("\n\t\t\t\t %i \t%s",y , nome);
}
printf("\n\n\t\t\t O nome %s tem %i letras. ", nome,
strlen(nome));
printf("\n\n\tPrima [r] ou [R] para repetir e outra tecla
qualquer para sair: ");
scanf("%s", &opcao);
system ("CLS"); // clear screen
}while (opcao=='r' || opcao=='R');
getch();
}
Exerccio 40
Neste programa o nome e o apelido so introduzidos e de seguida concatenados (funo
strcat), reescritos em maisculas e em minsculas (funes strupr e strlwr).
main()
{
system ("color 1");
system ("color f");
printf("********************************************************
************************\n");
printf("****************************** JOAO TOME
***********************************\n");

printf("********************************************************
************************\n");
Programao em C - Ciclos e decises
0783

36


printf(" ** Funcoes com strings
**\n\n");
char nome[0], apelido[0];
printf("\n\n\t\t\t Insira o seu nome: ");
scanf("%s", &nome);
printf("\n\n\t\t\t Insira o seu apelido: ");
scanf("%s", &apelido) ;
strcat (nome," "); // serve para comcatenar strings
printf("\n\n\t\t\t Bom Dia!!! Sr %s\n" , strcat(nome,
apelido));
printf("\n\n\t\t\tO seu nome em Maiusculas %s\n" ,
strupr(nome, apelido));//mostra a string em Maiusculas
printf("\n\n\t\t\tO seu nome em Minusculas %s\n" ,
strlwr(nome, apelido));//mostra a string em Minusculas
getch();
}
Exerccio 41
Este programa requer uma password previamente definida que comparada a partir da
funo strcmp.
main()
{
system ("color 1f");

printf("********************************************************
************************\n");
printf("****************************** JOAO TOME
***********************************\n");
printf("********************************************************
************************\n");
printf(" ** Funcoes com strings
**\n\n");
char pass1[20], pass2[20] = "mxq", nome[0], apelido[0];//Neste
caso para dar valor a um char preciso aspas
Programao em C - Ciclos e decises
0783

37


int x,y,z = 2,diff;
printf("\n\n\t\t\t Insira a Password: ");
scanf("%s", &pass1);
diff = strcmp(pass1, pass2);
if(diff != 0)
{
system("cls");
printf("\n\n\t\t\t Password Errada.\n\n");
printf("Restam-lhe 3 tentativas, caso contrario saira do
programa.");
do
{
printf("Insira a Password: ");
scanf("%s", &pass1);
diff = strcmp(pass1, pass2);
system("cls");// clear screen
printf("\n\n\t\t\t Password Errada");
printf("\n\n\t\t\t Restam %i tentativas", z);
z--;
}while (diff != 0 && z >= 0);
printf("\n\n\t\t\t PROGRAMA BLOQUEADO");
}
if (diff == 0)
{
system("cls");// clear screen
printf("\n\n\t\t\t Insira o seu nome: ");
scanf("%s", &nome);
printf("\n\n\t\t\t Insira o seu apelido: ");
scanf("%s", &apelido);
Programao em C - Ciclos e decises
0783

38


strcat (nome," "); // serve para comcatenar strings
printf("\n\n\t\t\t Bom Dia!!! Sr %s\n" , strcat(nome,
apelido));
printf("\n\n\t\t\tO seu nome em Maiusculas %s\n" ,
strupr(nome, apelido));//mostra a string em Maiusculas
printf("\n\n\t\t\tO seu nome em Minusculas %s\n" ,
strlwr(nome, apelido));//mostra a string em Minusculas
}
getch();
}

Reflexo:

No decorrer da
aprendizagem de programao
em C, as sesses seguiram
para o mdulo ciclos e
decises e o nvel de
dificuldade subiu, neste
encontrei algumas dificuldades
a criar programas com os
ciclos for e while, com o ciclo
do while nem tanto porque
fcil de compreender onde
coloc-lo quando se cria o
algoritmo. A meu ver o
comportamento dos ciclos e
decises bastante lgico mas ao mesmo tempo torna-se mais difcil detectar erros. Tambm
durante as sesses falamos de funes com strings, parte que para mim foi muito intuitivo de
captar. Os programas elaborados agora nesta fase foram mais interessantes e elaborados,
reunindo por vezes todas as funes ensinadas at ento. No fundo este mdulo foi muito
produtivo para todos e vejo muita curiosidade da parte de todos os colegas de seguir para o
mdulo seguinte. Quanto a mim espero de utilizar mais destas funes porque mostram-se
bastante prticas para realizar programao.

Anda mungkin juga menyukai