Buscar

ATIVIDADE PRÁTICA - LÓGICA PROGRAMAÇÃO ALGORITMOS

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 15 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 15 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 15 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
Exercício 1:
Faça um algoritmo em linguagem C para calcular quanto cada cliente gastou em pedidos realizados em uma lancheria. 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 primeiros dígitos serão os itens comprados, e os três últimos a quantidade de cada item comprado.
#include <stdio.h>
	void main() {
	
	
	
	
	
	int n
	=
	1, i;//declaração
	de inteiros para utilizacao em lacos de repeticao
	char products[8][60] = { //declaracao de matriz para armazenar as strings
	produtos
	
	
	
	
	
	
	" Itens
	| Produtos
	| Codigo|
	Preco Unitario",
	"
	1
	| Cachorro-quente
	| 100
	|
	5,00
	",
	"
	2
	| X-salada
	| 101
	| 8,79 ",
	"
	3
	| X-bacon
	| 102
	|
	9,99
	",
	"
	4
	| Misto
	| 103
	|
	6,89
	",
	"
	5
	| Salada
	| 104
	|
	4,80
	",
	"
	6
	| Agua
	| 105
	|
	3,49
	" ,
	"
	7
	| Refrigerante
	| 106
	|
	4,99
	"
	};
	
	
	
	
	
	
	float
	precototal = 0;//declaração
	de float precototal para armazenar preço
total da compra
for (i = 0; i < 8; i++) //laço for para imprimir os produtos, com incremento de i para percorrer 7x a matriz tabela imprimindo cada indice do 0 ao 6
printf("%s\n", products[i]);
while (n > 0 && n < 8) { //comando while de repeticao para enquanto o numero escolhido pelo usuario estiver dentro do intervalo 1-7 ele va realizando as escolhas de produtos
printf("\n\nAtencao : caso informe um numero fora da lista de itens a compra se encerrara\n");
printf("Informe qual produto deseja seguindo a numeracao do cardapio: "); scanf_s("%d", &n);
switch (n) //comando de controle switch, dependendo da escolha ele retorna um case com base na variavel n
{
case 1:
int qtd01; //declaracao de qtd01 para armazenar a quantidade do produto a ser atribuida pelo usuario
printf("Produto: %d \nInforme a quantidade: ", n); scanf_s("%d", &qtd01);
precototal = precototal + (5 * qtd01);//somatoria do precototal a ele mesmo + o preco do produto escolhido multiplicado pela quantidade escolhida
break; //break para encerrar o processo no case 1 e nao ficar pulando para os outros cases
case 2:
int qtd02;
printf("Produto: %d \nInforme a quantidade: ", n); scanf_s("%d", &qtd02);
precototal = precototal + (8.79*qtd02);
break;
case 3:
int qtd03;
printf("Produto: %d \nInforme a quantidade: ", n); scanf_s("%d", &qtd03);
precototal = precototal + (9.99*qtd03);
break;
case 4:
int qtd04;
printf("Produto: %d \nInforme a quantidade: ", n); scanf_s("%d", &qtd04);
precototal = precototal + (6.89*qtd04);
break;
case 5:
int qtd05;
printf("Produto: %d \nInforme a quantidade: ", n); scanf_s("%d", &qtd05);
precototal = precototal + (4.8*qtd05);
break;
case 6:
int qtd06;
printf("Produto: %d \nInforme a quantidade: ", n); scanf_s("%d", &qtd06);
precototal = precototal + (3.49*qtd06);
break;
case 7:
int qtd07;
printf("Produto: %d \nInforme a quantidade: ", n); scanf_s("%d", &qtd07);
precototal = precototal + (4.99*qtd07);
break;
default:
printf("\n\t\tValor Total: %.2f Reais\n", precototal); //impressao para o usuario do precototal para pagar, preco acumulativo
printf("*********************************************************************** **\n");
//estruturas "se" if, para imprimir os produtos finais com base nas quantidades selecionadas pelo usuario, se a qtd for maior que zero imprima
if (qtd01 > 0) {
printf("\nQuantia: %d	Selecionado: %s ", qtd01,
products[1]); //imprimi o indice da matriz products de acordo com a quantidade declarada no case
}
if (qtd02 > 0) {
printf("\nQuantia: %d
Selecionado: %s ", qtd02,
products[2]);
}
if (qtd03 > 0) {
printf("\nQuantia: %d
Selecionado: %s ", qtd03,
products[3]);
}
if (qtd04 > 0) {
printf("\nQuantia: %d
Selecionado: %s ", qtd04,
products[4]);
}
if (qtd05 > 0) {
printf("\nQuantia: %d
Selecionado: %s ", qtd05,
products[5]);
}
if (qtd06 > 0) {
printf("\nQuantia: %d
Selecionado: %s ", qtd06,
products[6]);
}
if (qtd07 > 0) {
printf("\nQuantia: %d
Selecionado: %s ", qtd07,
products[7]);
}
printf("\n\n");
break;
}
}
}
Obs.: Usado os números 2, 7, 8 para escolher produtos e os números 8, 7 para quantidades, seguindo uso de números do RU = 2879870, pois se seguisse o proposto na questão programa se encerraria no segundo pedido, por conta do digito 8.
Exercício 2:
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. Informe 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 algum 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 entrada, cada dígito do seu RU será um dos valores gastos, em milímetros, por mês.
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "Portuguese");//comando para imprimir caracteres especiais int capacidade, repeticao = 0, capMes = 0;//declarado variaveis inteiras para
armazenarem respectivamente, capacidade do reservatorio, repeticao em while e for e capacidade do mes
int chuva[1000];//array para conter a chuva do mes int gasto[1000];//array para conter o gasto no mes
char mesesDoAno[12][50] = { "Jan", "Fev", "Mar", "Abr", "Mai", "Jun",
"Jul", "Ago", "Set", "Out", "Nov", "Dez" };//matriz com meses do ano nos
indices
printf("Digite o maximo em milimetros que o reservatorio suporta= ");
scanf_s("%d", &capacidade);//armazenado entrada da capacidade do reservatorio for (repeticao = 0; repeticao < 12; repeticao++) {//laço for para percorrer os
arrays de meses do ano e chuva por mes
printf("\n Mês = %s \nQuanto de chuva tivemos em milimetros? ", mesesDoAno[repeticao]);
scanf_s("%d", &chuva[repeticao]);//armazenado o tanto de chuva no mes
printf("Quanto foi gasto, em milimetros, do reservatorio? ");
scanf_s("%d", &gasto[repeticao]);//armazenado a quantidae consumida no
mes
capMes += chuva[repeticao] - gasto[repeticao];//atribuido de forma cumulativa a variavel capMes a formula de calculo da capacidade disponivel no mes, subtraindo do tanto de chuva que teve no mes o consumido no mesmo
if (capMes > 0 && capMes < capacidade) {//caso a capacidade do mes nao for nula e nao ultrapasse a capacidade do reservatorio
printf("Quantidade armazenada final no mes , em milimetros = %d \n", capMes);//impresso quantidade disponivel ao final do mes
}
else if (capMes <= 0) {//caso a capacidade seja nula ou negativa printf("Reservatório vazio\n");
}
else {//de ultimo caso se aplica o caso de que a quantia ao fim do mes passou da capacidade total do reservatorio
printf("Reservatório cheio\n");
}
};
printf("\n\tConsumo por mês\n\n");
for (repeticao = 0; repeticao < 12; repeticao++) {//laço for para percorrer os indices dos meses do ano e gasto
printf(" %s consumido: %d milimetros \n", mesesDoAno[repeticao],gasto[repeticao]);
};
}
Exercício 3:
Faça um algoritmo em linguagem C que receba como dado de entrada uma matriz de caracteres. 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 contagem, 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 letra do seu nome.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <locale.h>
float valor(char letra) {//função considerando primeiro valor char maiusculo ou minusculo inserido na matriz
float r = 0;
if (letra >= 65 && letra <= 90) {//pesquisado codigo numerico atribuido a letras de a á z, sendo 65 = A e 90 = Z, usado estrutura de controle if para executar considerando o intervalo entre A e Z
r = letra;
r = r / 10;//dividindo por 10 em caso de maiuscula
}
else {
r = letra * 2;//multiplicando por 2 em caso de minuscula
};
return r;
};
int main() {
setlocale(LC_ALL, "Portuguese"); //comando para imprimir caracteres especiais char matrizprincipal[10][10] = {};//Matriz declarada
char vetor1[100] = {};//vetor auxiliar para armazenar valor de indices da matriz principal
int vetor2[100] = {};//vetor para armazenar quantidade de repeticoes
char matrizsecundaria[10][10] = {};//Matriz secundaria para armazenar valor de indices da matriz principal
int c, l;
printf("Insira o número de colunas da matriz a ser gerada, máximo 10 = "); scanf("%d", &c);//armazenado número de colunas
while (c <= 0 || c > 10) { //while, comando de repetição para informar ao usuário que quantia de colunas determinada está incorreta, podendo sair do laço ao inserir valor aceitavel
printf("\nNúmero de colunas determinado inválido, digite de 1 a 10 = "); scanf("%d", &c);//armazenado novo valor de colunas
};
printf("Insira o número de linhas da matriz a ser gerada, máximo 10 = "); scanf("%d", &l);
while (l <= 0 || l > 10) {//while, comando de repetição para informar ao usuário que quantia de linhas determinada está incorreta, podendo sair do laço ao inserir valor aceitavel
printf("Valor de linhas invalido, digite quantas linhas a matriz possui (valido até 10 colunas apenas): ");
scanf("%d", &l);//armazenado novo valor de linhas
};
for (int i1 = 0; i1 < l; i1++) {//laços for para percorrer indices da matrizprincipal
for (int i2 = 0; i2 < c; i2++) {
printf("Digite a letra para matriz [%d] [%d]= ", i2, i1);
scanf("%s", &matrizprincipal[i1][i2]);//armazenada letra no indice especificado por i1 e i2 da matrizprincipal
};
};
for (int i1 = 0; i1 < l; i1++) {//laços for para percorrer indices da matrizprincipal
for (int i2 = 0; i2 < c; i2++) {
printf("\t|%c|", matrizprincipal[i1][i2]);
vetor1[(i1*c) + i2] = matrizprincipal[i1][i2];//atribuido ao vetor1 os valores nos indices da matrizprincipal
matrizsecundaria[i1][i2] = matrizprincipal[i1][i2];//atribuido a matrizsecundaria os valores nos indices da matrizprincipal
};
printf("\n");//usado para dar espaço entre os indices da matriz e deixa-lá em formato de tabela
};
for (int i1 = 0; i1 < l; i1++) {//laços for para percorrer indices de vetor2 e
vetor1
for (int i2 = 0; i2 < c; i2++) {
for (int p = 0; p < l; p++) {//laços for para percorrer indices da
matrizsecundaria
for (int r = 0; r < c; r++) {
if (matrizsecundaria[p][r] == vetor1[(i1 * c) + i2])
{//bloco condicional que compara os indices da matrizsecundaria com os do vetor1 para ver quais letras se repetem
vetor2[(i1 * c) + i2]++;//incrementado valor
de repetições em vetor inteiro vetor2
matrizsecundaria[p][r] = 0;//matriz zerada
para realizar nova comparação
};
};
};
};
};
printf("\n\tREPETIÇÕES\n");
for (int i1 = 0; i1 < (l * c); i1++) {//laço para percorrer os indices dos vetores
if (vetor2[i1] != 0) {//caso vetor2 for diferente de zero significa que a letra a ser impressa apareceu pelo menos uma vez na matriz
printf("\nletra = %c repetições = %d ", vetor1[i1], vetor2[i1]);
};
};
printf("\n\n\tFUNÇÃO\n");
printf("Primeira letra da matriz= %c\nResultado: %.2f\n", matrizprincipal[0][0], valor(matrizprincipal[0][0]));//impresso o valor da função comparativa de maiusculos com minusculos
}

Continue navegando

Outros materiais