Desventajas de la programación estructurada:

La programación estructurada concentra los errores  en uno de los factores mas generador de fallas en programación; La lógica.

Existen tre tipos de estructuras de control i son:

– de secuencia

– de selección

– de iteración

Herramientas de programación:


Diagrama de flujo


Pseudocodigo

-tabla n/s

-UML

Diagrama de flujo: es  la representación grafica de unos procedimientos y de la secuencia en que deben ejecutarse.

Pseudocodigo: es un lenguaje de especificación de algoritmos usa palabras reservadas e identificaodres.

Identificador: conjunto de caracteres alfanuméricos de cualquier longitud que sirve para identificar las entidades del programa (clases, funciones, variables, tipos compuestos, Etc.)

algoritmo:
Se define un algoritmo como un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema. Por otra parte, las carácterísticas que deben tener los algoritmos son:

Precisión. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

Determinismo. El algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.

Finitud. El algoritmo, independientemente de la complejidad del mismo, siempre debe tener longitud finita, o sea, debe tener un número finito de pasos.

Imagen

Expresión: es una secuencia de operandos que especifican una operación determinada.

Operadores: son símbolos que indican como son manipulados los datos y se clasifican en; aritméticos,lógicos relacionales, unitarios,de asignación,lógicos para manejo de bits, y ternarios para expresiones condicionales u otros.

programación estructurada:conjunto de técnicas en la cual la estructura de un programa ,la interpretación de sus partes se realiza tan claramente como: pruebas mantenimiento y modificación de los mismos.
programa:secuencia prsisa y ordenada de instrucciones y grupos de instrucciones las cuales en su total definen describen o caracterizan la relación de alguan tarea.
diagrama de flujo: es la secuencia grafica deunos procedimientos y de la secuencia en que deben ejecutarse.
pseudocodigo: es un lenguaje de especificación de algoritmos usa palabras reservadas e identificación.
operadores son símbolos que indican como son manipulados los datos y se clasifican en aritméticos,lógicos,relacionales,unitarios,asignación y lógicos para manejo de bits.

/n =salto de línea.
#define =define el valor
pow =elevar a una potencia
#include =librería para formulas matemáticas
#include =biblioteca para manejo de cadenas
\t =acotación hacia la derecha
“\n” =brinca la información un renglón
\a =emite un sonidito en pantalla
– Directiva de compilación……………………………………..#include
– Programa principal (función)………………………………..Main
– Comentarios……………………………………………………….// , /* */
– Inicio de bloque de instrucciones………………………….{
– Fin de bloque de instrucciones………….…………..}
– Fin de línea………………………………………….;
– Función de biblioteca………………………………..System
– Flujos de entrada y salida……………………………cin, cout
ejemplo:
#include
main ( )
{
cout < “hola=”” mundo”;=””>
system (“pause”);
}
La programación modular: es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.
Programación descendente (“Top – Down”): es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise).
– Directiva de compilación…………………………………#define
– Espacio de nombres Ansí/ISO C++.……………#using namespace std;
– Tipo de dato…………………………………………………..Float
– Formatos de salida………………………………………….\t,\n
– Librería de funciones……………………………………..Cmath, iomanip.H
– Constantes predefinidas………………………………….M_PI
– Funciones predefinidas…………………………………..Pow( ), setw( )
– Precedencia de operadores aritméticos………….+,-,*,/
– Uso de paréntesis en expresiones matemáticas….( )
– Parámetro de la función system…………………cls
– Tipos de números……………………………..…oct, hex, dec
sentencias if, if-else:
if (condición lógica)
{ intrucciones a ejecutar
}
if (condición lógica)
{instrucción
}
else
{instrucción
}
– Selección simple……………………………………………If
– Operadores lógicos………………………………………<,>, <=,>=, !=
– Parámetros de system…………………………………….Cls
– Inicialización de variables……………………….Variable = valor;
– Opción de otro modo del if…………………..….Else

Flujo de I/O


Es una secuencia de caracteres que fluyen en forma escrita en la pantalla del monitor o que se leen del teclado.

cin para la entrada y cout para la salida. C++ los define como clases.

Flujo 

Propósito 

Ejemplo

     cin

Entrada del teclado                                                                  

 cin >>  nombre;

     cout          

Salida en pantalla                                                                    

cout  <  “hola,=””> >

     cerr           

Salida a dispositivo de error estándar                    

cerr  <  “error=””> >

     clog          

Salida almacenada temporalmente a error estándar.               

 clog  <  “mensaje=”” de=””> >


Sentencia de control switch



