Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Programação Cursos Técnicos Superiores Profissionais: 1º ano - 1º semestre 2015/2016 Exercícios 1) Escreva um programa que leia três números A, B e C e imprima o valor do maior. Assumir valores distintos e reais. #include <stdlib.h> #include <stdio.h> main( ) {// declarar variáveis float A, B, C, max; //1. [Ler dados] printf( "Digite tres numeros A, B, C\n" ); scanf("%f%f%f",&A,&B,&C); // 2. [Determinar o maior valor, comparando pares] if (A > B) { if (A > C) { max = A ; //( A > B , A > C ) printf( "\nO maior valor eh o A\n" ); } else { max = C ; // (A > B e C >A ) printf( "\nO maior valor eh o C\n" ); } } else { if (B > C) // ( B > A, B > C ) { max = B; printf( "\nO maior valor eh o B\n" ); } else { max = C; // ( C > B > A ) printf( "\nO maior valor eh o C\n" ); } } // 3. [Imprimir o maior valor] printf ("\nMaior valor =%f\n\n", max); system("pause"); } //4. Fim do programa Pág. 1 2) Refaça o programa anterior para imprimir os 3 números na ordem crescente. #include <stdlib.h> #include <stdio.h> main ( ) { int a, b, c, maior, meio, menor ; // declaração de variáveis. // Leitura de dados printf(" Entre com tres numeros inteiros\n"); scanf("%d%d%d",&a,&b,&c); if ( a > b ) if ( a > c ) { maior = a; if ( b > c ) { meio = b; menor = c; } else { meio = c; menor = b; } } else { maior = c; meio = a; menor = b; } else if ( a > c ) { maior = b; meio = a; menor = c; } else { menor = a; if ( b > c ) { maior = b; meio = c; } else { maior = c; meio = b; } } printf("Em ordem crescente: %d %d %d\n\n", menor, meio, maior); system("pause"); } //fim programa Pág. 2 3) Escreva um programa que calcule quando um ano é Bissexto. (a) Divisível por 100 e 400. (b) Não divisível por 100 e divisível por 4. (c) Os demais anos não são Bissextos. # include <stdio.h> # include <stdlib.h> main ( ) { int ano, resto; printf("Forneca o ano:"); scanf("%d",&ano); if (ano%100 == 0) if (ano%400 == 0) printf("O Ano %d é bissexto \n\n", ano); else printf(" O Ano %d não é bissexto \n\n", ano); else if (ano%4 == 0) printf("O Ano %d é bissexto \n\n", ano ); else printf(" O Ano %d não é bissexto \n", ano); system("pause"); } 4) Refazer o programa do Ano Bissexto usando Condições Compostas. # include <stdio.h> # include <stdlib.h> main ( ) { int ano, resto; printf("Forneca o ano:"); scanf("%d",&ano); if ((ano%100 == 0) && (ano%400 == 0)) printf("O Ano %d é bissexto \n\n", ano); else { if ((ano%4 == 0) && (ano%100 != 0)) printf("O Ano %d é bissexto \n\n", ano ); else printf(" O Ano %d não é bissexto \n", ano); } system("pause"); } Pág. 3 5) Escreva um programa que some os primeiros N números inteiros, sendo N definido pelo utilizador # include <stdio.h> # include <stdlib.h> int main() { int n, i, soma; printf("Calculo da soma dos primeiros N numeros.\nIndique N:"); /* ler um número inteiro */ scanf("%d", & n); /* na variável soma, será acumulado o resultado */ soma = 0; /* a variável i vai iterar de 1 a N */ i = 1; while(i <= n) { /* a variável soma vai acumulando o resultado de 1 até i */ soma = soma + i; /* mostrar o resultado parcial */ printf("\n adicionar %d, parcial %d", i, soma); /* incrementar a variável i */ i = i + 1; } /* mostrar resultado final */ printf("\nTotal: %d\n", soma); } 6) Escreva um programa que leia as horas, minutos e segundos, e calcule o número de segundos que passaram desde o início do dia. # include <stdio.h> # include <stdlib.h> int main() { int horas, minutos, segundos; printf("Calculo do numero de segundos desde o inicio do dia.\nHora: "); scanf("%d", & horas); printf("Minuto: "); scanf("%d", & minutos); printf("Segundos: "); scanf("%d", & segundos); printf("Numero de segundos desde o inicio do dia: %d", segundos + 60 *(minutos + 60 *horas)); } Pág. 4 7) Escreva um programa que multiplique os primeiros N números inteiros positivos (factorial de N), sendo N definido pelo utilizador # include <stdio.h> # include <stdlib.h> int main() { int n, i, produto; printf("Calculo do produto dos primeiros N numeros.\nIndique N:"); scanf("%d", & n); produto = 1; i = 1; while(i <= n) { /* utilização do operador *= em vez da atribuição e multiplicação */ produto *= i; /* resultado parcial */ printf(" Factorial(%d)=%d\n", i, produto); /* utilização do operador de incremento ++, em vez da atribuição e soma com a unidade. */ i++; } printf("Resultado: %d", produto); } Pág. 5 8) Escreva um programa, utilizando condições compostas, que leia três números e imprima o maior e menor deles. Assume-se que os valores são diferentes. #include <stdlib.h> #include <stdio.h> main() { float A,B, C,Max, Min; //1. [Ler dados] printf("Digite tres numeros diferentes\n" ); scanf("%f%f%f",&A,&B,&C); //2. [Determinar o maior e menor valor] if(A > B && A > C && B > C) { Max = A; Min = C; } if(A > B && A > C && B < C) { Max = A; Min = B; } if(B > A && B > C && A > C) { Max = B; Min =C; } if(B > A && B > C && A < C) { Max= B; Min = A; } if(C > A && C > B && B >A) { Max =C; Min= A; } if (C > A && C > B && B < A) { Max = C; Min = B; } //3. [Imprimir o maior e o menor valor] printf("Maior valor =%4.1f\n\n",Max); printf("Menor valor =%4.1f\n\n", Min); system( "PAUSE"); } Pág. 6 9) Crie uma calculadora usando a instrução SWITCH, que pergunte qual das operações básicas quer fazer (+, -, * e /), em seguida peça os dois números e mostre o resultado da operação matemática entre eles. #include <stdio.h> int main() { char operacao; float num1, num2; printf("Escolha sua operação [+ - * / ]: "); scanf("%c",&operacao); printf("Introduza o primeiro número: "); scanf("%f",&num1); printf("Introduza o segundo número: "); scanf("%f",&num2); switch( operacao ) { case '+': printf("%.2f + %.2f = %.2f", num1, num2, num1 + num2); break; case '-': printf("%.2f - %.2f = %.2f", num1, num2, num1 - num2); break; case '*': printf("%.2f * %.2f = %.2f", num1, num2, num1 * num2); break; case '/': printf("%.2f / %.2f = %.2f", num1, num2, num1 / num2); break; default: printf("Digitou uma operacao invalida."); } } Pág. 7 10) Escreva um programa que faça o calculo final de uma dívida tendo em conta os meses de atraso e os juros. Utilize o switch e o case. Suponha que se atrasou a pagar uma conta. A cada mês que deixa de pagar, será cobrado 1% de juros no valor inicial, ou seja, se o atraso for um mês, irá pagar 1%. Se atrasar 3 meses, irá pagar 3% etc. Vamos supor que o atraso é no máximo, 5 meses. O programa pede, como entrada o valor da dívida inicial e um valor de 0 até 5, que são os meses de atraso. #include <stdio.h> int main(void) { float valor_i, valor_f; int juros=0; int meses; printf("Qual o valor inicial da dda: "); scanf("%f", &valor_i); printf("Meses de atraso [1-5]?: "); scanf("%d",&meses); switch( meses ) { case 5: juros=5; break; case 4: juros=4; break; case 3: juros=3; break; case 2: juros=2; break; case 1: juros=1; break; default: printf("Nao digitou um valor valido de meses\n"); } printf("Juros: %d%\n",juros); valor_f=( (1 + (juros/100.0))*valor_i); printf("Valor final da divida: %.2f\n", valor_f); } Pág. 8
Compartilhar