DSC/CCT/UFCG Matrícula Universidade Federal de Campina Grande Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Profs.: Joseana Macêdo Fechine José Eustáquio Rangel de Queiroz MÓDULO I - REPOSIÇÃO Nome DATA: 28/10/2003 Nota Atenção: Esta prova compõe a 2ª parte da prova de reposição do Módulo I, a qual constará de três partes: Parte I (Teórica, peso 4,5), Parte II (Prática, peso 4,5) e Parte III (Listas de Exercícios, peso 1,0). Parte II (Prática) - Reposição Obs.: Os programas elaborados deverão ser armazenados em um disquete e entregues ao final da prova. 1. Considere o programa abaixo (pratica1.c) : #include<stdio.h> #include<stdlib.h> #include <conio.h> #include<math.h> #define R 100.0 main() { int j, N; float I,P; FILE *fp, *fp2; clrscr(); if((fp1=fopen("entrada.dat","r"))==NULL) { puts("Nao posso abrir arquivo!"); exit(1); } if((fp2=fopen("saida.dat","r"))==NULL) { puts("Nao posso criar o arquivo!"); exit(1); } printf("Digite o numero de dispositivos:\n"); scanf("%f",&N); for (j=0; j<N; j++) { fscanf(fp1,"%f", I); P=R*I*I; fprintf(fp2,"Para R=%.1f (Ohm) e I= %.1f (A), P=%.1f (W)\n",I,P); } fclose(fp1); fclose(fp2); printf("\nPrograma concluido!"); getch(); } Considere, por exemplo, que o arquivo “entrada.dat” contém: 0.1 0.2 0.3 0.4 0.5 Realize o que se pede: a) Corrija os erros do programa, caso existam, indicando as correções através de comentários. b) Informe o que faz o programa e execute-o. c) Forneça o conteúdo do arquivo de saída. Obs.: Deverão ser copiados para o disquete, o programa corrigido, o arquivo de entrada e o arquivo de saída. 3,0 2. Atualmente, muitas são as aplicações que envolvem o acesso remoto à informação (por exemplo: monitoramento de equipamentos, acionamento de dispositivos em lugares distantes). Este acesso é, normalmente, realizado através do uso de uma senha. Além disso, é comum utilizar técnicas de codificação, visando tornar mais segura a transmissão da informação (senha). Portanto, é conveniente para este aplicação, a solução de dois problemas: evitar que usuários não autorizados acessem o sistema e evitar que esta senha possa ser “capturada” durante a transmissão. Diante do exposto acima, desenvolva um programa em linguagem C que recebe a senha do usuário (X), composta de 4 dígitos (X=x1x2x3 x4), sendo x4 o dígito de controle, testado de acordo com a expressão: 3 x 4 = 9 - { [(2 K) * x K )]/ 12} K =1 Se o valor de x4 , obtido a partir da expressão acima, não corresponder ao valor digitado pelo usuário o sistema deverá informar que a senha é inválida e encerrar o programa. Caso contrário, deverá ser informado ao usuário que a senha é válida e, em seguida, esta senha deverá ser codificada para que, posteriormente, possa ser enviada de forma a possibilitar o acesso remoto. A codificação deverá ser feita da seguinte forma: o programa deverá converter o número X de 4 dígitos na forma x1x2x3 x4 (por exemplo: x = 4583, no qual x1 = 4, x2 = 5, x3 = 8 e x4 = 3) em um número Y = y1y2y3y4 , correspondente a X codificado, usando a seguinte regra: y1 = ((x3 + 1) /6 + 1) y2 = ((x1 + 2) /3 + 2) y3 = ((x2 + 3) /5 + 4) y4 = ((x2 + x1) /4 + 3) Obs.: O programa deve ler X (número inteiro, que deverá ser lido de uma única vez) , verificar se X é válido ou não (fornecendo a mensagem ao usuário) e imprimir Y. 3,0 3. Escreva um programa em linguagem C que calcula a resistência equivalente de um circuito elétrico. Características do programa: a) O usuário deverá a escolher uma entre duas opções: circuito em série ou circuito em paralelo; b) O usuário deverá fornecer o número de resistores (o número máximo de resistores deverá ser 10) e o valor da resistência de cada resistor; c) O cálculo da resistência equivalente para o circuito em série e em paralelo, deverá ser feito em duas funções distintas. d) O programa deverá apresentar como saída as seguintes informações: - O tipo do circuito (série ou paralelo); - O valor da resistência de cada resistor (em ohm); - A resistência equivalente do circuito (em ohm). e) O programa deverá ser organizado em dois arquivos: - O arquivo prog.c, que conterá o programa principal; 4,0 - O arquivo func.c, que conterá as funções. Obs.: Os valores devem ser apresentados com duas casas decimais. SUCESSO!