You are on page 1of 2

PAUTA 3º Prueba Teoría

Programación y Computación (Ingeniería)


Jueves, 29 de noviembre de 2012

Esta evaluación consta de 60 puntos, con 50% de exigencia, es decir, con un puntaje igual a 30 puntos obtiene la nota mínima de 4.0.

Objetivos: Resolver problemas utilizando el lenguaje de programación en C, usando los comandos básicos de condicionales (Simple, normal, anidadas), el ciclo
For, do-while, Funciones, arreglos y archivos externos.
Evaluación: sumativa - Tiempo 90 min.

Problema 1:
(20 pts.) Una empresa minera está realizando una perforación con el propósito de analizar y poder determinar tipos y
cantidades de mineral para la eventual explotación del yacimiento, se solicita realizar un programa en c que almacene
en un archivo externo llamado “yacimiento.txt” los siguientes datos para 30 sectores:

Sector Oro Plata Cobre Otros Totales


A 6,24 9,65 49,8 54,61 120,3
B 12,54 17,78 19,59 46,02 95,93
C 4,84 16,79 31,35 37,12 90,1

AB 1,04 15,44 48,05 28,96 93,49
donde:
1) El nombre del sector debe ingresarse por teclado
2) Genere los gramos de oro con valores entre 0 y 19,99
3) Genere los gramos de plata con valores entre 6 y 33,23
4) Genere los gramos de cobre con valores entre 18 y 52,13
5) Genere los gramos de otros minerales con valores entre 20 y 77,77
6) Calcule los gramos totales que es la suma de todos los minerales.

#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
FILE *a;
main( )
{ char sector[10];
int i;
float oro,plata,cobre,otros,totales;
a=fopen(“yacimiento.txt”,”a”);
for (i=1;i<=30;i++)
{ cout<<”Ingrese nombre del sector:”;
cin>>sector;
oro=(rand()%2000)/100.0;
plata=(rand()%2724+600)/100.0;
cobre=(rand()%3414+1800)/100.0;
otros=(rand()%5778+2000)/100.0;
totales=oro+plata+cobre+otros;
fprintf(a,”%s %f %f %f %f %f\n”,sector,oro,plata,cobre,otros,totales);
}
fclose(a);
}
Problema 2:
(40 pts.) Una empresa de reparación de vehículos tiene almacenado en un archivo externo llamado “reparaciones.txt”
los siguientes datos:

Técnico Tipo vehículo Nº de reparaciones Ingreso $


Jua n Ca mi oneta 4 200000
Edua rdo Jeep 6 360000
Rodri go Sta ti on 5 300000
Toma s Moto 8 240000
Roberto Auto 5 250000

se solicita realizar un programa en c que mediante funciones determine:
1) cuál fue el nombre del técnico que realizó el mayor número de reparaciones
2) el promedio de ingreso.
3) el nombre del técnico que repara Jeep
4) el número de ingresos entre 100000 y 250000
#include <conio.h> void buscar()
#include <stdio.h> {
#include <iostream.h> char tecnico[15],tipo[15],mt[15];
#include <stdlib.h> int repar,ingreso;
#include <time.h> a=fopen("reparaciones.txt","r");
FILE *a; while(!feof(a))
{ fscanf(a,"%s %s %d %d\n", &tecnico,&tipo,&repar,
void mayor() &ingreso);
{ if(strcmp(tipo,"Jeep")==0)
char tecnico[15],tipo[15],mt[15]; printf("\n%s repara los Jeep\n",tecnico);}
int repar,ingreso,m=0; fclose(a);
a=fopen("reparaciones.txt","r"); }
while(!feof(a))
{ fscanf(a,"%s %s %d %d\n", &tecnico, int contar()
&tipo,&repar,&ingreso); {
if(repar>m) { m=repar; char tecnico[15],tipo[15];
strcpy(mt,tecnico);} int repar,ingreso,c=0;
} a=fopen("reparaciones.txt","r");
fclose(a); while(!feof(a))
printf("\n%s realizo mas reparaciones\n",mt); { fscanf(a,"%s %s %d %d\n",&tecnico,&tipo,&repar,
} &ingreso);
if ((ingreso>=100000)&&(ingreso<=250000)) c++;
float promedio() }
{ fclose(a);
char tecnico[15],tipo[15]; return(c);
int repar,ingreso,s=0,c=0; }
float p;
a=fopen("reparaciones.txt","r"); main()
while(!feof(a)) { mayor();
{ fscanf(a,"%s %s %d %d\n",&tecnico, printf("\nEl ingreso promedio es %.0f",promedio());
&tipo,&repar,&ingreso); buscar();
s=s+ingreso; printf("\nHay %d ingresos entre 100000 y 250000",contar());
c++; getche();
} }
fclose(a);
p=s/c*1.0;
return(p);
}

You might also like