0% encontró este documento útil (0 votos)
77 vistas9 páginas

P01 Fun XY

Este documento describe el funcionamiento de las funciones en C++ a través de varios ejemplos. Explica conceptos como prototipos, llamadas y definiciones de funciones, parámetros, y cómo crear un programa que utilice múltiples funciones que se llaman entre sí para realizar cálculos y mostrar resultados. El documento incluye el código C++ completo de un programa de ejemplo que ilustra estas capacidades.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
77 vistas9 páginas

P01 Fun XY

Este documento describe el funcionamiento de las funciones en C++ a través de varios ejemplos. Explica conceptos como prototipos, llamadas y definiciones de funciones, parámetros, y cómo crear un programa que utilice múltiples funciones que se llaman entre sí para realizar cálculos y mostrar resultados. El documento incluye el código C++ completo de un programa de ejemplo que ilustra estas capacidades.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

P01FunXY.

cpp
1) Objetivo.
Ilustrar la operación de las funciones.

1. Funciones.
1.1. Que es una función?
Es un subprograma que realiza una tarea, opcionalmente requiere de datos para realizarla y
regresa un dato, opcionalmente también no regresa nada.
1.2. Como se operan las funciones?
Por medio de tres etapas: Prototipo o firma de la función, Llamado de la función y
Definición o implementación de la función.
1.2.1 Que es el PROTOTIPO DE FUNCIÓN?
Similar a una caja negra, indica tres cosas: Nombre de la función, Tipo de datos o
parámetros para realizar la tarea, y el Tipo de dato que regresa. Se codifica antes del
“main”.
1.2.2 Como se llama una función?
Similar a una instrucción, de acuerdo al prototipo de la función. Se codifica dentro del
“main”.
1.2.3 Como se define una función?
Similar a un programa, comienza con el encabezado acorde al prototipo, pero dando
nombre a cada parámetro, puesto que en el cuerpo de la función se hace referencia a esas
variables; se continua con la definición de bloque, dentro del cual va el conjunto de
instrucciones necesarias para la tarea de la función. Se codifica después del “main”.
1.3. Parámetros de una función.
Se refiere a los datos necesarios para que la función realice su tarea.

2) Interface de usuario. Se refiere a un esquema que ilustra lo que sale en la pantalla


o monitor, al momento de la ejecución del programa.
3) Diagramas de flujo. Se refiere a representar en un esquema las acciones que
deseamos realice la computadora. Por medio de símbolos predefinidos.

main

Int a,aa,aaa
float b,bb,bbb
char c[80]="Instituto
Politecnico Nacional"
char cc[80]=
{'E','S','I','M','E','\0'}
char *pcc

Alimentar a:
a

Alimentar b:
b
A: a B: b
C: c CC: cc

Pcc =
newchar[strlen(cc)+1]
strcpy(pcc,cc)

*pcc long: strlen(pcc) pcc

Proceso de void funA()


funA()

Proceso de void
funB(char c, char cc) funB(c,cc)

Proceso de int aa=


funC(2,20.6) aa=funC(2,20.6) AA= aa

Proceso de int
aaa=funC(funC(a,b),b) aaa=funC(funC(a,b),b) AAA= aaa

Proceso de float
bb=funD(20.6,2) bb=funD(20.6,2) BB= bb

Proceso de float bbb= bbb=funD(funD(b,a),


funD(funD(b,a),funC(a,b)) BBB= bbb
funC(a,b))

Proceso de void funE(c,pcc,&c[0])


funE(char c, char *pcc, delete pcc
&c[0])

fin
funA() funB(char arr1[], funC(int a, funD(float
char arr2[]) float b) a, int b)

Letrero A arr1 a+b a+b


Letrero B arr2

fin fin
fin fin

funE(char arr1[], char *px, char *p)

arr1 px p
fin

4) Codificación.
1. /* [Link]
2. Ilustracion de funciones
3. */
4. #include<cstdlib>
5. #include<iostream>
6. #include<string.h>
7. #include<conio.h>

8. using namespace std;

9. void funA();
10. void funB(char [], char []);
11. int funC(int,float);
12. float funD(float,int);
13. void funE(char [], char *, char *);
14. int main(void){
15. int a,aa,aaa;
16. float b,bb,bbb;
17. char c[80]="Instituto Politecnico Nacional";
18. char cc[80]={'E','S','I','M','E','\0'};
19. char *pcc;

20. system("cls"); //clrscr();

21. cout<<"\nAlimentar a (int): "; cin>>a;


22. cout<<"\nAlimentar b (float): "; cin>>b;
23. cout<<"\n\na: "<<a<<"\tb: "<<b<<"\nc: "<<c<<"\ncc:"<<cc<<"\n";
24. pcc=new char[strlen(cc)+1];
25. strcpy(pcc,cc);
26. cout<<"\n*pcc long:"<<strlen(pcc)<<"\t"<<pcc;
27. system("pause>nul");

28. cout<<"\n\nProceso de void funA()";


29. funA();

30. cout<<"\n\nProceso de void funB(char c, char cc)";


31. funB(c,cc);

32. cout<<"\n\nProceso de int aa= funC(2,20.6)";


33. aa=funC(2,20.6);
34. cout<<"\naa: "<<aa;

35. cout<<"\n\nProceso de int aaa=funC(funC(a,b),b)";


36. aaa=funC(funC(a,b),b);
37. cout<<"\naaa: "<<aaa;
38. cout<<"\n\nProceso de float bb=funD(20.6,2)";
39. bb=funD(20.6,2);
40. cout<<"\nbb: "<<bb;

41. cout<<"\n\nProceso de float bbb=funD(funD(b,a),funC(a,b))";


42. bbb=funD(funD(b,a),funC(a,b));
43. cout<<"\nbbb: "<<bbb;

44. cout<<"\n\nProceso de void funE(char c, char *pcc, &c[0])";


45. funE(c,pcc,&c[0]);

46. delete pcc;

47. getch();
48. return 0;
49. }

