Buscar

Caderno de Resolucao de Atividade Pratica LP 2023

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CADERNO DE RESPOSTAS DA 
ATIVIDADE PRÁTICA DE: 
Linguagem de Programação 
 
ALUNO: LUCIANO CAMATTI RU:4233945 
 
Prof. Winston Sen Lun Fung, Esp. 
ANO 
2023 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
1 
 
PRÁTICA 01 
 
Escreva um programa em C que solicite ao aluno que digite seu nome completo 
e os sete dígitos do seu RU. O programa deve verificar se o último dígito do RU 
é igual ao último dígito do ano atual. Se forem iguais, exiba a mensagem "Aluno 
[NOME DO ALUNO], seu RU está autenticado". Caso contrário, exiba a 
mensagem "Aluno [NOME DO ALUNO], seu RU não está autenticado". 
Para demonstrar o funcionamento faça as capturas de tela do terminal de 
execução. 
I. Apresentação do código-fonte (colorido): 
 
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#include <time.h> 
#include <string.h> 
 
int main() { 
 char nome[100]; 
 int ru; 
 int ultimoDigitoRU; 
 int ultimoDigitoAno; 
 
 printf("DIGITE SEU NOME COMPLETO: "); // solicita nome completo. 
 fgets(nome, sizeof(nome), stdin); 
 nome[strcspn(nome, "\n")] = '\0'; // Remove o caractere '\n' do final do 
nome 
 printf("DIGITE SEU RU(sete digitos): ");// Solicita ru. 
 scanf("%d", &ru); 
 ultimoDigitoRU = ru % 10;// Obtém o último dígito do ru. 
 time_t now = time(NULL); // extrai ultimo dígito do ano. 
 struct tm * localTime = localtime(&now); 
 ultimoDigitoAno = localTime->tm_year % 10; 
 if (ultimoDigitoRU == ultimoDigitoAno) { // compara últimos dígitos do ru e 
do ano atual. 
 printf("ALUNO %s, SEU RU ESTA AUTENTICADO.\n", nome); 
 } 
 else { 
 printf("ALUNO %s, SEU RU NAO ESTA AUTENTICADO.\n", nome); 
 } 
 return 0; 
} 
II. Apresentar a captura de tela evidenciando o funcionamento: 
 
 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
2 
 
 
 
PRÁTICA 02 
 
Escreva um programa em C que declare uma estrutura chamada "Aluno" contendo 
os seguintes campos: nome (string) e nota (float). Solicite ao aluno que digite seu 
nome completo e a nota de uma prova. Em seguida, utilize o primeiro dígito do RU 
do aluno para calcular sua média final, adicionando-o à nota da prova. Exiba na tela 
a mensagem "Aluno [NOME DO ALUNO], sua média final é [MÉDIA FINAL]". 
Para demonstrar o funcionamento faça as capturas de tela do terminal de execução. 
III. Apresentação do código-fonte (colorido): 
#define _crt_secure_no_warnings 
#include <stdio.h> 
#include <string.h> 
 
struct Aluno { 
 char nome[100]; 
 float nota; 
}; 
int main() { 
 struct Aluno aluno; 
 int primeiroDigitoRU=4; 
 float mediaFinal; 
 
 printf("DIGITE SEU NOME COMPLETO: "); 
 fgets(aluno.nome, sizeof(aluno.nome), stdin); 
 aluno.nome[strcspn(aluno.nome, "\n")] = '\0'; 
 printf("DIGITE A NOTA DA PROVA: "); 
 scanf_s("%f", &aluno.nota); 
 mediaFinal = aluno.nota + primeiroDigitoRU; 
 printf("%s,SUA MEDIA FINAL E %.2f\n", aluno.nome, mediaFinal); 
 
 return 0; 
} 
IV. Apresentar a captura de tela evidenciando o funcionamento: 
 
 
 
 
 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
3 
 
PRÁTICA 03 
 
Escreva um programa em C que leia um número inteiro positivo do usuário e exiba 
a sequência de Fibonacci até esse número. A sequência de Fibonacci é uma 
sequência em que cada número é a soma dos dois anteriores: 
0, 1, 1, 2, 3, 5, 8, 13, ... 
 
Demonstre a execução utilizando para o valor alvo da sequência o número formado 
pela somatória do primeiro dígito com o penúltimo digito do seu RU. Para 
demonstrar o funcionamento faça as capturas de tela do terminal de execução 
V. Apresentação do código-fonte (colorido): 
#include <stdio.h> 
 
