Buscar

ATIVIDADE PRATICA

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 12 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 12 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 12 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 
 
 
 
 
 
 
 
 
HUGO PIRES BOAES – RU: 3421277 
VINICIUS POZZOBON BORIN 
 
 
 
 
 
 
 
 
 
SÃO LUÍS – MARANHÃO 
2021 
 
 
 
1 
 
1 EXERCÍCIO 1 
ENUNCIADO: Escreva um algoritmo em linguagem C que atenda os seguintes requisitos: 
✓ Crie um registro para armazenar o seu Nome Completo e o seu RU. 
✓ Solicite ao usuário que digite o seu RU e o seu Nome Completo. 
✓ Crie um ponteiro para o registro. 
✓ Através do ponteiro para o registro verifique se o RU digitado é um número par ou ímpar 
e informe a resposta na tela. 
✓ Através do ponteiro para o registro imprima o Nome Completo informado de traz para 
frente, invertido. Por exemplo: 
Pedro Alvares Cabral -> larbaC seravlA ordeP 
Para demonstrar o funcionamento faça as capturas de tela do terminal utilizando seu nome 
completo e o seu RU.. 
 
Solução do aluno: 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
#include <string.h> 
 
int main() 
{ 
 setlocale(LC_ALL, "portuguese"); //Parametros para lingua portugues, acentua-
ções etc... 
 
 struct registro 
 { 
 char nome[25]; //registro para armazenar o seu Nome Completo e o seu RU. 
 int ru; 
 char c; //Variavel criada para realizar a limpeza do buffer do teclado 
 }; struct registro rg; 
 
 
 printf("****************ATIVIDADE PRÁTICA 1*****************\n\n"); 
 printf("DIGITE SEU RU: "); 
 scanf_s("%d", &rg.ru); //Armazena o valor inteiro do RU no registro 
 while ((rg.c = getchar()) != '\n' && rg.c != EOF) {} //limpeza do buffer de te-
clado 
 
 printf("\nDIGITE SEU NOME COMPLETO: "); 
 gets(rg.nome); 
 
 int* pontru; //criação do ponteiro para RU 
 pontru = &rg.ru; 
 char* pontnome; //Criação do ponteiro para o nome 
 pontnome = &rg.nome; 
 
 if (*pontru %2 == 0) //Verificação se o RU digitado é um número par ou ímpar 
 
 
 
 
 { 
 printf("\nO RU DIGITADO É PAR!!!\n\n"); 
 } 
 else 
 { 
 printf("\nO RU DIGITADO É IMPAR!!!\n\n"); 
 } 
 
 int tam; // Variavel criada pra usar no laço FOR 
 tam = strlen(pontnome); //numero de caracteres na string 
 
 for (int i = tam; i >= 0; i--) //Laço para imprimir o nome de tras para frente 
 { 
 printf("%c", pontnome[i]); 
 } 
 printf("\n\n"); 
 system("pause"); 
 return 0; 
} 
 
 
Imagem do código funcionando no seu computador: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 EXERCÍCIO 2 
ENUNCIADO: Escreva um algoritmo em linguagem C que atenda os seguintes requisitos: 
✓ Crie um vetor com a quantidade de dígitos do seu RU. 
✓ Solicite que usuário digite o seu RU, cada digito digitado deve ser armazenado em uma 
posição do vetor. 
✓ Utilizando ponteiros verifique qual o maior e menor número contido neste vetor e im-
prima na tela. 
Para demonstrar o funcionamento faça as capturas de tela do terminal utilizando seu RU. 
 
Solução do aluno: 
 
#include<stdio.h> 
#include<stdlib.h> 
#include<locale.h> 
 
