Buscar

ATIVIDADE PRÁTICA LINGUAGEM DE PROGRAMAÇÃO

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 10 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 10 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 10 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

1 
 
 
 
CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER 
ESCOLA SUPERIOR POLITÉCNICA 
BACHARELADO EM ENGENHARIA ELÉTRICA 
DISCIPLINA DE LINGUAGEM DE PROGRAMAÇÃO 
 
 
 
 
 
 
 
ATIVIDADE PRÁTICA 
 
 
 
 
 
 
 
 
LUCIANO DE OLIVEIRA – RU: 512410 
PROF. WINSTON SEN LUN FUNG 
 
 
 
 
 
 
 
 
 
TOLEDO – PR 
2021 
 
 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. 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
struct Registro {//criando struct/registro 
 int ru;//campo do registro que ira armazenar o valor do RU 
 char nome[60];//campo do registro que ira armazenar o valor do nome 
}; 
int main(void){ 
 struct Registro R;//declarando o registro "R" 
 printf("Digite seu RU: ");//pedindo ao usuario que informe seu RU 
 scanf("%d", &R.ru);//lendo e alocando no campo RU 
 printf("Informe seu nome: ");//pedindo ao usuario que informe seu nome 
 fflush(stdin);//limpando o excesso de buff da memoria 
 fgets(R.nome, 60, stdin);//coletando e alocando os caracteres informados 
no campo nome 
 sscanf(R.nome,"%c",&R.nome);//lendo o campo nome do registro "R" 
 size_t tam = strlen(R.nome);//declarando variavel "tam" que ira 
armazerar o tamanho do nome informado (para que possamos trabalhar com a 
largura maxima) 
 char *p = (char *) &R.nome;//declarando ponteiro apontando para o campo 
nome do registro "R" 
 while(tam--){//laco while/do decrementador 
 printf("%c", p[tam]);//imprime o que esta abrangido pelo ponteiro a 
partir da largura, ou seja, do ultimo caracter para o primeiro 
 } 
 
 return 0; 
} 
 
 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 imprima na tela. Para demonstrar o 
