Prévia do material em texto
Caderno de Resolução da
Atividade Prática de
Linguagem de Programação
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 -> larbaC seravlA ordeP
Para demonstrar o funcionamento faça as capturas de tela do terminal utilizando seu nome completo e o seu RU.
I. Apresentação do código-fonte:
#include
#include
// Registra para armazenar Nome Completo e RU
typedef struct {
char nomeCompleto[100];
int RU;
} RegistroAluno;
// Função para limpar os buffer de entradas
void limparBuffer() {
int c;
while ((c = getchar()) != '\n' && c != EOF);
}
int main() {
RegistroAluno aluno; // Declaração dos registro correspondentes
// Solicita ao usuário que digite o RU
printf("Digite o seu RU: ");
// Lê o RU usando scanf
if (scanf_s("%d", &aluno.RU) != 1) {
printf("Erro ao ler o RU.\n");
return 1;
}
limparBuffer(); // Limpa o buffer de entrada
// Solicita ao usuário que digite o Nome Completo
printf("Digite o seu Nome Completo: ");
fgets(aluno.nomeCompleto, sizeof(aluno.nomeCompleto), stdin);
// Remove o caractere de nova linha (\n) do final da string de Nome Completo, se houver
aluno.nomeCompleto[strcspn(aluno.nomeCompleto, "\n")] = '\0';
// Verifica se o RU digitado corresponde ao par ou impar
if (aluno.RU % 2 == 0) {
printf("O RU digitado (%d) e um numero par.\n", aluno.RU);
}
else {
printf("O RU digitado (%d) e um numero impar.\n", aluno.RU);
}
// Imprime o Nome Completo de tras para frente
printf("Nome Completo de tras para frente: ");
int tamanho = strlen(aluno.nomeCompleto);
for (int i = tamanho - 1; i >= 0; i--) {
printf("%c", aluno.nomeCompleto[i]);
}
printf("\n");
return 0;
}
II. Apresentar a captura de tela evidenciando o funcionamento:
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 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.
III. Apresentação do código-fonte:
#include
#include
int main() {
// Determinar o numero de dígitos do RU
const int numDigits = 7; // Supondo que o RU tenha 7 dígitos
// Criar um vetor para armazenarzenamento dos dígitos do RU
int vetor[numDigits];
// Solicitar ao usuário que digite cada dígito do RU para realização do processo
printf("Digite os %d digitos do seu RU:\n", numDigits);
for (int i = 0; i maior) {
maior = *(ptr + i);
}
if (*(ptr + i)
#include
// Função para calcular a área e o perímetro de um hexágono
void calc_hexa(float l, float* area, float* perimetro) {
*area = (3 * l * l * sqrt(3)) / 2;
*perimetro = 6 * l;
}
int main() {
float lado, area, perimetro;
while (1) {
// Solicita ao usuário o lado do hexágono
printf(“Digite o lado do erímetr (valor negativo para sair): “);
scanf_s(“%f”, &lado);
// Verifica se o valor digitado é negativo
if (lado
// Função recursiva para calcular a potenciação
int potencia(int base, int expoente) {
if (expoente == 0) {
return 1; // Qualquer número elevado a 0 é 1
}
return base * potencia(base, expoente - 1);
}
int main() {
int base, expoente, resultado;
// Utilize os valores reais do primeiro e último dígito do seu RU
// Exemplo: RU = 4737935, base = 1 (primeiro dígito), expoente = 7 (último dígito)
base = 4; // Substitua pelo primeiro dígito do seu RU
expoente = 5; // Substitua pelo último dígito do seu RU
resultado = potencia(base, expoente);
printf("%d elevado a %d e %d\n", base, expoente, resultado);
return 0;
}
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 MAX_LENGTH 100
typedef struct {
char nome[MAX_LENGTH];
int ru; char telefone[MAX_LENGTH];
char email[MAX_LENGTH];
} Registro;
void obterDados(Registro* reg) {
printf("Digite o Nome: ");
fgets(reg->nome, MAX_LENGTH, stdin);
if (reg->nome[strlen(reg->nome) - 1] == '\n') reg->nome[strlen(reg->nome) - 1] =
'\0';
printf("Digite o RU: ");
scanf_s("%d", ®->ru);
while (getchar() != '\n'); // Limpar o buffer do teclado
printf("Digite o Telefone: ");
fgets(reg->telefone, MAX_LENGTH, stdin);
if (reg->telefone[strlen(reg->telefone) - 1] == '\n') reg->telefone[strlen(reg -> telefone) - 1] = '\0';
printf("Digite o Email: ");
fgets(reg->email, MAX_LENGTH, stdin);
if (reg->email[strlen(reg->email) - 1] == '\n') reg->email[strlen(reg->email) - 1] =
'\0';
}
void salvarEmCSV(Registro registros[], int n, const char* nomeArquivo) {
FILE* arquivo;
fopen_s(&arquivo, nomeArquivo, "w"); if (arquivo == NULL) {
printf("Erro ao abrir o arquivo!\n");
return;
}
fprintf(arquivo, "Nome;RU;Telefone;Email\n");
for (int i = 0; iprintf("Dados salvos em %s\n", nomeArquivo);
}
int main() {
Registro registros[NUM_RECORDS];
for (int i = 0; i