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 xxxxxxxxxxxxxxx– RU: 99999 PROF.: WINSTON SEN LUN FUNG ESTÂNCIA VELHA – RS 2021 1 EXERCÍCIO 1 Escreva um algoritmo em linguagem C que atenda os seguintes requisitos: Os campos de um registro devem armazenar o Nome, dia de aniversário e mês de aniversário. Solicite ao usuário que digite 12 registros. Os registros devem ser armazenados em um vetor. Através do ponteiro para o vetor de registro mostre em cada um dos meses do ano quem são as pessoas que fazem aniversário. Para demonstrar o funcionamento faça as capturas de tela do terminal utilizando seu nome completo e o seu dia e mês de aniversário em um dos registros de entrada solicitado. Solução do aluno: #include<stdio.h> #include<stdlib.h> struct aniversario // declaração da struct aniversario. { char nome[20]; int dia; int mes; int* p; }; int main()// programa principal { struct aniversario aniv[12], * search; //struct aniversario possui o membro aniv de 12 posições e declaração do ponteiro search. search = aniv; //ponteiro search aponta para conteudo de aniv. char c; int i; printf("\n===========================================================\n"); printf("\n=================CADASTRO DE ANIVERSARIANTES===============\n"); printf("\n===========================================================\n"); for (i = 0; i <= 12; i++) { printf("Digite o [ NOME ]..:"); fgets(aniv[i].nome, 19, stdin); printf("Digite o [ MES ]..:"); scanf_s("%i", &aniv[i].mes); while ((c = getchar()) != '\n' && c != EOF) {} printf("Digite o [ DIA ]..:"); scanf_s("%i", &aniv[i].dia); while ((c = getchar()) != '\n' && c != EOF) {} printf("\n\n"); } for (i = 0; i <= 12; i++) { { if ((search + i)->mes == 1)//JANEIRO { printf("Quem nasceu em [JANEIRO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=========================================================\n"); } 1 if ((search + i)->mes == 2)//FEVEREIRO { printf("Quem nasceu em [MARCO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n==========================================================\n"); } if ((search + i)->mes == 4)//ABRIL { printf("Quem nasceu em [ABRIL]foi...: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n===========================================================\n"); } if ((search + i)->mes == 5)//MAIO { printf("Quem nasceu em [MAIO]foi...: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\=====================================================================\n"); } if ((search + i)->mes == 6)//JUNHO { printf("Quem nasceu em [JUNHO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=====================================================================\n"); } if ((search + i)->mes == 7)//JULHO { printf("Quem nasceu em [JULHO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=====================================================================\n"); } if ((search + i)->mes == 8)//AGOSTO { printf("Quem nasceu em [AGOSTO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=====================================================================\n"); } if ((search + i)->mes == 9)//SETEMBRO { printf("Quem nasceu em [SETEMBRO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=====================================================================\n"); } if ((search + i)->mes == 10)//OUTUBRO { printf("Quem nasceu em [OUTUBRO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=====================================================================\n"); } if ((search + i)->mes == 11)//NOVEMBRO { printf("Quem nasceu em [NOVEMBRO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=====================================================================\n"); } if ((search + i)->mes == 12) { printf("Quem nasceu em [DEZEMBRO]foi..: %s Dia..:%d \n", aniv[i].nome, aniv[i].dia); printf("\n=====================================================================\n"); } } return 0; } Imagem do código funcionando no seu computador: 2 EXERCÍCIO 2 Faça um programa onde o usuário digita 3 informações a respeito de uma pessoa: Nome, endereço e telefone. Concatene essas três informações em uma única string e faça uma contagem de quantas letras do alfabeto estão presentes nesta string (considerando as redundâncias) e de dígitos numéricos. Os espaços e os caracteres de pontuação devem ser ignorados (as funções de contagem já fazem isso). #include <stdio.h> #include <stdlib.h> #include <string.h>//necessário para strlen #include <conio.h> #include <ctype.h> // necessário para isalpha e isdigit TESTES DE TIPOS DE CARACTERES: CTYPE.H char destino[100]; char nome[50]; char endereco[50]; char telef[11]; int c; int i; int contanumero = 0; int contaletras = 0; int main() { printf("\n===========================================================\n"); printf("\n=================CADASTRO CONCATENACAO=====================\n"); printf("\n===========================================================\n"); printf("Digite o nome...:"); fgets(nome, 49, stdin); printf("Digite o endereco...:"); fgets(endereco, 49, stdin); printf("Digite o telefone...:"); fgets(telef, 10, stdin); //printf("Tamanho da STRING e: %d",strlen(nome)-1); printf("\n\n"); printf("=======================================\n"); printf("\n Nome.....:%s\n", &nome); printf("\n Endereco :%s\n", &endereco); printf("\n Telefone :%s\n", &telef); strcat_s(nome,endereco); // contatenando nome + endereço //printf("a união dos 2 e : %s", nome); ////teste impressão das 2 strings. strcpy_s(destino, nome); //função strcpy() copia a sequência de caracteres na origem para o array destino strcat_s(destino,telef); //strcat() copia a sequência de caracteres na origem para o final da string destino. //printf("a união dos 3 e : %s", destino); //teste impressão das 3 strings. int numero = strlen(destino); //strlen: comprimento da string for (i = 0; i < numero; i++) { //if (((destino[i] >= 'a') && (destino[i] <= 'z'))||((destino[i] >= 'A') && (destino[i] <= 'Z'))) if (isalpha(destino[i])) //verifica se o caractere ´e alfabético contaletras = contaletras + 1; //if ((destino[i] >= '0') && (destino[i] <= '9')) if (isdigit(destino[i])) //verifica se o caractere é um dígito decimal contanumero = contanumero + 1; } printf("\n==============RESULTADO====================="); //printf("\n========================================\n"); printf("\n Quantidade de letras do alfabeto = %d\n", contaletras); printf("\n==========================================\n"); printf("\n Quantidade de digitos numericos = %d\n", contanumero); printf("\n==========================================\n"); return 0; } Imagem do código funcionando no seu computador: 3 EXERCÍCIO 3 Faça um programa C para calcular o número de lâmpadas 60 watts necessárias para um determinado cômodo. O programa deverá ler um conjunto de informações, tais como: tipo, largura e comprimento do cômodo. O programa termina quando o tipo de cômodo for igual -1. A tabela abaixo mostra, para cada tipo de cômodo, a quantidade de wattspor metro quadrado . Use uma estrutura struct para agrupar logicamente as informações de um comodo (int tipo de comodo, float largura e float comprimento). Usar uma função com o protótipo: void CalulaArea(float *área, float *comprimento, float *largura); para calcular a área do cômodo. Os atributos de entrada serão a largura e comprimento do cômodo. Usar uma função com o protótipo: float Lampada(int, tipo, float area); para calcular a quantidade de lâmpadas necessárias para o cômodo. Os atributos de entrada serão o tipo de cômodo e a metragem (em m2) do cômodo. Ao final mostrar para o usuário a quantidade de lâmpadas em valores inteiros arredondado para cima. Para demonstrar o funcionamento utilize como comprimento do cômodo os dois primeiros dígitos do seu RU e para largura os dois últimos dígitos do seu RU. #include<stdio.h> #include<stdlib.h> #include<string.h> struct comodo { int tipo; float* area; float largura; float comprimento; }; void CalculaArea(float* área, float* comprimento, float* largura); // protótipo da função float Lampada(int tipo, float area); int main() { //int lampadas; int c; int tipo; float area, comprimento, largura; //float *CalculaArea; printf("Digite o tipo de COMODO..:"); scanf_s("%d", &tipo); //fgets(&tipo, 9, stdin); printf("Digite a LARGURA..:"); scanf_s("%f",&largura); while ((c = getchar()) != '\n' && c != EOF) {} printf("Digite o COMPRIMENTO..:"); scanf_s("%f", &comprimento); while ((c = getchar()) != '\n' && c != EOF) {} printf("\n\n"); //solicitar valores //CalculaArea(&area, &comprimento, &largura); //lampadas = lampada(tipo, area); } void CalculaArea(float* area, float* comprimento, float* largura) //funçao { *area = *comprimento * *largura; } float lampada(int tipo, float area) { if (tipo == 0) { area / 12; } if (tipo == 1) { area / 15; } if (tipo == 2) { area / 18; } if (tipo == 3) { area / 20; } if (tipo == 4) { area / 22; } // if com os tipos e depois divide a area informada pela potencia em wats da tabela printf("\n\n"); printf("\n#################################\n"); return 0; } Imagem do código funcionando no seu computador: # Não consegui evoluir neste código. 4 EXERCÍCIO 4 Escreva em linguagem C um algoritmo que: Solicite ao usuário que digite o seu RU; Armazene cada dígito do RU em uma posição de um vetor, por exemplo: Vetor RU Primeiro dígito Último dígito Posição do vetor RU 0 1 2 3 4 5 6 Utilizando uma função recursiva mostre o qual o valor do menor dígito inserido no vetor. Utilizando outra função recursiva mostre o qual o valor do maior dígito inserido no vetor Para demonstrar o funcionamento utilize o seu RU como entrada para o algoritmo. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> int j = - 1; int k = -1; int maior; int menor; int conta; int contax; void exibirMaior(int vet[]); // declara função ecursiva do tipo void. void exibirMenor(int vetx[]);// declara função ecursiva do tipo void. int main() { printf("\n===========================================================\n"); printf("\n===============VETOR DE RU (RECURSIVA)=====================\n"); printf("\n===========================================================\n"); int vetor[7], count; // um vetor de 7 posições e um contador do tipo inteiro. for (count = 0; count < 7; count++) // laço para receber os 7 vetores. { printf("Digite o seu RU..:"); // solicita informação scanf_s("%d", &vetor[count]); // armazena no vetor } //for (count = 0; count < 7; count++) // laço feito para mostrar o que foi digitado //{ // printf("posicao..:%d\n", count); // mostra posição // printf("vetor..:%d\n", vetor[count]); // mostra valor contido //} printf("\n\n"); exibirMaior(vetor); // chamada da recursiva exibirMenor(vetor); // chamada da recursiva system("pause"); return 0; } void exibirMaior(int vet[]) // executa função ( maior ) { j++; if (j < 7) { maior = vet[0]; for (conta = 0; conta < 7; conta++) if (vet[conta] > maior) { maior = vet[conta]; } } printf("O MAIOR numero do RU .: [%d]\n", maior); printf("\n"); } void exibirMenor(int vetx[]) // executa função ( menor ) { k++; if (k < 7) { menor = vetx[0]; for (contax = 0; contax < 7; contax++) if (vetx[contax] < menor) { menor = vetx[contax]; } } printf("O MENOR numero do RU .: [%d]\n", menor); printf("\n"); } Imagem do código funcionando no seu computador: 5 EXERCÍCIO 5 Crie um programa, em linguagem C, que receba 6 registros contendo, Nome do Produto, Código do produto (numérico), valor do produto. 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. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct cadprodutos { char nome[30]; int codigo; float preco; int* p; }; struct cadprodutos cad[6]; int main() { printf("\n=====================================================================\n"); printf("\n================CADASTRO DE PRODUTOS=================================\n"); printf("\n=====================================================================\n"); char c; int i; for (i = 0; i < 6; i++) { printf("Digite o [ NOME DO PRODUTO ]..:"); fgets(cad[i].nome, 29, stdin); cad[i].nome[strlen(cad[i].nome) - 1] = '\0'; // solução encontrada na internet para evitar o pula linha na hora do printf printf("Digite o [ CODIGO DO PRODUTO ]..:"); scanf_s("%i", &cad[i].codigo); while ((c = getchar()) != '\n' && c != EOF) {} printf("Digite o [ PRECO DO PRODUTO ]..:"); scanf_s("%f", &cad[i].preco); while ((c = getchar()) != '\n' && c != EOF) {} printf("\n"); } FILE* stream; errno_t err; // Open for read (will fail if file "crt_fopen_s.c" doesn't exist) err = fopen_s(&stream, "3619559.csv", "w"); if (err == 0) { printf("The file '3619559.csv' foi aberto\n"); printf("\nnome_produto; codigo_produto; preco_produto\n"); } else { printf("The file '3619559.csv' Nao pode ser aberto\n"); } // leia os 6 registros for (i = 0; i < 6; i++) { printf("%s; %4d; %4.2f\n",cad[i].nome, cad[i].codigo, cad[i].preco); fprintf(stream, "%s ; %4d ; %4.2f\n" ,cad[i].nome, cad[i].codigo, cad[i].preco); } fclose(stream); printf("\n=====================================================================\n"); system("pause"); printf("\n=====================================================================\n"); return 0; } Imagem do código funcionando no seu computador:
Compartilhar