Você está na página 1de 21

FACULDADE PITAGORAS VOTORANTIM

ENGENHARIA DE CONTROLE E AUTOMAO

Algoritmos e Lgica de Programao


Prof. Hudson Victria Diniz

2 /2014
LAURO DE JESUS SILVA JUNIOR RA: 784984
TIAGO PEREIRA DE OLIVEIRA

RA:

EDILENE APARECIDA DE AQUINO RA: 751402


Pgina |1

Algoritmos e Lgica de Programao


Trabalho de Algoritmos e Lgica de Programao
Hudson Victria Diniz - Curso de Engenharia de controle e automao. ECA.

VOTORANTIM
2014

Pgina |2

ndice
Lista 05 Exerccios
01........................................................................................ 04
Lista 05 Exerccios
02........................................................................................ 05
Lista 05 Exerccios
03........................................................................................ 07
Lista 06 Exerccios
01........................................................................................
Lista 06 Exerccios
02........................................................................................
Lista 06 Exerccios
03........................................................................................
Lista 06 Exerccios
04........................................................................................
Lista 06 Exerccios
05........................................................................................
Lista 06 Exerccios
06........................................................................................
Lista 07 Exerccios
01........................................................................................
Lista 07 Exerccios
02........................................................................................
Lista 07 Exerccios
03........................................................................................
Lista 07 Exerccios
04........................................................................................
Lista 07 Exerccios
05........................................................................................
Lista 07 Exerccios
06........................................................................................
Lista 07 Exerccios
07........................................................................................
Lista 07 Exerccios
08........................................................................................
Lista 07 Exerccios
09........................................................................................
Lista 07 Exerccios
10........................................................................................

09
11
12
12
13
13

14
14
15
15
16
16
18
19
19
20

Concluso....................................................................................
....................... 21

Pgina |3

Lista de Exerccios 05
Objetivo: Trabalhar com o comando de seleo mltipla switch e com o operador
condicional?:
Faa os exerccios de 1 a 3 usando o comando switch-case:
Exerccio 01
Considere uma mquina que, mediante a insero de uma nota de 5 reais joga
eletronicamente um dado, fornecendo um prmio ao jogador conforme o resultado:
1. Ganha um bichinho de pelcia.
2. Ganha uma bola de futebol.
3. Ganha um quebra-cabea de 1000 peas.
4. Ganha um ovo de Pscoa de 1 Kg.
5. Ganha uma agenda.
6. No ganha nada.
- Escreva um programa que solicita ao usurio que fornea o valor sorteado pela
mquina e imprime uma mensagem informando o prmio ganho.
#include <stdio.h>
#include <conio.h>
int main(){
int N;
printf("\n Insira uma nota de 5 reais");
printf("\n Digite o valor sorteado pela maquina");
scanf("%i", & N);
switch(N){
case 1:
printf("\n Voce ganhou um bichinho de pelucia");
break;
case 2:
printf("\n Voce ganhou uma bola de futebol");
break;
case 3:
printf("\n Voce ganhou um quebra-cabeca de 1000 pecas");
break;
case 4:
Pgina |4

printf("\n Voce ganhou um ovo da pascoa de 1kg");


break;
case 5:
printf("\n Voc ganhou uma agenda");
break;
case 6:
printf("\n Voce nao ganhou nada");
}
printf("\n Fim do programa.");
getche();
}

Exerccio 02
Em So Paulo, durante um determinado intervalo de horrios, veculos cuja placa
terminada em:
a. 1 ou 2: No podem trafegar na segunda-feira;
b. 3 ou 4: No podem trafegar na tera-feira;
c. 5 ou 6: No podem trafegar na quarta-feira;
d. 7 ou 8: No podem trafegar na quinta-feira;
e. 9 ou 0: No podem trafegar na sexta-feira;
- Escreva um programa que solicita ao usurio que fornea o ltimo dgito da placa
do seu carro e imprime qual o dia da semana em que o mesmo no pode circular.
Considere a possibilidade de o valor fornecido ser invlido (por exemplo, um nmero
negativo ou um nmero maior do que 9) e imprima, neste caso, uma mensagem:
Valor invlido.
#include <stdio.h>
#include <conio.h>
int main(){
int D;
printf("\n Fornea o ultimo digito da sua placa");
scanf("%i",&D);
switch(D){
case 1:
printf("\n Nao pode trafegar na segunda-feira");
Pgina |5

break;
case 2:
printf("\n Nao pode trafegar na segunda-feira");
break;
case 3:
printf("\n Nao poede trafegar na terca-feira");
break;
case 4:
printf("\n Nao pode trafegar na terca-feira");
break;
case 5:
printf("\n Nao pode trafegar na quarta-feira");
break;
case 6:
printf("\n Nao pode trafegar na quarta-feira");
break;
case 7:
printf("\n Nao pode trafegar na quinta-feira");
break;
case 8:
printf("\n Nao pode trafegar na quinta-feira");
break;
case 9:
printf("\n Nao pode trafegar na sexta-feira");
break;
case 0:
printf("\n Nao pode trafegar na sexta-feira");
break;
default:
printf("\n Valor invalido");
}
Pgina |6

printf("\n Fim do programa.");


getche();
}

