You are on page 1of 32

UNIVERSIDAD AUTNOMA DE CHIHUAHUA FACULTAD DE INGENIERA

PROGRAMACIN
INGENIERA AEROESPACIAL

La programacin estructurada es una forma de escribir programas de computadora de manera clara. Se escribe de acuerdo a las siguientes reglas:
Tiene diseo modular Los mdulos son diseados de modo descendente Cada mdulo se codifica utilizando las tres

estructuras de control bsicas: secuencia, seleccin y repeticin.

Es el conjunto de tcnicas que incorporan:


Recursos

abstractos: descomponer una determinada accin compleja en trminos de un nmero de acciones ms simples. Diseo descendente (top-down): proceso en el cual un problema se descompone en una serie de niveles o pasos sucesivos. Estructuras de control: son mtodos de especificar el orden en que las instrucciones de un algoritmo se ejecutarn.

El teorema de BhmJacopini, demuestra que todo programa puede escribirse utilizando nicamente las tres estructuras de control siguientes:
i. ii. iii.

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programacin tienen un mayor repertorio de estructuras de control, stas pueden ser construidas mediante las tres bsicas.

Secuencia Instruccin condicional. Iteracin (bucle de instrucciones) con condicin al principio.

Estructura secuencial.
Una estructura de programa es secuencial si se ejecutan instrucciones una tras otra a modo de secuencia, es decir que una instruccin no se ejecuta hasta que finaliza la anterior.
Accin 1

Accin 2

Accin n

Estructura selectiva
La estructura selectiva permite la realizacin de una instruccin u otra segn un criterio, solo una de estas instrucciones se ejecutara.

Estructura iterativa
Un bucle iterativo o iteracin de una secuencia de instrucciones, hace que se repitan mientras se cumpla una condicin, en un principio el nmero de iteraciones no tiene porque estar determinado.

Ventajas: 1. Los programas son ms fciles de entender, ya que pueden ser ledos de forma secuencial.

Sin necesidad de hacer seguimiento a saltos de lnea (GOTO) dentro de los bloques de cdigo para entender la lgica.

2.

La estructura del programa es clara, puesto que las instrucciones estn ms ligadas o relacionadas entre s. Reduccin del esfuerzo en las pruebas.

3.

El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura ms visible, por lo que los errores se pueden detectar y corregir ms fcilmente.

4.

Reduccin de los costos de mantenimiento de los programas. Programas ms sencillos y ms rpidos (ya que es ms fcil su optimizacin).

5.

6.

Los bloques de cdigo son auto explicativos, lo que facilita la documentacin. Un programa escrito de acuerdo a estos principios no solamente tendr una mejor estructura sino tambin una excelente presentacin.

7.

Inconvenientes:

El principal inconveniente de este mtodo de programacin es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico su manejo. Esto se resuelve empleando la programacin modular, definiendo mdulos interdependientes programados y compilados por separado.

Un algoritmo se puede definir como:


Serie de pasos organizados, que describe el

proceso que se debe seguir para dar solucin a un problema especifico. Secuencia finita de instrucciones cada una de las cuales tiene un significado claro y puede ser efectuada con una cantidad de esfuerzo en una longitud de tiempo tambin finito.

Los pasos para la resolucin de un problema son:


Diseo del algoritmo, que describe la secuencia

ordenada de pasos que conducen a la solucin de problema dado (anlisis del problema y desarrollo del algoritmo) Expresar el algoritmo como un programa en un lenguaje de programacin adecuado (fase de codificacin) Ejecucin y validacin del programa por la computadora.

Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo. Los algoritmos son independientes tanto del lenguaje de programacin como de la computadora que los ejecuta.

Caractersticas.
Un algoritmo debe ser preciso e indicar el orden de

realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue el algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento; o sea, debe tener un numero finito de pasos.

La definicin de un algoritmo debe describir tres partes: entrada, proceso y salida.

Ejemplo:
Se desea disear un algoritmo para saber si un

numero es primo o no.

Inicio Poner X igual a 2 ( X=2, X variable que representa a los divisores del numero que se busca N) Dividir N por X (N/X) Si el resultado de X/N es entero, entonces N no es un numero primo y bifurcar al punto 7; en caso contrario, continuar el proceso. Suma 1 a X (X<- X+1) Si X es igual a N, entonces N es un numero primo; en caso contrario bifurcar al punto 3. Fin

Realizar la suma de todos los nmeros pares entre 2 y 1000.

