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 ELÉTRICA DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS ATIVIDADE PRÁTICA JÚNIOR D. DALLACOSTA A. SANTOS – RU: 3074188 VINICIUS POZZOBON BORIN HORIZONTINA – RIO GRANDE DO SUL 2020 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). #include <stdio.h> //Biblioteca de entrada e saída; #include <stdlib.h> //Biblioteca para alocação de memória; #include <locale.h> //Biblioteca que específica constantes; int main() { //Inicio da Função; setlocale(LC_ALL, "Portuguese"); // Serve para incluir acentuação no programa; int Sim_Nao, Masculino_Feminino;// Variável do tipo inteiro, Sim(1) Não(2), Mas- culino(3) Feminino(4); float H = 0, M = 0, Psim = 0, pnao = 0, msim = 0, hnao = 0, hsim = 0, mnao = 0; // Variáveis que receberam os dados para a contagem; int cont;// Variável do laço de repetição For, para que sejam apenas 150 pes- soas que respondam a pesquisa; float perchn = 0, percms = 0; // Variável de percentual homens não e mulheres sim; for (cont = 0; cont <= 150; cont++) { // Inicio do laço de repetição; printf("------------Pesquisa de mercado--------------"); // Começo da pesquisa; printf("\n\nOlá, gostaríamos de saber se você gostou do último produto lançado pela nossa empresa? Responda 1 para sim ou 2 para não\n\n"); // Esta mensagem aparecera na tela do usuário; scanf_s("%d", &Sim_Nao); // O programa guardara a informação digitada na variável Sim_Nao; printf("\n\nQual o seu sexo? Responda 3 para Masculino ou 4 para Femi- nino\n\n"); // Esta mensagem aparecera na tela do usuário; scanf_s("%d", &Masculino_Feminino); // O programa guardara a informação digitada na variável Masculino_Feminino; if ((Sim_Nao == 1) && (Masculino_Feminino == 3)) { // Caso as escolhas forem sim e Masculino; Psim = Psim++; // Quantas pessoas sim; H = H++; // Quantos Homens; hsim = hsim++; // Quantos homens sim; } else { if ((Sim_Nao == 1) && (Masculino_Feminino == 4)) { // Caso as es- colhas forem sim e Feminino; Psim = Psim++; // Quantas pessoas sim; M = M++; // Quantas mulheres; msim = msim++; // Quantas mulheres sim; } else { if ((Sim_Nao == 2) && (Masculino_Feminino == 3)) { // Caso as escolhas forem não e masculino; pnao = pnao++; // Quantas pessoas não; H = H++; // Quantos homens; hnao = hnao++; // Quantos homens não; } else { if ((Sim_Nao) && (Masculino_Feminino == 4)) { // caso sejam não e feminino; pnao = pnao++; // Quantas pessoas não; M = M; // Quantas mulheres; mnao = mnao; // Quantas mulheres não; } else { printf("Resposta invalida\n\n"); } // Mensagem para dados digitados incorretos; } } } printf("\n\n************---------------************\n\n"); // Serve para dar uma melhor aparência ao programa; perchn = (hnao * 100) * (1 / H); // Conta de percentual para Homens não; percms = (msim * 100) * (1 / M); // Conta de percentual para Mulheres sim; printf("Número de pessoas que responderam à pesquisa: %.1f\n\n", Psim + pnao); // Informação que aparecera para o usuário como quebra de linha; printf("Número de pessoas que responderam Sim: %.1f\n\n", Psim); // Que- bra de linha; printf("Número de pessoas que responderam Não: %.1f\n\n", pnao); // Que- bra de linha; printf("Porcentagem de homens que responderam Não: %.2f\n\n", perchn); // Quebra de linha; printf("Porcentagem de mulheres que responderam Sim: %.2f\n\n", percms); // Quebra de linha; } system("pause"); // Informa o programa que ele deve parar; return 0; // Retorna a função principal; } Exercício 2: 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.). #include <stdlib.h> // Biblioteca para alocação de memória; #include <stdio.h> // Biblioteca de entrada e saída; #include <conio.h> // Biblioteca para desenhar tela; #include <locale.h> // Biblioteca que específica constantes; float custokw = 1.75, clientes[100][3], maior, menor, media; // Declaração de variá- veis; int opção, total, coluna, linha, aux, tam = 0; // Variável do tipo inteiro; int main() { // Início do programa; setlocale(LC_ALL, "Portuguese"); // Para as palavras sairem com acentuação; inicio: system("cls"); printf("\nEscolha uma opção\n\n"); printf("\n1 - Cadastrar novo cliente:\n"); printf("\n2 - Verificar qual cliente teve o MAIOR consumo:\n"); printf("\n3 - Verificar qual cliente teve o MENOR consumo:\n"); printf("\n4 - Media de consumo dos clientes:\n"); // Printf serve para aparecer na tela oque foi digitado; printf("\n5 - Exibir quais clientes ultrapassaram 170 kw:\n"); printf("\n6 - Relatorio de todas as contas:\n"); printf("\n7 - sair:"); printf("\n\n\nQual é a sua opção:"); scanf_s("%d", &opção); // guarda na memória oque foi digitado; switch (opção) { case 1: // Opção usada para cadastrar novos clientes; opção = 0; system("cls"); if (total < 100) { // O total de clientes precisa ser menor que 100; printf("Digite o número da nova conta:"); scanf_s("%f", &clientes[total][0]); // Lê o numero do cliente e armazena na matriz clientes; printf("\nDigite a quantidade de kw consumido por esse cliente:"); scanf_s("%f", &clientes[total][1]); // Lê o total de kw consu- mido e armazena na matriz clientes; clientes[total][2] = clientes[total][1] * custokw; // Multi- plica o consumo pelo custo e armazena na matriz; total = total + 1; } else { printf("\nNão é possível cadastrar novos clientes, maximo 100.\n"); } system("pause"); // Usado para pausar a operação; goto inicio; // Fim do loop opção 1; case 6: // Opção usada para imprimir um relatório de todas as contas; opção = 0; if (total != 0) { // Verifica se o total de clientes é diferente de Zero; printf("CONTA CONSUMO VALOR EM R$ \n"); for (linha = 0; linha < total; ++linha) { // Usado para ler a ma- triz ate o total de clientes; printf("\n"); for (coluna = 0; coluna < 3; ++coluna) { printf("%.2f ", clientes[linha][coluna]); } } } else { printf("\nNão há clientes cadastrados"); } system("pause"); // Usado para pausar a operação; goto inicio; // Fim do loop opção 6;case 4: // Média de consumo de todos os clientes; opção = 0; media = 0; if (total != 0) { // Verifica se o total de clientes é diferente de Zero; for (linha = 0; linha < total; ++linha) { // Passara por toda a matriz clientes; media = media + clientes[linha][1]; // A variável auxi- liar média ira receber a somatória de consumo de clientes; }//fim do for media = media / total; // Dividi-se a variável pela quantidade to- tal de clientes para obter a média; printf("\nA média consumida de todos os clientes foi de %.0f kw\n\n", media); } else { printf("\nNão há clientes cadastrados"); } system("pause"); // Usado para pausar a operação; goto inicio; case 5: // Opção usada para verificar qual cliente ultrapassou 170kw de consumo; opção = 0; media = 0; if (total != 0) { // Verifica se o total de clientes é diferente de Zero; printf("CLIENTES QUE ULTRAPASSARAM O CONSUMO DE 170 KW\n\n"); printf("CONTA CONSUMO VALOR EM R$ \n"); for (linha = 0; linha < total; ++linha) { // Passara por toda a matriz clientes; if (clientes[linha][1] > 170) { // Testa se o consumo for maior que 170kw; printf("\n"); for (coluna = 0;coluna < 3; ++coluna) // Se o consumo for maior, usa para imprimir toda a linha; printf("%.2f", clientes[linha][coluna]); }// Fim do if; }// Fim do for; } else { printf("\nNão há clientes cadastrados"); } system("pause"); // Usado para pausar a operação; goto inicio; case 2: // Utilizado para verificar qual cliente teve o maior consumo; opção = 0; maior = 0; aux = 0; if (total != 0) { // Verifica se o total de clientes é diferente de Zero; for (linha = 0; linha < total; ++linha) { // Passara por toda a matriz clientes; if (maior <clientes[linha][1]) { // Testa se o consumo é maior que a variável maior; maior = clientes[linha][1]; // Variável maior re- cebe o valor para testar com outros consumos; aux = linha; // Ira armazenar a linha da ma- triz em que encontrar o maior consumo; }// Fim do if; }// Fim do for; printf("O maior consumo registrado Foi do cliente %.0f que consu- miu %.0f kW, tendo um gasto de R$ %.2f\n\n", clientes[aux][0], clientes[aux][1], clientes[aux][2]); // Imprime na tela a linha armazenadA por aux onde foi encontrado o maior consumo; } else { printf("\nNão há clientes cadastrados"); } system("pause"); // Usado para pausar a operação; goto inicio; // Fim da opção 2; case 3: // Utilizado para verificar qual cliente teve o MENOR consumo; opção = 0; menor = clientes[0][1]; aux = 0; if (total != 0) { // verifica se o total de clientes é diferente de Zero; for (linha = 0; linha < total; ++linha) { // Passara por toda a matriz clientes; if (menor > clientes[linha][1]) { // Testa se o consumo é menor que a variável menor; aux = linha; // Ira armazenar a linha da matriz em que encontrar o menor consumo; }// Fim do if; }// Fim do for; printf("O menor consumo registrado foi do cliente %.0f que consu- miu %.0f kW, tendo um gasto de R$ %.2f\n\n", clientes[aux][0], clientes[aux][1], clientes[aux][2]); // Imprime na tela a linha armazenada por aux onde foi encontrado o menor consumo; } else { printf("\nNão há clientes cadastrados\n"); } system("pause"); // Usado para pausar a operação; goto inicio; case 7: // Opção usada para sair; system("cls"); printf("voce pediu para sair, fechando programa...\n"); //Sleep(3000); // Aqui ele pausa por 3 segundos depois continua o có- digo; exit(0); default: // Verifica se a opção digitada é válida; printf("você deve escolher uma opção válida\n"); printf("Precione qualquer tecla para voltar ao menu\n"); system("pause"); // Usado para pausar a operação; goto inicio; }// fim switch; } // final do int main; Exercício 3: 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. Exemplo de matriz quadrado mágico: 8 0 7 4 5 6 3 10 2 #include<stdio.h> // Biblioteca de entrada e saida; #include<stdlib.h> // Biblioteca para alocação da memória; #include<locale.h> // Biblioteca que específica as contantes; int main() { // Inicio do programa; setlocale(LC_ALL, "Portuguese"); int linha, coluna, matriz[3][3]; // Variáveis do tipo inteiro que serão usadas para o laço de repetição e para a matriz; int l1, l2, l3, c1, c2, c3, dp, ds; // Variáveis do tipo inteiro que serão cada linha e coluna da matriz; for (linha = 0; linha < 3; linha++) // laço de repetição para limitar o número de linhas; for (coluna = 0; coluna < 3; coluna++) { // laço de repetição para limitar o numero de colunas; printf("\nInforme a seguir os números da matriz [%d][%d]:\n\n", linha, co- luna); // mensagem que aparecerá para o usuário; scanf_s("%d", &matriz[linha][coluna]); // O programa guardará a informação digitada; } printf("\n\nOs números digitados são:\n\n", linha, coluna); // mensagem que apare- cerá mostrando os números digitados; for (linha = 0; linha < 3; linha++) { // laço de repetição para limitar o número de linhas; for (coluna = 0; coluna < 3; coluna++) // laço de repetição para limitar o nú- mero de colunas; printf("%d ", matriz[linha][coluna]); // mensagem que aparecerá mostrando a matriz digitados; printf("\n\n"); } l1 = matriz[0][0] + matriz[0][1] + matriz[0][2]; // soma dos números da primeira linha; l2 = matriz[1][0] + matriz[1][1] + matriz[1][2]; // soma dos números da segunda linha; l3 = matriz[2][0] + matriz[2][1] + matriz[2][2]; // soma dos números da terceira linha; c1 = matriz[0][0] + matriz[1][0] + matriz[2][0]; // soma dos números da coluna 1; c2 = matriz[0][1] + matriz[1][1] + matriz[2][1]; // soma dos números da coluna 2; c3 = matriz[0][2] + matriz[1][2] + matriz[2][2]; // soma dos números da coluna 3; dp = matriz[0][0] + matriz[1][1] + matriz[2][2]; // soma dos números da diagonal principal; ds = matriz[0][2] + matriz[1][1] + matriz[2][0]; // soma dos números da diagonal secundária; printf("linha 1 = %d\n", l1); // resultado das somas; printf("linha 2 = %d\n", l2); // resultado das somas; printf("linha 3 = %d\n", l3); // resultado das somas; printf("coluna 1 = %d\n", c1);// resultado das somas; printf("coluna 2 = %d\n", c2);// resultado das somas; printf("coluna 3 = %d\n\n\n", c3);// resultado das somas; if ((l1 == l2) && (l1 == l3) && (l1 == c1) && (l1 == c2) && (l1 == c3) && (l1 == dp) && (l1 == ds)) { // teste do quadrado mágico; printf("A matriz digitada é um quadrado mágico!!!!!!"); // mensagem final ao usuário; } else { // caso não seja um quadrado mágico; printf("A matriz digitada não é um quadrado magico!!!!!!"); // mensagem final ao usuário; } system("pause"); // informa ao programa que ele deve parar; return 0; // retorno da função principal; } Exercício 4: 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 string no 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. Para imprimir na tela e tirar o printscreen, 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. #include<stdio.h> // Biblioteca de entrada e saida; #include<stdlib.h> // Biblioteca de alocação da memória; #include<string.h> // Biblioteca para utilização do comando de comparação strlen; #include<locale.h> // Biblioteca que específica constantes; int main(char) { // declaração do tipo da função, e início da função principal; setlocale(LC_ALL, "Portuguese"); char ultnome[]= "Santos", prinome[]= "Junior", resposta[]= "Junior Santos"; // va- riáveil do tipo caracter com espaços para as letras, entre chaves; int posicao; // variável tipo inteiro; printf("\n\nQual o seu primeiro nome?\n\n"); // mensagem que aparecerá para o usuário digitar o primeiro nome; gets_s(prinome); // o programa guardará a informação digitada na variável; printf("\n\nQual o seu último nome?\n\n"); // mensagem que aparecerá para o usuá- rio digitar o ultimo nome; gets_s(ultnome); // o programa guardará a informação digitada na variável; printf("\n\nQual o último número do seu RU?\n\n"); // mensagem que aparecerá para o usuário digitar o número do RU; scanf_s("%d", &posicao); // o programa guardará a informação digitada na variável; printf("\n\n"); // serve para melhorar a aparência; for (int i = 0; i < posicao; i++) // laço de repetição para que a posição digitada seja maior ou igual a zero; { resposta[i] = prinome[i]; // se a posição digitada for 0, a resposta será mos- trada a partir da posição 0 (=i), atribuição do resultado ao primeiro; } for (int i = 0; i < strlen(ultnome); i++) // laço de repetição para que a quanti- dade de caracteres do último nome seja maior que zero; { resposta[posicao + i] = ultnome[i]; // a resposta será armazenada a partir de posicao digitada + i e vai ser o sobrenome; } for (int i = 0; i < strlen(prinome); i++) // se a quantidade de caracteres do pri- meiro nome for maior que zero; { resposta[posicao + i] = ultnome[i]; // a resposta será armazenada a partir de posicao digitada + i e vai ser o mesmo que o sobrenome; } printf("%s\n\n", resposta); // informação que aparecerá para o usuário; system("\npause"); // informa que o programa deve parar; return 0; // retorno da função principal;
Compartilhar