viernes, 12 de abril de 2013

PROYECTO


//proyecto: Control de ordenes de trabajo
//integrantes del equipo: Calderon Hernandez Hugo 11211053
//                        Fuentes Aranda Jesus Javier 11211018
//                        Onofre Gonzalez Adrian Hilario 11211031

#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <fstream.h>

//datosclientes(int, char);
//datosupervisor(int, char);
//ordenes(int, char);
//reporte(int, char);
//fecha();

void fecha()
{
cout<<""<<endl;
cout<<"\t\tDatos"<<endl;
char sdate[9];
_strdate(sdate);
cout<<endl;
cout<<"                       "<<"\t\t\t\t\t fecha "<<sdate<<endl;
}

void reemplazar(char *str, char o, char v)
{
char *p;
while (p = strchr(str, o)) {*p = v;}
}

void datosclientes()
{
ofstream salida;
salida.open("C://Clientes.txt", ios::app);
char nocliente[40], sigue;
char empresa[40];
char contacto[30];
char puesto[40];
int telefono;
char email[30];
char direccion[40];
char stime[10];
char sdate[10];

_strdate(sdate);

do{
_strtime(stime);
clrscr();
fecha();

cout << " Introduzca No. de cliente: ";
cin.ignore(9000, '\n');
cin.getline(nocliente, 40, '\n');
cout <<endl;

cout<<" Introduzca el nombre de la Empresa: ";
cin>>empresa;
cout<<endl;

cout<<" Introduzca el nombre del Contacto: ";
cin>>contacto;
cout<<endl;

cout<<" Introduzca su Puesto: ";
cin>>puesto;
cout<<endl;

cout<<" Introduzca su numero de Telefono: ";
cin>>telefono;
cout<<endl;

cout<<" Introduzca su Email: ";
cin>>email;
cout<<endl;

cout<<" Introduzca su Direccion: ";
cin.ignore(9000, '\n');
cin.getline(direccion, 40, '\n');
cout<<endl;

reemplazar(contacto, ' ', '_');
reemplazar(direccion, ' ', '_');

salida<<nocliente<<" "<<empresa<<" "<<contacto<<" "<<puesto<<" "<<telefono<<" "<<email<<" "<<direccion<<endl;
cout<<" Desea registrar otro Cliente: s/n? [ ] \b\b\b";
cin>>sigue;
}
while(sigue=='s' || sigue=='S');
clrscr();
}

void datosupervisor()//datos supervisor
{
ofstream salida;
salida.open("C://Supervisores.txt", ios::app);
char nosupervisor[40], sigue;
char nombre[40];
int telefono, radnextel;
char sexo[40];
char fechalta[40];
char stime[10];
char sdate[10];

_strdate(sdate);

do{
_strtime(stime);
clrscr();
fecha();

cout<<" Introduzca No. de Supervisor: ";
cin>>nosupervisor;
cout<<endl;

cout << " Introduzca el Nombre: ";
cin.ignore(9000, '\n');
cin.getline(nombre, 40, '\n');
cout <<endl;

cout<<" Introduzca su numero de Telefono: ";
cin>>telefono;
cout<<endl;

cout<<" Introduzca su numero de Radio Nextel: ";
cin>>radnextel;
cout<<endl;

cout<<" Introduzca su Sexo: ";
cin>>sexo;
cout<<endl;

cout<<" Introduzca su Fecha de alta: ";
cin.ignore(9000, '\n');
cin.getline(fechalta, 40, '\n');
cout<<endl;

reemplazar(nombre, ' ', '_');
reemplazar(fechalta, ' ', '/');

salida<<nosupervisor<<" "<<nombre<<" "<<telefono<<" "<<radnextel<<" "<<sexo<<" "<<fechalta<<endl;
cout<<" Desea registrar otro Supervisor: s/n? [ ] \b\b\b";
cin>>sigue;
}
while(sigue=='s' || sigue=='S');
clrscr();
}//datos supervisor

void ordenes()//datos ordenes
{
ofstream salida;
salida.open("C://Ordenes.txt", ios::app);
char sigue;
char noocliente[40];
char noorden[40];
//char nombre[40];
char nombreparte[40];
char descripcion[40];
char materialesb[40];
char materialesm[40];
int notrabajadores;
char stime[10];
char sdate[10];

_strdate(sdate);

do{
_strtime(stime);
clrscr();
fecha();

cout<<" Introduzca No. de cliente: ";
cin>>noocliente;
cout<<endl;
//cout << " Introduzca No. de cliente: ";
//cin.ignore(9000, '\n');
//cin.getline(noocliente, 40, '\n');
//cout <<endl;

cout << " Introduzca No. de Orden: ";
cin.ignore(9000, '\n');
cin.getline(noorden, 40, '\n');
cout <<endl;

//cout<<" Introduzca el Nombre del supervisor: ";
//cin>>nombre;
//cout<<endl;

cout<<" Introduzca el nombre de la parte: ";
cin>>nombreparte;
cout<<endl;

cout << " Introduzca la descripcion de la parte: ";
cin.ignore(9000, '\n');
cin.getline(descripcion, 40, '\n');
cout <<endl;
//cout<<" Introduzca la descripcion de la parte: ";
//cin>>descripcion;
//cout<<endl;

cout<<" Introduzca los materiales buenos: ";
cin>>materialesb;
cout<<endl;

cout<<" Introduzca los materiales malos: ";
cin>>materialesm;
cout<<endl;

cout<<" Introduzca el numero de trabajadores: ";
cin>>notrabajadores;
cout<<endl;
reemplazar(noorden, ' ', '_');
//reemplazar(nombre, ' ', '_');
reemplazar(noocliente, ' ', '_');
reemplazar(nombreparte, ' ', '/');

//salida<<nocliente<<" "<<empresa<<" "<<contacto<<" "<<puesto<<" "<<telefono<<" "<<email<<" "<<direccion<<endl;
//salida<<nosupervisor<<" "<<nombre<<" "<<telefono<<" "<<radnextel<<" "<<sexo<<" "<<fechalta<<endl;
salida<<noocliente<<" "<<noorden<<"  "<<nombreparte<<" "<<descripcion<<" "<<materialesb<<" "<<materialesm<<" "<<notrabajadores<<endl;
cout<<" Desea registrar otra orden: s/n? [ ] \b\b\b";
cin>>sigue;
}
while(sigue=='s' || sigue=='S');
clrscr();
}//datos ordenes



