Está en la página 1de 6

INSTITUTO TECNOLOGICO DE

TLALNEPANTLA
UNIDAD 8
ALGORITMOS Y PROGRAMACION
GRUPO: 2M2
ALUMNO: JOSE VICTOR MUCIÑO
PEREZ
PROFESOR: JOSÉ MARTÍN
ALEJANDRE ARGUIJO
UNIDAD 8 ESTRUCTURAS
Definición de Estructuras
El teorema del programa estructurado proporciona la base teórica de la
programación estructurada. Señala que la combinación de las tres estructuras
básicas, secuencia, selección e iteración, son suficientes para expresar cualquier
función computable.
 Estructura secuencial. Está formada por una secuencia de llamadas a
instrucciones del lenguaje o funciones del programador.
 Estructura condicional. Es aquella que ejecuta una estructura si se cumple
una condición booleana.
 Estructura iterativa con condición.
Las estructuras de control permiten determinar la secuencia de ejecución de las
sentencias o instrucciones de un programa. En programación existen tres tipos de
estructuras de control, la secuencia, las de decisión (también llamadas selectivas
o condicionales) y las repetitivas.
Programación imperativa y modular
Hasta ahora hemos estudiado dos paradigmas de programación.
La programación imperativa es un paradigma de programación que describe la
programación en términos del estado del programa y sentencias que cambian
dicho estado. Los programas imperativos son un conjunto de instrucciones que le
indican al ordenador cómo realizar una tarea. Los lenguajes imperativos de alto
nivel, como Procesan, usan variables, así como un conjunto de operadores y
funciones para su manipulación. En la programación imperativa todas las variables
son globales, pues pueden utilizarse en cualquier parte del programa.
La programación modular abstrae un conjunto de instrucciones como una función
que define el programador. El programador debe declarar y definir las funciones
en términos de las instrucciones imperativas del lenguaje. Una función construida
por el programador puede invocarse como una instrucción más del lenguaje. Las
funciones se comunican entre sí a través de sus parámetros. Por contra a la
programación imperativa no está bien visto trabajar con variables globales. Todas
las variables deben ser locales a las funciones donde se declaran.
Programación estructurada
La programación estructurada es
un paradigma de programación
orientado a mejorar la claridad,
calidad y tiempo de desarrollo de
un programa utilizando
únicamente subrutinas o
funciones y tres estructuras:
secuencial, condicional y repetitiva.
A finales de los años 1970 surgió una nueva forma de programar que daba lugar a
programas más legibles, fiables y eficientes. Se basaban en el teorema del
programa estructurado, propuesto por Böhm-Jacopini, que demuestra que todo
programa puede escribirse utilizando únicamente las tres estructuras de control
siguientes:
Estructura secuencial. Está formada por una secuencia de llamadas a
instrucciones del lenguaje o funciones del programador.
Estructura condicional. Es aquella que ejecuta una estructura si se cumple una
condición booleana.
Estructura iterativa con condición. Es aquella que ejecuta una estructura una y otra
vez si se cumple una condición booleana.
Solamente con estas tres estructuras se
pueden escribir todos los programas y
aplicaciones posibles. Si bien los
lenguajes de programación tienen un
mayor repertorio de estructuras de
control.
En la programación estructurada los 3
tipos de estructuras mencionadas no
aparecen de forma aislada sino que unas
aparecen "en el interior" (o anidada) de
cualquiera de ellas. Por ejemplo, lo
normal es que una estructura secuencia
aparezca "anidada" en una condicional o
una iterativa, o es muy usual que una
iterativa aparezca "anidada" en otra iterativa
Estas estructuras y sus "anidamientos" no son nuevos para tí. Ya se introdujo este
aspecto al hablar de "Resolución de Problemas con Ordenador" y se daban
algunas recomendaciones sobre cómo s debe expresar un algoritmo, donde
destacamos: se deberán de utilizar verbos en infinitivo, las expresiones si-
entonces y mientas-hacer. Estas expresiones se corresponden con la estructras
de control secuencial, condicional e iterativa, respectivamente.
Algoritmo estructurado para hacer algunos cálculos
El siguiente algoritmo tiene como propósito sumar los números pares que hay
entre dos números dados por el usuario, así como multiplicar los números impares
que haya entre ambos números. El algoritmo se ha diseñado utilizando
únicamente las 3 estructuras indicadas.
Almacena en n y m valores dados por el usuario.
Considerar actual igual a n.
Considerar suma igual a 0.
Considerar producto igual a 1.
Mientras que actual sea menor o igual a m hacer los siguiente
Imprime el valor de actual
Si actual es par, sumar actual a suma para actualizar suma
Si actual es impar, multiplicar actual a producto para actualizar producto
Actualizar actual con el siguiente número.
Muestra el valor de suma.
Muestra el valor de producto
Ejemplo
Este algoritmo empieza por una estructura secuencial. La estructura está formada
por las líneas 1-4. En Processing esta estructura se traduce en un secuencias de
instrucciones de declaraciones del tipo de dato de un serie de variables y su
correspondiente instrucción de asignación.
En la línea 5 tenemos una estructura repetitiva. Repite las líneas a-d una y otra
vez mientras que actual sea menor o igual que m. La estructura repetitiva contiene
a su vez a 4 estructuras: Una secuencial (formada por la línea a), dos estructuras
condicionales (las líneas b y c) y una secuencial (la formada por la línea d). A su
vez cada una de las estructuras condicionales contiene una estructura secuencial
formada por una única instrucción: líneas b.i para hacer una suma y c.i para
realizar un producto.
El algoritmo finaliza con otra estructura secuencial formada por dos líneas. En
Processing estas estructura se traduce en dos instrucciones println().
Inicialización de Estructuras
En la lección anterior simplemente hemos definido la estructura. Ahora tendremos
que crear e inicializar dicha estructura.
Supongamos que queremos crear un alumno con la estructura anterior, pues para
darle valores a esa estructura se hace de la siguiente forma, ya en la función main:
struct <tipo_estructura>
<nombre_estructura> = {
//Dar valores a las variables que contiene...
};
En "tipo_estructura" pondremos "estructura_alumnos", que es como se llamaba
nuestra estructura definida, y a continuación el nombre que queramos darle, por
ejemplo: alumno1.
Dicho esto, vamos a ver cómo quedaría en un ejemplo práctico:
Así quedaría nuestra inicialización de estructura para el alumno1.
Recordad siempre el ";" al final de cada estructura. Obviamente, los valores que se
dan tienen que corresponder a los tipos de variables, y tenemos que ponerlos en
orden. Es decir, no podemos poner la nota media en la primera línea, o el nombre
al final, tiene que estar todo bien ordenado.
Ahora bien, supongamos que en vez de un alumno queremos tener más (que es lo
normal), entonces para esto podríamos crear un array de estructura_alumnos, y
ahí almacenar tantos alumnos como veamos necesarios.
Por ejemplo, para crear 10 alumnos podríamos hacerlo con la siguiente
instrucción:
struct estructura_alumnos alumnos[10];
"struct estructura_alumnos" es como si fuera un tipo de dato. Por tanto,
estaríamos creando un array llamado alumnos del tipo estructura_alumnos.
Para acceder a todos los alumnos y leer los datos que contienen tendremos que
esperar a la siguiente lección.
Aún este ejemplo no nos muestra nada por pantalla, simplemente creamos e
inicialiazamos estructuras, pero en la siguiente lección ya aprenderemos a leer los
datos.
Utilización de Estructuras con Funciones
En C++, la definición de una estructura se ha ampliado para que pueda también
incluir funciones miembro, incluyendo funciones constructoras y destructoras como
una clase. De hecho, la única diferencia entre una estructura y una clase es que,
por omisión, los miembros de una clase son privados y los miembros de una
estructura son públicos. struct nombre{ variables y funciones publicas; private:
variables y funciones privadas; };
Aunque las estructuras tienen las mismas capacidades que las clases, se reserva
el uso de struct para objetos que no tienen funciones miembro.
Una de las razones de la existencia de las estructuras es mantener compatibilidad
con los programas hechos C.
Ejemplo
EJEMPLO:
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
struct tipo{
tipo(double b, char *n);
void mostrar();
private:
double balance;
char nombre[40];
};
tipo::tipo(double b, char *n)
{
balance=b;
strcpy(nombre,n);
}
void tipo::mostrar()
{
cout << "Nombre: " << nombre;
cout << ": $" << balance;
if (balance<0.0) cout << "****";
cout << "\n";
}

También podría gustarte