switch (selector)
{
case 1 :
sentencias1;
break;
case 2 :
sentencias2;
break;
. . .
case n :
sentencias n;
break;
default:
sentencias x; //opcional
}
– Directiva de compilación………………………………..Cstring
– Selección múltiple………………………………………..Switch
– Acción dentro de switch………………………………….Case
– Función para manejo de cadenas…..…………….Strcpy
– Instrucciones de salto de línea…….………….….Break, continúe
– Opción no contemplada…..…………………..….Default
bucles de repetición for,while y do-while:

for (inicialización; condición_iteración; incremento)
for (n = 1; n <= 10;=”” n++)=””>=>
while (operación lógica)
{ sentencia a ejecutar
*//nota: siempre dentro de un while se lee la variable para que entre en un bucle de repetición infinito?//*
cin>>jcjcj;
}
do
{
cout < “introduzca=”” un=”” dígito=”” (0=”” –=”” 9):=”” ”;=””>
cin >> digito;
} while ( (digito < ´0´)=”” ||=””>< digito));=””>
– Uso de color………………………………………………..System(“color numero_entero,letra”)
– Ciclo incondicional..……………………………………For(inicio; fin; incremento)
– Ciclo condicional (repetir)…………………………….Do – while (condición);
– Ciclo condicional (mientras)……………………While (condición)
– Instrucción de salto de línea…………..…….….Break, continúe, return, goto
– Usos del número de oro………………………..

– Tabla o matriz de datos…………………………………Nombre [renglones][columnas]
– Tablas como parámetros……………………………….
función ( tabla[][columnas])
– Procesamiento de una tabla…………………………..For (indicerenglon; finrenglon; ++indicerenglon)
for(indicecolumna; fincolumna; ++indicecolumna)
tabla [indicerenglon][indicecolumna]
– Registros……………………………….…..……..Struct
– Campos de un registro…..……………..….….….Struct nombre
{
tipo nombre_campo_1;
tipo nombre_campo_2;

tipo nombre_campo_n;
}
– Definición de una variable tipo registro…………..Struct nombre variable;
– Procesamiento de campos del registro………..….Alumnos[n].Nombre
– Constante de fin de cadena (retorno de carro)…….NULL
– Sinónimo de un tipo de dato…………………..…

Typedef


Arreglo (lista o tabla): es una secuencia de datos del mismo tipo.

– Declaración de un arreglo.
…………………………….Nombre_arreglo[tamaño];
– Lectura de datos en un arreglo……………………….For (var = inicio; var;>
cin >>nombre_arreglo[var];
– Arreglos como parámetros…………………………. Tipo función(tipo arreglo[][12]);

Macro o Funciones en línea:Una función normal es un bloque de código que se llama desde otra función Las funciones en línea sirven para aumentar la velocidad de su programa.

– Prototipo de una función……………………………….Tipo nombre(parámetros)
– Definición de una macro
………………………# define NOMBRE formula
– Funciones matemáticas………..…………….….Fabs( ), sqrt( )

Función:Las funciones, para poder ser ejecutadas, han de ser llamadas o invocadas. Cualquier instrucción puede contener una llamada a una función que redirigirá el control del programa a la función nombrada.

Apuntador (o puntero): es una variable que contiene direcciones de otras variables.
El operador unitario * toma su operando como una dirección y nos da como resultado su contenido.
El operador unitario & devuelve como resultado la dirección de su operando.

Apuntadores a estructuras. Un apuntador también puede apuntar a una estructura. Se puede declarar una apuntador a una estructura tal y como se declara un apuntador a cualquier otro objeto. Se declara un apuntador estructura tal como se declara cualquier otra variable estructura: especificando un apuntador en lugar del nombre de la variable estructura.
Por ejemplo: struct persona
{
char nombre [30];
int edad;
int peso;
};
persona empleado = {“Camaney, Juan”, 30, 66};
persona *p; // se crea un apuntador de estructura
p=&persona;

  • Operadores de apuntadores……………………………………………..

    * , &

  • Variable tipo apuntador…………………………………………………

    *nombre

  • Arreglo de apuntadores……………………………………………..

    …..*arreglo[tamaño]

  • Funciones para asignación dinámica de memoria…………..

    Malloc( ), free( )

  • Operadores para asignación dinámica de memoria…………

    New, delete

  • Apuntador nulo………………………………………….…..

    NULL

  • Declaración de un sinónimo…………………………………

    Typedef

  • Tipo de dato…………………………………………………

    Void

  • Función………………………………………………………

    Sizeof( )

Identacion


Es una propiedad que se aplica a elementos de tipo bloque y acepta tanto un valor de longitud como porcentaje.

Codificación


Es el proceso de poner datos ambiguos o problemáticos en unos cuantos dígitos o letras facilmete capturables.

sentencia de control switch:
switch (selector)
{
case 1 :
sentencias1;
break;
case 2 :
sentencias2;
break;
. . .
case n :
sentencias n;
break;
default:
sentencias x; //opcional
}
– Directiva de compilación………………………………..Cstring
– Selección múltiple………………………………………..Switch
– Acción dentro de switch………………………………….Case
– Función para manejo de cadenas…..…………….Strcpy
– Instrucciones de salto de línea…….………….….Break, continúe
– Opción no contemplada…..…………………..….Default
bucles de repetición for,while y do-while:

for (inicialización; condición_iteración; incremento)
for (n = 1; n <= 10;=”” n++)=””>=>
while (operación lógica)
{ sentencia a ejecutar
*//nota: siempre dentro de un while se lee la variable para que entre en un bucle de repetición infinito?//*
cin>>jcjcj;
}
do
{
cout < “introduzca=”” un=”” dígito=”” (0=”” –=”” 9):=”” ”;=””>
cin >> digito;
} while ( (digito < ´0´)=”” ||=””>< digito));=””>
– Uso de color………………………………………………..System(“color numero_entero,letra”)
– Ciclo incondicional..……………………………………For(inicio; fin; incremento)
– Ciclo condicional (repetir)…………………………….Do – while (condición);
– Ciclo condicional (mientras)……………………While (condición)
– Instrucción de salto de línea…………..…….….Break, continúe, return, goto
– Usos del número de oro………………………..

