Baixe o app para aproveitar ainda mais
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:
Compartilhar