int main() 
{ 
 setlocale(LC_ALL, "portuguese"); //parametros para uso da lingua portuguesa 
 printf("******************ATIVIDADE PRATICA 2**********************\n\n"); 
 
 int ruint, *x; 
 int ru[7]; // Vetor com a quantidade de dígitos do seu RU 
 x = ru; //Ponteiro que aponta para o vetor 
 int maior = 0; 
 int menor =9; 
 
 
 printf("DIGITE SEU RU COM 7 DÍGITOS: "); 
 scanf_s("%d", &ruint); 
 if (ruint < 9999999) //Laço de decisão para não dar erro, se digitado mais que 7 
digitos 
 { 
 
 
 ru[0] = ruint / 1000000; 
 ru[1] = (ruint % 1000000) / 100000; 
 ru[2] = (ruint % 100000) / 10000; //Armazenamento de cada digito em uma 
posição do vetor 
 ru[3] = (ruint % 10000) / 1000; 
 ru[4] = (ruint % 1000) / 100; 
 ru[5] = (ruint % 100) / 10; 
 ru[6] = ruint % 10; 
 
 printf("\n\n"); 
 
 for (int i = 0; i < 7; i++) 
 { 
 printf("POSIÇÃO [%d] DO VETOR: %d\n", i, x[i]); //Demonstração de 
cada posição do vetor 
 } 
 printf("\n\n"); 
 
 
 
 
 
 
 for (int j = 0; j < 7; j++) //Laço para encontrar o maior e o menor va-
lor digitado 
 { 
 if (maior > x[j]) //Estrutura para encontrar o maior 
 { 
 maior = maior; 
 } 
 else 
 { 
 maior = x[j]; 
 } 
 
 if (menor < x[j]) //Estrutura para encontrar o menor 
 { 
 menor = menor; 
 } 
 else 
 { 
 menor = x[j]; 
 } 
 
 } 
 printf("MAIOR VALOR DIGITADO %d\n\n", maior); //Impressão na tela do 
maior valor 
 printf("MENOR VALOR DIGITADO %d\n\n", menor); //Impressão na tela do me-
nor valor 
 } 
 
 else 
 { 
 printf("DIGITE APENAS 7 DIGITOS!!!\n"); //Estrutura para o programa não 
dar erro caso digite mais digitos 
 } 
 
 system("pause"); 
 return 0; 
} 
 
Imagem do código funcionando no seu computador: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 EXERCÍCIO 3 
 ENUNCIADO: 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, floar *area, float *perimetro); 
Lembrando que a área e o perímetro de um hexágono regular são dados por: 
𝑎𝑟𝑒𝑎=(3×𝐿2×√3)/2 𝑝𝑒𝑟í𝑚𝑒𝑡𝑟𝑜=6×𝐿 
Para demonstrar o funcionamento faça os print de tela utilizando o primeiro número do seu 
RU. 
 
Solução do aluno: 
#include<stdio.h> 
#include<stdlib.h> 
#include<locale.h> 
 
 
void calc_hexa(float l, float *area, float *perimetro); 
 
 
int main() 
{ 
 setlocale(LC_ALL, "portuguese"); //parametros para uso da lingua portuguesa 
 printf("******************ATIVIDADE PRATICA 3**********************\n\n"); 
 
 float a, p, lado, * area, *perimetro; //Declaração de variaveis e ponteiro 
 area = &a; 
 perimetro = &p; 
 
 
 printf("DIGITE O VALOR DOS LADOS DO HEXÁGONO: \n"); 
 scanf_s("%f", &lado); 
 
 if (lado > 0) //Estrutura condicional 
 { 
 
 
 a = (3 * (lado * lado) * 1.732050) / 2; //formula usada para o calculo da 
area 
 p = 6 * lado; //formula usada para o calculo do perimetro 
 calc_hexa(lado, area, perimetro); //chamada da função 
 
 } 
 else 
 { 
 printf("FOI DIGITADO UM VALOR NEGATIVO PARA O LADO O PROGRAMA, E ELE SERÁ 
ENCERRADO\n\n"); 
 
 
 
 
 } 
 
 
 system("pause"); 
 return 0; 
 
} 
void calc_hexa(float l, float *area, float *p) //função para imprimir na tela os va-
lores dos ponteiros 
 { 
 
 printf("O PERIMETRO É IGUAL A : %.2f\n", *p); 
 
 printf("A ÁREA É IGUAL A : %.2f\n", *area); 
 
 } 
Imagem do código funcionando no seu computador: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 EXERCÍCIO 4 
ENUNCIADO: Faça, em linguagem C, uma função recursiva para o cálculo potenciação. 
Sabe-se que o cálculo pode ser feito através de multiplicações sucessivas. 
Para demonstrar o funcionamento utilize o primeiro digito do seu RU como base e o último 
digito como expoente. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Solução do aluno: 
#include <stdio.h> 
#include< stdlib.h> 
#include <locale.h> 
 
int funcao(int base, int expoente); // declaração da função 
 
int main() { 
 
 setlocale(LC_ALL, "portuguese"); // Parametro para lingua portuguesa 
 
 int b, e; //Declaração de variaveis 
 
 printf("*******************ATIVIDADE PRATICA 4******************\n"); 
 
 printf("\n\nDIGITE A BASE (primeiro digito do seu RU): "); 
 scanf_s("%d", &b); //Base armazenada na memoria 
 
 printf("\n\nDIGITE O EXPOENTE (último digito do seu RU): "); 
 scanf_s("%d", &e); // Expoente armazenado na memoria 
 
 printf("\nPOTÊNCIA É IGUAL A: %d\n\n", funcao(b, e)); //Mostra o resultado e 
chama a função 
 
 
 system("pause"); 
 return 0; 
} 
 
int funcao(intbase, int expoente) //Parametros da função 
{ 
 int res; //Variavel usada na função 
 
 if (expoente > 0) //Condicional usada para recursividade 
 { 
 res = base* funcao(base, expoente - 1); //função chamando função (recur-
sividade) 
 return res; // Retorno do valor para a função main 
 } 
 else 
 { 
 return 1; //Retorno do valor para a função main 
 } 
} 
Imagem do código funcionando no seu computador: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 EXERCÍCIO 5 
ENUNCIADO: Crie um programa, em linguagem C, que receba 10 registros con-
tendo, Nome, RU, telefone email. Solicite que sejam digitados todos os dados de todos os re-
gistros e ao final salve-os em um arquivo.csv, utilize o ; (ponto e vírgula) para separador e 
campo. O nome do arquivo deve ser o seu número de RU. 
 
