miércoles, 28 de noviembre de 2012

Unidad 3

Tarea 3

1-¿A que se le conose como transmicion por valor?

La funcion llamada asigna valores a la funcion que llama, almacene y manipula los valores transmitidos, y devuelve directamente a un valor, como maximo.

2-¿En que consiste el proceso conosido como transmicion por referencia?

Proceso en el que la funcion llamada puede hacer referencia , o tener acceso, a la variable cuya direccion se le transmitio.

3-¿Cuál es la primera preocupación al usar argumentos de referencia?

Que los argumentos de referencia deben ser variables.


4-¿Cuál es la segunda precaución al usar argumentos de referencia?

Es que una llamada de función en si no da indicio de que la función llamada usara parámetros de referencia.


5-Explique la sintaxis para declarar un parametro de referencia en C++:

tipo-de-dato& nombre-de-referencia.

6-¿Cual es el significado de utilizar el simbolo & dentro de una declaracion ?

Se refiere a "la direccion del" tipo precedente de dato.

7-¿En que consiste el algoritmo conosido como algoritmo para resolver problemas?

Algoritmo que define las tres tares de principal responsabilidad de todo programa:
Obtener los datos aportados al problema.
Calcular los reultados deseados.
Reportar los resultados de los calculos.

8-¿Para que se requiere la generacion de numeros aleatorios?

Para crear un conjunto de numeros cuyo orden sea imprecindible.

9-¿Que son los numeros seudoaleatorios?

Ya que las computadoras solo pueden manejar numeros dentro de un rango finito y con precision limitada los numeros seudoaleatorios son numeros lo suficientemente aleatorios para las tareas que vamos a realizar.

10-Defina los tipos de funciones que producen numero aleatorios en C++:

Son rad( ), que genera nunmeros aleatorios, y srand( ), que siembra valores aleatorios iniciales. 
11-Explique en que consiste el escalamiento:

Es el metodo empleado para ajustar los numeros aleatorios producidos por un generador de tal manera que se ubiquen dentro de tales rangos.

12-¿Cuales son las variables locales?

Son las variables creadas dentro de una funcion que solo estan disponibles en forma convencional solo para la misma funcion.

13-¿Que es el alcanse de un identificador?

Se define como la seccion del programa donde el identificador, tal como una variable, es valido o "conosido". Esata seccion del programa tambie se conoce como la ubicacion donde la variable es visible.

14-Explique en que consiste una variable con alcance local:

Variable que solo tiene ubicacion de almacenaje reservada por una instruccion de declaracion hecha dentro del contenido de la funcion. Las variables locales solo tienen significado cuando se utilizan en expreciones o instrucciones dentro de de la funcion que las declara.

15-Explique en que consiste una variable de alcance global:

En estas variables el espacio de almacenaje se crea mediante una instruccion declaratoria ubicada fuera de cualquier funcion. Estas variables pueden ser utilizadas por todas las funciones que esten colocadas fisicamente despues de la declaracion de la variable global.

16-Explique cual seria un mal uso de las variables globales:

Utilizar todas las variables globales de manera indiscriminada destruiria las defensas que C++ proporciona para hacer que las funciones sean independientes y esten aisladas entre si, incluyendo la nesesidad de seleccionar cuidadosamente el tipo de argumentos que requiere una funcion, las variables que esta utilizada y el valor que devuelve.

17-¿Que ocurre cuando una variable local tiene el mismo nombre que una variable global?

Todas las referencias al nombre de la variable hecha dentro del alcance de la variable local se refieren a ella.

18-¿Cuál es la característica fundamental de los parámetros de referencia?

Tan solo proporciona la capacidad para que una función llamada y una que llama tenga acceso a la misma área de almacenamiento usando nombres diferentes.

19-¿A que es igual el llamar a una función y transmitir una dirección como argumento que aceptar como parámetro de referencia?

Es igual que llamar a una función y transmitir un valor.


20-¿Cual es una opción por omisión en c++? 

 Hacer transmisión por valor en lugar de por referencia.


Ejecicio 6.3

Problema 3

Ejercicio 6.4

Problema 2

Problema 5


martes, 20 de noviembre de 2012

Unidad 3

Tarea 2

1-Explique en que conciste el argumento conosido como "transmitido por valor":

