Buscar

ATIVIDADE PRÁTICA LINGUAGEM DE PROGRAMACAO C

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 8 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 8 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

Prévia do material em texto

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER 
ESCOLA SUPERIOR POLITÉCNICA 
BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO 
DISCIPLINA DE LINGUAGEM DE PROGRAMAÇÃO 
 
 
 
 
 
 
 
ATIVIDADE PRÁTICA 
LINGUAGEM DE PROGRAMAÇÃO 
 
 
 
 
 
 
 
 
 
 
 
 
CURITIBA – PR 
2022 
PRÁTICA 01 
A cidade de Springfield possui um único posto telefônico. Por este posto são feitas todas 
as ligações interurbanas da cidade. O valor a ser pago é calculado seguindo as seguintes 
regras: 
– Taxa de r$ 2,00 pela ligação, r$ 1,00 para os 3 primeiros minutos; 
– Acima de três primeiros minutos as regras são de r$1,50 para cada intervalo de 5 
minutos e r$ 0,25 para cada minuto abaixo disto. 
Para demonstrar o funcionamento mostre o resultado informando como tempo de ligação. 
Atenção: se o dígito solicitado do seu RU for zero utilize o dígito a direita. 
 
Solução: 
 
#define _CRT_SECURE_NO_WARNINGS //Restrição para rodar sem conflitos 
#include <stdio.h>//Biblioteca de Input/Output 
double preco(int min); 
int main()//Função Menu 
{ 
 int min; 
 printf("Qual o tempo da chamada em minutos? ");//Recebe o valor do RU 
 scanf(" %d", &min);//Armazenamento de variável 
 printf("\nValor total da chamada: R$%.2lf\n", preco(min));//Retorna o cálculo de acordo com o 
valor informado 
 return 0; //Finalização do programa 
} 
double preco(int min) 
{ 
 double valor = 3.0;//Função para calcular até três minutos de chamada 
 min -= 3; 
 while (1) 
 { 
 if ((min - 5) < 0)//Função para calcular a partir três minutos de ligação, com intervalo de 
cinco em cinco minutos 
 { 
 break; 
 } 
 else 
 { 
 min -= 5; 
 valor += 1.5; 
 } 
 } 
 if (min > 0) 
 { 
 valor += 0.25 * min;//Função para calcular o tempo restante 
 min -= min; 
 } 
 return valor; 
} 
 
 
 
PRÁTICA 02 
Uma agência espiã deseja enviar mensagens secretas para seus agentes. O código dessas 
mensagens é a substituição das vogais por números, sendo que as vogais A E I O U 
correspondem a 2 3 4 5 6. 
Nesse código a frase “EU ESTOU NA AULA” corresponde à frase: “36 3ST56 N2 
26L2”. Caso sejam encontrados números na frase original eles devem ser substituídos 
pelas suas vogais correspondentes. 
Faça um programa em C que receba uma frase e a codifique-a. A frase deve possuir no 
máximo 60 caracteres. Faça toda a manipulação da frase informada utilizando ponteiros. 
Mostre o programa funcionando utilizando de entrada seu Nome completo e o seu RU 
simultaneamente. 
 
Solução: 
 
#include <stdio.h>//Biblioteca de Input/Output 
#include <stdlib.h>//Biblioteca para uso de funções 
#include <string.h>//Biblioteca para converter números em caracteres. 
int main(void) {//Função menu 
 char frase[61];//Irá armazenar as frase digitada com no máximo 60 caracteres 
 int cont; 
 printf("Digite sua mensagem: "); 
 fgets(frase, 60, stdin); //Realiza a leitura da frase, especifica o tamanho da string e limpa o buffer 
do teclado 
 for (cont = 0; cont < 61; cont++)//Definição do laço de repetição 
 { 
 if (frase[cont] == 'A' || frase[cont] == 'a') {//Definição das intruções para execução e 
conversão das letras para números 
 frase[cont] = '2'; 
 } 
 else if (frase[cont] == 'E' || frase[cont] == 'e') { 
 frase[cont] = '3'; 
 } 
 else if (frase[cont] == 'I' || frase[cont] == 'i') { 
 frase[cont] = '4'; 
 } 
 else if (frase[cont] == 'O' || frase[cont] == 'o') { 
 frase[cont] = '5'; 
 } 
 else if (frase[cont] == 'U' || frase[cont] == 'u') { 
 frase[cont] = '6'; 
 } 
 else if (frase[cont] == '2') {//Definição das intruções para execução e conversão dos 
números para letras 
 frase[cont] = 'a'; 
 } 
 else if (frase[cont] == '3') { 
 frase[cont] = 'e'; 
 } 
 else if (frase[cont] == '4') { 
 frase[cont] = 'i'; 
 } 
 else if (frase[cont] == '5') { 
 frase[cont] = 'o'; 
 } 
 else if (frase[cont] == '6') { 
 frase[cont] = 'u'; 
 } 
 } 
 printf("\n\nMENSAGEM CODIFICADA", frase); 
 printf("\n %s\n\n", frase);//Impressão da frase codificada 
 return 0; 
} 
 