void reporte()
{
char nocliente[40], buscarnocliente[40], buscarnosupervisor[40], empresa[40], noorden[40], puesto[40], email[30], direccion[40], nombre[40];
char noorden_ordenes[40], nosupervisores_supervisores[40];
int telefono;

clrscr();
cout<<endl;
fecha();
ifstream entrada, archivo_ordenes, archivo_supervisores;

entrada.open("C://Clientes.txt");
archivo_ordenes.open("C://Ordenes.txt");
archivo_supervisores.open("C://Supervisores.txt");

cout << "\t\tNo. Supervisor: ";
cin >> buscarnosupervisor;

while(archivo_supervisores.good())
{
archivo_supervisores >> nosupervisores_supervisores;
if (!strcmp(nosupervisores_supervisores, buscarnosupervisor))
{
archivo_supervisores >> nombre;
reemplazar(nombre, '_', ' ');

cout<< "\t\n\tSupervisor: " <<"\t\t\t"<< nombre<<endl;


cout << "\t\tNo. cliente: ";
cin >> buscarnocliente;
while(entrada.good())
{
entrada >> nocliente;
if (!strcmp(nocliente, buscarnocliente))
{
entrada >> empresa >> noorden >> puesto >> telefono >> email >> direccion;
reemplazar(direccion, '_', ' ');

while (archivo_ordenes.good())
{
archivo_ordenes >> noorden_ordenes;
if (!strcmp(noorden_ordenes, buscarnocliente))
{
char nordenarc[40], supervisor[40], nombre_parte[40], desc_parte[40], mat_buenos[40], mat_malos[40], num_trab[40];
archivo_ordenes >> nordenarc >>  nombre_parte >> desc_parte >> mat_buenos >> mat_malos >> num_trab;

cout<< "\t\n\n\n\tNo. Cliente: " <<"\t\t\t"<<nocliente<<endl;
cout<< "\t\n\tEmpresa: " <<"\t\t\t"<<empresa<<endl;
cout<< "\t\n\tNo. orden: " <<"\t\t\t"<<nordenarc<<endl;
//cout<< "\t\n\tPuesto: " <<"\t\t\t"<<puesto<<endl;
//cout<< "\t\n\tNo. Telefono: " <<"\t\t\t"<<telefono<<endl;
//cout<< "\t\n\tEmail: " <<"\t\t\t"<<email<<endl;
//cout<< "\t\n\tDireccion: " <<"\t\t\t"<<direccion<<endl;
//cout<< "\t\n\tSupervisor: " <<"\t\t\t"<< supervisor<<endl;
cout<< "\t\n\tNombre parte: " <<"\t\t\t"<< nombre_parte<<endl;
cout<< "\t\n\tDescripcion de la parte: " <<"\t"<<desc_parte<<endl;
cout<< "\t\n\tMateriales buenos: " <<"\t\t"<< mat_buenos<<endl;
cout << "\t\n\tMateriales malos: " <<"\t\t"<< mat_malos<<endl;
cout << "\t\n\tNumero de trabajadores: " <<"\t"<< num_trab<<endl;

}
else
{
archivo_ordenes.ignore(9000, '\n');
}// if
}// while
}//new
}//new

cout<< "\n\nPresiona enter para regresar a pantalla principal"<<endl;
getch ();
clrscr();
return;

}
}
cout<< "No encontrado" <<endl;
}


void menu ()
{
cout<<" \t\n\t\t Control de Ordenes de Trabajo \n\n\n "<<endl;
cout<<"\t\t 1) Cliente\n "<<endl;
cout<<"\t\t 2) Supervisor\n  "<<endl;
cout<<"\t\t 3) Ordenes\n  "<<endl;
cout<<"\t\t 4) Reporte\n  "<<endl;
cout<<"\t\t 5) Salir del Programa \n\n"<<endl;
}

void main (void)
{
int opc;
do{
ofstream salida;
salida.open("C://Clientes.txt", ios::app);

menu();
cout<<"\t\t selecione una opcion= ";
cin>>opc;

switch (opc)
{
case 1:
datosclientes();
break;
case 2:
datosupervisor();
break;
case 3:
ordenes();
break;
case 4:
reporte();
break;
}
}
while (opc!=5);
}



La pantalla principal "Menú"

Pantalla de la primera opción "registro de clientes"

Pantalla de segunda opción "registro de supervisores"

Pantalla de tercera  opción "registro de alguna orden"

Pantalla del reporte 

Tarea 5 Unidad III


1.- ¿Qué es un archivo?
Es una colección de datos que tiene un nombre y se guardan en dispositivos de almacenamiento secundario


2.- ¿En que repercute guardar en los dispositivos secundarios al programar archivos?
Al momento de hacerle modificaciones a los datos se tiene que cargar en la memoria principal primeramente para poder modificarlos y localizar los riesgos en el archivo, para posteriormente leerlo y colocarlo en la memoria RAM.

3.- ¿Qué son los Datos?
Son los testimonios individuales relacionados con hechos, ya sean características de estudio o condiciones particulares de situaciones dadas.

4.- ¿Qué es un Registro?
Es el conjunto de datos relacionados pertenecientes a una entrada.

5.- ¿Qué es necesario para realizar la apertura de u archivo?
Proporcionar al sistema operativo el nombre completo del archivo y la intención de uso


6.- ¿Cuál es la estructura de un archivo?
Contiene información del archivo que se utiliza, el tamaño del archivo y la localización de los buffers de datos.

7.- ¿Cuales son las clasificaciones de archivos por contenido?
Texto: Son aquellos que pueden contener cualquier clase de datos y de tal manera que son entendibles por el usuario.

Binario: Son los archivos que almacenan datos numéricos, con su representación binaria, estos archivos tienen representación el lenguaje maquina.

8.- ¿Los datos en un archivo de texto como se almacenan?
Utilizando el código ASCII en el cual cada carácter es representado por un simple byte


9.- ¿Definición de archivo de tipo secuencial?
Son registros que se graban en secuencia o consecutivamente, deben acezarse del mismo modo.

10.- ¿Función close()?
 Este método rompe la conexión entre el nombre externo del archivo y el objeto de flujo de archivos el cual puede ser usado por otro archivo

11.- ¿Dónde se posiciona el apuntador con frecuencia?
Al inicio del archivo, cuando se abre el archivo en modo de solo lectura, lectura/escritura, solo escritura y en modo agregar se posiciona al final del archivo.


12.- ¿En dirección física, sobre qué argumentos se reposiciona el apuntador?
El alias del archivo, la dirección física en bytes y el punto de referencia.


14.- ¿Cómo podemos saber donde se encuentra el apuntador en un archivo?
Se usa la función “ftell” para reconocer la posición actual del apuntador.

15.- ¿ Como detectar el apuntador cuando esta al final del archivo?
Utilizamos el macro “feof ()”.

16.- ¿Cómo se cambia el nombre del archivo?
Al archivo s ele cambia el nombre utilizando “rename ()”

17.- ¿En donde se aplica rename()?
Solo se utiliza en archivos cerrados.

18.- ¿Qué variable almacena la función “fwrite”?
Almacena la variable de tipo “struct” que representa el bloque de datos o campos.


