Buscar

Atividade Prática Lógica de Programação e 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 9 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 9 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 9 páginas

Prévia do material em texto

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER 
ESCOLA SUPERIOR POLITÉCNICA 
BACHARELADO EM ENGENHARIA ELÉTRICA 
DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS 
 
 
 
 
 
 
 
ATIVIDADE PRÁTICA 
 
 
 
 
 
 
 
 
GILBERTO ALVES DE SOUSA - RU 2805458 
PROF. VINICIUS BORIN 
 
 
 
 
 
 
 
 
 
Nova Russas – CEARÁ (CE) 
2019 
1 
 
EXERCÍCIO 1 
Uma certa empresa fez uma pesquisa de mercado para saber se as pessoas gostaram ou não do seu último produto lançado. Para isto, coletou o sexo do entrevistado e a sua resposta (sim ou não). Sabendo que foram entrevistadas 150 pessoas, fazer um algoritmo que calcule e mostre ao final: 
· O número de pessoas que responderam sim; 
· O número de pessoas que responderam não; 
· A percentagem de pessoas do sexo feminino que responderam sim; 
· A percentagem de pessoas do sexo masculino que responderam não; 
Para a resposta SIM/NÃO. Utilize uma variável do tipo CHAR, que armazena S ou N, ou use uma variável do tipo INT que armazena 1 (para SIM) e 2 (para NÃO). 
 
Solução do aluno: 
Não esqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
	int count = 150; //numero de entrevistado
	int p1 = 0, p2 = 0, p3 = 0, p4 = 0;
	char check1, check2;
	char m[] = "m";
	char f[] = "f";
	char s[] = "s";
	char n[] = "n";
	for (int i = 0; i < count; ++i) {
		printf("\nQual seu sexo? (m para masculino e f para feminino) \n");
		scanf("%c", &check1); // entrada do sexo do entrevistado
		while (check1 != 'm' && check1 != 'f')
			scanf("%c", &check1);
		printf("Qual sua resposta? (s para sim e n para nao) \n");
		scanf("%c", &check2); // entrada do resposta do entrevistado
		while (check2 != 's' && check2 != 'n')
			scanf("%c", &check2);
		if (check2 == 's')
			p1++;
		if (check1 == 'f' && check2 == 's')
			p3++;
		if (check1 == 'm' && check2 == 'n')
			p4++;
	}
	p2 = count - p1;
	//Impressao dos resultados 
	printf("Quantidade de \"sim\": %i \n", p1);
	printf("Quantidade de \"nao\": %i \n", p2);
	printf("%i %% sao mulheres que responderam \"sim\"\n", (p3 * 100) / count);
	printf("%i %% sao homens que responderam \"nao\"\n", (p4 * 100) / count);
}
 
 
Imagem do código funcionando no seu computador: 
 
 
 
 
EXERCÍCIO 2 
ENUNCIADO: Para cada um dos consumidores de energia elétrica de uma cidade é informado o número da conta e o total de KW consumido no mês. Sabendo-se que o custo do KW é de R$ 1,75, fazer um algoritmo para: 
· Armazenar e listar o número da conta, o total de KW consumidos e o valor a pagar de cada consumir cadastrado; 
· Listar o número da conta, o total de KW consumidos e o valor a pagar do consumidor que mais gastou e o que menos gastou; 
· Mostrar a média de consumo da cidade; 
· Mostrar o número de consumidores que ultrapassaram o consumo de 170 KW; Armazene as informações em estruturas de vetores e/ou matrizes. Na tela, deve existir um MENU que pergunta ao usuário se ele deseja cadastrar um novo consumidor 
ou listar alguma informação (maior, menor, média, etc.). 
 
Solução do aluno: 
Não esqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
#include <conio.h>
#include <stdbool.h>
int main() {
	int Nconta[100], kw[100], c, x, maiorConta, menorConta, quantMaior, valor;
	float Vpagar[100], maior = 0, menor = 1000, media = 0;
	bool quit = false;
	while (!quit) {
		do
		{
			// impressao do menu do programa
			printf("Selecione uma opcao do Menu!\n\t OBS: valor de 1 a 7: \n\n");
			printf("\t1-Listar Clientes\n");
			printf("\t2-Cadastra Novo Clientes\n");
			printf("\t3-Exibir Cosumidor que mais gastou\n");
			printf("\t4-Exibir Cosumidor que menos gastou\n");
			printf("\t5-Exibir Média de Consumo\n");
			printf("\t6-Exibir Quantidade de Clientes que ultrapassou 170Kw\n");
			printf("\t7-Sair\n");
			scanf("%d", &valor);
			if (c < 1)
			{
				printf("Nao ha clientes Cadastrados! \n Favor Cadastrar Novo Cliente\n\n");
				system("pause");
				valor = 2;
			}
		} while ((valor > 7) || (valor < 1));
		switch (valor)
		{
		case 1:
			for (x = 1; x <= c; x++)
			{
				printf(" N Do Cliente: %d \n Consumo em Kw: %d \n Total a pagar: %.2f \n\n", Nconta[x], kw[x], Vpagar[x]);
				//printf("%d ", x);
			}
			break;
		case 2:
			c = c + 1;
			for (x = c; x <= c; x++)
			{
				// calculo do algoritimo
				printf("Digite o numero da conta do Cliente %d :", x);
				scanf("%d", &Nconta[x]);
				printf("\n");
				printf("Digite o total de KW Consumidos do Cliente %d :", x);
				scanf("%d", &kw[x]);
				Vpagar[x] = 1.75 * kw[x];
				printf("\n\n");
			}
			for (x = 1; x <= c; x++)
			{
				media += Vpagar[x];
				if (Vpagar[x] > maior) {
					maior = Vpagar[x];
					maiorConta = x;
				}
				if (Vpagar[x] < menor) {
					menor = Vpagar[x];
					menorConta = x;
				}
				if (kw[x] > 170) {
					quantMaior = quantMaior + 1;
				}
			}
			media = media / c;
			break;
		case 3:
			printf("\n O Cosumidor que mais gastou e:\n");
			printf(" N Do Cliente: %d \n Consumo em Kw: %d \n Total a pagar: %.2f \n\n", Nconta[maiorConta], kw[maiorConta], Vpagar[maiorConta]);
			break;
		case 4:
			printf("\n O Cosumidor que menos gastou e:\n");
			printf(" N Do Cliente: %d \n Consumo em Kw: %d \n Total a pagar: %.2f \n\n", Nconta[menorConta], kw[menorConta], Vpagar[menorConta]);
			break;
		case 5:
			printf("A Media da Cidade e: %.2f \n", media);
			break;
		case 6:
			printf("A Quantidade de Clientes que ultrapassou 170KW e: %d\n", quantMaior);
			break;
		case 7:
			quit = true;
			break;
		}
	}
	system("pause");
	return 0;
}
 
 
 
