sábado, 21 de mayo de 2011

Practica 10

Problema 1
Almacene los siguientes datos en un archivo:
5           96       87        78      93        21       4         92        82        83        87        6         72        69      85    75        81       73
escriba un programa para calcular y desplegar el promedio de cada grupo de números ene el archivo en el índice app de los datos.
Se han arreglado en el archivo para que cada grupo de números sea precedido por el número de elementos de datos del grupo.
Entonces el primer número en el archivo 5 indica que los siguientes cinco números se agrupan juntos y el numero cuatro igual y el  6 también.
SEUDOCODIGO
stream ejemplo
int i,j, a,b
float prom,suma
ejemplo.open("C:\\datos\\datos.dat", ios::out );
ejemplo<<"5 96 87 78 93 21 4 92 82 85 87 6 72 69 85 75 81 73";
ejemplo.close()
ejemplo.open("C:\\datos\\datos.dat", ios::in )
for(from 0 to 3 step +1)
{
suma=0.0
ejemplo>>a
for (from 0 to a step +1)
{
ejemplo>>b
suma=suma+b
}
prom=suma/a
print "Promedio: ",prom
}
ejemplo.close()
fin

C++



Problema 2

Escriba un programa que lea el nombre de estudiantes y sus cuatro calificaciones, además que calcule el promedio e indique si el alumno aprobó.

SEUDOCODIGO
Inicio
fstream alumnos
int i,j,c=1, a,b,suma=0,a1,a2,a3,a4;
float prom,cal[5],a5;
char nombre[15],op;
alumnos.open("C:\\datos\\calf.dat", ios::out );
op='s'
do
{
suma=0
c++
prit "Nombre: ";
read nombre;
alumnos<<nombre<<" ";
for (i=1;i<5;i++)
{
print "Unidad "<<i<<": ";
read cal[i];
suma=suma+cal[i];
alumnos<<cal[i]<<" ";
}
cal[5]=suma/4.0;
alumnos<<cal[5]<<" ";
print "Otro? (s/n)"
read op
}
while(op=='s'|| op=='S')
alumnos.close()
alumnos.open("C:\\datos\\calf.dat", ios::in)
alumnos>>nombre
alumnos>>a1
alumnos>>a2
alumnos>>a3
alumnos>>a4
alumnos>>a5
print "Nombre\t\t\tCalificaciones\t\t\tPromedio"
while(!alumnos.eof())
{
if(a5>=70)
{
cout<<nombre<<"\t\t"<<a1<<"\t"<<a2<<"\t"<<a3<<"\t"<<a4<<"\t\t"<<a5<<"\tAprobado"<<endl;
alumnos>>nombre
alumnos>>a1
alumnos>>a2
alumnos>>a3
alumnos>>a4
alumnos>>a5
}
else
{
print nombre," ",a1," ",a2," ",a3," ",a4,"  ",a5,"No aprobado"
alumnos>>nombre;
alumnos>>a1
alumnos>>a2
alumnos>>a3
alumnos>>a4
}
}
alumnos.close()
Fin

C++





Problema 3

Escriba un archivo las siguientes cantidades de automóviles, el número de millas recorridas y las cantidades de galones de gasolina empelado para cada auto.
No. de Carro       Millas Recorridas     Galones Utilizados
54                          250                             19
62                          525                           38
71                          123                             6
85                          1322                          86
97                          235                             14
 Escriba un programa que lea los datos y despliegue la cantidad de automóviles, las millas recorridas y las millas por galón  para cada automóvil. La  salida debe contener además los totales de millas recorridas y el total de galones empleados, así como el promedio de millas por galón para todos los autos, dicho s totales deben desplegarse a la salida.
  SEUDOCODIGO