19.- ¿A qué se refiere con Vaciado de los buffers con fflush?
Buffer es un área de almacenamiento temporal en memoria para el conjunto de datos leídos o escritor en el archivo, por eso se refiere al vaciado, utilizando el fflush, es para hacer el vaciado mas eficazmente.

20.- ¿Para qué se usa la función “fread”?
Permite leer un registro y copiarlo en la memoria RAM,

Tarea 4 Unidad III


1.- ¿Cuál es la relación entre la memoria principal, el  microprocesador y dispositivos de  almacenamiento secundario?
Existe una estrecha relación ya que el procesamiento que realiza una computadora es tarea absoluta del microprocesador en conjunción con la memoria principal

2.- ¿Cuáles son los dispositivos de almacenamiento secundario?
diskettes, discos duros, CD, flash drives, etc.

3.- ¿Cuál es la función de los dispositivos de almacenamiento secundario?
reflejan los datos previamente procesados y funcionan exclusivamente  como una bodega.

4.- ¿Cuál es la definición de Datos?
Básicamente se refieren a los testimonios individuales relacionados con hechos, ya sean características de ciertos objetos de estudio o condiciones particulares de situaciones dadas.

5.- ¿Cuál es la definición de Registro?
Es el conjunto completo de datos relacionados pertenecientes a una entrada. P

6.- ¿Cuál es la definición de Archivo?
En términos computacionales es una colección de datos que tiene un nombre y se guardan en dispositivos de almacenamiento secundario, los cuales pueden ser magnéticos, ópticos, electrónicos, P

7.- ¿Clasificación de archivos por contenido?
Texto y binario

8.- ¿Cuáles son los archivos de texto?
Son aquellos que pueden contener cualquier clase de datos y de tal manera que son “entendibles” por la gente

9.- ¿Cuáles son los archivos binarios?
 Este tipo de archivos almacenan los datos numéricos con su representación binaria. Pueden ser archivos que contienen instrucciones en lenguaje máquina listas para ser ejecutadas

10.- ¿Clasificación de archivos por tipo de acceso?
De acuerdo a la forma de acceder los datos de los archivos, éstos se clasifican en secuenciales o directos

11.- ¿Cuáles son los archivos secuenciales?
en este tipo de archivos los registros se graban en secuencia o consecutivamente y deben accesarse de ese mismo modo

12.- ¿Cuáles son los archivos directos?
A diferencia de los archivos secuenciales, en los archivos directos no es necesario recorrerlo completamente para acceder un registro en particular, sino se puede colocar el apuntador interno del archivo directamente en el registro deseado, permitiendo con esto mayor rapidez de acceso.

14.- ¿Cómo hacer una declaración de alias del archivo?
 Para realizar programas de manejo de archivos en Lenguaje C++ se requiere el encabezado “Standard I/O” y se necesita incluirlo de la sig. forma: #include <stdio.h> además es necesario declarar una variable de tipo FILE que opere como el apuntador a la estructura del archivo (alias), esto se logra con la sig. línea: FILE *alias;


15.- ¿para que es la función fopen?
para abrir un archivo, determinar el modo de
Apertura y establecer la vía de comunicación mediante su alias correspondiente.
Además determinar el tipo de contenido del archivo (texto o binario)
  
16.- ¿Para que sirve la función fclose?
Esta función sirve para cerrar un fichero almacena los datos que aún están en el buffer de memoria, y actualiza algunos datos de la cabecera del fichero que mantiene el sistema operativo

17.- ¿Qué proporciona la función fwrite?
proporciona el mecanismo para almacenar todos los campos de un registro en un archivo

18.- ¿Qué es un buffer?
es un área de almacenamiento temporal en memoria para el
Conjunto de datos leídos o escritos en el archivo

 19.- ¿Cual es la finalidad del buffer?
Estos buffers retienen datos en tránsito desde y hacia al archivo y tienen la finalidad de hacer más eficiente las operaciones de entrada/salida en los archivos de disco, provocando menor cantidad de accesos, los cuales son más lentos que la memoria. P

20.- ¿Cuál es la finalidad de la función fread?
permite cargar todos los campos de un registro en un archivo, es decir, lee un registro y lo copia en la memoria RAM esta función tiene los mismos argumentos que la función fwrite

Tarea 3 de la Unidad III


Cuestionario



1.- ¿Que es transmisión por valor?
En una invocación típica la función llamada asigna valores a la función que llama, almacena y manipula los valores transmitidos, y devuelve directamente un solo valor, como máximo A la transmisión de datos de esta manera se le conoce como transmisión por valor

2 .- Llamar una función y transmitirle argumentos ¿por valor es una ventaja que distingue al C++.¿que permite esto?
Escribir las funciones como entidades independientes que pueden utilizar cualquier nombre de variable o parámetro sin preocuparse por que otras funciones puedan utilizar el mismo nombre.

3.- ¿Que son parámetros?
Se pueden considerar como variables inicialisadas o variables a las cuales se asignaran valores cuando se ejecute la función.

4.- ¿A que se le conoce como transmisión por referencia?
En cuanto la función llamada tiene la dirección de la variable , sabe donde reside la variable, puede tener acceso al valor almacenado ahí y cambiarlo directamente.

5.- ¿Por que?
La función llamada puede hacer referencia, o tener acceso a la variable cuya dirección se le transmitió.