Exerccio 03
Considere as estaes do ano prevalentes para cada ms:
Janeiro (1): Vero
Fevereiro (2): Vero
Maro (3): Vero
Abril (4): Outono
Maio (5): Outono
Junho (6): Outono
Julho (7): Inverno
Agosto (8): Inverno
Setembro (9): Inverno
Outubro (10): Primavera
Novembro (11): Primavera
Dezembro (12): Primavera
Escreva um programa que solicita ao usurio que fornea o nmero do ms de seu
aniversrio e imprima:
Voc nasceu na Primavera ou
Voc nasceu no Vero ou
Voc nasceu no Outono ou
Voc nasceu no Inverno conforme for o caso.
#include <stdio.h>
#include <conio.h>
int main(){
int N;
printf("\n Forneca o numero do mes do seu aniversario");
scanf("%i",&N);
switch(N){
case 1:
printf("\n Voce nasceu no verao");
break;
case 2:
printf("\n Voce nasceu no verao");
break;
case 3:
printf("\n Voce nasceu no verao");
Pgina |7

break;
case 4:
printf("\n Voce nasceu no outono");
break;
case 5:
printf("\n Voce nasceu no outono");
break;
case 6:
printf("\n Voce nasceu no outono");
break;
case 7:
printf("\n Voce nasceu no inverno");
break;
case 8:
printf("\n Voce nasceu no inverno");
break;
case 9:
printf("\n Voce nasceu no inverno");
break;
case 10:
printf("\n Voce nasceu na primavera");
break;
case 11:
printf("\n Voce nasceu na primavera");
break;
case 12:
printf("\n Voce nasceu na primavera");
}
printf("\n Fim do programa.");
getche();
}
Pgina |8

Lista de Exerccios 6
Objetivo: Trabalhar com o comando de iterao for.
Exerccio 01
Qual a sada (o que voc ver impresso na tela ao execut-lo) do programa
abaixo. Responda antes de implement-lo e, em seguida o implemente.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for (i = 5; i < 4; i++){
printf (i vale %d\n, i);
}
printf(\nFim do programa.);
system{PAUSE);
return 0;
}

No h sada, contem erros.


O primeiro erro se encontra no comando for. O certo for(i=5; i<6; i++)
O segundo erro se encontra no comando system. O certo system("pause")
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for(i=5; i<6; i++){
printf(" i vale %d\n", i);
}
printf("\nFim do programa.");
system("pause");
return 0;
}

Aps implementar o programa a sada ser: i vale 5.

Pgina |9

A) Modifique o programa, a fim de que sejam impressos todos os nmeros inteiros


no intervalo entre 4 e 4.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for(i=-4; i<5; i++){
printf("i vale %d\n", i);
}
printf("\n Fim do programa.");
system("pause");
return (0);
}

B) Modifique o programa para que sejam impressos todos os nmeros pares no


intervalo entre 4 e 4.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i, R;
for(i=-4; i<5; i++){
if(i!=0){
R=i%2;
if(R==0){
printf("i vale %d\n", i);
}
}
}
printf("\n Fim do programa.");
system("pause");
return (0);
}
P g i n a | 10

Exerccio 02
Qual a sada (o que voc ver impresso na tela ao execut-lo) do programa
abaixo. Responda antes de implement-lo e, em seguida o implemente.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for (i=2; i < 4; i-=2){
printf (i vale %d\n, i);
}
printf(\nFim do programa.);
system{PAUSE);
return 0;
}
O programa no ser executado pois contm erros.
O primeiro erro est no comando for, onde: for(i=2; i<4; i-=2), O certo seria: for(i=2; i<4; i=-2).
O segundo erro est no comando system. Ao invs de: system{"pause"), deve ser
system("pause").

A) Explique o que acontece quando este programa executado e o porqu disto


