Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA ANALISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA DE LINGUAGEM DE PROGRAMAÇÃO ATIVIDADE PRÁTICA ALEXANDRE COSTA XISTO – RU: 3228231 SANDRO DE ARAUJO SANTOS – SÃO PAULO 2022 1 1 EXERCÍCIO 1 (EXEMPLO) ENUNCIADO: Fazer um programa em linguagem C que receber 3 valores inteiros do usu- ário e mostra a sua média na tela (que pode não ser inteira). Como dado de entrada, utilize os três últimos valores do seu RU. 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 main() { int x, y, z; //VARIÁVEIS DE ENTRADA float media; //VARIAVEL PARA A MÉDIA DEVE SER FLOAT, POIS A RESPOSTA PODE SER COM VIRGULA printf("RU do aluno: 1234567\n"); printf("Digite um valor:"); //Antepenultimo valor do RU scanf_s("%d", &x); printf("Digite um valor:"); //Penultimo valor do RU scanf_s("%d", &y); printf("Digite um valor:"); //Ultimo valor do RU scanf_s("%d", &z); media = (x + y + z) / 3; //FAZ A MEDIA printf("Resposta: %.2f\n", media); system("pause"); return 0; } Imagem do código funcionando no seu computador: PRÁTICA 01 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 fun- cionamento faça as capturas de tela do terminal utilizando seu nome completo e o seu RU. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> int main() { setlocale(LC_ALL, "portuguese"); int divisao; //Para realizarmos a operação de Par e Impar int *valor; //Criação de registro de ponteiro da struct int i, tamanho; //Variaveis para inverter o nome char strings[200]; typedef struct { char nome[50]; int n; } cadastro; cadastro a1; cadastro *ptrcadastro = &a1; //ptrcadastro é o ponteiro do tipo cadastro //Recebe o endereço de a1 printf("Digite seu nome: "); fgets(a1.nome, 50, stdin); //como estamos lendo do teclado a entrada é stdin (entrada padrão), printf("Digite o nome para inversão: "); fgets(strings, 200, stdin); tamanho = strlen(strings); printf("Digite um numero: "); scanf_s("%d", &a1.n); printf("Nome Invertido abaixo:"); for (i = tamanho; i >= 0; i--) { printf("%c", strings[i]); } printf("\n"); divisao = a1.n / 2; if (a1.n == divisao * 2){ printf("%s O seu numero é par", a1.nome); } else { printf("%s O seu numero é Impar", a1.nome); } return 0; } PRÁTICA 02 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 po- sição de um vetor. ✓ Utilizando ponteiro para o vetor 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 utili- zando seu RU. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> #define tam 6 int main() { setlocale(LC_ALL, "portuguese"); int* prt; //criando um ponteiro int vet[tam]; //variavel para armazenar elementos int i = 0; //variavel auxiliar do FOR int menor, maior = 0; prt = vet[tam]; for (i = 0; i <= tam; i++) { //preenchendo o vetor printf("Digite seu RU de 7 digitos: "); scanf_s("%d", &vet[i]); } //encontrando o maior vetor maior = vet[0]; for (i = 1; i < tam; i++) { if (vet[i] > maior) { //verifica se o valor é maior que o valor e atua- liza maior = vet[i]; } } //encontrando o menor vetor menor = vet[0]; for (i = 1; i < tam; i++) { if (vet[i] < menor) { //verifica se o valor é menor que o valor e atua- liza menor = vet[i]; } } printf("\nVetor: "); for (i = 0; i < tam; i++) { printf("%i ", vet[i]); } printf("\nMaior valor: %i\n", maior); printf("\nMenor valor: %i\n", menor); system("pause"); return 0; } PRÁTICA 03 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 como valor para o lado. #include <stdio.h> //Biblioteca para acessar os comandos básicos de STDIO #include <stdlib.h> #include <math.h> void calc_hexa(float L, float *area, float* perimetro) { //Criado um ponteiro para receber o calculo da área *area = 3 * pow(L, 2) * sqrt(3) / 2; //area recebe o calculo feito do peri- metro *perimetro = 6 * L; } int main() { float L, perimetro, area; printf_s("Digite o lado: "); //Armazena o lado do hexagono scanf_s("%f", &L); if (L <= -1) { /*Caso o usuario não digite um valor válido é criada uma condição de sáida.*/ printf_s("Digite um valor positivo!\n"); system("pause"); exit(1); } else { calc_hexa(L, &area, &perimetro); printf_s("A area eh de: %.2f\n", area); printf_s("O perimetro eh de: %.2f\n", perimetro); } system("pause"); return 0; } PRÁTICA 04 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 funcio- namento utilize o primeiro digito do seu RU como base e o último digito como expoente. #include <stdio.h> #include <stdlib.h> #include <locale.h> int multiplica(int valor, int base, int cont, int exp); int main() { setlocale(LC_ALL, "portuguese"); int base, expoente, resultado; //As variaveis para criar o calculo de poten- ciação printf("Digite a base: "); //Entrada de dados scanf_s("%d", &base); printf("Digite o expoente: "); scanf_s("%d", &expoente); resultado = multiplica(base, base, 2, expoente); printf("%d", resultado); //imprimi o resultado do calculo return 0; } int multiplica(int valor, int base, int cont, int exp) { //função para o calculo da potenciação. if (exp == 0) { return 1; } if (exp == 1) { return base; } if (exp == 2) { //calculo da potenciação inicia aqui. return base * base; } while (cont <= exp) { if (cont == 2) { valor = base * base; cont++; multiplica(valor,base, cont, exp); } else { valor = valor * base; cont++; multiplica(valor, base, cont, exp); } } return valor; system("pause"); } PRÁTICA 05 Crie um programa, em linguagem C, que receba 10 registros contendo: Nome, RU, telefone e e-mail. Solicite que sejam digitados todos os dados de todos os registros e ao final salve-os em um arquivo com a extensão 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> #include <locale.h> #include <conio.h> //Acrescentando esta biblioteca para pausar o programa. #define TAMANHO_NOME 150 #define TAMANHO_TELEFONE 20 #define TAMANHO_EMAIL 255 #define QUANTIDADE_MATRICULAS 10 // Estrutura com os dados da matricula struct matricula { char nome[TAMANHO_NOME]; char telefone[TAMANHO_TELEFONE]; char email[TAMANHO_EMAIL]; int numero; }; int main(void) { FILE* pont_arq; pont_arq = fopen_s("3228231.txt", "w"); setlocale(LC_ALL, "portuguese"); int contador; struct matricula matriculas[QUANTIDADE_MATRICULAS]; // Pega as informações for (contador = 0; contador < QUANTIDADE_MATRICULAS; contador++) { printf("Digite seu nome:"); fgets(matriculas[contador].nome, TAMANHO_NOME, stdin); printf("Digite seu RU:"); scanf_s("%d%*c", &matriculas[contador].numero); printf("Digite seu telefone:"); fgets(matriculas[contador].telefone, TAMANHO_TELEFONE, stdin); printf("Digite seu email:"); fgets(matriculas[contador].email, TAMANHO_EMAIL, stdin); } // Mostra as informações for (contador = 0; contador < QUANTIDADE_MATRICULAS; contador++) { printf("\n\tInformacoes do aluno\n"); printf("RU:%d\n", matriculas[contador].numero); fprintf(pont_arq, matriculas[contador].numero); printf("Nome:%s", matriculas[contador].nome); fprintf(pont_arq, matriculas[contador].nome); printf("Telefone:%s", matriculas[contador].telefone); fprintf(pont_arq, matriculas[contador].telefone); printf("Email:%s", matriculas[contador].email); fprintf(pont_arq, matriculas[contador].email); } getchar(); return(0); }
Compartilhar