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