– Tabla o matriz de datos…………………………………Nombre [renglones][columnas]
– Tablas como parámetros……………………………….Función ( tabla[][columnas])
– Procesamiento de una tabla…………………………..For (indicerenglon; finrenglon; ++indicerenglon)
for(indicecolumna; fincolumna; ++indicecolumna)
tabla [indicerenglon][indicecolumna]
– Registros……………………………….…..……..Struct
– Campos de un registro…..……………..….….….Struct nombre
{
tipo nombre_campo_1;
tipo nombre_campo_2;

tipo nombre_campo_n;
}
– Definición de una variable tipo registro…………..Struct nombre variable;
– Procesamiento de campos del registro………..….Alumnos[n].Nombre
– Constante de fin de cadena (retorno de carro)…….NULL
– Sinónimo de un tipo de dato…………………..…typedef

Arreglo (lista o tabla): es una secuencia de datos del mismo tipo.

– Declaración de un arreglo……………………………..Nombre_arreglo[tamaño];
– Lectura de datos en un arreglo……………………….For (var = inicio; var;>
cin >>nombre_arreglo[var];
– Arreglos como parámetros…………………………. Tipo función(tipo arreglo[][12]);

Macro o Funciones en línea:Una función normal es un bloque de código que se llama desde otra función Las funciones en línea sirven para aumentar la velocidad de su programa.

– Prototipo de una función……………………………….Tipo nombre(parámetros)
– Definición de una macro…………………………# define NOMBRE formula
– Funciones matemáticas………..…………….….Fabs( ), sqrt( ) 

Función:Las funciones, para poder ser ejecutadas, han de ser llamadas o invocadas. Cualquier instrucción puede contener una llamada a una función que redirigirá el control del programa a la función nombrada.

Apuntador (o puntero): es una variable que contiene direcciones de otras variables.
El operador unitario * toma su operando como una dirección y nos da como resultado su contenido.
El operador unitario & devuelve como resultado la dirección de su operando.

Apuntadores a estructuras. Un apuntador también puede apuntar a una estructura. Se puede declarar una apuntador a una estructura tal y como se declara un apuntador a cualquier otro objeto. Se declara un apuntador estructura tal como se declara cualquier otra variable estructura: especificando un apuntador en lugar del nombre de la variable estructura.
Por ejemplo: struct persona
{
char nombre [30];
int edad;
int peso;
};
persona empleado = {“Camaney, Juan”, 30, 66};
persona *p; // se crea un apuntador de estructura
p=&persona;

  • Operadores de apuntadores……………………………………………..

    * , &

  • Variable tipo apuntador…………………………………………………

    *nombre

  • Arreglo de apuntadores……………………………………………..

    …..*arreglo[tamaño]

  • Funciones para asignación dinámica de memoria…………..

    Malloc( ), free( )

  • Operadores para asignación dinámica de memoria…………

    New, delete

  • Apuntador nulo………………………………………….…..

    NULL

  • Declaración de un sinónimo…………………………………

    Typedef

  • Tipo de dato…………………………………………………

    Void

  • Función………………………………………………………

    Sizeof( )

identacion: es una propiedad que se aplica a elementos de tipo bloque y acepta tanto un valor de longitud como porcentaje.

codificación: es el proceso de poner datos ambiguos o problemáticos en unos cuantos dígitos o letras facilmete capturables.

=,>,>.H>.String>.Math>