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 COMPUTAÇÃO DISCIPLINA DE LINGUAGEM DE PROGRAMAÇÃO ATIVIDADE PRÁTICA ALUNO: VITOR PRUDENCIO DA SILVA – RU: 2825758 PROFESSOR: Winston Sen Lun Fung Juiz de fora – minas gerais 2020 1. EXERCÍCIO 1 Vamos supor que várias pedras do jogo de xadrez estão no tabuleiro. Para facilitar a indicação das peças, vamos convencionar: 1 – peões 3 – torres 5 – reis 0 – ausência de peças 2 – cavalos 4 – bispos 6 – rainhas O tabuleiro é o seguinte: Construa um programa, em linguagem C, que: a) Solicite ao usuário que informe qual peça deseja colocar em cada posição do tabuleiro. b) Mostre o tabuleiro informado pelo usuário na tela. c) Determine a qual a quantidade de cada tipo de peça no tabuleiro. RESPOSTA #include <stdio.h> #include <stdlib.h> enum pecas { vago, peao, cavalo, torre, bispo, rei, rainha }; int main() { float c; int tabuleiro[8][8] = { {1, 3, 0, 5, 4, 0, 2, 1}, {1, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 6, 0}, {1, 0, 0, 1, 1, 0, 0, 1}, {0, 1, 0, 4, 0, 0, 1, 0}, {0, 0, 3, 1, 0, 0, 1, 1}, {1, 0, 6, 6, 0, 0, 1, 0}, {1, 0, 5, 0, 1, 1, 0, 6} }; // mostra o tabuleiro do enunciado printf("\nTabuleiro:\n\n"); int linha, coluna; for (linha = 0; linha < 8; linha++) { for (coluna = 0; coluna < 8; coluna++) { printf("%d ", tabuleiro[linha][coluna]); } printf("\n"); } int contador[7] = { 0 }; int i, x; for (i = 0; i < 8; i++) { for (x = 0; x < 8; x++) { switch (tabuleiro[i][x]) { case vago: contador[0]++; break; case peao: contador[1]++; break; case cavalo: contador[2]++; break; case torre: contador[3]++; break; case bispo: contador[4]++; break; case rei: contador[5]++; break; case rainha: contador[6]++; break; default: break; } } } printf("\n"); printf("LEGENDA\n"); printf("0 - VAZIO\n1 - PEAO\n2 - CAVALO\n3 - TORRE\n4 - BISPO\n5 - REI\n6 - RAINHA\n\n"); printf("\nPECAS E CASAS VAZIAS:\n\n"); printf("VAZIO= %d\n", contador[0]); printf("PEAO= %d\n", contador[1]); printf("CAVALO= %d\n", contador[2]); printf("TORRE= %d\n", contador[3]); printf("BISPO= %d\n", contador[4]); printf("REI= %d\n", contador[5]); printf("RAINHA %d\n", contador[6]); printf("\n"); system("pause"); // montando o tabuleiro do usuário contador[0] = 0; contador[1] = 0; contador[2] = 0; contador[3] = 0; contador[4] = 0; contador[5] = 0; contador[6] = 0; int tabuleirousuario[8][8] = { {1, 3, 0, 5, 4, 0, 2, 1}, {1, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 6, 0}, {1, 0, 0, 1, 1, 0, 0, 1}, {0, 1, 0, 4, 0, 0, 1, 0}, {0, 0, 3, 1, 0, 0, 1, 1}, {1, 0, 6, 6, 0, 0, 1, 0}, {1, 0, 5, 0, 1, 1, 0, 6} }; int linhausuario, colunausuario; // definindo linha e coluna que o usuário irá preencher int escolhausuario; int SimOuNao; system("cls"); printf("Monte seu tabuleiro\n\n"); for (linha = 0; linha < 8; linha++) { for (coluna = 0; coluna < 8; coluna++) { printf("%d ", tabuleirousuario[linha][coluna]); } printf("\n"); } printf("\nDigite a linha (1 a 8) que vai alterar:\n"); scanf_s("%d", &linhausuario); while ((linhausuario < 1) || (linhausuario > 8)) { printf("O valor nao existe. Digite um numero de 1 a 8 para informar a linha!\n"); scanf_s("%d", &linhausuario); } printf("Digite a coluna (1 a 8) que vai alterar:\n"); scanf_s("%d", &colunausuario); while ((colunausuario < 1) || (colunausuario > 8)) { printf("O valor nao existe. Digite um numero de 1 a 8 para informar a coluna!\n"); scanf_s("%d", &colunausuario); } printf("Qual peça vai inserir nessa posicao? %d,%d:\n", linhausuario, colunausuario); printf("0 = VAZIA\n"); printf("1 = PEAO\n"); printf("2 = CAVALO\n"); printf("3 = TORRE\n"); printf("4 = BISPO\n"); printf("5 = REI\n"); printf("6 = RAINHA\n"); scanf_s("%d", &escolhausuario); while ((escolhausuario < 0) || (escolhausuario > 6)) { printf("A peca nao existe! Insira um valor de peca valida conforme o menu!\n"); scanf_s("%d", &escolhausuario); } tabuleirousuario[linhausuario - 1][colunausuario - 1] = escolhausuario; printf("Deseja alterar outra posicao?\n"); printf("(1) para SIM e (2) para NAO\n"); scanf_s("%d", &SimOuNao); while (SimOuNao == 1) // enquanto o usuário não informar, o programa continua solicitando alterações. { printf("\nDigite a posição da linha (1 a 8) que deseja alterar:\n"); scanf_s("%d", &linhausuario); while ((linhausuario < 1) || (linhausuario > 8)) //o usuário só pode utilizar uma das alternativas dadas ou ficará no laço { printf("O valor nao existe. Digite um numero de 1 a 8 para a linha!\n"); scanf_s("%d", &linhausuario); } printf("Agora, digite a posicao da coluna (1 a 8) que deseja alterar:\n"); scanf_s("%d", &colunausuario); while ((colunausuario < 1) || (colunausuario > 8)) // se o usuário escolher um valor fora do solicitado ele fica no laço. { printf("O valor nao existe. Digite um numero de 1 a 8 para a coluna!\n"); scanf_s("%d", &colunausuario); } printf("Digite a peca que deseja inserir na posicao %d,%d:\n", linhausuario, colunausuario); printf("0 - VAZIO\n1 - PEAO\n2 - CAVALO\n3 - TORRE\n4 - BISPO\n5 - REI\n6 - RAINHA\n\n"); scanf_s("%d", &escolhausuario); while ((escolhausuario < 0) || (escolhausuario > 6)) // se o usuario escolhe uma peça que nao existe, fica no laço. { printf("A peça desejada não existe! Insira um valor válido conforme o menu!\n"); scanf_s("%d", &escolhausuario); } tabuleirousuario[linhausuario - 1][colunausuario - 1] = escolhausuario; printf("Deseja alterar outra posica?\n"); printf("(1) para SIM e (2) para NAO\n"); scanf_s("%d", &SimOuNao); } system("cls"); printf("Este foi o tabuleiro montado\n\n"); int linha1, coluna1; int contadorusuario[7]; for (linha1 = 0; linha1 < 8; linha1++) { for (coluna1 = 0; coluna1 < 8; coluna1++) { printf("%d ", tabuleirousuario[linha1][coluna1]); } printf("\n"); } int j, l; for (j = 0; j < 8; j++) { for (l = 0; l < 8; l++) { switch (tabuleirousuario[j][l]) { case vago: contador[0]++; break; case peao: contador[1]++; break; case cavalo: contador[2]++; break; case torre: contador[3]++; break; case bispo: contador[4]++; break; case rei: contador[5]++; break; case rainha: contador[6]++; break; default: break; } } } printf("\n"); printf("LEGENDA\n"); printf("0 - VAZIO\n1 - PEAO\n2 - CAVALO\n3 - TORRE\n4 - BISPO\n5 - REI\n6 - RAINHA\n\n"); printf("\nQuantidade de pecas e casas vazias:\n"); printf("Casas vazias= %d\n", contador[0]); printf("Peoes= %d\n", contador[1]); printf("Cavalos= %d\n", contador[2]); printf("Torres= %d\n", contador[3]); printf("Bispos= %d\n", contador[4]); printf("Reis= %d\n", contador[5]); printf("Rainhas\= %d\n", contador[6]); printf("\n"); system("pause"); return 0; } EXERCÍCIO 2: Escreva um programa, em LINGUAGEM C, que: a) Solicite ao usuário a entrada de um registro que armazene na memória o Nome do funcionário e o seu salário. b) Utilizando o salário informado calcule o imposto de renda devido e mostre na tela, conforme a tabela abaixo: rESPOSTA: #include <stdio.h> #include <stdlib.h> #include <string.h> struct imposto { char nome[61]; float salario; float ir; }; struct imposto folha; int main() { printf("EXERCICIO 02 - ATIVIDADE PRATICA VITOR PRUDENCIO DA SILVA\n\n\n");/* Cabeçalho do programa e solicitação de inserção dos dados*/ printf("Insira o nome do colaborador: \n"); scanf_s("%s", &folha.nome); printf("Insira o salario do colaborador: \n"); scanf_s("%f", &folha.salario); printf("\n\n\n####################################################################################################\n\n\n"); printf("IMPOSTO DE RENDA CALCULADO SOBRE O SALARIO\n\n"); printf("Nome do Colaborador: %s\n", folha.nome); printf("Salario declarado:R$ %.2f\n", folha.salario); if (folha.salario <= 1637.11)/*Comando IF/ELSE para determinar qual aliquota será aplicada sobre o salário*/ { printf("Colaborador isento de Imposto de Renda"); } else if (folha.salario >= 1637.12 && folha.salario <= 2453.50) { folha.ir = (folha.salario * 0.075); printf("Aliquota de 7,5 porcento.\nO imposto a ser pago sera de: R$ %.2f\n\n", folha.ir); } else if (folha.salario >= 2453.51 && folha.salario <= 3271.38) { folha.ir = folha.salario * 0.15; printf("Aliquota de 15 porcento.\nO imposto a ser pago sera de: R$ %.2f", folha.ir); } else if (folha.salario >= 3271.39 && folha.salario <= 4087.65) { folha.ir = folha.salario * 0.225; printf("Aliquota de 22,5 porcento.\nO imposto a ser pago sera de: R$ %.2f", folha.ir); } else if (folha.salario >= 4087.66) { folha.ir = folha.salario * 0.275; printf("Aliquota de 27,5 porcento.\nO imposto a ser pago sera de: R$ %.2f", folha.ir); } printf("\n\n\nOBRIGADO PELA CONSULTA!!!!\n\n\n"); system("pause"); return 0; } EXERCÍCIO 3: Faça um programa, em linguagem C, que lê 5 frases, informadas pelo o usuário, de, no máximo, 50 caracteres cada uma e armazene-as em um arquivo. Mas, antes de gravar cada frase no arquivo, é necessário converter todas as suas letras para maiúsculas. O nome do arquivo será fornecido, via teclado, pelo usuário. A seguir, feche o arquivo. Reabra o arquivo, para leitura, exibindo na tela todas as frases convertidas. RESPOSTA #include <stdio.h> #include<ctype.h> #include <stdlib.h> #include <string.h> int main() { FILE* farq; int i, j; char texto[51]; char maiusc[51]; char nomearq[20]; int num; char c; printf("ATIVIDADE PRATICA 03 - VITOR PRUDENCIO DA SILVA\n\n\n"); printf("\n\nDigite o nome do arquivo: "); scanf("%s", &nomearq); scanf("%c", &c); farq = fopen(nomearq, "w"); if (farq == NULL) { fprintf(stderr, "fopen() failed in file %s at line # %d", __FILE__, __LINE__); exit(EXIT_FAILURE); } for (i = 0; i < 5; i++) { printf("Digite uma frase com ate 50 caracteres: "); gets(texto); fflush(stdin); j = 0; j < 5; while (texto[j] != '\0' && j <= 50) { maiusc[j] = toupper(texto[j]); // convertendo as frases para maiúscula fflush(stdin); j++; num++; } maiusc[j] = '\0'; fwrite(&num, sizeof(int), 1, farq); //Gravando tamanho do texto fflush(stdin); fwrite(maiusc, sizeof(char), num, farq); //Gravando o texto } fclose(farq); farq = fopen(nomearq, "r"); if (farq == NULL) { fprintf(stderr, "fopen() failed in file %s at line # %d", __FILE__, __LINE__); exit(EXIT_FAILURE); } fread(&num, sizeof(int), 1, farq); // lendo o tamanho do texto fread(maiusc, sizeof(char), num, farq); // lendo o texto gravado printf("RESULTADO:\n"); printf("NOME DO ARQUIVO SALVO: %s\n", &nomearq); fflush(stdin); while (!feof(farq)) { printf("\nTexto convertido: %s", &maiusc); fflush(stdin); memset(maiusc, '\0', 50); fread(&num, sizeof(int), 1, farq); // lendo o tamanho do texto fread(maiusc, sizeof(char), num, farq); // lendo o texto gravado } fclose(farq); } EXERCÍCIO 4 Faça um programa, em linguagem C, para calcular a área e o perímetro de um hexágono. O programa deve implementar uma função chamada calc_hexa que calcula a área e o perímetro de um hexágono regular de lado L. O programa deve solicitar ao usuário o lado do polígono, calcular e imprimir a área e o perímetro do polígono. O programa termina quando for digitado um valor negativo qualquer para o lado. A função deve obedecer ao seguinte protótipo: void calc_hexa(float L, float *area, float *perimetro); Lembrando que a área e o perímetro de um hexágono regular são dados por: Para os cálculos, obrigatoriamente você deve utilizar as funções sqrt e pow da biblioteca math.h. RESPOSTA #include<stdio.h> #include<math.h> void calc_hexa(float l, float* area, float* per) { *per = 6 * l; *area = (3 * pow(l, 2) * sqrt(3)) / 2; } int main() { float lado, area, perimetro; printf("ATIVIDADE PRATICA 04 - ALUNO VITOR PRUDENCIO DA SILVA\n\n\n"); printf("\nDIGITE O A MEDIDA DO LADO DO HEXAGONO:"); scanf("%f", &lado); while (lado > 0) { calc_hexa(lado, &area, &perimetro); printf("\n\n******** RESULTADO ********\n\n"); printf("\n\LADO DO HEXAGONO INFORMADO: %.2f\nAREA = %.2f\nPERIMETRO = %.2f", lado, area, perimetro); printf("\n\nDIGITE O A MEDIDA DO LADO DO HEXAGONO, OU DIGITE VALOR NEGATIVO PARA SAIR:"); scanf("%f", &lado); } } EXERCÍCIO 5 Faça um programa, em linguagem C, que: a) Crie uma struct chamada ponto2d que tenha como atributos os pontos x,y. b) Crie duas estruturas do tipo ponto2d chamadas ponto_inicial e ponto_final. c) Mostre um menu com as seguintes opções e implemente‐as: [1] ‐ Digitar os valores do primeiro ponto [2] - Digitar os valores do segundo ponto [3] ‐ Mostrar a distância entre os pontos [4] ‐ Sair Resposta: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { //criando struct// struct ponto2d { int x; int y; }; struct ponto2d ponto_ini; struct ponto2d ponto_fim; int opcao; int d_pontosx, d_pontosy, d_ponto, ponto2d; fflush(stdin); printf_s("ATIVIDADE 05 - ALUNO VITOR PRUDENCIO DA SILVA\n\n"); while (opcao > 0 || opcao < 5)//criando menu// { printf_s("[1] - Digitar os valores do primeiro ponto.\n"); printf_s("[2] - Digitar os valores do segundo ponto.\n"); printf_s("[3] - Mostrar a distancia entre os dois pontos.\n"); printf_s("[4] - Sair.\n"); scanf_s("%i", &opcao); switch (opcao) { case 1://inserindo as coordenadas do ponto A// printf_s("Insira a coordenada X do ponto A:\n"); scanf_s("%d", &ponto_ini.x); printf_s("Insira a coordenada Y do ponto A:\n"); scanf_s("%d", &ponto_ini.y); break; case 2://inserindo as coordenadas do ponto B// printf_s("Insira a coordenada X do ponto B:\n"); scanf_s("%d", &ponto_fim.x); printf_s("Insira a coordenada Y do ponto B:\n"); scanf_s("%d", &ponto_fim.y); break; case 3://calculando a distancia aplicando a fórmula// fflush(stdin); d_pontosx = (ponto_ini.x - ponto_fim.x); d_pontosy = (ponto_ini.y - ponto_fim.y); d_ponto = sqrt(pow(d_pontosx, 2) + pow(d_pontosy, 2)); printf_s("\n Distancia entre os pontos A(%d,%d) e B(%d,%d) = %d\n ", ponto_ini.x, ponto_ini.y, ponto_fim.x, ponto_fim.y, d_ponto); system("pause"); break; case 4://saindo do programa// system("pause"); return 0; break; default: printf_s("\nEntrada invalida!\n"); system("pause"); } } } 1
Compartilhar