miércoles, 4 de junio de 2014

Practica 7

Problema 1
- Código

-  Ejecución

- Pseudocódigo

Inicio

reporte()


Fin

funcion reporte()
{

ifstream archivo_entr
ofstream archivo_sal
int model,mill,mtotal
float promedio,gal,gtotal,ptotal
mtotal=0
gtotal=0

archivo_entr.open()
archivo_sal.open()

if (archivo_entr.fail())
{
write "el archivo no se abrio, compruebe el archivo"

exit(1)
}

write "el archivo se abrio para su lectura "
archivo_entr model,mill,gal


while(archivo_entr.good())
{
promedio=mill/gal
write "modelo ",model," millas ",mill," galones ",gal," millas por galon ",promedio
mtotal=mtotal+mill
gtotal=gtotal+gal
archivo_entr model,mill,gal
}


if (archivo_sal.fail())
{
write "el archivo de salida no se abrio, compruebe el archivo"

exit(1)
}

write "el archivo de salida se abrio para su escritura Reporte final"
ptotal=mtotal/gtotal
write" Millas totales "mtotal
write" galones totales "gtotal
write" promedio "ptotal


while(archivo_sal.good())
{
archivo_sal " Millas totales " mtotal
archivo_sal " galones totales " gtotal
archivo_sal " promedio " ptotal
archivo_sal.close()     }


archivo_entr.close()
}
}


Problema 2
- Código

-  Ejecución

Pseudocódigo
Inicio

write "======INCISO A======"
Crear()
write "=====INCISO B====="
Inventario()


Fin

funcion Crear()
{

ofstream archivo

archivo.open("F:\\Practica 7\\Problema 2.txt")

if (archivo.fail())
then
{
write " No se encontro el archivo en la ruta especificada"
exit(1)
}

else{

write " Numero de parte   Cantidad Inicial   Cantidad Vendida   Cantidad Minima"
write " ---------------  ------------------  ----------------   ---------------"
write "       QA310               95                 47                50"
write "       CM145  320     162       200"
write "       MS514  34                 20                25"
write "       EN212  163     150               160"

archivo "       QA310            95                 47                50"
archivo "       CM145  320     162       200"
archivo "       MS514  34                 20                25"
archivo "       EN212  163     150               160"
archivo.close()

}}


funcion Inventario()
{

parte[4]: char
balance, c1, c2, min, i: int

ifstream archivo
archivo.open("F:\\Practica 7\\Problema 2.txt")

write " Numero de parte   Balance Actual   Cantidad Minima"
write " ---------------  ----------------  ---------------"

for(i=0 to i<4 step i++)
{

archivo>>parte>>c1>>c2>>min

balance=c1-c2

write "     ", parte, "     ", balance, "     ", min

}

archivo.close()
}


Problema 3
- Código

-  Ejecución

Pseudocódigo

Inicio

Crear()
Nomina()


Fin

funcion Crear()
{

ofstream archivo

archivo.open("F:\\Practica 7\\Problema 3.txt")

if (archivo.fail())
then
{
write " No se encontro el archivo en la ruta especificada"
exit(1)
}

else{
write "======INCISO A======"
write "  Nombre     Tarifa     Horas "
write " --------   --------   -------"
write "Callaway,G.   6.00        40  "
write "Hanson,P.     5.00        48  "
write "Lasard,D.     6.50        35  "
write "Stillman,W.   8.00        50  "

archivo "Callaway,G.   6.00        40  "
archivo "Hanson,P.     5.00        48  "
archivo "Lasard,D.     6.50        35  "
archivo "Stillman,W.   8.00        50  "
archivo.close()

}}

funcion Nomina()
{
nombre[11]: char
hr: int
tarifa, pb=0, pte=0, pr=0: real

ifstream archivo
archivo.open("F:\\Practica 7\\Problema 3.txt")

write "=====INCISO B====="
write "  Nombre    Tarifa   Horas   Pago Bruto   Pago de Tiempo Extra   Pago Regular"
write " --------  -------- ------- ------------ ---------------------- --------------"

for(i=0 to i<4 step i++)
{
archivo>>nombre>>tarifa>>hr;

if(hr>40)
{
pte=(hr-40)*1.5*tarifa
pr=40*tarifa
pb=pte+pr
}
else
{
pte=0
pr=hr*tarifa
pb=pte+pr
}

write "   ", nombre, "   ", tarifa, "   ", hr, "   ", pb, "   ", pte, "   ", pr

}
archivo.close()
}

Problema 4
- Código

-  Ejecución

Pseudocódigo
Inicio

NumGrupos=0, datos[10]:int
promedio, numdatos:real
archivo:ifstream

archivo.open("C:\\datos.txt")

if(archivo.fail())
then
{

write "El archivo de texto 'datos' no ha sido encontrado"
write "Compruebe que existe o cree uno nuevo en el disco local C"
}
 else
 {
  read(archivo) numdatos
  while(!archivo.eof())
  {
  numdatos=leer_datos(datos, archivo)
  promedio=calcular_promedio(datos, numdatos)
  write"   Conjunto de Datos No.", i+1
  desplegar_datos(datos, numdatos, promedio)
  NumGrupos=NumGrupos+1
  read(archivo) numdatos
  }
  archivo.close()
 }
Fin


int leer_datos(dat[10]:int, numdat:real,archivo:ifstream)
{
i:int
for(i=1 to numdat step i=i+1)
read(archivo) dat[i]
return numdat
}

real calcular_promedio(dat[10]:int, numdat:real)
{
i, suma=0:int
prom:real
for(i=1 to numdat step i=i+1)
suma=suma+dat[i]
prom=suma/numdat
return prom
}

funcion desplegar_datos(int dat[], float numdat, float prom)
{
i:int
write "   Datos:"
for(i=1 to numdat step i=i+1)
write " ", dat[i]
write "   Promedio: ", prom
write " - - - - - - - - - - - - -"

}

Referencias: Los ejercicios  se sacaron  del libro C++ para ingeniería y ciencias de Gary J. Bronson, 2da edición. Páginas: 214,215