La funcion llamada solo recibe copias de los valores contenidos en los argumentos al momento de la llamada. Cuando se transmite un valor a una funcion llamada con este metodo.

2-¿Cuantos valores puede devolver la funcion que recibe los argumentos transmitidos?

Procesa los valores enviados a ella de la manera que se desee y devolver directamente cuando mucho un valor "legitimo" a la funcion que llama.

3-¿Que debe especificar una funcion que devuelve un valor?
Debe especificar, en la line de encabezado, el tipo de datos del valor que devuelve.

4-¿Que ocurre cuando se encuentra la instruccion return?

La exprecion se evalua primero y su valor se convierte automaticamente al tipo de dato declarado en el encabezado de la funcion, antes de devolverlo a la funcion que hizo la llamada.

5-Explique la forma de preparar a la funcion que llama para recibir el valor que envia la funcion llamada:

Esta prevenida sobre el tipo de valor a esperar
Utilizar correctamente el valor devuelto.

6-Mencione uno de los propositos de las declaraciones:

Avisar a la computadora del espacio de almacenaje interno a reservar para los datos.

7-Explique la enque consiste la region de la memoria conocida como pila:

Esto consiste en colocar valores de argumentos en una region reservada  de la memoria a la cual la funcion tiene acceso, y transmite control a la funcion, con lo cual proporciona una ubicacion reservada de memoria para cualquier valor devuelto (una vez mas , la region de la pila en la memoria se utiliza con este proposito, y finalmente regresa al punto apropiado en el programa que hizo la llamada.

8-¿Que resulta mas conveniente para funciones pequeñas que no son llamadas muchas veces y no se justifica la carga adicional para transmitir y devolver valores?

Puede resultar conveniente agrupar lineas respectivas de codigon en un nombre comun de funcion y hacer que el compilador coloque este codigo directamente en el programa siempre que se llame a la funcion.

9-¿Que ocurre cuando se indica a la compilador que una funcion esta en-linea?

Hace que una copia del codigo de la funcion se coloque en el programa en el lugar donde la funcion es llamada.

10-En que consiste una transmicion por valor:
En una invocacion tipica, la funcion llamada asigna valores a la funcion que llama, almacena y manipula los valores transmitidos, y devuelve directamente un solo valor, como maximo. A la transmicion de datos de esta manera se le conoce como transmicion por valor.

11-Explique las ventajas de llamar a una funcion y transmitirle argumentos por valor:

Esto permita escribir las funciones como entidades independientes que pueden utilizar cualquier nombre de variable o parametro sin preocuparse por que otras funciones puedan utilizar el mismo nombre.

12-De la definicion de parametros:

Se pueden considerar como variables inizializadas o variables a las cuales se asignaran valores cuando se ejecute la funcion.

13-Explique en que consiste el proseso conosido como transmision por referencia:

La funcion llamada puede utilizar y modificar el valor de las variables definidas en la funcion que llama. Para hacer esto se requiere transmitir la direccion de la variable a la funcion llamada. En cuanto la funcion llamada tiene la direccion de la variable, sabe donde "reside" la variable, y puede tener acceso al valor almacenado ahi y cambiarlo directamente.

14-¿Cuales son los dos tipos de parametros de direccion que se permite en C++?

Referencias y apuntadores.

15-¿Cuando entra en accion la funcion llamada?

Cuando se dan su nombre y una lista de argumentos.

16-Defina el significado de "&", en C++:

Significa "la direccion del" tipo precedente de dato.

17-¿La transmisión de dirección se conoce como función de?

Transmisión por referencia.

18-¿Que permite llamar a una función y transmitir argumentos por valor?

Que se escriban como entidades independientes que puedan usar cualquier nombre de variable sin preocuparse que otras funciones usen el mismo nombre.

19-¿Que ejecuta el prototipo convertir_temp()?

Alerta al compilador del tipo de almacenamiento necesario para el valor devuelto.

20-¿Que es lo que hay que proporcionar para usar un valor devuelto?

Una variable para almacenar el valor o usar el valor en forma directa en una expresión.

Ejercicio 6.2 pag. 331 problema10,12

Problema 10

Problema 12
 
 
Ejercicio 6.3 pag. 341 poblema 4,5
 
Problema 4
 
Problema 5

lunes, 19 de noviembre de 2012

Practica 12

Problema 1

Pseudocodigo:

inicio funcion imprimeCaracter(char ch,int n)
{
i int
for(i=1 to n step i=i+1)
{
print ch
}
print "\n"

}
fin funcion imprimeCaracter

inicio progama principal
caracter char
x int
print "introduce el caracter a imprimir= "
read caracter
print "\n","introduce la cantidad de caracteres= "
read x
imprimeCaracter(caracter,x)
 a,b int
print "\n","introduce dos valores enteros= "
read a,b
suma=a+b int
print "\n","El resultado de la suma esta representado por el caracter * \n"
imprimeCaracter('*',suma)

fin

Lenguaje C++

Problema 2

Pseudocodigo:

inicio funcion imprimeAsteriscos()
{
i int
for(i=1 to 30 step i=i+1)
 {
 print "*"
 }
print "\n","\n"

}
fin funcion imprimeAsterisco


inicio funcion mayor(int x, int y)
{
 if(x>y)
 {
 return x
 }
 else
 {
 return y
 }

}
fin funcion mayor


inicio funcion menor(int x, int y)
{
 if(x<y)
 {
 return x
 }
 else
 {
 return y
 }

}
fin funcion menor

inicio programa principal
a,b int
print "introduce dos valores enteros: "
read a,b
imprimeAsteriscos()
print "El dato mayor es: ",mayor(a,b),"\n","\n"
 imprimeAsteriscos()
print "El dato menor es: ",menor(a,b),"\n","\n"
imprimeAsteriscos()

fin

Lenguaje C++

Problema 3

Pseudocodigo:

inicio funcion lecturaDatos(int 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(int a[10])
{
i int
print "listado de los 10 valores enteros \n"
  for(i=0 to <10 step i=i+1)
 {
 print a[i],"\n"
 }

}
fin funcion desplegarDatos


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

}
fin funcion sumaValores

inicio funcion mayorValores(int a[10])
{
mayor=a[0] int
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 funcionmayorValores


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


Lenguaje C++

Problema 4 a) Valores enteros

Pseudocodigo:

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 principal
numeros[10] int
lecturaDatos(numeros)
print "\n","\n"
desplegarDatos(numeros)
print "La suma total es: ",sumaValores(numeros)
mayorValores(numeros)

fin

Lenguaje C++

Problema 4 b) Valores flotantes

