Professional Documents
Culture Documents
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
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.
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.
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.
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.
Ejemplo:
Se desea disear un algoritmo para saber si un
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
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
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).
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
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.
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))