Buscar

ATIVIDADE PRÁTICA - Anderson

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER 
ESCOLA SUPERIOR POLITÉCNICA 
BACHARELADO EM ENGENHARIA DA PRODUÇÃO 
DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS 
 
 
 
 
 
 
 
ATIVIDADE PRÁTICA 
 
 
 
 
 
 
 
 
ANDERSON FELIPE VIANA DE AZEVEDO – RU: 2672270 
VINICIUS BORIN 
 
 
 
 
 
 
 
 
 
 
LAJEADO – RIO GRANDE DO SUL 
2020 
 
 
 
1 
 
Exercício 1: 
 
ENUNCIADO: Faça um algoritmo em linguagem C para calcular quanto cada cliente gastou 
em pedidos realizados em uma lancheria. A lancheria vende os seguintes produtos: 
 
 
Ao iniciar o programa, deve-se aparecer na tela um menu com todos os itens vendidos e 
seus respectivos preços. O usuário deve escolher digitando de 1-7 qual item quer comprar. 
Observe que o usuário pode comprar o mesmo item diversas vezes e também pode comprar 
vários itens diferentes (exemplo: 2 águas e um cachorro-quente, no mesmo pedido). 
Para encerrar o processo de compra, o usuário deve digitar um valor diferente de 1- 7. Ao 
encerrar a compra, deve-se listar todos os itens comprados, seus preços individuais e o total 
a se pagar. 
Imprima na tela um teste do seu programa utilizando os três primeiros e os últimos dígitos 
do seu RU da UNINTER como os valores de entrada para os pedidos. Os três primeiros dí-
gitos serão os itens comprados, e os três últimos a quantidade de cada item comprado. Por 
exemplo, se seu RU for 1234567, a compra resultante será: 
 
 
Solução do aluno: 
#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 
 
 
//declaração de variaveis 
int opc = 0; 
int qtd=0; 
int cachorro_quente,xis_salada,xis_bacon,misto,salada,agua,refrigerante=0; 
float cq,xs,xb,m,s,a,r=0; 
float vt=0; 
 
 
 
 
 
//inicio programação 
int main() 
{ 
 //menu demonstrativo para usuario saber os lanches que pode escolher 
 printf("Cardapio:\n\n"); 
 printf("Numero - Lanche - Codigo - Valor\n"); 
 printf("1 - Cachorro quente - 100 - R$5,00\n"); 
 printf("2 - Xis salada - 101 - R$8,79\n"); 
 printf("3 - Xis Bacon - 102 - R$9,99\n"); 
 printf("4 - Misto - 103 - R$6,89\n"); 
 printf("5 - Salada - 104 - R$4,80\n"); 
 printf("6 - Agua - 105 - R$3,49\n"); 
 printf("7 - Refrigerante - 106 - R$4,99\n\n"); 
 printf("para encerrar seu pedido digite 10 \n\n"); 
 
 //laço de repetição para que o usuario possa pedir quantos e quais lanches pre-
tende comer 
 while (opc != 10) 
 { 
 printf("Digite seu pedido: "); 
 scanf("%i",&opc); 
 
 //if para seleção de qual lanche foi escolhido e quantidade 
 if ( opc!=10) 
 { 
 printf("Digite a quantidade: "); 
 scanf("%i",&qtd); 
 } 
 if(opc==1) //cahorro quente escolhido 
 { 
 
 cachorro_quente=cachorro_quente+qtd; 
 } 
 if(opc==2) 
 { 
 xis_salada=xis_salada+qtd; //xis salada escolhido 
 } 
 if(opc==3) 
 { 
 xis_bacon=xis_bacon+qtd; //xis bacon escolhido 
 } 
 if(opc==4) 
 { 
 misto=misto+qtd; //misto escolhido 
 } 
 if(opc==5) 
 { 
 salada=salada+qtd; // salada escolhida 
 } 
 if(opc==6) 
 { 
 agua=agua+qtd; // agua escolhida 
 } 
 if(opc==7) 
 { 
 refrigerante=refrigerante+qtd; // refrigerante escolhido 
 } 
 } 
 
 
 
 
 
 
 
if (opc==10) 
 { 
 //tela de pedidos feitos 
 if(cachorro_quente!=0) 
 { 
 printf("\n1 - Cachorro quente - 100 - R$5,00\n"); 
 } 
 if(xis_salada!=0) 
 { 
 printf("\n2 - Xis salada - 101 - R$8,79\n"); 
 } 
 if(xis_bacon!=0) 
 { 
 printf("\n3 - Xis Bacon - 102 - R$9,99\n"); 
 } 
 if(misto!=0) 
 { 
 printf("\n4 - Misto - 103 - R$6,89\n"); 
 } 
 if(salada!=0) 
 { 
 printf("\n5 - Salada - 104 - R$4,80\n"); 
 } 
 if(agua!=0) 
 { 
 printf("\n6 - Agua - 105 - R$3,49\n"); 
 } 
 if(refrigerante!=0) 
 { 
 printf("\n7 - Refrigerante - 106 - R$4,99\n\n"); 
 } 
 //calculos 
 cq=cachorro_quente*5; 
 xs=xis_salada*8.79; 
 xb=xis_bacon*9.99; 
 m=misto*6.89; 
 s=salada*4.80; 
 a=agua*3.49; 
 r=refrigerante*4.99; 
 vt=cq+xs+xb+m+s+a+r; 
 
 //valor total pedido 
 printf("valor total do seu pedido e: %.2f \n",vt); 
 } 
 
 return 0; 
} 
 
 
 
 
 
 
Imagem do código funcionando no seu computador: 
Observação: meu código de aluno e 2672270, usei os numero sem o zero para dar uma quantidade 
para o pedido. 
 
 
 
 
 
 
 
 
Exercício 2: 
ENUNCIADO: 
Faça um algoritmo em linguagem C que receba como dado de entrada a quantidade má-
xima em milímetros que um reservatório de água suporta. E também como dado de entrada 
informe quantos milímetros de chuva tivemos em cada mês do ano, e quantos milímetros 
deste reservatório por mês foi gasto. Armazene as informações de cada mês em vetores de 
dados. 
Sabendo a capacidade do reservatório, quanto choveu em cada mês e quanto foi gasto. In-
forme o valor disponível de água, em milímetros, para cada mês do ano. Caso o reservatório 
fique vazio em algum momento, informe isso na tela. Caso o reservatório fique cheio em al-
gum momento, também informe isso na tela. 
Imprima na tela um teste do seu programa utilizando o seu RU da UNINTER como os valores de en-
trada, cada dígito do seu RU será um dos valores gastos, em milímetros, por mês. Por exemplo, se seu 
RU for 1234567, faça: 
 
 
 
 
 
 
 