Inicio Establecer SUMA a 0 Establecer NUMERO a 2 Sumar NUMERO a SUMA, el resultado ser el nuevo valor de SUMA Incrementar NUMERO en 2 Si NUMERO =< 1000, bifurcar al paso 4; en caso contrario, escribir el ultimo valor de SUMA y terminar el proceso Fin

Identificador, constantes y variables.


Los datos simples o estructurados deben ser

almacenados en casillas de memoria para su posterior utilizacin. Estas celdas tienen un nombre que permite su identificacin, este es el identificador. Las constantes son datos que no cambian durante la ejecucin de un programa. Para nombrarlas, utilizamos identificadores. Existen tipos de constantes como tipos de datos (reales, enteros, carcter, cadenas de caracteres, etc).

Las variables son objetos que pueden cambiar su

valor durante la ejecucin de un programa. Para nombrarlas se utilizan identificadores. Al igual que las constantes, existen tantos tipos de ellas, como tipos de datos. Los nombres de las variables deben ser representativas de la funcin que cumplen en el programa.

Operaciones aritmticas.
Estas requieren de operadores aritmticos para

realizarse. Al evaluar expresiones que contiene dichos operadores, debemos respetar la jerarqua en el orden de aplicacin y un par de reglas: 1. Si una expresin contiene subexpresiones entre parntesis, stas ltimas sern evaluadas primero. 2. Si las subexpresiones se encuentran anidadas por parntesis, primero se evalan las subexpresiones que se encuentran en el ltimo nivel de anidamiento.

Operadores aritmeticos Operador aritmetico Operacin Ejemplo ** Potencia 4**3 * ultiplicacin 8.25*7 / Divisin 15/4 + Suma 200+62 Resta 100-30 mod Modulo (residuo) 15 mod 2 div Division entera 17 div 3

Resultado 64 57.75 3.75 262 70 1 5

Jerarquia de los operadores aritmeticos Operador Jerarquia Operacin ** (mayor) Potencia *, /, mod, div Multiplicacin, divisin, mdulo, divisin entera +, (menor) Suma, resta

EXPRESIONES LGICAS.
Llamadas tambin booleanas, estn constituidas

por nmeros, contantes o variables y operadores lgicos o relacionales. El valor que pueden tomar estas expresiones es verdadero o falso. Se utilizan en estructuras selectivas (el resultado determina el camino a seguir) y en las repetitivas (el resultado dicta si se sigue el ciclo o se interrumpe).

Operaciones relacionales Operador = <> < > <= >= Operacin Igual que Diferente a Menor que Mayor que Menor o igual que Mayor o igual que Ejemplo 'hola' = 'lola' a' < > 'b' 7 <5 7 >5 15 <= 22 55 >= 20 Resultado

Operadoradores lgicos Operador lgico Jerarqua Expresin lgica (mayor) NO No P Y O (menor) PyQ PoQ

Significado No P No es cierto que P Es falso que P P^Q P sin embargo Q PoQ o P o Q o ambos Mnimo P o Q

Tabla de verdad de los operadores lgicos P Q ~P ~Q PoQ VERDADERO VERDADERO VERDADERO FALSO FALSO VERDADERO FALSO FALSO

P^Q

Jerarqua de los operadores Operadores Jerarqua () (mayor) ** *, /, div, mod =, < >, <, >, <=, >= NO Y O (menor)

Notas:
Cuando se utilizan los operadores de relacin con

operandos lgicos, falso es menor que verdadero. El operador ( ) es un operador asociativo que tiene la prioridad mas alta en cualquier lenguaje. En ciertos lenguajes, las prioridades de los operadores se manejan en forma diferente. No se puede resolver la comparacin entre un valor lgico y un numrico, utilizando un operador relacional.

Escribir las siguientes expresiones algebraicas como expresiones algortmicas:


a)

b) + c) d)
+
5

e)

+ 2 4 2 2 + 2 2

Ejercicios
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

7+5-6 9+7*8-36/5 7*5**3/4div3 7*8*(160mod3**3)div5*13-28 15/2*(7+(68-15*33+(45**2/16)/3)/15)+19 Si A=5 y B=16; (A**2)>(B*2) Si X=6 y B = 7.8; (X*5+B**3/4)<=(X**3divB) ((1580mod6*2**7)>(7+8*3**4))>((15*2)=(60*2/4)) NO(15>=7**2)O(43-8*2div4<>3*2div2) (15>=7*3**2Y 8>3Y 15>6) O NO(7*3<5+12*2div3**2) NO((7*3div2*4)>(15/2*6>=15*2/17=15))

You might also like