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 VICTOR HUGO LINCK – RU: 2417235 PROF. WINSTON SEM LUN FUNG JUARA – MATO GROSSO 2022 1 EXERCÍCIO 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. #include <stdio.h> #include <locale.h> #include <stdlib.h> #include <conio.h> #include <string.h> //DECLARAÇÃO DE BIBLIOTECAS int main() { // FUNÇÃO MAIN PRINCIPAL setlocale(LC_ALL, "PORTUGUESE");//Para os caracteres ficarem em portugues printf("CADASTRO DE ALUNO\n\n"); struct cadastro_aluno { //CRIANDO STRUCT DE REGISTRO char nome[50]; int ru; }; struct cadastro_aluno aluno; int tamanho = 0, i; //FUNÇAO PARA DIMENSIONAR O TAMANHO DO NOME printf("\nDigite o nome do aluno: "); //ENTRAR COM O NOME DO ALUNO fgets(aluno.nome,49, stdin); printf("\nDigite o RU do aluno: "); //ENTRAR COM O RU DO ALUNO scanf_s("%d", &aluno.ru); printf("\nALUNO CADASTRADO\n"); //CONFIRMAÇÃO DE CADASTRO DO ALUNO printf("\nNome: %s", aluno.nome); printf("RU: %d", aluno.ru); printf("\n"); tamanho = strlen(aluno.nome); //FUNÇÃO PARA DIMENSIONAR O TAMANHO DO NOME if (aluno.ru % 2 == 0) { // DEFININDO SE O NÚMERO É PAR OU ÍMPAR printf("\nO RU é um número par\n", aluno.ru); } else { printf("\nO RU é um número ímpar\n", aluno.ru); } for (i = tamanho; i >= 0; i--) { //COLOCANDO O NOME DE TRÁS PARA FRENTE APÓS FAZER A CONTAGEM DOS CARACTERES printf("%c", aluno.nome[i]); } return 0; } PRINT DO EXERCÍCIO 1 2 EXERCÍCIO 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. Para demonstrar o funcionamento faça as capturas de tela do terminal utilizando seu RU #include <stdio.h> // DECLARAÇÃO DE BIBLIOTECA #include <locale.h> int main() // FUNÇÃO MAIN PRINCIPAL { setlocale(LC_ALL, "Portuguese"); // COLOCAR TODOS OS CARACTERES EM PORTUGUÊS int vetor[7], i, * ponteiro; // VETOR, VARIÁVEIS E PONTEIRO int numero_maior, numero_menor; // VARIÁVEL DE NÚMERO MAIOR E MENOR for (i = 0; i < 7; i++) // INSERIR OS NÚMEROS DO RU NO VETOR { printf("Informe um número de cada vez do seu RU: "); // INSERIR UM NUME- RO DE CADA VEZ DO RU NO PROGRAMA scanf_s("%d", &vetor[i]); // SALVAR NO VETOR OS NÚMEROS INSERIDOS DO RU } ponteiro = vetor; // ADICIONA OS NUMEROS DO VETOR NO PONTEIRO printf("\nVetor criado a partir do seu RU:\n"); // IMPRIMIR O VETOR CRIADO A PARTIR DOS NÚMEROS DO RU for (i = 0; i < 7; i++) { printf("\n[%d] = %d \n", i, ponteiro[i]); // IMPRIMIR TODOS OS NUMERO DO VETOR E SUA POSIÇÃO if (i == 0) { // DEFINIR QUAL É O MAIOR NÚMERO E O MENOR numero_maior = ponteiro[i]; numero_menor = ponteiro[i]; } else { if (ponteiro[i] > numero_maior) { numero_maior = ponteiro[i]; } if (ponteiro[i] < numero_menor) { } } } printf("\nMaior número no vetor: %d", numero_maior); // IMPRIMIR O MAIOR NÚMERO DO VETOR printf("\nMenor número no vetor: %d", numero_menor); // IMPRIMIR O MENOR NÚMERO DO VETOR return 0; } PRINT DO EXERCÍCIO 2 3 EXERCÍCIO 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 pe- rí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: Para demonstrar o funcionamento faça os print de tela utilizando o primeiro número do seu RU. #include <stdio.h> // DECLARAÇÃO DE BIBLIOTECA #include <math.h> #include <locale.h> void calc_hexa(float L, float* area, float* perimetro) { // FUNÇÃO PARA CALCULAR O PERÍMETRO E A ÁREA DO HEXAGONO *area = (3 * pow(L, 2) * sqrt(3)) / 2; // EQUAÇÃO PARA CALCULAR A ÁREA *perimetro = 6 * L; // EQUAÇÃO PARA CALCULAR O PERÍMETRO } int main() { // FUNÇÃO PRINCIPAL MAIN setlocale(LC_ALL, "Portuguese"); // DEIXAR TODOS OS CARACTERES EM PORTU- GUÊS float lado, area, perimetro; // PONTOS PARA ARMAZENAR OS NÚMEROS printf("Digite o valor do lado (L) do hexagono:"); // INSERIR O VALOR DO LADO scanf_s("%f", &lado); while (lado >= 0) { // LAÇO PARA FUNCIONAR O PROGRAMA ATÉ QUE SEJA DIGITADO UM VALOR NEGATIVO calc_hexa(lado, &area, &perimetro); printf("\n O lado do hexagono é %.2f", lado); // IMPRIMIR OS RESULTADOS printf("\n A área é igual a %.2f", area); printf("\n E o perímetro é igual a %.2f \n", perimetro); printf("\n Digite o valor do lado (L) do hexagono:"); scanf_s("%f", &lado); } return 0; } PRINT DO EXERCÍCIO 3 4 EXERCÍCIO 4 Faça um programa, 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ção sucessivas. Para demonstrar o funcionamento utilize o primeiro digito do seu RU como base e o úl- timo digito como expoente. #include <stdio.h> // DECLARAÇÃO DE BIBLIOTECA #include <locale.h> int potencia(int base, int expoente); // DECLARAÇÃO DAS FUNÇÕES int main() { // FUNÇÃO PRINCIPAL MAIN int base = 0, expoente = 0, resultado; setlocale(LC_ALL, "Portuguese"); // COLOCAR TODOS OS CARACTERES EM PORTUGUES printf("O PRIMEIRO NÚMERO DO SEU RU SERÁ A BASE E O ÚLTIMO SERÁ O EXPOEN- TE\n\n"); // INFORMAR O PROCEDIMENTO printf("Informe o primeiro digito do RU que será a BASE: \n\n"); // INFORMAR O PRIMEIRO DIGITO scanf_s("%d", &base); // GUARDAR O DIGITO NA VARIÁVEL printf("\n\nInforme o último digito do RU que será o expoente: \n\n"); // INFOR- MAR O ÚLTIMO DIGITO scanf_s("%d", &expoente); // GUARDAR O DIGITO NA VARIÁVEL resultado = potencia(base, expoente); // DECLARAR QUE O RESULTADO É O PRODUTO DA BASE E DO EXPOENTE printf("\n\nO resultado da potênciação de %d elevado a %d é igual a %d\n\n", base, expoente, resultado); // IMPRIMIR O RESULTADO return 0; } int potencia(int base, int expoente) { // DECLARAR QUE QUANDO O EXPOENTE FOR 0, O RESULTADO SERÁ 1 SEMPRE if (expoente == 0) return 1; else return (base * potencia(base, expoente - 1)); } PRINT DO EXERCÍCIO 4 5 EXERCÍCIO 5 Crie um programa, em linguagem C, que receba 10 registros contendo, Nome, RU, tele- fone e-mail. Solicite que sejam digitados todos os dados de todos os registrose 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. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> // DECLARAR BIBLIOTECA #include <stdlib.h> #include <locale.h> #include <string.h> #include <Windows.h> typedef struct { // DEFINIR ESTRUTURA char nome[100], email[100], fone[100]; // CRIANDO AS VARIÁVEIS int *ru; // CRIANDO UMA VARIÁVEL INTEIRA EM PONTEIRO }DADOS; int main() { // FUNÇÃO PRINCIPAL MAIN char ch; setlocale(LC_ALL, "Portuguese"); // DEIXAR TODOS OS CARACTERES EM PORTUGUES int cont = 0, i; // VARIAVEIS DADOS dados[10], * aluno; aluno = dados; // SALVAR OS DADOS DO ALUNO FILE* arquivo; // CRIANDO O ARQUIVO fopen_s(&arquivo, "2417235.csv", "w"); // CRIANDO O ARQUIVO for (int i = 0; i < 10; i++) { // DEFININDO O NÚMERO DE CADASTROS printf("CADASTRO DO ALUNO %d\n", cont + 1); printf("Nome do aluno: "); // INSERIR O NOME fgets(aluno->nome, 100, stdin); // SALVAR O NOME ch = getchar(); fprintf(arquivo, "%s;", aluno->nome); // IMPRIMIR NO ARQUIVO printf("Email do aluno: "); fgets(aluno->email, 100, stdin); ch = getchar(); fprintf(arquivo, "%s;", aluno->email); printf("Telefone do aluno: "); fgets(aluno->fone, 100, stdin); ch = getchar(); fprintf(arquivo, "%s;", aluno->fone); printf("RU do aluno: "); scanf_s("%d", &aluno->ru); ch = getchar(); fprintf(arquivo, "%d", aluno->ru); cont++; printf("\n===========================================\n"); } fclose(arquivo); // FECHAR OS ARQUIVOS printf("\n TODOS OS DADOS FORAM SALVOS COM SUCESSO"); return 0; } PRINT 1 DO EXERCÍCIO 5 PRINT 2 DO EXERCÍCIO 5
Compartilhar