PRÁTICA 03 
Implementar a função cujo cabeçalho é apresentado a seguir: 
unsigned int calculaParidade (unsigned char b); 
Interferências, ruídos e outros fenômenos que prejudicam a integridade dos dados são 
problemas fundamentais quando computadores se comunicam em rede. Para detectar 
alterações em bits, os dados são sempre enviados com redundâncias computadas a partir 
dos bits originais. Este tipo de técnica de detecção de erros costuma receber o nome de 
checksum, e segue o mesmo princípio dos dígitos verificadores presentes em diversos 
documentos e identificadores numéricos (por exemplo, números de contas e agências 
bancárias). 
Uma das técnicas de detecção de erros mais simples e mais usadas é o teste de paridade. 
Cada byte é enviado junto com um bit adicional, que indica se o número de bits com valor 
1 no byte é par (bit redundante = 0) ou ímpar (bit redundante = 1). Por exemplo um byte 
com o valor 8 tem os bits 00001000, ou seja, apenas 1 bit “setado”, portanto a sua paridade 
é 1. Já um byte com o valor 0x55 é representado pelos bits 01010101 – 4 bits “setados”, 
portanto a sua paridade é 0 (zero). A função calculaParidade deve receber como 
parâmetro um byte enviado ou recebido através de uma conexão, e retornar o valor do bit 
redundante (0 ou 1). 
Para demonstrar o funcionamento demonstre o cálculo de pariedade de cada dígito do seu 
primeiro nome. Utilize o valor dos caracteres na tabela ASCII (disponível no anexo). 
 
Solução: 
 
#define _CRT_SECURE_NO_WARNINGS//Restrição para rodar sem conflitos 
#include <stdio.h>//Biblioteca de Input/Output 
unsigned int calculaParidade(unsigned char b);//Cabeçalho 
int main()//Função menu 
{ 
 unsigned char frase[101];//Conversão do Byte em ASCII 
 int i; 
 printf("Digite uma palavra:\n");//Recebe a frase 
 scanf(" %100[^\n]", frase);//Armazena a frase 
 for (i = 0; frase[i]; i++) 
 { 
 printf("%c - paridade: %u\n", frase[i], calculaParidade(frase[i]));//Imprime o a frase e a 
paridade dela 
 } 
 return 0; 
} 
unsigned int calculaParidade(unsigned char b)//Verificação se os números inteiros e positivos são pares 
ou ímpares 
{ 
 int x = (int)b;//Valor decimal 
 int dgs[8]; 
 int i = 7, j; 
 int cont = 0; 
 while (x > 1) 
 { 
 dgs[i] = x % 2;//Restante da divisão 
 i--; 
 x /= 2;//Restante da divisão por 2 
 } 
 dgs[i] = x; 
 for (j = i; j < 8; j++) 
 { 
 if (dgs[j] == 1) 
 { 
 
 cont++;//Se o resultado for 1, incrementa cont 
 } 
 } 
 if ((cont % 2) == 0)//Se o resultado for par, retorna 0 
 { 
 return 0; 
 } 
 else 
 { 
 return 1;//Se o resultado for impar, retorna 1 
 } 
} 
 
 
PRÁTICA 04. 
Faça, em linguagem C, uma função recursiva que calcule a soma dos dígitos do seu RU. 
O RU deverá ser digitado pelo usuário. Para demonstrar o funcionamento utilize o seu 
RU como entrada e mostre a saída da função. 
Solução: 
#define _CRT_SECURE_NO_WARNINGS //Restrição para rodar sem conflitos 
#include <stdio.h> //Biblioteca de Input/Output 
#include <locale.h>//Biblioteca para utilização de acentuação 
int soma(int num); 
int main() //Função menu 
{ 
 int num; //Irá armazenar os números inteiros. 
 setlocale(LC_ALL, "");//Irá imprimir as acentuações 
 printf("Quais números deseja somar? "); 
 scanf(" %d", &num);//Armazenamento da variavel 
 printf("\Esse é o resultado da sua soma: %d.\n",soma(num)); 
 return 0;//Finalização do programa 
} 
int soma(int num)//Definição da soma 
{ 
 if (num == 0)//Definição de verdadeiro 
 { 
 return 0; 
 } 
 else//Definição de falso 
 { 
 return ((num % 10) + soma(num / 10));//Cálculo dos números 
 } 
} 
 
