Este documento describe conceptos fundamentales de la programación estructurada en C/C++, incluyendo la comunicación entre módulos a través del paso de parámetros, abstracciones procedimentales y funcionales, y el uso de apuntadores y referencias para pasar parámetros. También cubre tipos de datos definidos por el usuario como estructuras y enumeraciones.
0 calificaciones0% encontró este documento útil (0 votos)
21 vistas19 páginas
Este documento describe conceptos fundamentales de la programación estructurada en C/C++, incluyendo la comunicación entre módulos a través del paso de parámetros, abstracciones procedimentales y funcionales, y el uso de apuntadores y referencias para pasar parámetros. También cubre tipos de datos definidos por el usuario como estructuras y enumeraciones.
Este documento describe conceptos fundamentales de la programación estructurada en C/C++, incluyendo la comunicación entre módulos a través del paso de parámetros, abstracciones procedimentales y funcionales, y el uso de apuntadores y referencias para pasar parámetros. También cubre tipos de datos definidos por el usuario como estructuras y enumeraciones.
Este documento describe conceptos fundamentales de la programación estructurada en C/C++, incluyendo la comunicación entre módulos a través del paso de parámetros, abstracciones procedimentales y funcionales, y el uso de apuntadores y referencias para pasar parámetros. También cubre tipos de datos definidos por el usuario como estructuras y enumeraciones.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 19
DOCENTE:
• TRINIDAD MALPART IDA, Melquiades Arturo
Estudiante: • SANTOS MANDUJANO, Jairo CERRO DE PASCO - 2022 Modelo conceptual de la programación Estructurada del Lenguaje C/ C++ NOTA: Algunas veces se rechaza C++ por ser este un lenguaje demasiado permisivo y conducente a escribir programas no legibles y difíciles de decifrar. Sin embargo, se puede intentar el uso de ciertas características del lenguaje con el fin de modelar apropiadamente el diseño de programas. Esta introducción es un intento por mantener un control sobre la escritura en código C++ Comunicación entre módulos En programación estructurada el diseño es con base en abstracciones:
Procedurales o procedimentales Procedimentales Funcionales
Una abstracción procedimental es Y la comunicación entre estas abstracciones aquella que integra una serie de acciones es a través de datos: sus características son: • A este mecanismo se le conoce como paso de parámetros • Los parámetros relacionados a la En C++ existen los dos tipos de abstracción, pueden pasar por valor o abstracciones, su implementación es de la por referencia. Lo anterior implica que siguiente forma. los valores: Formalización de abstracciones 1. Se producen procedimentales: 2. Se modifican • Void Nombre_Proc (parámetros) 3. Permanecen constantes. { ○ instrucciones; } Abstracciones Funcionales en C++ • Integra una serie de operaciones aritméticas, regresando un valor. Este último debe estar asociado algún tipo de dato sus características son: ❑ Todos los parámetros pasan por valor. ❑ Se hace hincapié en el hecho de que la función nos debe regresar un valor ya que éste se generará a través de la integración de las operaciones aritméticas. Formalización de abstracciones funcionales Tipo_de_Dato Nombre_Func (parámetros) { o Tipo_de_Dato Variable; o Instrucciones; o Variable <- operaciones aritméticas; o return Variable; } ➢ En este caso la función tiene asociado un Tipo_de_Dato. ➢ Se hace hincapié en que la Variable debe ser del mismo tipo que el asociado a la función Como se hace en C++ Paso de ❑ En el caso de paso de parámetros por parámetros referencia se antepone un ampersand (&) al nombre de la variable. Existen dos tipos de paso de ❑ En el caso de paso de parámetros por valor, parámetros: sólo se pone el nombre de la variable. ➢ Referencia: apuntan a una • Por valor: Void Mod(int variable) localidad de memoria lo que les da • Por referencia: Void Mod(int &variable) la capacidad de crear o modificar los datos. ➢ Valor: solo copia el contenido para ser utilizado dentro de la abstracción. Se mantiene su valor original, una vez terminadas las acciones del procedimiento. En el caso de los Arreglos…un caso especial ✓ Siempre pasan por referencia, pensando en abstracciones procedimentales, ya que … ✓ En el caso de las abstracciones funcionales no tiene ningún sentido
Ejemplo de una abstracción procedural y funcional
float cubo(float x) void cubo (float x, &res) { { float res; res=(x*x*x); res = (x*x*x) } return res; } Apuntadores y el paso de Lenguaje C++ parámetros por referencia Fundamentos ❑Los apuntadores son un tipo de datos en C++ o Primer programa en C++ que se clasifican como dirección. o // pp1.cpp • Puntero • Referencia o # include < iostream.h> • ---------------------------------------------------- o main ( ) • int beta o { • int* intPtr o cout << “ hola mundo ” << • Podemos hacer que intPtr apunte a beta endl; usando el operador & (dirección de) o } • intPtr = & beta // con esta se puede accesar el contenido de beta ➢*intPtr // denota la variable a la que apunta intPtr ➢En el ejemplo intPtr apunta a beta ➢Así que la siguiente sentencia *intPtr = 28; ➢Guarda el valor 28 en beta. Este es un direccionamiento indirecto. ➢La sentencia beta = 28; representa el direccionamiento directo a beta. ➢*intPtr = 28; ➢cout << intPtr << endl; ➢cout << *intPtr << endl; ➢5008 ➢28 Usos del operador de Asignación o //ejem1.cpp o #include o #include o main ( ) o { o char Res; o int *p, q; o Res = 's'; o WHILE ((Res=='s') || (Res=='S')) • { • q = 100; // se asigna 100 a la variable entera q • p = &q; //se asigna a p la direccion de q • cout << *p); // se imprime el contenido de p • cout << endl; žcout << "deseas desplegarlo de nuevo? (S/N) \n"; • cin >> Res; • } o } Paso de parámetros por valor y por referencia en C++ ❑En una abstracción funcional todos los parámetros por default son por valor y la función regresa un valor como resultado. ❑En una abstracción procedural los parámetros pueden pasar por valor y/o por referencia. #include // paso por referencia void swap (int &a,int &b) { int temp; temp = a; a = b; b = temp; cout <<"Al final y dentro de swap: i = " << a << " j = " << b << "\n"; } main ( ) { int i = 421, j = 53; cout <<"antes: i = " << i << " j = " << j << "\n"; swap(i,j); cout <<"despues: i = " << i << " j = " << j << "\n"; } Para manejo dinámico Tipos definidos por el de memoria (New y usuario Delete) ❑ESTRUCTURAS (o Registros) ❑ New: struct date_s { • Asigna memoria para un objeto del tipo y int day, month, year; tamaño especificados. • Devuelve un apuntador a un objeto del tipo }; especificado, que hace referencia al espacio Podemos definir variables de este reservado. tipo referenciando la estructura por ❑ Delete: • Libera la memoria reservada para un objeto. el nombre: • Sólo se puede aplicar a apuntadores que han date_s AnotherDate; sido retornados por el operador new. Lenguaje C++ Tipos definidos por el #include using namespace std; usuario struct persona { ❑Enumeraciones int edad; • enum_nombre string nombre; {lista_de_elementos} string apellido; • Así como lo indica el formato a la }; lista de elementos se le asignan main () valores enteros secuencialmente { iniciando por cero o los que el persona emi; usuario asigne: cout<<(“dime tu nombre”)<<endl; • enum colores { negro, rojo, verde, Cin<<emi.nombre: azul} Cout<<emi.nombre • enum colores { negro = 2, rojo, } verde, azul} Lenguaje C++ unos operadores especiales ✓ Los operadores de incremento ++ y -- pueden ser explicados por medio del siguiente ejemplo. Si tienes la siguiente secuencia de instrucciones a = a + 1; b = a; Se puede usar b = a++; // asigna el valor de a a b y después lo incrementa b = ++a; // incrementa el valor de a y después lo asigna a b