• Nenhum resultado encontrado

Programação em C - Ciclos e decisões [Escrever o subtítulo do documento]

N/A
N/A
Protected

Academic year: 2021

Share "Programação em C - Ciclos e decisões [Escrever o subtítulo do documento]"

Copied!
38
0
0

Texto

(1)

Programação em C -

Ciclos e decisões

[Escrever o subtítulo do documento]

Programas desenvolvidos durante as sessões do módulo em questão.

Tomé [Escrever o nome da empresa] 0783

(2)

2

 Exercício 19

O programa pede um número ao utilizador e de seguida identifica esse número como positivo ou negativo. // DECISOES E CICLOS #include<stdio.h> main() { float num;

system("color 9F");// para inserir côr 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 decisão {

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(); }

(3)

3

 Exercício 20

Este programa realiza uma média a partir dos dados introduzidos pelo utilizador. // DECISOES, E CICLOS

#include<stdio.h> main()

{

float nota, nota2, media, notafinal;

system("color 9F");// para inserir côr 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 decisão

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(); }

 Exercício 21

O Este programa calcula a nota final a partir da média dos 2 testes, mostrando também a avaliação correspondente a partir do uso dos ciclos else e if.

// DECISOES, E CICLOS #include<stdio.h> main()

(4)

4

{

float nota, nota2, media, notafinal;

system("color 9F");// para inserir côr 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 decisão É SEMPRE UM NÚMERO A MENOS QUE AS POSSÍVEIS DECISÕES EXEMPLO:

//2 HIPÓTESES 1 IF, nunca colocar espaço 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); }

(5)

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(); }  Exercício 22

O programa realiza operações aritméticas dando a possibilidade ao operador de escolher qual o tipo de operação 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: ");

(6)

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);

(7)

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(); }

(8)

8

 Exercício 23

O programa semelhante ao anterior tendo somente mais uma operação aritmética e na programação houve o uso dos ciclos switch e case.

#include<stdio.h> main() { float a,b; int opcao;

system("color F9");// para inserir côr 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");

(9)

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;

(10)

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);

(11)

11

printf("\nO valor e: %.2f\n%\n\n",a * (b/100)); break;

}

{

default: printf("\nERRO!!!!!!!! OPCAO INVALIDA"); break; } } getch(); }  Exercício 24

O programa identifica se o número é par ímpar ou nulo, utilizando ciclos if e else. #include<stdio.h>

main() { int x;

system("color F5");// para inserir côr 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."); }

(12)

12

else

if (x % 2 ==0) {

printf("\n\nO NUMERO E PAR."); }

else {

printf("\n\nO NUMERO E IMPAR."); }

getch(); }

 Exercício 25

Calculadora com a opção de identificar números 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 côr system("color ??"); printf("******************************************************** ************************\n");

printf(" JOAO TOME \n\n");

printf(" PROGAMA DE CALCULOS \n\n");

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

(13)

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;

(14)

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);

(15)

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."); }

(16)

16

default: printf("\n\n\nERRO!!!!!!!! OPCAO INVALIDA"); break; } } getch(); }  Exercício 26

Programa com as mesmas funções que o anterior apenas diferenciado por ter menos linhas de código e a melhoria do algoritmo para evitar erros que possam acontecer por a introdução de opções inválidas.

//Exercício 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");

(17)

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: {

(18)

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: {

(19)

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) {

(20)

20

printf("\n\nO numero e Par!"); }

else

printf("\n\nO numero e Impar!"); }

break; }

default: {

printf("\n\nERRO!!! Opcao Invalida!"); break; } } getch(); }  Exercício 27

Este programa é a introdução 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;

(21)

21

n = 20; while (n>=0) { printf("%i\n",n); n--;//numero = numero - 1 } getch(); }  Exercício 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();

(22)

22

}

 Exercício 29

Este programa utiliza o ciclo while e mostra-nos a contagem crescente de 0 a 20 e também 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(); }

(23)

23

 Exercício 30

Este programa cria 3 colunas de números a primeira com os números de 0 a 20, a segunda coluna com os números de 20 a 0, por fim a terceira coluna é obtida por o resultado da multiplicação dos números 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(); }

(24)

24

 Exercício 31

Idêntico ao programa anterior só que desta vez o utilizador insere os números. #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 variável 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++;

(25)

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(); }  Exercício 32

Este programa mostra o número de divisões possíveis entre dois números inseridos pelo utilizador em que o resultado seja inteiro. Aqui é também 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");

(26)

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 variável 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 "); }

(27)

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 }

 Exercício 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;

(28)

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(); }

 Exercício 34

Programa com a mesma finalidade que o exercício 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");

(29)

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(); }

 Exercício 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");

(30)

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; }

(31)

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'); }

 Exercício 36

Neste programa a partir do ciclo for gerou-se os números 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) {

(32)

32

}

getch(); }

 Exercício 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 vírgula { printf("\t\t\t%i\t\t\t%d \n",x , y); } getch(); }  Exercício 38

O utilizador escolhe dois números inteiros, depois são criadas duas colunas uma crescente outra decrescente, o que delimita o princípio e fim dos valores nas colunas são esses dois números que o utilizador introduziu.

#include<stdio.h> main()

(33)

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 vírgula

{

printf("\n\t\t\t %i\t\t\t%d \n",tmpn1 , tmpn2); }

//as variáveis tmpn1 e tmpn2 são criadas para que o valor se mantenha o mesmo, são variáveis temporárias

for (tmpn1=n1, tmpn2=n2; tmpn1>=n2, tmpn2<=n1; n1--, n2++)//só podem existir 2 ponto e vírgula

(34)

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();

}

 Exercício 39

O programa pede ao utilizador para inserir o nome e a idade, então a partir de um ciclo for o nome é repetido consoante os anos da idade introduzida, também mostra o número de caracteres que o nome contém. 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{

(35)

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();

}

 Exercício 40

Neste programa o nome e o apelido são introduzidos e de seguida concatenados (função strcat), reescritos em maiúsculas e em minúsculas (funções strupr e strlwr).

main() { system ("color 1"); system ("color f"); printf("******************************************************** ************************\n");

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

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

(36)

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(); }

 Exercício 41

Este programa requer uma password previamente definida que é comparada a partir da função 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

(37)

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);

(38)

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(); } Reflexão: No decorrer da aprendizagem de programação em C, as sessões seguiram para o módulo ciclos e decisões e o nível de dificuldade subiu, neste encontrei algumas dificuldades a criar programas com os ciclos for e while, com o ciclo do while nem tanto porque é fácil de compreender onde colocá-lo quando se cria o algoritmo. A meu ver o comportamento dos ciclos e

decisões é bastante lógico mas ao mesmo tempo torna-se mais difícil detectar erros. Também durante as sessões falamos de funções 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 funções ensinadas até então. No fundo este módulo foi muito produtivo para todos e vejo muita curiosidade da parte de todos os colegas de seguir para o módulo seguinte. Quanto a mim espero de utilizar mais destas funções porque mostram-se bastante práticas para realizar programação.

Referências

Documentos relacionados

autoincriminação”, designadamente através da indicação de exemplos paradigmáticos. Sem prejuízo da relevância da matéria – traduzida, desde logo, no número e

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Corporate Control and Policies Page 12 UNIVERSIDAD DE PIURA UNIVERSIDAD DEL PACÍFICO UNIVERSIDAD ESAN UNIVERSIDAD NACIONAL AGRARIA LA MOLINA UNIVERSIDAD NACIONAL

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

Como todos os outros seres humanos, o operador também é construtor da realidade e carrega consigo “experiências vividas, ideologias e valores que amoldam a sua