funcionamento faça as capturas de tela do terminal utilizando seu RU. 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
int main(){ 
 int i;//index, variavel de controle 
 char v[6];//vetor de 6 posições 
 printf("Informe o seu RU= ");//pede para o usuario informar seu RU 
 for (i = 0; i < 6; i++) {//laco for que aloca cada numero do RU em um 
espaco da memoria 
 scanf("%c", &v[i]);//le e aloca em um espaco da memoria numero por 
numero do RU informado 
 } 
 char *p = (char *) &v;//ponteiro apontado para o espaco na memoria onde 
se encontra o vetor 
 char maior = p[0];//declarando variavel que ira receber o valor do maior 
numero do vetor/RU 
 char menor = p[0];//declarando variavel que ira receber o valor do menor 
numero do vetor/RU 
 for (i = 0; i < 6; i++) {//laco for que realiza a verificacao de qual o 
maior numero 
 if (p[i] > maior) {//condicao que verifica qual o maior numero 
 maior = p[i];//quando a variavel maior recebe o valor do maior 
numero, ate o momento 
 } 
 if (p[i] < menor) {//condicao que realiza a verificacao de qual o 
menor numero 
 menor = p[i];//quando a variavel menor recebe o valor do menor 
numero, ate o momento 
 } 
 } 
 printf("\nO maior numero deste RU e= %c\nO menor numero deste vetor e= 
%c", maior, menor);//imprimindo na tela o maior e o menor numero 
 
 system("pause"); 
 return 0; 
} 
 
 
 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. 
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
 
void calc_hexa(float L, float *area, float *perimetro){//funcao que recebe 
por parametro valor de L e pede para que seja executados a linha de area e 
perimetro 
 *area=3*pow(L,2)*sqrt(3)/2;//formula do calculo da area de um hexagono 
 *perimetro=6*L;//formula do calculo do perimetro de um hexagono 
} 
float main(){//metodo principal 
 float L, perimetro, area;//declarando a variavel L, responsavel por 
receber o valor do lado do hexagono 
 printf("Informe o valor do lado= ");//pede para o usuario que informe o 
valor de um lado de um hexagono 
 scanf("%f",&L);//le e aloca na memoria o valor informado pelo usuario 
 if(L<0){//condicao que verifica se e um valor valido 
 printf_s("Informe um valor positivo!\n");//caso nao seja um valor 
valido, pede para que o usuario informe um valor positivo/valido 
 system("pause");//encerra o programa 
 exit(1); 
 } 
 else{//caso o valor informado seja valido: 
 calc_hexa(L,&area,&perimetro);//chama a funcao calc_hexa e envi como 
parametro o vlaor de L e recebe o resultado de area e perimetro 
 printf("A area e= %.2f\n",area);//imprime o valor da area do 
hexagono com lado informado pelo usuario 
 printf("O perimetro e= %.2f\n", perimetro);//imprime o valor do 
perimetro do hexagono com lado informado pelo usuario 
 } 
 system("pause"); 
 return 0; 
} 
 
 
 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: 
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> 
 
int pot(int base, int exp) //parametros que receberao os valores da base e d
o expoente, respectivamente 
{ 
 int res= 1; //variavel que recebera o resultado exponenciação 
 int i= exp; //variavel de controle (index) 
 /* 
 Testa expoente, se igual a 0, 
 retorna valor 1, pois, segundo a regra matematica, qualquer numero 
 elevado a 0 e igual a 1 
 */ 
 if (exp==0){ 
 return 1; 
 } 
 /* 
 Se o expoente não for igual a 0, entao 
 o resulado sera igual a ele mesmo multiplicado pelo valor da base 
 a quantidade de vezes que o expoente indica 
 */ 
 else{ 
 for (i;i>0;){ //enquanto expoente for maior que 0 
 res = res * base; 
 i--
; //decremento, para ir diminuindo um numero sempre que completar um ciclo 
 } 
 return res; //retorna o resultado final do 
 } 
} 
 
int main(void) 
{ 
 int num1 = 5, num2 = 0, result; //num1= primeiro numero do RU, num2= ult
imo numero do RU, result vai receber o valor retornado da funcao pot 
 /*result chama a funcao pot para receber o valor retornado dela 
 */ 
 result = pot (num1, num2); //passando num1 e num2 como parametro par
a a funcao pot 
 printf("O resultado de %d elevado a %d e= %d\n", num1, num2, result)
; //imprime o resultado final da exponenciacao 
 
 system("pause"); 
 return 0; 
} 
 
Imagem do código funcionando no seu computador: 
 
 
 EXERCÍCIO 5 
ENUNCIADO: Crie um programa, em linguagem C, que receba 10 registros contendo, 
Nome, RU, telefone e email. Solicite que sejam digitados todos os dados de todos os 
registros 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. 
/* 
Crie um programa, em linguagem C, que receba 10 registros contendo, Nome, RU
, telefone 
email. Solicite que sejam digitados todos os dados de todos os registros e a
o 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 
*/ 
#include <stdio.h> 
#include <stdlib.h> 
 
struct registros{//Estrutura que irá armazenar as variáveis do Registro 
 char nome[40];//variável que vai armazenar o primeiro nome 
 double RU;//variável que vai armazenar o RU 
 double fone;//Variável que vai armazenar o número de telefone 
 char email[30];//Variável que vai armazenar o endereço de e-mail 
 }; 
int main (){ 
 int i;//Variável de controle (contagem, index) 
 struct registros R[10];//Chamando a Estrutura Registro, declarando a est
rutura de registro "R" com 10 posições 
 FILE *arquivo;//Declarando o arquivo com o ponteiro "arquivo" 
 arquivo=fopen("512410.csv","w");//Abrindo o arquivo do tipo .csv com meu
 RU sendo o nome,tipo de abertura: criar um nome ou sobrescrever o já existe
nte "w" 
 /* 
 Logo abaixo, estrutura if-
else que verifica se o arquivo foi aberto ou não 
 */ 
 if (arquivo == NULL) { 
 printf("ERRO! O arquivo não foi aberto!\n"); 
 }else { 
 printf("O arquivo foi aberto com sucesso!\n"); 
 } 
 /* 
 Laço for usado para pedir ao usuário que informe os dados de cada aluno,
 no total, serão 10 registros 
 */ 
 for(i=0;i<10;i++){ 
 printf("Informe o primeiro nome= "); 
 scanf("%s",&R[i].nome); 
 printf("\nInforme seu RU= "); 
 scanf("%d",&R[i].RU); 
 printf("\nInforme o numero de telefone= "); 
 scanf("%d",&R[i].fone); 
 printf("\nInforme seu email= "); 
 scanf("%s",&R[i].email); 
 } 
 /* 
 Laço for que escreve todoso os registros no arquivo "512410.csv" separan
do-os por ";"(ponto e vírgula) 
 */ 
 for(i=0;i<10;i++){ 
 fprintf(arquivo, "%s; %d; %d; %s",&R[i].nome,&R[i].RU,&R[i].fone,&R[
i].email); 
 } 
 fclose(arquivo);//Fechando o arquivo 
 
 system("pause"); 
 return 0; 
} 
 
Imagem do código funcionando no seu computador:

Outros materiais