acontecer.
Depois de corrigir os erros desse programa a sada dele ser -2, como no lao (i=2; i<4; i=-2), o
programa no ter fim, ele no ir acabar e sempre ficar aparecendo -2, devido a condio que est
no lao.

B) Modifique o programa para que o ltimo printf seja executado.


Para que o programa execute o ltimo printf basta mudar a condio do lao. Onde for(i=2; i<4; i=-2),
passaria a ser for(i=2; i>4; i=-2).
#include <stdio.h>
#include <stdlib.h>

int main(){
int i;
for(i=2; i>4; i=-2){
printf("i vale %d\n", i);
}
printf("\n Fim do programa.");
system("pause");
return 0;
}
P g i n a | 11

Exerccio 03
Escreva um programa que imprima todos os inteiros no intervalo [10, 20], em ordem
crescente.
Resposta:
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for(i=10; i<21; i++){
printf("%i\n", i);
}
printf("\n Estes sao os numeros do intervalo de 10 a 20 em ordem crescente.");
printf("\n Fim do programa.");
system("pause");
return 0;
}

Exerccio 04
Escreva um programa que imprima todos os inteiros no intervalo [10, 20], em ordem
decrescente.
Resposta:
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
for(i=20; i>9; i--){
printf("%i\n", i);
}
printf("\n Estes sao os numeros do intervalo de 10 a 20 em ordem decrescente");
printf("\n Fim do programa");
system("pause");
return 0;
}

P g i n a | 12

Exerccio 05
Escreva um programa que imprima os nmeros pares contidos no intervalo [0, 20],
em ordem crescente.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i, R, NP;
for(i=0; i<21; i++){
if(i!=0){
if(i>1){
R=i%2;
if(R==0){
NP=i;
printf("%i\n", NP);
}
}
}
}
printf("\n Estes sao os numeros pares contidos no intervalo de 0 a 20 em ordem crescente");
printf("\n Fim do programa");
system("pause");
return 0;
}

Exerccio 06
Escreva um programa que imprima os nmeros mpares contidos no intervalo [10,
30], em ordem decrescente.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i, R, NI;
for(i=30; i>9; i--){
if(i!=0){
R=i%2;
if(R!=0){
NI=i;
printf("%i\n", NI);
}
}
}
printf("\n Estes sao os numeros impares contidos no intervalo de 10 a 30 em ordem decrescente");
printf("\n Fim do programa");
system("pause");
return 0;
}

P g i n a | 13

Lista de Exerccios 7
Exerccio 01
Fazer um programa tal que, dado um nmero inteiro positivo, calcule e imprima o
fatorial do mesmo.
Lembre-se que 0! = 1 e N! = N x (N-1) x (N-2) x....x 1
#include
#include
int main (void) {
int N, R;
printf ("\n\nDIGITE UM NUMERO INTEIRO: ");
scanf ("%i", &N);
R = N--;
for (N; N > 0; N--){
R = R * N;
}
R = (R== 0 ? 1 : R);
printf ("o valor eh: %i\n", R);
system ("pause");
return (0);
}

Exerccio 02
Dado um nmero inteiro positivo, imprimir a lista de seus divisores.
Desenvolva, para cada um dos exerccios a seguir uma soluo usando o comando
while e uma soluo usando o comando for.

#include <stdio.h>
#include <stdlib.h>
int main()
{
int numero, quadrado;
printf("\n\tCalculo dos quadrados de uma sequencia de numeros\n");
printf("\nEntre com uma sequencia de numeros inteiros nao-nulos, seguida por 0:\n");
scanf("%d", &numero);
while (numero != 0) {
quadrado = numero * numero;
printf("O quadrado do numero %d e' %d\n", numero, quadrado);
scanf("%d", &numero);
}
system("PAUSE");
return 0;
}
P g i n a | 14

Exerccio 03
Fazer um programa que calcule e escreva o valor de S: S = 1/1 + 3/2 + 5/3 + 7/4+...
+99/50
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
float S=0;
for (i=1; i<=50; i++)
S += (float) (2*i-1) / i;
printf("\nSoma = %f", S);

system("PAUSE");
return 0;
}