6.- ¿Cuales son los dos tipos de parámetros que permite el C++?
Referencias y apuntadores.
7.- ¿Como se le conoce a la transmisión de referencia? 
Como transmisión de direcciones
8.- ¿Diferencia entre parámetros y argumentos? 
Las palabras parámetro y argumento, aunque de significado similar, tiene distintas connotaciones semánticas: Se denominan parámetros los tipos declarados en el prototipo (que deben corresponder con los declarados en la definición Cuando se realiza una llamada a la función, los "valores" pasados se denominan argumentos. A veces se utilizan también las expresiones argumentos formales, para los parámetros y argumentos actuales para los valores pasados

9.- ¿Que es una referencia?
Una referencia actúa igual que un puntero pero funciona de diferente modo, ya que no se puede modificar la variable a la que esta asociada a la referencia.

10.- ¿Cual es uno de los requisitos para escribir valnuevo( )?
Es declarar dos parámetros de referencia para aceptar los domicilios transmitidos. 

11.- ¿A que se refiere &?

La dirección del;tipo precedente de dato 

12.- ¿y cuando esta en una declarante?

Es la dirección de. 

13.- ¿Cuantos parámetros tiene una función void calcular (doble num1,double num2, double num3,double&total,double&producto)? 
Esta función tiene cinco parámetros 

14.- ¿Dentro de main como se le llama a la función calc( )? 
Utilizando los argumentos primernum, segundonum, tercernum, suma y producto



15.- ¿A usar el argumento de referencias que es necesario mencionar? 
Dos precauciones la primera es que los argumentos de referencia deben ser variables y la segunda es que una llamada a función en si no da indicio de que la función llamada usara parámetros de referencia

16.- ¿Cual es el esquema inicial de un programa de computadora? 1 descripción del pseudocodigo, 2 diagrama de estructura de primer nivel
17.- ¿De la función anterior cuales parámetros son declarados como referencias? 
Los dos últimos

18.- ¿Que es función polar? Devuelve un objeto complejo en forma cartesiano correspondiente al numero complejo definido. 


19.- ¿Para que es la función “mostrarlo ()”? 
 Para desplegar los valores en sus parámetros correspondientes.

20.-
¿Cómo se utiliza la función “obtrec ()”? 
En esta función se usan los parámetros de referencia para devolver los valores que se introducen en respuesta a los indicadores de cin. Como con la función polar ().  

Tarea 2 de la Unidad III

Hacer un cuestionario de 20 preguntas pag.321-340

1.-¿Que es el argumento trasmitido por el valor?
Al utilizar el método que consiste en trasmitir datos a una función la función llamada solo recibe copias de los valores contenidos en los argumentos al momento de la llamada.

2.-¿La llamada por valor es?
La función que recibe los argumentos transmitidos por valor puede procesar los valores enviados a ella de manera que se desee y devolver directamente cuando mucho un valor legitimo a la función llamada.

3.- ¿De que se requiere para devolver un valor directamente?
Se requiere de un manejo correcto de la interfaces entre la funciones llamadas y las que llaman.

4.- ¿Cual es uno de los propósitos de las declaraciones?
- Es alertar a la computadora de la cantidad de almacenamiento interno reservado para los datos.

5.- ¿Que elementos debe aportar del lado de la transición que devuelve la función?
El tipo de datos del valor devuelto.
El valor devuelto Real.
6.- ¿Que y en donde debe especificar una función que devuelve un valor?

Debe especificar en la linea de encabezado, el tipo de datos del valor en que devuelve.

void EncontrarMax (int x, int y)

7.- ¿Que ofrecen las Funciones en-line?
El agrupamiento de lineas repetitivas de código con un nombre común de función y hacer que el compilador coloque este código directamente en el programa siempre que se llame a la función.
8.- ¿Que indica la función en-line?
Indica al compilador hacer una copia del código de la función el cual se coloca en el programa en donde la función es llamada.

9.- ¿si la linea del encabezado de la función debe devolver un valor como tiene que modificarse?
debe modificarse para incluir el tipo de dato para el valor que sera devuelto, ejemplo si esta debe devolver un numero entero, la linea correcta del encabezado de la función es:

int EncontrarMax (int x, int y)

10.- ¿Para que una función devuelva el valor máximo de dos números que se tiene que hacer?
Se tiene que modificar la función Para ello primero se tiene que determinar el tipo de dato para el valor que sera devuelto e incluir este tipo de dato en la linea de encabezado de la función.

11.- ¿que se necesita par que se devuelva un un valor correctamente?

Para devover un valor correctamente, se tiene que utilizar una instrucción de return, la cual tiene la siguiente forma.

return expresion;

12.- ¿Cuando se encuentra la instrucción return que se hace?
La expresión es evaluada primero y su valor se convierte automáticamente al tipo de dato declarado en el encabezado de la función, antes de devolverlo a la función que hizo la llamada.

13.- ¿Cuales son las dos precauciones que se tienen que tomar al usar argumentos de referencia?
 A) Los argumentos de referencia deben ser variables (es decir, no pueden usarse para cambiar constantes)
B) Una llamada a función en si no da indicio de que la función llamada usara parámetros de referencia.
14- ¿Que se debe hacer a la función que llama para prevenir el tipo de valor devuelto?
Es utilizado el prototipo de la funcion.
int EncontrarMax (int, int).

Antes de la funcion de main (),es suficiente par avisarle a main () que EncontrarMax () es una función que devolverá un valor en numero entero.

15.- ¿Que se necesita para en una variable el valor devuelto?
Es utilizado una instrucción estándar de asignación, Ejemplo:
max= EncontrarMax (primernum, Segundonum)

16.- ¿Cual es una ventaja de usar la función inline?
La ventaja de usar una función inline es que aumenta la velocidad de ejecución.

17.- ¿Cual es una desventaja de utilizar la función inline?
- La desventaja es el aumento en el tamaño del programa cuando una función inline es llamada en forma repetida.
18.- ¿Qué es una transmisión por referencia?
Cuando la función llamada puede hacerse referencia o tener acceso a la variable cuyo dirección se ha transmitido.

19.- ¿Qué es una transmisión por valor?
Cuando la función llamada recibe valores de la función que la llama, almacena y manipula los valores transmitidos y devuelve en forma directa cuando mucho un valor único.



Tarea 1 de la Unidad III


Estudiar el capitulo 6 Modularidad en el uso de funciones pag. 299-318.
Hacer un cuestionario de 20 preguntas 



1.- ¿Que es una función y como se llama a una función? La función interactua con una función principal como main (), transmite datos de manera correcta a una función cuando esta es llamada y devuelve valores de una función. es llamada una función de la siguiente manera:
nombre-de-la-función (datos transmitidos a la función)
Esta identifica a la función llamada Esto transmite datos a la función.


2.- Con la funcion encontrarMax( ) desde main( ), explique la funcion que llama y la funcion llamada.
La funcion encontrarMax( ) se conoce como la funcion llamada en vista que es llamada a la accion por su referencia en main( ), y la funcion que hace la llamada en este caso es main( )

3.- ¿A que se le conoce como función llamada?
A una función que es llamada o invocada a la acción por su referencia en main ().

4.- ¿A que se le conoce como función que llama?
A la función que realiza la llamada.

5.- ¿Como se conoce a la instrucción de declaración para una función?
Se conoce como un prototipo de función.

6-¿Qué es una plantilla de función? 
Es una función única completa que sirve como modelo para una familia de funciones

7-¿cual es la utilidad de una componente parcial?
Es una función falsa que pueda aceptar valores y regresa valores cuando sea necesario, aun si no son los verdaderos


8-¿De que esta compuesta una función?
De encabezado de función y cuerpo de función

9.- ¿Que es lo que indica el prototipo de función?
El prototipo de función le indica a la función que llama el tipo de valor que sera devuelto formalmente, si es que hay alguno, y el tipo de dato y orden de los valores que la función que llama deberá transmitir a la función llamada.


10.- ¿Que es un cabo y para que es utilizada?
Es el comienzo de una función final que se puede usar como un sustituto de la unidad final hasta que la unidad este completa.void EncontrarMax (int x, int y)
{
cout<<"En EncontrarMax ()\n";
cout<<El valor de x es:"<<x<<endl;
cout<<El valor de y es:"<<y<<endl;
}

11-¿Dónde se hacen las declaraciones de parámetro?
Se hacen dentro de la línea de encabezado