PRÁTICA 05 
Crie um programa, em linguagem C, que faça sugestões automáticas de jogos para a Mega 
Sena. Deverá ser informado quantos jogos (de seis números) o usuário deseja (no máximo 
vinte jogos). 
✓ Crie um registro para armazenar cada jogo.✓ Crie um vetor para armazenar os jogos gerados. 
✓ Verifique se não existem números repetidos no jogo. 
✓ Verifique se não existem jogos repetidos. 
Ao final mostre os jogos na tela e pergunte ao usuário se ele deseja gerar um arquivo com 
os jogos 
Os jogos deverão ser armazenados em um arquivo formato CSV, com cada número em 
um campo diferente. O arquivo CSV é um arquivo que utiliza um separador entre os 
campos. Utilize o ; (ponto e vírgula) para separador e campo. O nome do arquivo deve 
ser o seu número de RU. 
Para demonstrar o funcionamento utilize a soma do segundo dígito com o quarto digito 
do seu RU como a quantidade de jogos. Coloque a imagem da tela com os números 
gerados e imagem do arquivo aberto no Bloco de Notas ou no Excel com os jogos gerados 
(caso não disponha do Bloco de Notas ou Excel utilize o programa equivalente disponível 
em seu computador). 
 
Solução: 
#define _CRT_SECURE_NO_WARNINGS //Restrição para rodar sem conflitos 
#include <stdio.h>//Biblioteca de Input/Output 
#include <stdlib.h>//Biblioteca para uso de funções 
#include <time.h>//Biblioteca para data e hora padrão 
typedef struct//Definição do Struct Registro a onde irá receber os dados 
{ 
 int n[6];//Armazenamento de números inteiros com no máximo 6 números (vetor) 
} JOGO; 
int main()//Função menu 
{ 
 srand(time(NULL)); 
 JOGO aposta[1000]; 
 int i, j, k, l;//Declaração de variáveis 
 int qtd; 
 char op; 
 printf("Quantas apostas deseja fazer? ");//Entrada dos valores 
 scanf(" %d", &qtd); 
 for (k = 0; k < qtd; k++) 
 { 
 for (i = 0; i < 6; i++) 
 { 
 aposta[k].n[i] = rand() % 60 + 1;//Gera os jogos do 1 ao 60 
 if (i > 0) 
 { 
 for (j = 0; j < i; j++) 
 { 
 if (aposta[k].n[i] == aposta[k].n[j])//Verifica se houve números 
repetidos 
 { 
 aposta[k].n[i] = rand() % 60 + 1; 
 j = -1; 
 } 
 } 
 } 
 } 
 if (k > 0) 
 { 
 for (i = 0; i < k; i++) 
 { 
 for (j = 0, l = 0; j < 6; j++) 
 { 
 if (aposta[k].n[j] == aposta[i].n[j]) 
 { 
 l++; 
 } 
 } 
 if (l == 6) 
 { 
 k -= 1; 
 break; 
 } 
 } 
 } 
 } 
 printf("\n"); 
 printf("\n_____APOSTAS_____\n"); 
 for (i = 0; i < qtd; i++) 
 { 
 for (j = 0; j < 6; j++) 
 { 
 printf("%02d ", aposta[i].n[j]);//Imprime o vetor preenchido com os números da 
aposta 
 } 
 printf("\n"); 
 } 
 printf("\nDeseja salvar em Excel? (S/N)\n"); 
 scanf(" %c", &op); 
 if (op == 's' || op == 'S'); 
 { 
 FILE* arq = fopen("33333.CSV", "w"); //Abre o arquivo em modo de escrita 
 for (i = 0; i < qtd; i++)//Salva os dados impressos 
 { 
 for (j = 0; j < 6; j++) 
 { 
 fprintf(arq, "%02d;", aposta[i].n[j]); 
 } 
 fprintf(arq, "\n"); 
 } 
 printf("\nArquivo gerado!\n"); 
 fclose(arq);//Fecha o arquivo 
 } 
 return 0; 
}

Outros materiais