Prévia do material em texto
Caderno de Resolução da Atividade Prática de Linguagem de Programação ( CADERNO DE RESPOSTAS DA ATIVIDADE PRÁTICA DE: Linguagem de Programação ALUNO: Ricardo Siqueira de Oliveira RU : 2151254 ) ( ANO 202 4 ) ( Prof. Winston Sen Lun Fung, Esp. ) 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 ->larbaCseravlAordeP Para demonstrar o funcionamento faça as capturas de tela do terminal utilizando seu nome completo e o seu RU. Apresentação do código-fonte: #include #include typedef struct { char nomeCompleto[100]; int RU; } Aluno; int main() { // Criar registro do aluno Aluno aluno; // Solicitar nome completo printf("Digite seu nome completo: "); fgets(aluno.nomeCompleto, sizeof(aluno.nomeCompleto), stdin); // Remover caractere de nova linha do nome aluno.nomeCompleto[strcspn(aluno.nomeCompleto, "\n")] = '\0'; // Solicitar RU char buffer[10]; printf("Digite seu RU: "); fgets(buffer, sizeof(buffer), stdin); // Converter string para inteiro aluno.RU = atoi(buffer); // Verificar se o RU é par ou ímpar if (aluno.RU % 2 == 0) { printf("O RU %d é par.\n", aluno.RU); } else { printf("O RU %d é ímpar.\n", aluno.RU); } // Inverter nome completo char nomeInvertido[100]; int i, j; j = strlen(aluno.nomeCompleto) - 1; for (i = 0; i #include #define TAM 7 // Tamanho do vetor // Função para encontrar o maior valor no vetor int encontrarMaior(int* vetor, int tamanho) { int maior = *vetor; // Inicializa com o primeiro elemento do vetor for (int i = 1; i maior) { maior = *(vetor + i); } } return maior; } // Função para encontrar o menor valor no vetor int encontrarMenor(int* vetor, int tamanho) { int menor = *vetor; // Inicializa com o primeiro elemento do vetor for (int i = 1; i = 0; i--) { vetor[i] = ru % 10; // Obtém o último dígito ru /= 10; // Remove o último dígito } // Encontra o maior e o menor número no vetor usando ponteiros int maior = encontrarMaior(vetor, TAM); int menor = encontrarMenor(vetor, TAM); // Imprime o resultado printf("Maior número no vetor: %d\n", maior); printf("Menor número no vetor: %d\n", menor); return 0; } IV. Apresentar a captura de tela evidenciando o funcionamento: 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_hexaque 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: voidcalc_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. V. Apresentação do código-fonte: #include #include #include #include // Protótipo da função calc_hexa void calc_hexa(float l, float* area, float* perimetro); int main() { char input[20]; float lado; float area, perimetro; char* endptr; while (1) { printf("Digite o lado do hexágono: "); if (fgets(input, sizeof(input), stdin) != NULL) { // Remove o caractere de nova linha se estiver presente input[strcspn(input, "\n")] = '\0'; // Converte a string para float lado = strtof(input, &endptr); // Verifica se a conversão foi bem-sucedida e se toda a string foi convertida if (endptr == input || *endptr != '\0') { printf("Entrada inválida. Por favor, digite um número.\n"); continue; } if (lado #include // Protótipo da função recursiva para calcular potenciação int potencia(int base, int exp); int main() { char input[20]; int base, exp, resultado; char* endptr; // Solicita ao usuário que digite a base printf("Digite a base: "); if (fgets(input, sizeof(input), stdin) != NULL) { base = strtol(input, &endptr, 10); } else { printf("Erro ao ler a entrada.\n"); return 1; } // Solicita ao usuário que digite o expoente printf("Digite o expoente: "); if (fgets(input, sizeof(input), stdin) != NULL) { exp = strtol(input, &endptr, 10); } else { printf("Erro ao ler a entrada.\n"); return 1; } // Calcula a potência usando a função recursiva resultado = potencia(base, exp); // Imprime o resultado da potência calculada printf("%d elevado a %d é %d\n",base, exp, resultado); return 0; } // Função recursiva para calcular a potência int potencia(int base, int exp) { // Caso base: qualquer número elevado a 0 é 1 if (exp == 0) { return 1; } // Caso base: qualquer número elevado a 1 é ele mesmo if (exp == 1) { return base; } // Chamada recursiva return base * potencia(base, exp - 1); } VIII. Apresentar a captura de tela evidenciando o funcionamento: PRÁTICA 05 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 [N°_DO_RU.CSV]. ATENÇÃO: ASSISTA OS VIDEOS DA AULA 8 – MATERIAL COMPLEMENTAR. IX. Apresentação do código-fonte: #include #include #include #define NUM_RECORDS 10 // Define o número de registros a serem coletados #define FILE_NAME "2151254.csv" // Define o nome do arquivo de saída // Estrutura para armazenar os dados de cada registro typedef struct { char nome[50]; char ru[20]; char telefone[20]; char email[50]; } Registro; // Função para coletar dados dos registros void coletarDados(Registro registros[], int num) { for (int i = 0; i