Inicio
fstream datos
datos.open("C:\\datos\\autos.txt", ios::out );
datos<<"54"<<" "<<"250"<<" "<<"19"<<endl;
datos<<"62"<<" "<<"525"<<" "<<"38"<<endl;
datos<<"71"<<" "<<"123"<<" "<<"6"<<endl;
datos<<"85"<<" "<<"1322"<<" "<<"86"<<endl;
datos<<"97"<<" "<<"235"<<" "<<"14"<<endl;
datos.close()
}
leerarchivo(float A[5][3])
{
int i,j
float valor
fstream datos
datos.open("C:\\datos\\autos.txt", ios::in );
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
datos>>valor
A[i][j]=valor
}
}
datos.close()
}
calculo (float A[5][3], float &total, float &total1, float &pt)
{
int i,j
total=0
for(j=1;j<3;j++)
{
for(i=0;i<5;i++)
{
total=total+A[i][j]
}
if (j==1)
{
total1=total
total=0
}
}
pt=total1/total;
}
millasporgal(float A[5][3], float mpg[5])
{
int i
for(i=0;i<5;i++)
{
mpg[i]=A[i][1]/A[i][2]
}
}
reporte(float A[5][3], float mpg[5], float tot1, float tot, float prom)
{
int i,j
print "No. Carro        Mi recorridas       Galones utilizados          promedio de MPG"
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
print A[i][j],"\t\t\t"
}
print mpg[i]
}
print "Total autos: 5"
print "Total millas: ",tot
print "Total galones: ",tot1
print "Promedio general: ",prom
}
 
main ()
{
float autos[5][3], mpg[5],mi, gal,promt;
creararchivo()
leerarchivo(autos)
calculo(autos,mi,gal,promt)
millasporgal(autos,mpg)
reporte(autos,mpg,mi,gal,promt)
}
Fin
C++





 Problema 4

Un archivo llamado polar contiene las coordenadas polares necesarias en un programa de graficas, actualmente este archivo contiene los sig. DatosDistancia  Angulo
      2         45
      6         30
     10        45
      4         60
      12       55
       8       15

Escriba un programa que acepte del usuario distancia y ángulo y los agregue al final del archivo.
y escriba un programa que lea este archivo (polar) y crea otro llamado xycord.txt
SEUDOCODIGO 

Inicio
 funcion escribir()
 {
 fstream archivo
 archivo.open("C:\\datos\\polar.dat",ios::binary | ios::out);
 archivo<<"2.0"<<" "<<"45.0"<<endl
 archivo<<"6.0"<<" "<<"30.0"<<endl
 archivo<<"10.0"<<" "<<"45.0"<<endl
 archivo<<"4.0"<<" "<<"60.0"<<endl
 archivo<<"12.0"<<" "<<"55.0"<<endl
 archivo<<"8.0"<<" "<<"15.0"<<endl
 archivo.close()
 }

 
funcion datosnuevos
{
 float distancia, angulo
 char otro
 fstream archivo
 archivo.open("C:\\datos\\polar.dat",ios::binary | ios::app);
 otro='s'
 do
 {
 print "Distancia: "
 read distancia
 archivo<<distancia<<" "
 print "Angulo: "
 read angulo
 archivo<<angulo<<endl;
 print "Otro dato?(s/n)"
 read otro
 }
 while(otro=='s' or otro=='S')
 archivo.close()
 }

 
funcion coordenadas
 {
 float distancia, angulo,radianes,x,y
 fstream f1;
 fstream f2;
 f1.open("C:\\datos\\polar.dat",ios::binary | ios::in)
 f2.open("C:\\datos\\xycoord.dat",ios::binary | ios::out)
 f1>>distancia
 while(!f1.eof())
 {
 f1>>angulo
 radianes=angulo*3.141592/180.0
 x=distancia*cos(radianes)
 y=distancia*sin(radianes)
 f2<<x<<" "<<y<<endl
 f1>>distancia
 }
 f1.close()
 f2.close()
 }

 
funcion imprimir
  {
  float x, y
  fstream archivo
  archivo.open("C:\\datos\\xycoord.dat",ios::binary | ios::in)
  archivo>>x
  while(!archivo.eof())
  {
  print x,",  "

  archivo>>y
  print y
  archivo>>x
  }
   archivo.close()
}
 
funcion main

 escribir()
 datosnuevos()
 coordenadas()
 print "Coordenadas rectangulares"
 imprimir()

fin


C++








Problema 5


Considere la siguiente lista de países y sus capitales.
Escriba un programa interactivo que acepte el nombre de un país como entrada y escriba su capital y viceversa. Diseñar el programa de modo que se ejecute repetidamente hasta introducir fin.

Canada,Inglaterra,Francia,India,Israel,Italia,Japon,Mexico,China,Estados Unidos,Rusia


Ottawa,Londres,Paris,Nueva Delhi,Jerusalen,Roma,Tokio,Cd de Mexico,Beijing,Washington DC, Moscu


