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 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:
Compartilhar