Pseudocodigo:

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 principal
numeros[10] real
lecturaDatos(numeros)
print "\n","\n"
desplegarDatos(numeros)
print "La suma total es: ",sumaValores(numeros)
mayorValores(numeros)

fin

Lenguaje C++

Problema 4 c) Valores doble presicion

Pseudocodigo:

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 principal
numeros[10] double
lecturaDatos(numeros)
print "\n","\n"
desplegarDatos(numeros)
print "La suma total es: ",sumaValores(numeros)
mayorValores(numeros)

fin

Lenguaje C++

Problema 5

Pseudocodigo:

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 principal
a[5][5],renglones[5],columnas[5] int
 LecturaDatos(a)
 desplegarDatos(a)
 sumaRenglones(a,renglones)
 sumaColumnas(a,columnas)
 desplegarSumaMayorRenglones(renglones)
 desplegarSumaMayorColumnas(columnas)

fin

Lenguaje C++

Problema 6
 
Pseudocodigo:
 
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
 
Lenguaje C++
 
Problema 7
 
Pseudocodigo:
 
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
 
Lenguaje C++
 
Problema 8
 
Pseudocodigo:
 
registro empleado
{
id int
nombre[30] char
horas int
sueldo int
tarifaPago real
}
empleado emp[10]
i=0 int
 
inicio funcion empleado leerDatosEmpleado()
{
empleado e1
print "\n","numero de empleado= "
read e1.id
print "nombre empleado= "
read e1.nombre
print "horas trabajada= "
read e1.horas
print "pago por hora= "
read e1.tarifaPago
e1.sueldo=e1.tarifaPago*e1.horas
return e1
}
fin funcion empleado leerDatosEmpleado
 
inicio funcion void almacenaRegistro(empleado e)
{
 if(i==10)
 {
 print "no se puede registrar trabajador \n\n"
 }
 else
 {
 emp[i]=e
 i=i+1
 }
}
fin funcion almacenaRegistro

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++)
 {
 print "emp[i].id,"   ",emp[i].nombre,"   ",emp[i].horas,"   ",emp[i].tarifaPago,"   ",emp[i].sueldo
 }
}
fin funcion desplegarDatosEmpleado
 