int main() { 
 int num, pri = 0, seg = 1, prox = 0; 
 
 printf("DIGITE A SOMATORIA DO PRIMEIRO COM PENULTIMO DIGITO DO SEU RU: "); 
 scanf_s("%d", &num); 
 
 printf("SEQUENCIA DE FIBONACCI ATE %d:\n", num); 
 printf("%d, %d, ", primeiro, segundo); // exibe números da sequência 
 proximo = primeiro + segundo; 
 while (prox <= num) { 
 printf("%d, ", prox);// exibi a sequência até que o próximo número seja maior 
que o número informado 
 pri = seg; 
 seg = prox; 
 prox = pri + seg; 
 } 
 printf("\n"); 
 return 0; 
} 
VI. Apresentar a captura de tela evidenciando o funcionamento: 
 
 
 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
4 
 
PRÁTICA 04 
 
Escreva um programa em linguagem C que solicite ao aluno que digite o número de 
notas que deseja calcular a média. Em seguida, peça que o aluno digite as notas 
separadas por espaços. O programa deve armazenar as notas em um vetor e utilizar 
uma função chamada calcularMedia() para calcular a média das notas. 
O protótipo da função calcularMedia() é o seguinte: 
float calcularMedia(float notas[], int tamanho); 
 
A função calcularMedia() deve receber como parâmetros um vetor de notas (notas[]) 
e o tamanho do vetor (tamanho). Ela deve calcular a média das notas e retornar o 
resultado como um valor de ponto flutuante (float). 
 
No programa principal, após obter as notas e armazená-las no vetor, chame a função 
calcularMedia() passando o vetor de notas e o tamanho como argumentos. 
Armazene o resultado retornado pela função em uma variável e, em seguida, exiba 
o valor da média na tela. 
 
Para demonstrar o funcionamento utilize o vetor com os números do seu RU. 
Capture a tela do terminal de execução 
VII. Apresentação do código-fonte (colorido): 
 
#define use_crt_secure_no_warnings 
 
#include <stdio.h> 
#include <stdlib.h> 
 
float calcularMedia(float notas[], int tamanho); 
 
int main() { 
 int quantidadeNotas; 
 
 printf("DIGITE A QUANTIDADE DE NOTAS QUE DESEJA CALCULAR A MEDIA: "); 
 scanf_s("%d", &quantidadeNotas); 
 
 float* notas = (float*)malloc(quantidadeNotas * sizeof(float)); 
 
 printf("DIGITE AS NOTAS SEPARADAS POR ESPACO: "); 
 for (int i = 0; i < quantidadeNotas; i++) { 
 scanf_s("%f", &notas[i]); 
 } 
 
 float media = calcularMedia(notas, quantidadeNotas); 
 
 printf("A MEDIA DAS NOTAS E: %.2f\n", media); 
 
 free(notas); // Liberar a memória alocada 
 
 return 0; 
} 
 
float calcularMedia(float notas[], int tamanho) { 
 float soma = 0; 
 
 for (int i = 0; i < tamanho; i++) { 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
5 
 
 soma += notas[i]; 
 } 
 
 float media = soma / tamanho; 
 return media; 
} 
VIII. Apresentar a captura de tela evidenciando o funcionamento: 
 
 
PRÁTICA 05 
 
Escreva um programa em C que implemente o jogo da forca. O programa deve ler 
uma palavra aleatória de um arquivo chamado "palavras.txt" e permitir que o 
jogador tente adivinhar a palavra, fornecendo letras como palpites. O programa 
deve exibir o estado atual da palavra, com as letras corretas adivinhadas e os 
espaços para as letras não descobertas. O jogador tem um número limitado cinco 
erros antes de ser enforcado. 
Para demonstrar o funcionamento mostre o conteúdo do arquivo “palavras.txt” e o 
terminal de execução do programa. 
IX. Apresentação do código-fonte (colorido): 
 
#define use_CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <time.h> 
 
#define MAX_PALAVRA 100 
#define MAX_ERROS 5 
 
void limparTela() { 
 
 system("cls"); 
} 
 
