Buscar

Atividade Prática - Liguagem de Programação - Vitor Prudêncio da Silva

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 14 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 14 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 14 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 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 
 
1 EXERCÍCIO 1 
Vamos supor que várias pedras do jogo de xadrez estão no tabuleiro. Para facilitar a indi-
caçã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 - RAI-
NHA\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 li-
nha!\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 co-
luna!\n"); 
 scanf_s("%d", &colunausuario); 
 } 
 printf("Qual peça vai inserir nessa posicao? %d,%d:\n", linhausuario, colunausu-
ario); 
 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 uti-
lizar uma das alternativas dadas ou ficará no laço 
 { 
 printf("O valor nao existe. Digite um numero de 1 a 8 para a li-
nha!\n"); 
 scanf_s("%d", &linhausuario); 
 } 
 printf("Agora, digite a posicao da coluna (1 a 8) que deseja alte-
rar:\n"); 
 scanf_s("%d", &colunausuario); 
 while ((colunausuario < 1) || (colunausuario > 8)) // se o usuário esco-
lher um valor fora do solicitado ele fica no laço. 
 { 
 printf("O valor nao existe. Digite um numero de 1 a 8 para a co-
luna!\n"); 
 scanf_s("%d", &colunausuario); 
 } 
 printf("Digite a peca que deseja inserir na posicao %d,%d:\n", linhausua-
rio, 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 es-
colhe uma peça que nao existe, fica no laço. 
 { 
 printf("A peça desejada não existe! Insira um valor válido con-
forme 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 - RAI-
NHA\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 infor-
mado 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 programae 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", fo-
lha.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 ar-
quivo 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 pro-
tó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 biblio-
teca 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 NEGA-
TIVO PARA SAIR:"); 
 scanf("%f", &lado); 
 
 } 
} 
 
 
 
 
 
 
 
 
EXERCÍCIO 5 
 
Faça um programa, em linguagem C, que: a) Crie uma struct chamada ponto2d que te-
nha 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"); 
 } 
 } 
}

Continue navegando