12-¿Qué son los argumentos por omisión? Es la declaración de la función o en su definición se especificarán los valores que deberían asumir los parámetros cuando se produzca una llamada a la función y se omitan los mismos para tales parámetros.

13.- ¿Que reglas se deben utilizar para los parámetros implícitos?
* Que los valores por ausencia se deben asignar al prototipo de la funcion.
* Si cualquier parametro se dio como valor por ausencia en le prototipo de la funcion, todos los aparametros que el siguen tambien tiene que tener valores implicitos.}
* Si se omite un argumento en la llamada de la funcion, tambien se debe omitir todos sus argumentos a su derecha.
* Se especifica que el valor predeterminado, puede ser una expresión que consiste en constantes y variables previamente declaradas, la cual debe pasar la verificación de la validez del compilador para las variables declaradas, aun cuando el valor de la expresión sea evaluado y asignado en el momento de ejecutarse.



14.- ¿En que consiste la regla básica de prueba?
Establece que cada función solo deberá probarse en un programa en el que se sabe que todas las demás funciones son correctas.

15.- ¿A que se le conoce como cabo?
Un cabo es el comienzo de una función final que se puede usar como un sustituto de la unidad final hasta que la unidad este completa.


16.- ¿Que es una sobre carga de una función?
Es cuando se utiliza el mismo nombre para mas de una función.

17.- Que es una plantilla de funcion?
Es una funcion unica completa que sirve como modelo para una familia de funciones.

18.- Que es un prefijo de plantilla?
Se usa para informa al compilador que la funcion que sigue inmediatamente es una platilla que usa un tipo de datos nombrado T.

19-¿Cuál es la ventaja de usar T dentro de la línea de encabezado de la plantilla de función? 
Que representa un tipo de datos general que es remplazado por un tipo de datos real como int, float, doublé etc.

20-¿Que es lo que distingue a las funciones sobrecargadas?Es el tipo de argumentos, la mejor solución es crear una plantilla de función.

Practica 12


Problema 1
Codigo C++


//Practica No 12 Problema No 1 Fecha: 16/11/2012

//Integrantes: Calderon Hernandez Hugo




#include <iostream.h>

#include <conio.h>

void imprimeCaracter(char ch, int n);

int main ()

{

char caracter;

int x;

cout<<"Introduce el caracter a imprimir = ";

cin>>caracter;

cout<<"\nIntroduce la cantidad de caracteres = ";

cin>>x;

imprimeCaracter (caracter, x);

int a, b;

cout<<"\n\nIntroduce dos valores enteres = "<<endl;

cout<<"\t\t\t",cin>>a,cout<<"\t\t\t",cin>>b;

int suma=a+b;

cout<<"\nEl resultado de la suma esta representada por el caracter * \n";

imprimeCaracter('*',suma);

getch ();

return 0;

}

void imprimeCaracter(char ch, int n)

{

int i;

for (i=1; i<=n; i++)

{

cout<<ch;

}

cout<<endl;

}


pseudocodigo

Inicio
funcion imprimeCaracter (ch char, n in)
i int
for (i=1 to n ster i=i+1)
{
print ch
}
print "\n"
fin de la funcion imprimeCaracter
inicio programa
caracter char
x,a,b, suma int
Print "Introduce el caracter a imprimir = "
read caracter
Print "Introduce la cantidad de caracteres = "
Read x
imprimeCaracter(caracter, x)
Print "Introduce dos valores enteros = "
read a, b
suma=a+b
Print "El resultado de la suma esta representada por el caracter *
imprimeCaracter ('*', suma)
Fin



Problema 2

Codigo C++




//Practica No 12 Problema No 2 FECHA: 16/11/2012

//Integrantes: Calderon Hernandez Hugo







#include <iostream.h>

#include <conio.h>

void imprimeAsteriscos ();

int mayor (int, int);

int menor (int, int);

int main ()

{

int a, b;

cout<<"Introduce dos valores enteros "<<endl;

cout<<"\t\t\t",cin>>a,cout<<"\t\t\t",cin>>b;

imprimeAsteriscos ();

cout<<"El dato mayor es "<<mayor(a,b)<<endl<<endl;

imprimeAsteriscos ();

cout<<"El dato menor es "<<menor(a,b)<<endl<<endl;

imprimeAsteriscos ();

getch ();

return 0;

}

void imprimeAsteriscos ()

{

int j;

for (j=1; j<=30; j++)

{

cout

<<"*";

}

cout<<endl<<endl;

}

int mayor(int x, int y)

{

if (x>y)

{

return x;

}

else

{

return y;

}

}

int menor (int x, int y)

{

if (x<y)

{

return x;

}

else

{

return y;

}

}





pseudocodigo
Inicio
funcion imprimeasteriscos()
{
int j
for(j=1 to 30 step j++)
{
print "*"
}
}
fin de la funcion
inicio funcion mayor(int, int)
{
if(x>y)
{
return x
}
else
{
return y
}
}
fin de funcion
int menor(int, int)
{
if(x<y)
{
return x
}
else
{
return y
}
}
fin de funcion
inicio programa
int a,b
Print "introduce dos valores enteros "
Read a,b
imprimeasteriscos()
Print "el dato mayor es ",mayor(a,b)
imprimeasteriscos()
Print "el dato menor es ",menor(a,b)
imprimeasteriscos()
Fin










Problema 3

Codigo C++




//Practica No 12 Problema No 3 FECHA: 16/11/2012

//Integrantes: Calderon Hernandez Hugo

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>




void lecturaDatos (int a [10])

{

int i;

for (i=0; i<10; i++)

{

cout<<"Numero----->("<<(i+1)<<")= ";

cin>>a[i];

}

}

void desplegarDatos (int a [10])

{

int i;

cout<<"Listado de 10 valores enteros \n";

for (i=0; i<10; i++)

{

cout<<a[i]<<endl;

}

}

int sumaValores(int a [10])

{

int i, suma=0;

for (i=0; i<10; i++)

{

suma=suma+a[i];

}

return suma;

}

void mayorValores (int a [10])

{

int mayor=a[0];

int pos=0;

for ( int i=1; i<10; i++)

{

if (a[i]>mayor)

{

mayor=a[i];

pos=i;

}

}

cout<<"El dato mayor es "<<mayor<<endl;

cout<<"Su posicion en el arreglo es "<<pos+1<<endl;

}

void main ()

{

int numeros [10];

lecturaDatos (numeros);

cout<<endl<<endl;

desplegarDatos (numeros);

cout<<"\nLa suma total es "<<sumaValores(numeros)<<endl;

mayorValores (numeros);

getch ();

}

pseudocodigo