Solução do aluno: 
#include<stdio.h> 
#include<conio.h> 
#include <stdlib.h> 
#include<locale.h> 
 
void Reservatorio(); // Prototipo 
void chuva(); // Prototipo 
void agua1(); // Prototipo 
void saldo(); // Prototipo 
 
int capacidade_reservatorio=0; 
int chuvas[11]; 
int gasto_agua [11]; 
int m1,m2,m3=1; 
int opc=5; 
int vm [11]; 
 
// inicio programa 
int main(void) 
{ 
setlocale(LC_ALL, "Portuguese"); 
 // Prototipo loop menu principal 
while(opc!=0) 
 { 
 system("cls"); 
 printf("Programa Medição de Chuvas e Capacidade de armazenamento de agua \n"); 
 printf("1- Gravar armazenamnto maximo de agua no reservatorio de agua \n"); 
 printf("2-Gravar media de chuvas em mm nos meses do ano \n"); 
 printf("3-Gravar media de gastos de agua em mm nos meses do ano \n"); 
 printf("4-informação de qual seu saldo de agua em cada mes \n\n"); 
 printf("0-Sair do Programa \n\n"); 
 printf("Sua Opcao ==> "); 
 scanf("%i", &opc); 
 switch (opc) // Prototipo menu de seleção de função 
 { 
 case 1: 
 Reservatorio(); 
 system("pause"); 
 break; 
 case 2: 
 chuva(); 
 system("pause"); 
 break; 
 case 3: 
 agua1(); 
 system("pause"); 
 break; 
 case 4: 
 saldo(); 
 system("pause"); 
 break; 
 } 
 
 } 
 return 0; 
} 
 
 
 
 
 
 
 
 
 
void Reservatorio() // função tamanho reservatório 
{ 
if (opc==1) 
{ 
printf("Digite o valor em milimetros da capacidade maxima do reservatorio de agua:" ); 
scanf("%i",&capacidade_reservatorio); 
} 
} 
 
void chuva() // função quantidade de chuva mês 
{ 
for( m1 = 1 ; m1 <= 12; m1++) 
{ 
printf("digite a media de chuva no mes %i:",m1); 
scanf("%i",&chuvas[m1]); 
} 
} 
 
void agua1() // função gastos de agua mês 
{ 
for( m2 = 0 ; m2 <= 11; m2++) 
{ 
printf("digite a media de gasto de agua no mes %i:",m2+1); 
scanf("%i",&gasto_agua[m2]); 
} 
} 
 