Solução do aluno: 
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
#include <time.h> 
#include <string.h> 
#include<locale.h> 
#include <Windows.h> 
#include<ctype.h> 
//criação da Struct ALUNO a onde irá receber o cadastrar Nome , email, ru, fone 
typedef struct 
{ 
 
 char nome[100], email[20], fone[20]; 
 int ru; 
 
 
} ALUNO; 
 
 
 
//criação da função menu para poder realizar a escolha das opções para controlar a 
ALUNO 
int menu() 
{ 
 setlocale(LC_ALL, "portuguese"); 
 int op;//vai receber a opção escolhida pelo usuário 
 
 
 
 printf("1-Cadastro\n2-Salvar\n0 -sair\n"); 
 scanf_s("%d", &op); 
 
 return op;//vai retornar a opção escolhida pelo usuário 
} 
 
//função principal do programa 
int main() 
{ 
 setlocale(LC_ALL, "portuguese"); 
printf("*************ATIVIDADE PRÁTICA 5*************\n\n"); 
 
 //as variáveis necessárias para executar o programa 
 int op, contador = 0, i; 
 //vai criar a ALUNO 
 ALUNO ALUNO[10], * cadastro, temp; 
 cadastro = ALUNO;//vai criar uma estrutura 
 // salvar os dados cadastrados da ALUNO 
 
 
 
 
 FILE* arquivo = fopen("3421277. csv", "w"); 
 //para os caracteres ficarem em português 
 setlocale(LC_ALL, "Portuguese"); 
 
 //vai começar a rodar o programa e verificar qual foi a opção escolhida pelo usu-
ário 
 do 
 { 
 //op vai receber da função do menu escolhido pelo usuário 
 op = menu(); 
 getchar(); 
 //vai verificar qual foi a opção escolhida pelo usuário 
 switch (op) { 
 //Opção de cadastro das ALUNO S 
 case 1: 
 if (contador <= 10) 
 {//vai cadastrar até dar menor que 10 
 //vai receber os dados da ALUNO 
 printf("Cadastro de ALUNO: %d \n", contador + 1); 
 printf("Informe nome da ALUNO: "); 
 gets(cadastro[contador].nome); //nome 
 fflush(stdin); 
 
 printf("email: "); 
 gets(cadastro[contador].email); //e-mail 
 fflush(stdin); 
 
 printf("fone: "); 
 gets(cadastro[contador].fone); //e-mail 
 fflush(stdin); 
 
 printf("RU: "); 
 scanf_s("%f", &cadastro[contador].ru); //preço 
 contador++; 
 printf("\n============================================ \n"); 
 } 
 else 
 {//se tive mais que 10 cadastro de ALUNOs 
 printf("\nAs ALUNOS estão todas Preenchidas"); 
 } 
 break; 
 
 //opção para salvar os dados dos cadastros das ALUNOs 
 case 2://vai salvar os arquivos 
 for (i = 0; i < contador; i++) 
 {//vai rodar todos os cadastros para salvas os dados 
 fprintf(arquivo, "%s;", cadastro[i].nome);//vai salvar o nome 
 
 
 
 
 fprintf(arquivo, "%s;", cadastro[i].email);//vai salvar o email 
 fprintf(arquivo, "%s;", cadastro[i].fone); //vai salvar o fone 
 fprintf(arquivo, "%d;", cadastro[i].ru);//vai salvar o preço 
 fprintf(arquivo, "\n"); //vai salvar o ar quivo 
 
 } 
 
 fclose(arquivo);//vai fechar 
 printf("\n\tARQUIVO SALVO COM SUCESSO\n"); 
 break; 
 //opção a onde vai sair do programa 
 
 
 
 
 case 0://vai sair do programa 
 printf("\nFinalizando o sistema de cadastro de ALUNOS \ n"); 
 break; 
 //caso o usuario tenha escolhido uma opção invalida 
 default://opção invalida 
 printf("\n Opção Invalida \n"); 
 break; 
 } 
 } while (op != 0); //vai rodar até o usuário escolha uma opção diferente de 0 
 
 
 return 0; 
} 
 
Imagem do código funcionando no seu computador:

Continue navegando