SEUDOCODIGO
Inicio
char nombre[15],pais[12][15] = {"Canada","Inglaterra","Francia","India","Israel","Italia","Japon","Mexico","China","Estados Unidos","Rusia"};
char capital[12][15] = {"Ottawa","Londres","Paris","Nueva Delhi","Jerusalen","Roma","Tokio","Mexico DF","Beijing","Washington DC","Moscu"};

print "Escriba el nombre del pais o de la capital (para salir deje un espacio.)"<<endl;
do{
cin.getline(nombre,15,'\n');
for(int i=0;i<12;i++)
{
if(strcmpi(nombre,pais[i])==0)
{

print capital[i],endl
}
}
for(int i=0;i<12;i++)
{
if(strcmpi(nombre,capital[i])==0)
{

print pais[i],endl
}
}
}while(strcmpi(nombre," "))

fin

C++




Problema 6

Una empresa tiene varios vendedores. Por cada vendedor se tiene el nombre y la venta que realizo elaborar un programa que permita leer dichos datos y proporcione un reporte de comisiones de ventas en el cual aparezcan todos los vendedores .

SEUDOCODIGO
inicio
 int x=0,suma=0
float prom,nivel,comision
char otro,nombre[20][22]
int ventas[20]
do
{
print "Nombre de vendedor ",(x+1),": ",endl
cin.ignore()
cin.getline(nombre[x],22,'\n')
print "Venta de  ",nombre[x],": ",endl
read ventas[x]
suma=suma+ventas[x]
cout<<"Agregar otro vendedor?(S/N)";
cin>>otro;
x++;
}
while(otro=='s'|| otro=='S');
prom=suma/x;
nivel=(3.0/4.0)*prom;
print "Sueldo de vendedores que sobrepasaron el nivel de comisiones: ",endl
for(int i=0;i<x;i++)
{
if(ventas[i]>nivel)
{
comision=ventas[i]*0.05;
print "Vendedor ",nombre[i],". Comision(5%): ",comision,endl
}
}

C++



+

C





ppppp

C+

miércoles, 18 de mayo de 2011

Practica 9



Problema 1

Escriba un programa  que almacene los nombres y calificaciones de 30 alumnos desplegando una tabla, asi como la lista de aprobados, el promedio del grupo y el promedio mas alto.

funcion introdatos(float M[30][5])
{r,c entero
suma flotente
randomize()
for(r=0 to 30 step r++)
{suma=0
for(c=0 to 4 step c++)
{M[r][c]=(float)random(100)+1
suma=suma+M[r][c]
}
M[r][4]=suma/4
}}

funcion imprimetabla(float M[10][5],char nombre[10][25])
{ r,c entero
print "Alumnos  C1 C2 C3 C4 Promedio";
for(r=0 to 30 step r++)
{print "Alumno ",(r+1),": ",nombre[r]," "
for(c=0 to 5 step c++)
{ print M[r][c]," "
}
}}

funcion intronombre(char nombre[30][25])
{ i enteros
for(i=0 to  30 step i++)
{print "Nombre ",(i+1),": "
cin.getline(nombre[i], 25, '\n')
}}

funcion imprimeaprobados(float M[30][5], char nombre[30][25])
{print "Listado de alumnos aprobados "
print "Nombre\tPromedio"
for(int I=0 to  3 step I++)
{if(M[I][4]>=70)
{print nombre[I]," ",M[I][4] 
}}}

funcion promedio(float M[30][5])
{prom flotante
suma=0 flotante
for(int i=0 to  30 step i++)
{suma=suma+M[i][4]
}
prom=suma/10
return prom
}

funcion mayor(float M[30][5])
{ mayor1=0 flotante
for(int i=0 to 30 step i++)
{if(M[i][4]>mayor1)
{mayor1=M[i][4]
}}
return mayor1
}

funcion main()
{char n[30][25]
float M[30][5]
introdatos(M)
intronombre(n)

imprimetabla(M, n)

imprimeaprobados(M, n)

print"Promedio General: ",promedio(M)
print "Promedio mas alto: ",mayor(M)
}

C++



  
EJECUTABLE


PROBLEMA 2

Un ingeniero elaboro un arreglo bidimensional de numeros reales con 3 renglones y 5 columnas. Este arreglo contiene los voltajes de prueba obtenidas de un amplificador. Escriba un programa que enteroroduzca en forma enteroeractiva 15 valores del arreglo y que determine el numero totaal de voltajes cuyos rangos sean menores a 60, entre 60 y 70, entre 70 y 80, entre 80 y 90 y mayores a 90. si los rangos estan en x<60, 60<=x<70, 70<=x<80, 80<=x<90, x>90