inicio programa
x,v int
empleado e2
print "cuantos empleados= "
read x
 for(v=1 to <=x step v=v+1)
 {
 e2=leerDatosEmpleado()
 almacenaRegistro(e2)
 }
desplegarDatosEmpleado(x)
fin
 
Lenguaje C++
 
Problema 9
 
Pseudocodigo:
 
registro producto
{
noProd int
descrip[30] char
precio real
cantidad int
}
producto produc
producto p[5]
 
inicio funcion producto leerProducto()
{
producto x
print "numero de producto= "
read x.noProd
print "descripcion producto= "
read x.descrip
print "precio= "
read x.precio
print cantidad= "
raed x.cantidad
return x
}
fin funcion producto leerProducto
 
inicio funcion void almacenaProducto(producto p1,int &i)
{
 if(i == 5)
 {
  print "no se puede registrar mas producto \n"
 }
 else
 {
  p[i]=p1
 }
}
fin funcion almacenaProducto
 
inicio funcion reduceCantidadProd(int cantidadProd,int np,producto totalprod[5],int &ind)
{
j=0 int
bandera=0 int
 do
 {
  if(p[j].noProd == np)
  {
   p[j].cantidad= p[j].cantidad - cantidadProd
   totalprod[ind].noProd = np
   totalprod[ind].cantidad=cantidadProd
   totalprod[ind].precio=p[j].precio
   strcpy(totalprod[ind].descrip,p[j].descrip)
   bandera = 1
   ind=ind+1
 }
 j=j+1
 }
 while(j < 5 and bandera == 0)
return bandera
}
fin funcion reduceCantidadaProd
 
inicio funcion void desplegarListaProd()
{
j int
print "Listado de productos \n\n"
print "No. producto      Descripcion      Precio       Cantidad\n\n"
 for(j = 0 to 4 step  j=j+1)
 {
  print p[j].noProd,"   ",p[j].descrip,"   ",p[j].precio,"   ",p[j].cantidad
 }
}
fin funcion desplegarListaProd
 
inicio funcion void desplegarFactura(producto a[5], int h)
{
total=0,subtotal=0,suma=0 real
c int
print "\n","Factura \n\n"
print "No. producto      Descripcion      Precio       Cantidad      Subtotal"
 for(c=0 to < h step c=c+1)
 {
  print a[c].noProd,"   ",a[c].descrip,"   ",a[c].precio,"   ",a[c].cantidad,"    "
  subtotal=a[c].precio*a[c].cantidad
  suma=suma+subtotal
  print subtotal
 }
print ,"   ","subtotal= ",suma
total=suma*1.11
print ,"   ","iva= ",(suma*0.11)
print ,"   ","total= ",total
}
fin funcion desplegarFactura
 
inicio programa
conta,j=0,numProd,cantidad,ban=0,ind=0 int
producto productos[5]
sigue char
producto produc
 for(conta=0 to 4 step conta=conta+1)
 {
  produc = leerProducto()
  almacenaProducto(produc,j)
  j=j+1
 }
 do
 {
  clrscr()
  print "\n\n"
  desplegarListaProd()
  print "\n\n","numero de producto: "
  read numProd
  print "cantidad de producto: "
  raed cantidad
  ban = reduceCantidadProd(cantidad,numProd,productos,ind)
   if(ban == 0)
   {
    print "no existe producto \n\n"
   }
  print "desea otro producto (s/n)= "
  read sigue
 }
 while(sigue=='s' or sigue=='S')
clrscr()
print "\n\n"
desplegarListaProd()
desplegarFactura(productos,ind)
fin

Lenguaje C++
 
 
 
 

viernes, 16 de noviembre de 2012

Unidad 3

Tarea 1

1- Explique en que consiste la funcion llamada:

Es la funcion llamada o invocada a la accion por su referencia en main( ).

2-Explique en que consiste la funcion que llama:

Es la funcion que realiza la llamada, en este caso main( ):

3-Explique en que consiste el prototipo de funcion:

Le indica a la funcion que llama el tipo de valor que sera devuelto formalmente, si es que hay alguno, y el tipo de datos y orden de los valores que la funcion que llama debera transmitir a la funcion llamada.

4-Explique la sintaxis del prototipo de funcion:

