Mudanças entre as edições de "AREC PROG1 20151"
m (moveu A1R2E3C para AREC PROG1 20151) |
Edição das 09h26min de 3 de julho de 2015
Avaliação de Recuperação
Instruções:
A avaliação de recuperação é prática, sem consulta e sem internet. Os telefones deverão permanecer desligados durante todo o período da prova. Não deverá haver comunicação entre os alunos qualquer que seja. No início da prova os alunos deverão desconectar seus computadores da rede. Ao final, o aluno deverá conectar seu computador a rede e enviar os arquivos correspondentes aos programas desenvolvidos. É importante trazer um pendrive, caso haja problema com a rede. Sugere-se que estes “arquivos.c” possuam uma linha comentada com o nome do aluno. Todos farão a prova na quinta-feira e terão 3 (três) horas para realização da mesma. Ainda, a prova se inciará as 13h30min e se encerará as 16h30min do dia 02/07/2015.
1) Implementar um programa em linguagem C que conte o número de caracteres 'a' e 'o' de uma string lida pelo teclado e mostre o resultado na tela. Complete o código abaixo ou faça um novo programa se preferir. (2 pontos)
// Programa: prec1.c
// Aluno:
#include <stdio.h>
#define TAM 20
void main()
{
char texto[TAM];
int i,conta_a=0,conta_o=0;
[...]
printf("\nTotal de a: %d",conta_a);
printf("\nTotal de o: %d\n",conta_o);
}
2) Implementar um programa em linguagem C que leia um vetor de 10 números inteiros e coloque em ordem crescente, apresentando o resultado na tela. Complete o código abaixo ou faça um novo programa se preferir. (2 pontos)
// Programa: prec2.c
// Aluno:
#include <stdio.h>
#define TAM 10
void troca(int *p_anterior,int *p_proximo);
void main()
{
int num[TAM];
int i,trocou=1;
for(i=0;i<TAM;i++){
printf("\nDigite o numero %d: ",i+1);
scanf("%d",..);
}
while(trocou){
trocou=0;
for(..;i<(TAM-1);..){
if(..){
troca(..,..);
trocou=1;
}
}
}
for(i=0;i<TAM;i++){
printf("\n%d\n",...);
}
}
void troca(int *p_anterior,int *p_proximo){
int aux;
aux=..;
*p_anterior=..;
*p_proximo=..;
}
3) O código-fonte abaixo, deve fazer a leitura de dados a partir de um arquivo, também abaixo, e informar qual a temperatura máxima, mínima e média e a quantidade de leituras realizadas. Você vai precisar criar o arquivo de dados e gravar no mesmo diretório do programa. Você terá que completar o código e podem existir erros de sintaxe, estrutura e de lógica. Faça o programa funcionar corretamente. Lembre-se você pode fazer um programa todo novo ou utilizar esse que foi passado. (6 pontos)
Exemplo de Saída:
Arquivo: dados_dia.dat
Resultado do processamento:
Medidas de Temperatura: 12
Minima:
Media :
Maxima:
================
</syntaxhighlight>
Código-fonte:
// Programa: prec1.c
// Aluno:
#include <stdio.h>
#define NUM_MAX_MEDIDAS 12
#define NOME_ARQ "*.dat"
struct Tmedida{
int hora;
float temperatura;
char nm_estacao[30];
};
float temperatura_maxima(struct Tmedida[], int num_med);
float temperatura_media(struct Tmedida[], int num_med);
float temperatura_minima(struct Tmedida[], int num_med);
void main() {
int k, n, num_medidas;
float saida_proc;
FILE *fp;
struct Tmedida dia1[NUM_MAX_MEDIDAS];
fp = fopen(NOME_ARQ,"r");
if (fp == NULL) {
printf("Erro ao abrir arquivo: %s.\n", NOME_ARQ);
return;
}
k=0;
while(1) {
n=fscanf(fp, "%d %f %s", , , );
if (n==EOF)
break;
k++;
}
num_medidas=k;
printf("===Arquivo: %s===\n",NOME_ARQ);
printf("\nResultado do Processamento:\n");
printf("\nMedidas: %d",num_medidas);
printf("\n Minima: %0.1f\n\n",temperatura_minima(,));
printf("\n Media: %0.1f\n",temperatura_media(,));
printf("\n\n Maxima: %0.1f\n",temperatura_maxima(,));
fclose(fp);
}
float temperatura_maxima(struct Tmedida med_dia[], int nmed) {
int k;
float tpmax=0;
return(tpmax);
}
float temperatura_media(struct Tmedida med_dia[], int nmed) {
int k;
float tpmed=0;
return(tpmed/nmed);
}
float temperatura_minima(struct Tmedida med_dia[], int nmed) {
int k;
float tpmin=100;
return(tpmin);
}
Arquivo de dados:
8 17.3 FLN_CENTRO
8 15.2 FLN_TRINDADE
10 19.8 FLN_CENTRO
11 22.7 FLN_TRINDADE
14 26.3 FLN_CENTRO
16 25.3 FLN_CENTRO
17 25.3 FLN_CENTRO
18 21.9 FLN_CENTRO
19 28.1 FLN_CENTRO
20 14.3 FLN_TRINDADE
22 13.9 FLN_TRINDADE
23 12.7 FLN_TRINDADE