50. void funA(){


51. cout<<"\nLetrero A\tLetrero B";
52. }

53. void funB(char arr1[], char arr2[]){


54. cout<<"\n"<<arr1<<"\n"<<arr2;
55. }

56. int funC(int a, float b){


57. return a+b;
58. }
59. float funD(float a, int b){
60. return a+b;
61. }

62. void funE(char arr1[], char *px, char *p){


63. cout<<"\n"<<arr1<<"\n"<<px<<"\n"<<p;
64. }

5) Explicación:
Línea 1/3: Comentario, delimitado por “/*” y “*/" El equipo no lo considera, sirve
únicamente para información para el usuario.
Línea 4/7: Directiva al compilador. Incluye en el programa la librería “iostream” en
donde se encuentra la información para operar instrucciones de entrada/salida.
Línea 8: Necesario para “codeBlocks”. Esta plataforma puede operar para otros
lenguajes.
Siguen los “Prototipos de Función”.
Encabezado de la función principal. Ahí se inicia la ejecución del programa. Indica
que al final debe regresar un valor entero (int).
Al inicio del programa se deben definir las variables que existen en el programa, y
que tipo de variable. En este caso, a, aa y aaa son del tipo entero (int); b,bb,bbb
son flotantes (float); “c” es carácter (char) además arreglo y se inicializa con una
cadena (delimitada con “), el tamaño del arreglo está definido por la longitud de la
cadena; cc es char, arreglo de 80 posiciones e inicializado por caracteres
(delimitados por ‘), al final hay que agregar “\0” para darle el significado de cadena,
no se ocuparon las 80 posiciones. “*pcc” es char y “puntero”.
Se limpia / borra la pantalla.
Se alimenta los valores para “a y b”, imprimiendo previamente letreros alusivos.
Se imprimen esos valores.
Se localiza un espacio de memoria (central) para almacenar la cadena cc, se
aumenta “1” para poder guardar “\0”. Esa dirección de memoria se guarda en el
puntero pcc.
Se copia la cadena al espacio de memoria previamente localizado.
Se imprime la situación actual y se detiene el proceso para observar resultados.
Ya con la información registrada se procede a ejecutar las funciones.
Letrero indicando se va a operar “void funA()”. La ejecución pasa a la función.
Al regresar a “main”, se tiene:
Letrero indicando se va a operar “void funB(char c, char cc)”. La ejecución pasa a
la función.
Al regresar a “main”, se tiene:
Letrero indicando se va a operar “int aa= funC(2,20.6)". La ejecución pasa a la
función y regresa un valor int que es recibido en “aa”. Se imprime ese valor.
Al regresar a “main”, se tiene:
Letrero indicando se va a operar “int aaa=funC(funC(a,b),b)". La ejecución pasa a
la función y regresa un valor int que es recibido en “aaa”. Se imprime ese valor. La
función requiere de un valor int, en este caso es proporcionado como resultado de
funC(a,b), que a su vez necesita 2 int.
Al regresar a “main”, se tiene:
Letrero indicando se va a operar “float bb=funD(20.6,2)". La ejecución pasa a la
función y regresa un valor float que es recibido en “bb”. Se imprime ese valor.
Al regresar a “main”, se tiene:
Letrero indicando se va a operar “float bbb=funD(funD(b,a),funC(a,b)). La
ejecución pasa a la función y regresa un valor float que es recibido en “bbb”. Se
imprime ese valor. La función requiere de un valor float, en este caso es
proporcionado como resultado de funD(b,a), que a su vez necesita 1 float y un int,
así mismo la función requiere de un int, proporcionado por . funC(a,b).
Al regresar a “main”, se tiene:
Letrero indicando se va a operar “void funE(char c, char *pcc, &c[0])". La ejecución
pasa a la función y no regresa nada. Para operar, de acuerdo al “prototipo”
necesita: 1 char, y dos cadenas indicadas por un puntero (dirección) y por la
dirección del 1er elemento de la cadena.
Por último, siempre que se usa el comando “new” es necesario codificar un
“delete” para liberar la localidad de memoria del puntero.
Después del código de “main”, viene el código de las funciones, de acuerdo al
“prototipo”, pero dándole nombre a las variables que vienen como parámetros.

6) Requerimientos:
Enviar al eMail correspondiente del grupo:
1 Archivo tipo “.c” con el código del programa (copia de la codificación del punto
4).
2 Imagen de la pantalla con la ejecución del programa. La captura de una pantalla
se obtiene al digitar simultáneamente las teclas “Windows” e “ImpPt”; el archivo
con la imagen se encuentra en el directorio …\Pictures\CapturaDePantalla (una
aproximación, depende del S.O. instalado y el equipo).

Es necesario crear una Carpeta o Directorio en el equipo del alumno con el


nombre “POO”. En ese directorio guardar todos los archivos del curso. Este
ejercicio debe generar: Archivo Fuente ([Link], Archivo Objeto
(P01funXY.o), Archivo ejecutable ([Link]), pueden guardar adicionalmente
el archivo enviado por WhatsApp ([Link])

También podría gustarte