tipo-de-dato-que-devuelve nombre-de-funcion (lista de tipos de datos de los parametros)

5-¿Cuales son los requisitos para la operacion llamar a una funcion?

Usar el nombre de la funcion y que los datos transmitidos a la funcion esten encerrados dentro de los parentesis que siguen al nombre de la funcion usando el mismo orden y tipo que se declar en el prototipo de funcion.

6-Explique el proposito del encabezado de funcion:

Identificar el tipo de dato del valor devuelto por la funcion, proporcionalmente un nombre de la funcion y especificar el numero, orden y tipo de los argumentos esperados por elle. Siempre es la primera linea de una funcion y contiene el tipo de valor devuelto de la funcion, su nombre y tipos de datos de sus argumentos.

7-Explique el propocito del cuerpo de la funcion:

Operar sobre los datos transmitidos y devolver en forma directa, cuando mucho, un valor a la funcion que llama.

8-En que consisten los parametros fundmentales de la funcion:

Son los nombres de argumento en el encabezado

9-Explique en que consisten las condiciones previas:

Son cualquier conjunto de condiciones que una funcion requiere que sean verdaderas para operrar en forma correcta

10-Explique en que consisten las condiciones posteriores:

Es una condicion que sera verdadera despues que se ejecute la funcion, suponiendo que se cumplen las condiciones previas.

11-Mencione la regla general para la colocacion de instrucciones  en un programa en C++:

Todas las directivas del procesador, constantes nombradas, variables y funciones deben declararse o definirse antes de que puedan usarse.

12-Explique que establece la regla basica de la prueba:

Establece que cada funcion solo debera probarse en un programa en el que se sabe que todas las demas funciones son correctas. Esto significa que una funcion debe probarse primero por si misma, usando cabos si es necesario para las funciones llamadas, y una segunda funcion debera probarse ya sea por si misma o con una funcion probada con anterioridad, y asi en forma sucesiva.

13-Explique en que consiste un cabo:

Es el comienso de una funcion final que se puede usar como un sustituto de la unidad final hasta que la unidad este completa.

14-En que consisten las funciones con listas de parametros vacias:

Funcion cuyo prototipo requiere escribir la palabra clave void o no poner nada en absoluto entre los parentesis que siguen al nombre de la funcion. Por ejemplo:
int despliegue( );
e
int despliegue(void);
indican que la funcion despliege( ) mo tiee parametros y devuelve un numero entero.

15-Explique el uso primario de los argumentos por omision:

Extender la lista de parametros de funciones existentes sin requerir algun cambio en las listas de argumentos invocados que ya estan en su lugar dentro de un programa.

16-Mencione las cuatro reglas que deben seguirse cuando se usan parametros por omision:

La primera es que los valores por omision deberian asignarse en el prototipo de funcion. La segunda es que si a cualquier parametro se le da un valor por omision en el prototipo de funcion, atodos los parametros que siguen tambien deben asignarseles valores por omision. La tercera es que si un argumento se omite en la llamada a la funcion real, entonces todos los argumentos a su derecha tambien tienen que omitirse. La ultima especifica que el valor por omicion utilizado en el prototipo de funcion puede ser una exprecion consistente en constantes y variables declaradas con anterioridad.

17-Explique en que consiste la reutilizacion de nombres de funcion:

Proporciona la capacidad de usar el mismo nombre de funcion para mas de una funcion, lo cual se conoce como sobrecarga de funcion. El unico requisito para crear mas de una funcion con el mismo nombre es que el compilador debe ser capaz de detrminar cual funcion usar con base en los tipos de datos de los parametros.

18-Explique en que consiste una plantilla de funcio:

Es una funcion unica completa que sirve como modelo para una familia de funciones. Cual funcion de la familia se creara en realidad depende de las llamadas a la funcion subsiguiente.

19-Mencione la ventaja de usar la T dentro de la linea de encabezado de la plantilla de funcion:

Representa un tipo de datos general que es reemplazado por un tipo de dato real, como int, float, double, etc., cuando el compilador encuentra una llamada a la funcion real.

20-Explique en que consiste el prefijo de plantilla:

Linea que se usa para informar al compilador que la funcion que sigue inmediatamente es una plantilla que usa un tipo de dato nombrado T.

Ejercicio 6.1 2,3,4,5

Problema 2


Problema 3


Problema 4


Problema 5