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 ELÉTRICA DISCIPLINA DE LINGUAGEM DE PROGRAMAÇÃO ATIVIDADE PRÁTICA EDUARDO MORAES– RU: 3346946 PROF. VINICIUS POZZOBON BORIN BAGÉ - RS 2021 1 1- 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 //Seção das bibliotecas #include <stdio.h> #include <locale.h> //criação da Struct Registro a onde irá receber o nome e ru typedef struct { char nomeCompletoAluno[200]; int ruAluno; }ALUNO; ALUNO a; //função main principal int main(){ ALUNO* aluno = &a; int tamanho = 0, aux; setlocale(LC_ALL, "Portuguese");//Função para os caracteres ficarem em português printf("\n\tInforme nome completo: ");//recebe o nome gets(aluno->nomeCompletoAluno); fflush(stdin); printf("\n\tInforme o RU: ");//recebe RU scanf_s("%d", &aluno->ruAluno); tamanho = strlen(aluno->nomeCompletoAluno);//tamanho do nome //verifica se Par ou Ímpar o RU if (aluno->ruAluno % 2 == 0) { printf("\nRU %d e número par\n", aluno->ruAluno); } else { printf("\nRU %d e numero Impar\n", aluno->ruAluno); } //Função igual a O imprime de traz para frente for (aux = tamanho; aux >= 0; aux--) { printf("%c", aluno->nomeCompletoAluno[aux]); } return 0; } //finaliza o programa Imagem do código no computador: 2- 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. //Seção das bibliotecas necessárias para rodar o programa #include<stdio.h> #include <locale.h> //função principal main int main() { //Seção para os caracteres ficarem em português setlocale(LC_ALL, "Portuguese"); //O vetor e o ponteiro e as variáveis para rodar o programa int adicionaRuVetor[7], aux, * ptr; int maiorNumeroRu, menorNumeroRu; //o for vai rodar para inserir os números no vetor for (aux = 0; aux < 7; aux++) { printf("\n\tInforme um número para inserir no vetor: "); scanf_s("%d", & adicionaRuVetor[aux]);//vai salvar no vetor os adicionaRuVetor } //vai colocar os adicionaRuVetordo vetor adicionaRuVetor ponteiro ptr = adicionaRuVetor; printf("\nVetor Preenchido com RU:\n"); //vai mostrar o vetor preenchido com os números informados pelo usuário for (aux = 0; aux < 7; aux++) { //vai mostrar por cada posição do vetor printf("\n[%d] = %d ", aux, ptr[aux]); if (aux == 0) { maiorNumeroRu= ptr[aux]; menorNumeroRu= ptr[aux]; } else { if (ptr[aux] > maiorNumeroRu) { maiorNumeroRu= ptr[aux]; } if (ptr[aux] < menorNumeroRu) { menorNumeroRu= ptr[aux]; } } } printf("\n\tMaior número no Vetor: %d", maiorNumeroRu); printf("\n\tMenor número no Vetor: %d", menorNumeroRu); return 0; } Imagem do código no computador: 3- 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: #include<stdio.h> #include<math.h> #include <locale.h> // função para calcular area e o perimetro void calc_hexa(float l, float* area, float* per) { *per = 6 * l; *area = (3 * pow(l, 2) * sqrt(3)) / 2; } int main() { setlocale(LC_ALL, "Portuguese");//para os caracteres ficarem em português float ladoPerim, areaPerim, perimetro; printf("\n\tDigite o lado do hexagono:"); scanf_s("%f", &ladoPerim); while (ladoPerim> 0) {//laço para rodar ate que seja maior que zero calc_hexa(ladoPerim, &areaPerim, &perimetro); printf("\na área e o perímetro do hexagono regular de lado %.2f e igual a %.2f \nE o perímetro %.2f", ladoPerim, areaPerim, perimetro); printf("\n\n\tDigite o lado do hexagono:"); scanf_s("%f", &ladoPerim); } return 0; } 4- 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. #include <stdio.h> #include <locale.h> int calcularPotencia(int valorBase, int valorExpoente); int main() { setlocale(LC_ALL, "Portuguese");//para os caracteres ficarem em português int valorBase = 3, valorExpoente = 6, resultado; printf("\n\tInforme o número da Base: "); scanf_s("%d", &valorBase);//recebe o valor da base printf("\n\tInforme o número do expoente: "); scanf_s("%d", &valorExpoente);//recebe o valor do expoente resultado = calcularPotencia(valorBase, valorExpoente);//recebe o valor do calculo printf("\n\tPotenciaação de %d elevado a %d = %d", valorBase, valorExpoente, resultado); return 0; } //função recursiva para calcular a potencia int calcularPotencia (int valorBase, int valorExpoente){ if (valorExpoente == 0) return 1; else return (valorBase * calcularPotencia (valorBase, valorExpoente - 1)); } 5- 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 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. //Declaração das bibliotecas para rodar o programa de cadastro de ALUNOS #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 nomeAluno[200], emailAluno[30], foneAluno[30]; int ruAluno; } ALUNO; //função principal do programa int main(){ //as variáveis necessárias para executar o programa int menuOpcao, contador = 0, i; //vai criar a ALUNO ALUNO ALUNO[10], * cadastroAluno, temp; cadastroAluno = ALUNO;//vai criar uma estrutura // salvar os dados cadastrados da ALUNO FILE* arquivo = fopen("3346946.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 { printf("\n\tSISTEMA DE CADASTRO DE ALUNO\n"); // menu_opcao vai receber da função do menu escolhido pelo usuário menuOpcao = menu(); getchar(); //vai verificar qual foi a opção escolhida pelo usuário switch (menuOpcao) { //Opção de cadastro das ALUNOS 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(cadastroAluno[contador].nomeAluno);//nomefflush(stdin); printf("email: "); gets(cadastroAluno[contador].emailAluno);//e-mail fflush(stdin); printf("fone: "); gets(cadastroAluno[contador].foneAluno);//e-mail fflush(stdin); printf("RU: "); scanf_s("%f", &cadastroAluno[contador].ruAluno);//preço contador++; printf("\n============================================\n"); } else {//se tive mais que 10 cadastro de ALUNOS printf("\n\n\tOs ALUNOS estão todos 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;", cadastroAluno[i].nomeAluno); //vai salvar o nome fprintf(arquivo, "%s;", cadastroAluno[i].emailAluno); //vai salvar o e-mail fprintf(arquivo, "%s;", cadastroAluno[i].foneAluno); //vai salvar o fone fprintf(arquivo, "%d;", cadastroAluno[i].ruAluno); //vai salvar o preço fprintf(arquivo, "\n"); //vai salvar o arquivo } fclose(arquivo);//vai fechar printf("\n\tARQUIVO FOI SALVO COM SUCESSO\n"); break; //opção a onde vai sair do programa case 0://vai sair do programa printf("\n\tFinalizando o sistema de cadastro de ALUNOS\n"); break; //caso o usuário tenha escolhido uma opção invalida default://opção invalida printf("\n Opção Invalida\n"); break; } } while (menuOpcao != 0);//vai rodar até o usuário escolha uma opção diferente de 0 return 0; } //criação da função menu para poder realizar a escolha das opções para controlar a ALUNO int menu() { int menu;//vai receber a opção escolhida pelo usuário printf("\n\t1-Cadastro\n\t2-Salvar\n\t0-sair\n"); scanf_s("%d", &menu); return menu;//vai retornar a opção escolhida pelo usuário }
Compartilhar