Inicio
función lecturaDatos(int a[10])
{
i int
for(i=0 to 10 step i++)
{
Print "Numero[",(i+1),"]= "
Read a[i]
}
}
inicio funcion desplegarDatos(int a[10])
{
i int
Print "Listado De 10 Valores Enteros \n"
for(i=0 to 10 step i++)
{
Print a[i]
}
}
fin de funcion
inicio funcion sumaValores(int a[10])
{
i,suma=0 int
for(i=0 to 10 step i++)
{
suma=suma+a[i]
}
return suma
}
fin de funcion
inicio funcion mayorValores(int a[10])
{
int mayor=a[0]
int pos=0for( int i=0 to 10 step i++)
{
if(a[i]>mayor)
{
mayor=a[i]
pos=i
}
}
Print "el dato es ",mayor
Print "Y su posicion es ",(pos+1)
}
fin de funcion
inicio del programa
numeros[10] int
lecturaDatos(numeros)
desplegarDatos(numeros)
Print "La suma total es ",sumaValores(numeros)
mayorValores(numeros)
Fin

Problema 4

Codigo C++





//Practica No 12 Problema No 4 Fecha: 16/11/2013
//Integrantes: Calderon Hernandez Hugo

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>




template <class T>

void lecturaDatos(T a[10]);

template <class T>

void desplegarDatos(T a[10]);

template <class T>

T sumaValores(T a[10]);

template <class T>

void mayorValores(T a[10]);




void main()

{

int numeros [10];

lecturaDatos(numeros);

cout<<endl<<endl;

desplegarDatos(numeros);

cout<<"La suma total es "<<sumaValores(numeros)<<endl;

mayorValores(numeros);

getch();

}




template <class T>

void lecturaDatos(T a[10])

{

int i;

for(i=0;i<10;i++)

{

cout<<"numeros--->("<<i<<")= ";

cin>>a[i];

}

}




template <class T>

void desplegarDatos(T a[10])

{

int i;

cout<<"Listado de 10 valores Enteros \n";

for(i=0;i<10;i++)

{

cout<<a[i]<<endl;

}

}

template <class T>

T sumaValores(T a[10])

{

int i;

T suma=0;

for(i=0;i<10;i++)

{

suma=suma+a[i];

}

return suma;

}




template <class T>

void mayorValores(T a[10])

{

T mayor=a[0];

int pos=0;

int i;

for(i=0 ;i<10; i++)

{

if(a[i]>mayor)

{

mayor=a[i];

pos=i;

}

}

cout<<"El dato mayor es "<<mayor<<endl;

cout<<"Su posicion en el arreglo es "<<pos<<endl;

}


pseudocodigo

Inicio
inicio funcion lecturaDatos(T a[10])
{
i int
for(i=0 to <10 step i=i+1)
{
Print "numero[",i,"]= "
Read a[i]
}
}
fin funcion lecturaDatos


inicio funcion desplegarDatos(T a[10])
{
i int
Print "listado de 10 valores enteros \n"
for(i=0 to <10 step i=i+1)
{
Print,a[i]
}
}
fin funcion desplegarDatos


inicio funcion sumaValores(T a[10])
{
i int
suma=0 T
for(i=0 to <10 step i=i+1){
suma=suma+a[i]
}
return suma
}
fin funcion sumaValores


inicio funcion mayorValores(T a[10])
{
mayor=a[0] T
pos=0 int
i int
for(i=0 to <10 step i=i+1){
if(a[i]>mayor)
{
mayor=a[i]
pos=i
}
}
Print "Dato mayor= ",mayor
Print "posicion del dato= ",pos
}
fin funcion mayorValores


inicio programa
numeros[10] int
lecturaDatos(numeros)
print "\n","\n"
desplegarDatos(numeros)
Print "La suma total es: ",sumaValores(numeros)
mayorValores(numeros)
fin




Problema 4 dato double

Codigo C++




//Practica No 12 Problema No 4double FECHA: 16/11/2012

//Integrantes: Calderon Hernandez Hugo

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>




template <class T>

void lecturaDatos(T a[10]);

template <class T>

void desplegarDatos(T a[10]);

template <class T>

T sumaValores(T a[10]);

template <class T>

void mayorValores(T a[10]);




void main()

{

double numeros [10];

lecturaDatos(numeros);

cout<<endl<<endl;

desplegarDatos(numeros);

cout<<"La suma total es "<<sumaValores(numeros)<<endl;

mayorValores(numeros);

getch();

}




template <class T>

void lecturaDatos(T a[10])

{

int i;

for(i=0;i<10;i++)

{

cout<<"Numero----->("<<(i+1)<<")= ";

cin>>a[i];

}

}




template <class T>

void desplegarDatos(T a[10])

{

int i;

cout<<"Listado de 10 valores Doble precision \n";

for(i=0;i<10;i++)

{

cout<<a[i]<<endl;

}

}

template <class T>

T sumaValores(T a[10])

{

int i;

T suma=0;

for(i=0;i<10;i++)

{

suma=suma+a[i];

}

return suma;

}




template <class T>

void mayorValores(T a[10])

{

T mayor=a[0];

int pos=0;

int i;

for(i=0 ;i<10; i++)

{

if(a[i]>mayor)

{

mayor=a[i];

pos=i;

}

}

cout<<"El dato mayor es "<<mayor<<endl;

cout<<"Su posicion en el arreglo es "<<pos<<endl;

}

pseudocodigo

Inicio
inicio funcion lecturaDatos(T a[10])
{
i int
for(i=0 to <10 step i=i+1)
{
Print "numero[",i,"]= "
Read a[i]
}
}
fin funcion lecturaDatos


inicio funcion desplegarDatos(T a[10])
{
i int
Print "listado de 10 valores enteros \n"
for(i=0 to <10 step i=i+1)
{
Print,a[i]
}
}
fin funcion desplegarDatos


inicio funcion sumaValores(T a[10])
{
i int
suma=0 T
for(i=0 to <10 step i=i+1)
{
suma=suma+a[i]
}
return suma
}
fin funcion sumaValores


inicio funcion mayorValores(T a[10])
{
mayor=a[0] T
pos=0 int
i int
for(i=0 to <10 step i=i+1)
{
if(a[i]>mayor)
{
mayor=a[i]
pos=i
}
}
Print "Dato mayor= ",mayor
Print "posicion del dato= ",pos
}
fin funcion mayorValores


inicio programa
numeros[10] real
lecturaDatos(numeros)
Print "\n","\n"
desplegarDatos(numeros)
Print "La suma total es: ",sumaValores(numeros)
mayorValores(numeros)
Fin


Problema 4 dato flotante


Codigo C++





//Practica No 12 Problema No 4 flotante FECHA: 16/11/2012

//Integrantes: Calderon Hernandez Hugo

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>




template <class T>

void lecturaDatos(T a[10]);

template <class T>

void desplegarDatos(T a[10]);

template <class T>

T sumaValores(T a[10]);

template <class T>

void mayorValores(T a[10]);