SEUDOCODIGO
Inicio
Rangos( v[3][5] real, a  b  c  d  e entero)
{
i,j entero
for (0 to 3 step +1)
{
for (0 to 5 step+1)
{
if(v[i][j]<60)
a=a+1
else
if(v[i][j]>=60 and v[i][j]<70)
b=b+1
else
if(v[i][j]>=70 and v[i][j]<80)
c=c+1
else
if(v[i][j]>=80 and v[i][j]<90)
d=d+1
else
e=e+1
}
}
}
 main
{
float v[3][5]
 a=0,b=0,c=0,d=0,e=0,i,j,x entero
print "Datos "
x=0
for (0 to 3 step +1)
{
for (0 to 5 step +1)
{
x=x+1
print x,":"
read v[i][j]
}
}
Rangos(v,a,b,c,d,e);
print"60: ",a,"\tEntre 60 y 70: ",b,"\tEntre 70 y 80: ",c,\tEntre 80 y 90: ",d,"\t Mayor a 90: ",e
}
FIN

C++





PROBLEMA 3

Escriba un programa que sume los elementos equiparables de los arreglos bidimensionales denominados primero y segundo.ambos arreglos deben de tener m renglones y n columnas.por ejemplo los elementos 1 y 2 [1][2] del arreglo resulte deben ser la suma del primero y segundo ,los arreglos primero y segundo deben inicializarse con numeros aleatorios. el valor de m y n definalo con un valor constante.
Inicio
const int m=2;
const int n=3;
int primero[m][n];
int segundo[m][n];
int tercero[m][n];
introdatos(int a[m][n])
{r,c entero
randomize()
for(0 to 2 step +1)
{for(0 to 3 step +1)
{a[m][n]=random(1000)+1
}
}
}
imprimedatos(int a[m][n])
{r,c entero
print "Listado de la matriz"
for(0 to 2 step +1)
{for(0 to 3 step +1)
{print a[m][n],"\t"
}
print endl
}
}
sumar(int a[m][n],int b[m][n],int c[m][n])
{
c[m][n]=a[m][n]+b[m][n]
}
 main()
{ primero[m][n],segundo[m][n],tercero[m][n] entero
introdatos(primero)
introdatos(segundo)
sumar(primero,segundo,tercero)
imprimedatos(primero)
imprimedatos(segundo)
imprimedatos(tercero)
}
Fin

C++


PROBLEMA 4 

Escriba un programa que encuentre y despliegue el valor máximo en un arreglo bidimensional en números enteros. El arreglo debe declararse de 4 por 5 en números enteros, despliegue los números subíndices del renglón y columna que correspondan al valor máximo.
 SEUDOCODIGO
Inicio
maximo(a[4][5], &max, &posr, &posc entero)
{r,c entero
max=a[0][0]
posr=0
posc=0
for(0 to 4 step +1)
{for(0 to 5 step +1)
{if(a[r][c]>max)
{max=a[r][c]
posr=r
posc=c
}
}
}
}
introdatos(a[4][5] entero)
{r,c entero
randomize()
for(0 to 4 step +1)
{for(0 to 5 step +1)
{a[r][c]=random(1000)+1
}
}
}
imprimedatos(a[4][5],max,posr,posc entero)
{r,c entero
print "Listado de la matriz"
for(0 to 4 step +1)
{for(0 to 5 step +1)
{print a[r][c]<<"\t"}
print endl
}
print endl
print"Posicion R:",posr
print"Posicion C:",posc
print"Maximo:",max
}
main()
{a[4][5],max,posr,posc entero
introdatos(a)
maximo(a,max,posr,posc)
imprimedatos(a,max,posr,posc)
Fin
C++



Problema 5

Un examen final tiene 100 preguntas de eleccion multiple, cada pregunta tiene 5 respuestas a elegir de las cuales solo una es correcta y la informacion concerniente al estudiante puede representarse con "respuesta", "score"y "name" almacena el nombre de los estudiantes. Las respuestas se codifican entre 1 y 5, cuando se indico mas de una respuesta, esta se representa con 6 . Diseñe un programa cuyas salidas sean los nombres de los estudiantes que aprobaron el examen, se requiere una calificacion minima de 70 para aprobar.

SEUDOCODIGO