Exerccio 04
Fazer um programa que calcule e escreva a seguinte soma: S = 21/20 + 22/19 +
23/18 +...+ 220/1. Use a funo
pow (no se esquea do #include<math.h>).

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main(){
int cont,cont2;
float cont3;
cont2 = 20;
cont = 1;
cont3 = 0;
printf("A Soma dessa conta eh: ");
while(cont != 21){
cont3 = cont3 + (pow(2,cont)/cont2);
printf("+ %i^2/%i ", cont,cont2);
cont = cont+1;
P g i n a | 15

cont2 = cont2-1;
}
printf("= %.2f\n", cont3);
system("pause");
return(0);
}

Exerccio 05
Fazer um programa para calcular e escrever a seguinte soma:
S = (3738)/1 + (3637)/2 + (3536)/3 + ... + (12)/37
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
float valor=37.38;
float y=1;
float S=0;
for(i=1; i<=10;i+=1.01)
{
S += ((valor -i)/y) ; y++ ;
}
printf ("\nSoma = %f\n", S);
system("PAUSE");
return 0;
}

Exerccio 06
Fazer um programa que calcule e escreva o valor de S onde:
S = 1/1 2/4 + 3/9 4/16 + 5/25 6/36 ... 10/100

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, sinal=1;
float S=0;
for (i=1; i<=10; i++)
{
S + = sinal * ((float) i / (i*i));
sinal = - sinal;
}
P g i n a | 16

printf ("\nSoma = %f\n", S);

system("PAUSE");
return 0;
}

P g i n a | 17

Exerccio 07
Fazer um programa que calcule e escreva a soma dos 50 primeiros termos da
seguinte srie: 1000/1 997/2 + 994/3 991/4 + ...
#include <stdlib.h>
#include <stdio.h>
int main() {
float S, n, s, j;
n = 1000;
s = 1;
S = 0;
printf ("\nCalcule e escreva a soma dos 50 primeiros termos da seguinte srie: 1000/1 997/2 + 994/3
991/4 + ..." );
for (i=1; i < 51; i++) {
S += s * (n / j);
n -= 3;
s = -s;
}
printf ("\nA soma da seguinte srie eh: %.2f:", S);
system ("pause");
return (0);
}
#include <stdlib.h>
#include <stdio.h>
int main() {
float S, n, s, a;
n = 1000;
s = 1;
S = 0;
a = 1;
printf ("\nCalcule e escreva a soma dos 50 primeiros termos da seguinte srie: 1000/1 997/2 + 994/3
991/4 + ..." );
while (a < 51){
S += s * (n / a);
a = a + 1;
n -= 3;
s = -s;
}
printf ("\nA soma da seguinte srie eh: %.2f:", S);
system ("pause");
return (0);
}
P g i n a | 18

Exerccio 08
Dada uma coleo de inteiros no nulos, finalizada por zero, imprimir o quadrado de
cada um de seus elementos.
Exemplo: Se os dados de entrada so 1, 2, 3, 4, 11, -12, -4, 0 ento a sada dever
ser 1, 4, 9, 16, 121, 144, 16.
#include <stdlib.h>
#include <stdio.h>
int main () {
int v, Q;
printf ("\nDigite uma sequencia de numeros inteiros nao nulos finalizada por zero:");
scanf ("%i", & v);
while (v != 0) {
Q = (pow(v,2));
printf (" \nO quadrado de %d = %i:", v, Q);
scanf ("%i", & v);
}
system ("pause");
return 0;
}

Exerccio 09
Dada uma coleo de inteiros no nulos e no vazia, finalizada por zero, calcular o
produto dos seus elementos.
Exemplo: Se os dados de entrada so 1, 3, 5, 10, 9, 8, -113, 0 ento a sada dever
ser 1220400.
#include <stdlib.h>
#include <stdio.h>
int main () {
int val;
int p;
printf ("\nDigite uma sequencia terminada por zero:");
scanf ("%d", &val);
while (val != 0) {
p = p * val;
scanf ("%d", & val);
}
printf ("\nProduto da sequencia = %d:", p);
system ("pause");
return 0;
}

P g i n a | 19

Exerccio 10
Dada uma coleo de inteiros no nulos e no vazia, finalizada por zero, calcular a
soma dos seus elementos.
Exemplo: Se os dados de entrada so 1, 3, 5, 10, 9, 8, -113, 0 ento a sada dever
ser -79.
#include <stdlib.h>
#include <stdio.h>
int main () {
int vol;
int s;
s = 0;
printf ("\nDigite uma sequencia terminada por zero:");
scanf ("%d", &vol);
while (vol != 0) {
s = s + vol ;
scanf ("%d", & vol);
}
printf ("\nA soma da sequencia = %d:", s);
system ("pause");
return 0;
}

P g i n a | 20

CONCLUSO:
Os exerccios e o trabalho de pesquisa nos ensinaram novos comandos e nos
fizeram adquirir novos conhecimentos em programao de linguagem C .

P g i n a | 21

Você também pode gostar