void exibirForca(int erros) { 
 printf(" _____\n"); 
 printf("| |\n"); 
 
 if (erros >= 1) { 
 printf("| O\n"); 
 } 
 else { 
 printf("|\n"); 
 } 
 
 if (erros >= 2) { 
 printf("| /"); 
 } 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
6 
 
 else { 
 printf("|"); 
 } 
 
 if (erros >= 3) { 
 printf("|\\"); 
 } 
 
 printf("\n"); 
 
 if (erros >= 4) { 
 printf("| |\n"); 
 } 
 else { 
 printf("|\n");} 
 
 if (erros >= 5) { 
 printf("| / "); 
 } 
 else { 
 printf("|"); 
 } 
 
 if (erros >= 6) { 
 printf("\\\n"); 
 } 
 else { 
 printf("\n"); 
 } 
 
 printf("|\n"); 
 printf("|\n"); 
} 
 
int main() { 
 FILE* arquivoPalavras; 
 char palavra[MAX_PALAVRA]; 
 
 if (fopen_s(&arquivoPalavras, "palavras.txt", "r") != 0) { // ABRI o arquivo 
"palavras.txt" 
 printf("ERRO ARQUIVO palavras.txt NAO ENCONTRADO.\n"); 
 return 1; 
 } 
 
 int numPalavras = 0; 
 char linha[MAX_PALAVRA]; 
 while (fgets(linha, MAX_PALAVRA, arquivoPalavras) != NULL) { // Conta o número de 
palavras 
 numPalavras++; 
 } 
 
 srand(time(NULL)); 
 int indicePalavra = rand() % numPalavras; // escolhe a palavra 
 
 rewind(arquivoPalavras); 
 
 for (int i = 0; i <= indicePalavra; i++) { 
 fgets(palavra, MAX_PALAVRA, arquivoPalavras); // le a palavra 
 } 
 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
7 
 
 palavra[strcspn(palavra, "\n")] = '\0'; 
 
 
 fclose(arquivoPalavras); // fecha o arquivo 
 
 char palavraAdivinhada[MAX_PALAVRA]; 
 memset(palavraAdivinhada, '_', strlen(palavra)); // inicializa a palavra 
adivinhada 
 palavraAdivinhada[strlen(palavra)] = '\0'; 
 
 int numErros = 0; 
 char letrasUsadas[MAX_PALAVRA]; 
 memset(letrasUsadas, 0, sizeof(letrasUsadas)); 
 
 limparTela(); 
 printf("SEJA BEM VINDO AO JOGO DA FORCA!\n"); // começo do jogo 
 printf("ADIVINHE A PALAVRA PARA NAO MORRER ENFORCADO!:\n\n"); 
 
 while (numErros < MAX_ERROS) { 
 exibirForca(numErros); 
 printf("Palavra: %s\n", palavraAdivinhada); 
 
 char letra; 
 printf("DIGITE UMA LETRA: "); 
 scanf_s(" %c", &letra, sizeof(letra)); 
 
 int letraRepetida = 0; 
 for (int i = 0; i < strlen(letrasUsadas); i++) { 
 if (letrasUsadas[i] == letra) { 
 letraRepetida = 1; 
 break; 
 } 
 } 
 
 if (letraRepetida) { 
 printf("VOCE JA DIGITOU ESSA LETRA. POR FAVOR TENTE OUTRA.\n"); 
 continue; 
 } 
 
 letrasUsadas[strlen(letrasUsadas)] = letra; 
 letrasUsadas[strlen(letrasUsadas)] = '\0'; 
 
 int acertou = 0; 
 for (int i = 0; i < strlen(palavra); i++) { 
 if (palavra[i] == letra) { 
 palavraAdivinhada[i] = letra; 
 acertou = 1; 
 } 
 } 
 
 if (!acertou) { 
 numErros++; 
 printf("A LETRA '%c' NAO ESTA NA PALAVRA.\n", letra); 
 } 
 
 if (strcmp(palavra, palavraAdivinhada) == 0) { 
 exibirForca(numErros); 
 printf("PARABENS! VOCE ACERTOU A PALAVRA: %s\n", palavra); 
 break; 
 } 
 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
8 
 
 limparTela(); 
 } 
 
 if (numErros >= MAX_ERROS) { 
 exibirForca(numErros); 
 printf("VOCE FOI ENFORCADO! A PALAVRA ERA: %s\n", palavra); 
 } 
 
 return 0; 
} 
X. Apresentar a captura de tela evidenciando o funcionamento: 
Falta do arquivo palavras.txt 
 
 
Tela inicial do jogo 
 
 
Tela do jogo com o acerto da palavra escolhida 
 
 
 
 
 
 
Caderno de Resolução da 
Atividade Prática de 
Linguagem de Programação 
 
 
9 
 
Tela do jogo com o erro da palavra escolhida 
 
 
XI. Apresentar a captura de tela do arquivo palavras.txt:

Continue navegando