Modelo Estructurada - Santos Mandujano Jairo

Descargar como pdf o txt
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

También podría gustarte