void saldo()// função saldo de agua no reservatório 
{ 
for( m3 = 1 ; m3 <= 12; m3++) 
{ 
vm[m3]=chuvas[m3]-gasto_agua [m3-1]; 
if(vm[m3]<=0) 
{ 
vm[m3]=0; 
} 
if(vm[m3]>=capacidade_reservatorio) 
{ 
vm[m3]=capacidade_reservatorio; 
} 
printf("o mes %d o reservatorio esta com %d mm\n",m3,vm[m3]); 
if (vm[m3]>=capacidade_reservatorio) 
{ 
printf("\to reservatorio esta cheio\n"); 
} 
if (vm[m3]<=0) 
{ 
printf("\to reservatorio esta vazio\n"); 
} 
fflush(stdin); 
} 
} 
 
 
 
 
 
 
Imagem do código funcionando no seu computador: 
Observação: salvei na opção 1 a entrada de 10 litros na capacidade do reservatório, como quanti-
dade de chuva nos meses salvo mês 11 e 12 foi salvo como parâmetro 10 mm de chuva, no mês 11 
salvo como parâmetro 2 mm de chuva e mês 12 salvo como parâmetro 0 mm de chuva. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Exercício 3: 
Faça um algoritmo em linguagem C que receba como dado de entrada uma matriz de carac-
teres. Cada posição da matriz deve armazenar um caractere. 
A dimensão da matriz deverá ser MxN, onde M e N são dados de entrada escolhidos pelo 
usuário. Declare a matriz como sendo de dimensão máxima 10x10, e valide os valores de M 
e N, que devem estar entre 1 e 10, incluindo 1 e 10. Para a validação, o usuário deve ficar 
preso no programa enquanto não digitar um número válido para M e para N. 
Após escolhida a dimensão da matriz e povoado ela com caracteres. Faça: 
• Conte o número de ocorrências de cada caractere que aparece na matriz. Após a conta-
gem, liste cada caractere digitado e o número de ocorrências; 
• Crie uma função que receba como parâmetro o primeiro caractere cadastrado na matriz. A 
função deve retornar um dado numérico. Se o caractere for maiúsculo, retorne na função o 
resultado deste caractere dividido por 10. Caso contrário, retorne o resultado do caractere 
multiplicado por 2; 
 
Imprima na tela um teste do seu programa utilizando como primeiro caractere a primeira le-
tra do seu nome. 
 
Solução do aluno: 
#include <stdio.h> 
#include <stdlib.h> 
#include <ctype.h> 
 
//declaração de variaveis 
char caracteres[10][10] = {0}; 
void criaMatriz(int, int); 
void leMatriz(int, int); 
void contaOcorrencia(int, int); 
int primeiroCaracter(char); 
//inicio do programa 
 
int main () 
{ 
int l, c; 
 printf("\n--------------------------\n"); 
 //laço principal do programa 
 do 
 { 
 printf ("\n Digite o numero de linhas maior que 0 e menor ou igual a 10:\t"); 
 scanf ("%d", &l); 
 printf (" Digite o numero de colunas maior que 0 e menor ou igual a 10:\t"); 
 scanf ("%d", &c); 
 fflush(stdin); 
 } 
 while(11 > l < 1 || 11 > c < 1); 
 
 printf("\n--------------------------\n"); 
 
 printf("\n Sua matriz possui %i linhas \n", l); 
 printf(" Sua matriz possui %i colunas \n", c); 
 
 criaMatriz(l, c); 
 leMatriz(l, c); 
 contaOcorrencia(l, c); 
 printf("%i \n", primeiroCaracter(caracteres[0][0])); 
 
 system ("pause"); 
} 
//função para determinar tamanho da matriz e caracteres 
 
 
 
 
void criaMatriz(int l, int c) 
{ 
 printf("\n--------------------------\n"); 
 printf("\n Digite os caracteres: \n"); 
 for(int x=0; x<l; x++) 
 { 
 for(int y=0; y<c; y++) 
 { 
 scanf (" %c", &caracteres[x][y]); 
 fflush(stdin); 
 } 
 } 
} 
//função para ler matriz 
void leMatriz (int l, int c) 
{ 
 int aux, cont; 
 printf("\n--------------------------\n"); 
 printf("\n Sua matriz: \n"); 
 for(int x=0; x<l; x++) 
 { 
 for(int y=0; y<c; y++) 
 { 
 printf(" caractere[%i][%i]: %c \n", x, y, caracteres[ x ][ y ]); 
 } 
 } 
 } 
//função para contar ocorrencia de caracteres na matriz 
void contaOcorrencia (int l, int c) 
{ 
 printf("\n--------------------------\n"); 
 int i, j, k, achei, ct = -1; 
 int vet[2][12] = { {0} }; 
 for ( i = 0; i < l; i++ ) 
 for ( j = 0; j < c; j++ ) 
 { 
 if ( j == l ) printf ("\n"); 
 achei = false; 
 for (k = 0; k <= ct; k++) 
 { 
 if (vet[0][k] == caracteres[i][j]) 
 { 
 vet[1][k]++; 
 achei = true; 
 } 
 } 
 if (!(achei)) 
 { 
 vet[0][++ct] = caracteres[i][j]; 
 vet[1][ct]++; 
 } 
 } 
 for ( i = 0; i <= ct; i++ ) 
 { 
 printf ("\nCaractere: %c -- ocorrencia(s): %d\n", vet[0][i],vet[1][i]); 
 } 
 } 
//função para primeiro caractere 
 int primeiroCaracter(char primeiro) 
 { 
 int convertido = (int)primeiro; 
 
 
 
 
 
 printf("\n--------------------------\n"); 
 printf("\n Caracter: %c", primeiro); 
 printf("\n Codigo: %i", primeiro); 
 printf("\n Resultado da operacao: "); 
 if(isupper(primeiro)) 
 { 
 return (convertido/10); 
 } 
 else 
 { 
 return (convertido*2); 
 } 
 } 
 
Imagem do código funcionando no seu computador:

Continue navegando