Imagem do código funcionando no seu computador: 
 
 
 
 
 
 
 
 
EXERCÍCIO 3 
ENUNCIADO: Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundária são todas iguais. Dada uma matriz quadrada dimensão MxM, verifique se ela é um quadrado mágico através de um algoritmo. 
 
Solução do aluno: 
Não esqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
	int ordem;
	printf("Digite a ordem da matriz: ");
	scanf("%i", &ordem); // entrada da ordem da matriz
	printf("Insira os valores seguidos de ENTER.\n\n");
	int matriz[ordem][ordem];
	for (int i = 0; i < ordem; ++i) {
		for (int j = 0; j < ordem; ++j) {
			printf("Linha %i. Coluna %i: ", i + 1, j + 1);
			scanf("%i", &matriz[i][j]);
		}
	}
	printf("\n");
	for (int i = 0; i < ordem; i++) {
		for (int j = 0; j < ordem; j++) {
			printf("%i ", matriz[i][j]);
		}
		printf("\n");
	}
	int soma[2 * ordem + 2], somaDiagonais[2];
	soma[2 * ordem] = 0;
	soma[2 * ordem + 1] = 0;
	printf("\n");
	for (int i = 0; i < ordem; i++) {
		soma[i] = 0;
		soma[i + ordem] = 0;
		for (int j = 0; j < ordem; j++) {
			soma[i] += matriz[i][j];
			soma[i + ordem] += matriz[j][i];
		}
		soma[2 * ordem] += matriz[i][i];
		soma[2 * ordem + 1] += matriz[i][ordem - i - 1];
	}
	//retornando resultado do algoritimo
	for (int i = 1; i < 2 * ordem + 1; i++) {
		if (soma[1] != soma[i]) {
			printf("Nao e um quadrado magico!\n");
			return 1;
		}
	}
	printf("E um quadrado magico!\n");
}
 
 
Imagem do código funcionando no seu computador: 
 
 
 
EXERCÍCIO 4 
ENUNCIADO: Escrever uma função que receba como parâmetro duas strings, bem como um valor inteiro que representa uma posição. A função deve, portanto, inserir a segunda strings na posição indicada da primeira. Escreva um programa que receba estas duas strings do usuário, o valor da posição desejada, e chame a função anteriormente implementada e exiba o resultado ao usuário na tela. 
Paraimprimir na tela e tirar o print screen, mostre o resultado utilizando o seu primeiro nome como string 1 e o seu último nome como string 2, e a posição de teste deverá ser o último digito do seu RU. 
 
 
Solução do aluno: 
Não esqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * trocaNome(char vetor1[], char vetor2[], int posicao) {
	// funcao para organizar as strings
	int qtd1 = 0, qtd2 = 0;
	for (int i = 0; vetor1[i] != '\0'; i++)
		qtd1++;
	for (int i = 0; vetor2[i] != '\0'; i++)
		qtd2++;
	char *retorno;
	retorno = malloc(qtd1 + qtd2 * sizeof(char));;
	for (int i = 0; i < posicao; i++)
		retorno[i] = vetor1[i];
	int posicaoAtual = 0;
	for (int i = posicao; i < posicao + qtd2; i++) {
		retorno[i] = vetor2[posicaoAtual];
		posicaoAtual++;
	}
	return retorno;
}
int main(void) {
	// funcao pricipal para primir o resultado final
	char nome[20], sobrenome[20];
	int x;
	printf("Digite o nome: ");
	scanf("%s", nome);
	printf("Digite o sobrenome: ");
	scanf("%s", sobrenome);
	printf("Digite o valor: ");
	scanf("%i", &x);
	printf("%s\n", trocaNome(nome, sobrenome, x));
}
 
Imagem do código funcionando no seu computador:

Continue navegando