void main()

{

int numeros [10];

lecturaDatos(numeros);

cout<<endl<<endl;

desplegarDatos(numeros);

cout<<"La suma total es "<<sumaValores(numeros)<<endl;

mayorValores(numeros);

getch();

}




template <class T>

void lecturaDatos(T a[10])

{

int i;

for(i=0;i<10;i++)

{

cout<<"Numero----->("<<(i+1)<<")= ";

cin>>a[i];

}

}




template <class T>

void desplegarDatos(T a[10])

{

int i;

cout<<"Listado de 10 valores Flotantes \n";

for(i=0;i<10;i++)

{

cout<<a[i]<<endl;

}

}

template <class T>

T sumaValores(T a[10])

{

int i;

T suma=0;

for(i=0;i<10;i++)

{

suma=suma+a[i];

}

return suma;

}




template <class T>

void mayorValores(T a[10])

{

T mayor=a[0];

int pos=0;

int i;

for(i=0 ;i<10; i++)

{

if(a[i]>mayor)

{

mayor=a[i];

pos=i;

}

}

cout<<"El dato mayor es "<<mayor<<endl;

cout<<"Su posicion en el arreglo es "<<pos<<endl;

}



pseudocodigo

Inicio
inicio funcion lecturaDatos(T a[10])
{
i int
for(i=0 to <10 step i=i+1)
{
Print "numero[",i,"]= "
Read a[i]
}
}
fin funcion lecturaDatos


inicio funcion desplegarDatos(T a[10])
{
i int
Print "listado de 10 valores enteros \n"
for(i=0 to <10 step i=i+1)
{
Print,a[i]
}
}
fin funcion desplegarDatos


inicio funcion sumaValores(T a[10])
{
i int
suma=0 T
for(i=0 to <10 step i=i+1)
{
suma=suma+a[i]
}
return suma
}
fin funcion sumaValores


inicio funcion mayorValores(T a[10])
{
mayor=a[0] T
pos=0 int
i int
for(i=0 to <10 step i=i+1)
{
if(a[i]>mayor)
{
mayor=a[i]
pos=i
}
}
Print "Dato mayor= ",mayor
Print "posicion del dato= ",pos
}
fin funcion mayorValores


inicio programa
numeros[10] double
lecturaDatos(numeros)
print "\n","\n"
desplegarDatos(numeros)
print "La suma total es: ",sumaValores(numeros)
mayorValores(numeros)
Fin


Problema 5

Codigo C++




//Practica No 12 Problema No 5 FECHA: 16/11/2012

//Integrantes: Calderon Hernandez Hugo

#include <iostream.h>

#include <conio.h>




template <class T>

void lecturaDatos (T m[5][5]);

template <class T>

void desplegarDatos (T m[5][5]);

template <class T>

void sumaRenglones (T m[5][5], T sr [5]);

template <class T>

void sumaColumnas (T m[5][5], T sc [5]);

template <class T>

void desplegarSumaMayorRenglones (T sr[5]);

template <class T>

void desplegarSumaMayorColumnas (T sc [5]);




int main ()

{

int a [5][5], renglones [5], columnas [5];

lecturaDatos (a);

desplegarDatos (a);

sumaRenglones (a, renglones);

sumaColumnas (a, columnas);

desplegarSumaMayorRenglones (renglones);

desplegarSumaMayorColumnas (columnas);

getch ();

return 0;

}




template <class T>

void lecturaDatos (T m[5][5])

{

int r, c;

for (r=0; r<5; r++)

{

for (c=0; c<5; c++)

{

cout<<"Matriz ("<<r<<")"<<"("<<c<<") = ";

cin>>m[r][c];

}

}

}




template <class T>

void desplegarDatos (T m[5][5])

{

int r, c;

cout<<"\n";

cout<<"Listado de la matriz\n\n";

for (r=0; r<5; r++)

{

for (c=0; c<5; c++)

{

cout<<m[r][c]<<"\t";

}

cout<<endl;

}

}




template <class T>

void sumaRenglones (T m[5][5], T sr [5])

{

T suma;

int r, c;

for (r=0; r<5; r++)

{

suma=0;

for (c=0; c<5; c++)

{

suma=suma+m[r][c];

}

sr[r]=suma;

}

}




template <class T>

void sumaColumnas (T m[5][5], T sc [5])

{

T suma;

int r, c;

for (c=0; c<5; c++)

{

suma=0;

for (r=0; r<5; r++)

{

suma=suma+m[r][c];

}

sc[c]=suma;

}

}




template <class T>

void desplegarSumaMayorRenglones (T sr[5])

{

int i;

T mayor=sr[0];

int pos=0;

cout<<"\n";

cout<<"Listado de suma de renglones\n\n";

for (i=0; i<5; i++)

{

cout<<"Renglon "<<i<<" = "<<sr[i]<<endl;

if (sr[i] > mayor)

{

mayor=sr[i];

pos=i;

}

}

cout<<"\n";

cout<<"El renglon "<<pos<<" Tiene el dato suma mayor "<<mayor<<endl;

}




template <class T>

void desplegarSumaMayorColumnas (T sc [5])

{

int i;

T mayor=sc[0];

int pos=0;

cout<<"\n";

cout<<"Listado de suma de columnas\n\n";

for (i=0; i<5; i++)

{

cout<<"Columna "<<i<<" = "<<sc[i]<<endl;

if (sc[i] > mayor)

{

mayor=sc[i];

pos=i;

}

}

cout<<"\n";

cout<<"La columna "<<pos<<" Tiene el dato suma mayor "<<mayor<<endl;

}


pseudocodigo

Inicio
inicio funcion LecturaDatos(T m[5][5])
{
r,c int
for(r=0 to <5 step r=r+1)
{
for(c=0 to <5 step c=c+1)
{
Print "matriz[",r,"]","[",c,"]= ";
Read m[r][c]
}
}
}
fin funcion LecturaDatos


inicio funcion desplegarDatos(T m[5][5])
{
r,c int
Print "\n","Listado de la matriz"
for(r=0 to <5 step r=r+1)
{
for(c=0 to <5 step c=c+1)
{
Print m[r][c],"\t"
}
Print "\n"
}
}
fin funcion desplegarDatos


inicio funcion sumaRenglones(T m[5][5], T sr[5])
{
r,c int
suma T
for(r=0 to <5 step r=r+1)
{
suma=0
for(c=0 to <5 step c=c+1)
{
suma=suma+m[r][c]
}
sr[r]=suma
}
}
fin funcion sumaRenglones


inicio funcion sumaColumnas(T m[5][5], T sc[5])
{
r,c int
suma T
for(c=0 to <5 step c=c+1)
{
suma=0
for(r=0 to <5 step r=r+1)
{
suma=suma+m[r][c]
}
sc[c]=suma
}
}
fin funcion sumaColumnas


inicio funcion desplegarSumaMayorRenglones(T sr[5])
{
i int
mayor=sr[0] T
pos=0 int
Print "\n","listado de suma de renglones "
for(i=0 to <5 step i=i+1)
{
Print "renglon ",i," = ",sr[i]
if(sr[i]>mayor)
{
mayor=sr[i]
pos=i
}
}
Print "El renglon ",pos," tiene la suma mayor: ",mayor
}
fin funcion desplegarSumaMayorRenglones


inicio funcion desplegarSumaMayorColumnas(T sc[5])
{
i int
mayor=sc[0] T
pos=0 int
Print "\n","listado de suma de renglones "
for(i=0 to <5 step i=i+1)
{
Print "columna ",i," = ",sc[i]
if(sc[i]>mayor)
{
mayor=sc[i]
pos=i;
}
}
Print "La columna ",pos," tiene la suma mayor: ",mayor
}
fin funcion desplegarSumaMayorColumnas


Inicio programa
a[5][5],renglones[5],columnas[5] int
LecturaDatos(a)
desplegarDatos(a)
sumaRenglones(a,renglones)
sumaColumnas(a,columnas)
desplegarSumaMayorRenglones(renglones)
desplegarSumaMayorColumnas(columnas)
Fin


Problema 6

Codigo C++



/

/Practica No 12 Problema No 6 FECHA: 16/11/2012

//Integrantes: Calderon Hernandez Hugo

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>




struct empleado

{

int id;

char nombre [30];

int horas;

int sueldo;

float tarifaPago;

};

empleado emp [10];




void leerDatosEmpleado (int n);

void desplegarDatosEmpleado (int n);




int main ()

{

int x;

cout<<"Cuantos empleados = ";

cin>>x;

leerDatosEmpleado (x);

desplegarDatosEmpleado(x);

getch ();

return 0;

}




void leerDatosEmpleado (int n)

{

int i;

for (i=0; i<n; i++)

{

cout<<"\nNumero de empleado = ";

cin>>emp[i].id;

cin.ignore ();

cout<<"Nombre Empleado: ";

cin.getline(emp[i].nombre,30,'\n');

cout<<"Horas trabajadas = ";

cin>>emp[i].horas;

cout<<"Pago por hora = ";

cin>>emp[i].tarifaPago;

emp[i].sueldo=emp[i].horas*emp[i].tarifaPago;

}

}




void desplegarDatosEmpleado (int n)

{

int i;

cout<<"\n";

cout<<"No.Empleado Nombre Horas Trabajadas Pago por hora Sueldo\n";

for (i=0; i<n; i++)

{

cout<<emp[i].id<<setw(25)<<emp[i].nombre<<setw(15)<<emp[i].horas<<setw(15)<<emp[i].tarifaPago<<setw(15)<<emp[i].sueldo<<endl;

}

}

pseudocodigo

Inicio
registro empleado
{
id int
horas int
sueldo int
nombre[30] char
tarifaPago real
}
empleado emp[10]

inicio funcion void leerDatosEmpleado(int n)
{
i int
for(i=0 to <n step i=i+1)
{
Print "\n","Numero de empleado= "
Read emp[i].id
Print "\n","Nombre del empleado= "
Read emp[i].nombre
Print "\n","Horas trabajadas = "
Read emp[i].horas
Print "\n","Pago por hora= "
Read emp[i].tarifaPago
emp[i].sueldo=emp[i].horas*emp[i].tarifaPago
}
}
final funcion leerDatosEmpleado

inicio funcion void desplegarDatosEmpleado(int n)
{
i int
Print "\n","No. empleado Nombre Horas trabajadas Pago por hora Sueldo"
for(i=0 to <n step i=i+1)
{
Print emp[i].id," ",emp[i].nombre," ",emp[i].horas," ",emp[i].tarifaPago," ",emp[i].sueldo
}
}
fin funcion desplegarDatos

inicio programa
x int
Print "cuantos empleados= "
Read x
leerDatosEmpleado(x)
desplegarDatosEmpleado(x)
Fin



Problema 7

Codigo C++




//Practica No 12 Problema No 7 FECHA: 16/11/2012

//Integrantes: Calderon Hernandez Hugo

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

#include <stdio.h>




struct alumno

{

char noControl [9];

char nombre [30];

int calif[4];

float promedio;

};




alumno a [10];

void leerDatosAlumno (int n);

void desplegarDatosAlumno (int n);




int main ()

{

int x;

cout<<"Numero de alunnos a registrar = ";

cin>>x;

leerDatosAlumno(x);

desplegarDatosAlumno(x);

getch ();

return 0;

}




void leerDatosAlumno (int n)

{

int i,j, suma;

for (i=0; i<n; i++)

{

suma=0;

cin.ignore ();

cout<<"\nNumero de Control = ";

cin.getline(a[i].noControl,9,'\n');

cin.ignore();

cout<<"Nombre Alumno = ";

gets (a[i].nombre);

for (j=0; j<4; j++)

{

cout<<"Calificacion "<<(j+1)<<": ";

cin>>a[i].calif[j];

suma=suma+a[i].calif[j];

}

a[i].promedio=suma/4.0;

}

}




void desplegarDatosAlumno (int n)

{

int i, j;

cout<<"\nNo. Control Nombre C1 C2 C3 C4 Promedio "<<endl;

for (i=0; i<n; i++)

{

cout<<a[i].noControl<<setw(20)<<a[i].nombre;

for (j=0; j<4; j++)

{

cout<<setw(7)<<a[i].calif[j];

}

cout<<"\t"<<a[i].promedio<<endl<<endl;

}

}

pseudocodigo


Inicio
registro alumno
{
noControl[9] char
nombre[30] char
calf[4] int
promedio real
}
alumno a[10]

inicio funcion void leerDatosAlumno(int n)
{
i,j,suma int
for(i=0 to <n step i=i+1)
{
suma=0
Print "\n","numero de control= "
Read a[i].noControl
Print "\n","nombre alumno= "
Read a[i].nombre
for(j=0 to <4 step j=j+1)
{
Print "calificacion ",(j+1),"= "
Read a[i].calf[j]
suma=suma+a[i].calf[j]
}
a[i].promedio=suma/4.0
}
}
fin funcion leerDatosAlumno

inicio funcion void desplegarDatosAlumno(int n)
{
i,j int
Print "\n","No.control nombre c1 c2 c3 c4 promedio"
for(i=0 to <n step i=i+1)
{
Print a[i].noControl," ",a[i].nombre,"\t"
for(j=0 to <4 step j=j+1)
{
Print " ",a[i].calf[j]
}
Print "\t",a[i].promedio
}
}
fin funcion desplegarDatosAlumno

inicio programa
x int
Print "numero de alumnos a registrar= "
Read x
leerDatosAlumno(x)
desplegarDatosAlumno(x)
Fin