Академический Документы
Профессиональный Документы
Культура Документы
GRUPO: 3° “C”
31-NOVIEMBRE-2010
DISEÑO ESTRUCTURADO DE ALGORITMOS
POR:
DANIEL MAYORGA HERNANDEZ
INSTRUCTOR:
ING. CESAR MEADE ALFARO
31-NOVIEMBRE-2010
Diseño estructurado de algoritmos
CONTENIDO
1
Diseño estructurado de algoritmos
Bibliografía 53
2
Diseño estructurado de algoritmos
SISTEMAS DE CODIFICAION
2 1 0
2 5 22 2 1
1 0 1
Residuo
1 0 1
3
Diseño estructurado de algoritmos
UNIDAD I.
CONCEPTOS BASICOS
Lenguaje.- Medio de comunicación entre los seres humanos atreves de signos orales y
escritos que posen un significado.
Desde el punto de vista informático el lenguaje es: la presentación por medio de
signos, símbolos, caracteres que existen entre comunicaciones de la PC.
Lenguaje de Bajo nivel.- Este lenguaje dan a cada instrucción un mnemónico. Los
lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son a menudos
difíciles de aprender.
Lenguaje de Alto nivel.- Estos son los que se emplean con mayor frecuencia como
lenguajes de programación, porque permiten expresar los algoritmos de alguna manera y
con un estilo fácilmente reconocible por parte de diversos programadores y usuarios,
algunos ejemplos: list, print, open.
Ms-Dos.- Dos es un acrónimo de “Disk Operating System”, sistema operativo creado por
Microsoft, y que tiene instalado la mayoría de las ordenadores PC.
Dos es aparte de un sistema operativo, un conjunto de programas que nos
permiten manipular información contenida en discos, de esta forma podemos trabajar con
facilidad, comodidad y rapidez con estos; además, el Dos coordina el funcionamiento del
microprocesador para que todo funcione bien en el interior de nuestro ordenador.
Pascal.- Fue creado por el matemático Suizo Niclaus Wirth en 1970, basándose en el
lenguaje Al-Gol. Su nombre proviene del filosofo y matemático Francés del siglo XVII
Blaise Pascal.
4
Diseño estructurado de algoritmos
Compiladores
Interpretes
Precisión: Esto quiere decir que debe indicarle orden a cada paso.
Definido: Es decir se sigue dos veces o tiene el mismo resultado cada vez.
5
Diseño estructurado de algoritmos
Diagrama de Flujo.
Pseudocódigo.
Es la descripción de un algoritmo que asemeja a un lenguaje de programación pero
no algunas conversiones al lenguaje natural. Tiene varias ventajas con respecto a los
diagramas de flujo, entre las que se destacan el poco espacio que se requiere para
representar instrucciones completas.
Algoritmos de ordenamiento
Algoritmos de búsqueda
6
Diseño estructurado de algoritmos
Es la serie de pasos que realizamos en la vida diaria para realizar diferentes tareas
y actividades comunes.
Y para definir el lenguaje algorítmico cabe recordar que el conjunto de todas las
operaciones a realizar y el orden en el que deben efectuarse, se denomina algoritmo.
7
Diseño estructurado de algoritmos
UNIDAD II
METODOLOGIA PARA LA RESOLUCION DE PROBLEMAS
Problema es toda situación o asunto del que se espera una rápida y efectiva
solución.
La primer fase en la resolución de un problema por computadora es la definición o
análisis del problema. El objetivo de un programa es resolver un problema en particular.
El problema expresado habitualmente de forma natural permite desarrollar un
programa que resuelva dicha situación.
8
Diseño estructurado de algoritmos
Nuestro personaje está sentado en su casa viendo la televisión. Afuera está lloviendo
y como su techo esta en mal estado el agua se introduce a la habitación.
¿Cuál es su problema?
A) el problema es que la televisión no se ve bien.
B) el problema es que el sillón no es cómodo.
C) el problema es que las gotas hacen ruido.
D) el problema es que se está metiendo el agua a su casa.
9
Diseño estructurado de algoritmos
Una vez que el problema ha sido definido y comprendido, deben analizar los
siguientes aspectos.
ax2 + bx + c = 0
10
Diseño estructurado de algoritmos
También pueden usarse varias técnicas a la vez para generar distintos modelos,
aunque generalmente cada técnica obliga a un pre procesado diferente de los datos.
Interpretación y evaluación de datos, una vez obtenido el modelo, se debe proceder
a su validación comprobando que las conclusiones que arroja son validas y suficientemente
satisfactorias. En el caso de haber obtenido varios modelos mediante el uso de distintas
técnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema.
Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los
pasos anteriores para generar nuevos modelos.
Para analizar un algoritmo o datos.
Para analizar un algoritmo o datos es determinar la cantidad de recursos, como el
tiempo y el almacenamiento necesario para ejecutarlos. Por lo general, la eficiencia o
tiempo de ejecución de un algoritmo se plantea como una función que relaciona la longitud
de entrada para el numero de pasos, complejidad del tiempo o lugares de almacenamiento,
complejidad de espacio.
El análisis de datos o algoritmos es una parte importante de una mas amplia teoría
de complejidad computacional que proporciona estimaciones teóricas para los recursos que
necesita cualquier algoritmo que resuelve cualquier problema computacional. Estas
estimaciones resultan ser bastante útiles en la búsqueda de algoritmos útiles.
11
Diseño estructurado de algoritmos
2.4 Codificación
12
Diseño estructurado de algoritmos
Errores de compilación:
Son en las que ocurre un uso incorrecto de las reglas de lenguaje de programación,
por ejemplo invertir palabras o darle inicio al algoritmo pero no darle fin.
Errores de ejecución:
Son aquellos en las que ocurren paradojas. Ejemplo, dividir una cantidad entre cero.
(la computadora marcara error)
Errores lógicos:
Son más difíciles de detectar, pero al checar resultados no es idéntico al original. El
resultado varia en el resultado de datos ya analizados anterior mente.
2.6Documentación
13
Diseño estructurado de algoritmos
Documentación interna
Son los comentarios o mensajes que se añaden al condigo fuente para hacer mas
claro el entendimiento de un proceso. Hay dos tipos de comentarios: iniciales o de prologo
y descriptivos.
Documentación externa
La forman todos los documentos externos al programa;
Descripción de problema
Diccionario de datos
Manual de usuario
Describe paso a paso como funciona el programa, con el fin de que el usuario
obtenga el resultado deseado.
Es la documentación del usuario. En este manual no existe documentación de tipo
técnico, sino la descripción del funcionamiento del programa.
2.7Mantenimiento
14
Diseño estructurado de algoritmos
UNIDAD III
ENTIDADES PRIMITVAS PARA EL DISEÑO DE INSTRUCCIONES
Datos: Se describe como la expresión general que describe los objetos con los cuales opera
una PC.
Datos numéricos: Enteros (integer) reales(real)
Datos tipo cadena(string)
Apóstrofes;
Datos lógicos:
Subrango: 0 100(enteros)
A 2 tipo cadena
Los reales no son validos para crear enumerativos, ya que su intervalo no esta
definido.
Enumerativos: son aquellos en los que se detienen individualmente los valores para un dato.
(O, 25,40 ,52) siempre deben ponerse entre paréntesis.
TYPE AA = (A, B, C, D)
TYPE BB = (A, A2, A3, A4)
VAR A; AA, B= BB
Begin
A:=A, introducción correcta
B: =A3, introducción incorrecta
A: = A4 A4 No detenidos para A
B : = A+ 3 suma no definida
END.
Definidos por el usuario: aquellos que el programa da crear para satisfacer el programa.
División real = /
División entera= div
MOD=resid
Exponente= ˄
Operadores logicos
(a<b) and (b<1)
NOT: operador falso AND: ambos operadores son verdaderos
X asignaciones aritméticas, lógicas y de caracteres
X’ 3 de mayo de 1999’- ejemplo
Entrada Y Salida De Información
15
Diseño estructurado de algoritmos
AND
(a<b) AND (B<C) (10<20) AND (20<30)
V V F F
V F
Operadores simbolos
NOT !
AND &
OR ´´
(6 div 3<3 mod 6) AND (NOT) (X*a>y/b)
Valores
a=5
b=4
x=5n-2
y=2
OPERADORES LOGICOS
AND OR NOT
VV=V VV=V V=F
VF=F VF=V F=V
FV=F FV=V
FF=F FF=F
3.1Tipos de Datos.
Un dato se refiere como la expresión general que describe los objetivos con los cuales
opera una computadora. Los datos de entrada se transforman por el programa, después de
las etapas intermedias, en los datos de salida. Los datos se clasifican en diversas categorías,
según el tipo de maquina o del lenguaje en uso. Generalmente podemos encontrar las
siguientes categorías:
Numéricos
Lógicos
Cadenas
Datos numéricos:
Son aquellos que representan una cantidad o valor determinado. Su representación se lleva
a cabo en los formatos ya conocidos (enteros, punto y fracciones decimales si estas
existen).
Estos pueden presentarse en dos formas distintas:
Tipo Numérico Entero (integer).
Tipo Numérico Real (real).
Enteros: Es un conjunto finito de los números enteros. Los enteros son números completos,
no tienen componentes fraccionarios o decimales y pueden ser negativos y positivos.
Algunos ejemplos:
3, 7
16
Diseño estructurado de algoritmos
-10, 9
Reales: Consisten en un subconjunto de los números reales. Estos números siempre tienen
un punto decimal y pueden ser positivos o negativos. Un número real consiste de un
número entero y una parte decimal. Algunos ejemplos son:
0.52664
6.579, 8.0
datos de cadena
Son los datos que representan información textual (palabras, frases, símbolos, etc). No
representan valor alguno para efectos numéricos. Pueden distinguirse porque son
delimitados por apostrofe o comillas.
Se clasifican en dos categorías:
Datos tipo carácter (char)
Datos tipo cadena (string)
Datos Tipo Cadena: Es una sucesión de caracteres que se encuentran delimitados por una
comilla (apostrofe) o dobles comillas, según el tipo de lenguaje de programación. La
longitud de una cadena de caracteres es el numero de ellos comprendidos entre los
separados o delimitados.
Ejemplos.
Buenos días
12 de octubre de 1496
Enunciado cualquiera
Nota: Los símbolos disponibles para la formulación de caracteres y de cadenas son aquellos
que se encuentran en el código ASCII.
ASCII (American Standard Code For Information Interchange)
Datos lógicos
También se le denominan Booleano, es aquel dato que solo puede tomar uno de dos
valores: Falso y verdadero. Se utiliza para representar las alternativas (si/no) a
determinadas condiciones. Por ejemplo, cuando se pide si un valor entero sea primo, la
respuesta será verdadera o falsa, según sea. Las categorías y tipos que se mencionan
anteriormente se conocen como Tipos Simples, puesto que no poseen una estructura
compleja. En forma adicional, cada lenguaje puede proporcionar la utilización de Tipos
Compuestos, siendo estos, datos que tienen una estructura predeterminada.
17
Diseño estructurado de algoritmos
Tipos compuestos.
Entre los principales tipos compuestos se encuentran los siguientes:
A.- Subrango: Son aquellos en los que especifica con precisión el intervalo de valores para
un dato.
Ejemplos:
0..100 (son enumerativos de tipo entero)
“A”..”Z” (son numerativos de tipo cadena)
Los reales no son validos para crear enumerativos, ya que su intervalo no esta definido.
B.- Enumerativos: Son aquellos en los que se definen individualmente los valores para un
dato.
Ejemplos:
(0,25,40,52) siempre deben ponerse entre paréntesis
C.- Definidos por el usuario: Son aquellos que el programador crea para satisfacer las
necesidades del programa en diseño.
Constantes y Variables.
Una constante es aquella que no cambia de valor durante la ejecución de un
programa (o comprobación de un algoritmo en este caso). Se representa en la forma
descrita para cada categoría.
La variable son aquellas que pueden modificar su valor durante la ejecución de un
programa.
Su representación se da a través de letras y símbolos generalmente numéricos a los
que se les asigna un valor.
18
Diseño estructurado de algoritmos
Operador Operación
+ Suma
- Resta
* Multiplicación
/ División real
Div División entera
Mod Residuo
^ Exponenciación
Ejemplos:
7+3=10
7-3=4
7*3=21
10/4=2.5
10 div 4=2
20 mod 3=2
5 mod 7=5
4^2=16
Todos los operadores aritméticos no existen en todos los lenguajes de programación, por
ejemplo, en Fortran no existe Div y Mod.
Operadores Div y Mod
el símbolo / se utiliza para la división real, el operador Div representa la división entera.
Operadores irelacionales
Permiten realizar comparaciones de valores de tipo numérico o carácter. Estos
operadores sirven para expresar las condiciones en los algoritmos. Proporcionan resultados
lógicos.
Operador Significado
< Menor que
> Mayor que
= Igual que
<= Menor o igual que
>= Mayor o igual que
<> Diferente de
19
Diseño estructurado de algoritmos
Operador Prioridad
^ Alta
*,/,Div
+,-,Mod
Relacionales Baja
20
Diseño estructurado de algoritmos
Operadores lógicos.
Son aquellos que permiten la combinación de condiciones para formar una sola
expresión lógica. Utilizan operandos lógicos y proporcionan resultados lógicos también.
Operador Relación
not Negación (No)
and Conjunción (Y)
or Disyuncion (O)
xor Disyuncion Exclusiva (O/SOLO)
Ejemplos:
Not 4 > 6: produce un error, ya que el operador not se aplica a 4
Not (4 > 14): produce un valor verdadero.
(1.0 < x) And (x < z + 7.0): Si x vale 7 y z vale 4, se obetiene un valor falso.
Asignación.
La operación de asignación es el modo de darle valores a una variable. La operación
de asignación se representa por el símbolo y operador. La operación de asignación se
conoce como instrucción o sentencia de asignación cuando se refiere a un lenguaje de
programación. A fin de manejar datos por medio de variables, estos pueden recibir valores
determinados. El tipo de valores que pueden recibir dependen de la declaración previa de
tales variables. En una asignación se resuelve, primeramente la expresión (al lado derecho
del símbolo de asignación) y se asigna el resultado en la variable.
El formato general de asignación es:
Nombre variable Expresión
Donde Expresión puede ser una variable o constante, operación, función.
Ejemplo:
A 9
21
Diseño estructurado de algoritmos
Asignación Aritmética
Las expresiones en las operaciones de asignación son aritméticas:
Suma 5+10+2 Se devalúa la exprecion 5+10+2 y se asigna a la variable
Suma, es decir 17 sera el valor que toma Suma.
Asignación Lógica
La expresión que se evalua en la operación de asignación es lógica. Supóngase que M, N, y
P son variables de tipo lógico.
M 8<5
N M o (7 <= 12)
P 7>6
Tras ejecutar las operaciones anteriores, las variables M, N, P oman valores, falso,
verdadero, verdadero, respectivamente.
Asignación de Caracteres
La operación que se evalúa es de tipo carácter.
X ‘3 de Mayo de 1999’
La acción de asignación anterior asigna la cadena de caracteres ‘3 de Mayo de 1999’
a la variable de tipo carácter x.
22
Diseño estructurado de algoritmos
Algoritmo
Inicio
Leer(B)
Leer(h)
X B*h
A x/2
Escribir(a)
Fin
3.3 Expresiones.
Expresiones Aritméticas
Las expresiones aritméticas son análogas a las formulas matemáticas. Las las
variables y constantes son numéricas y las operaciones son las aritméticas. Los cálculos que
implican tipos de datos reales y enteros suelen dar normalmente resultados del mismo tipo
si los operandos lo son también. Por ejemplo, el producto de operandos reales produce un
real.
23
Diseño estructurado de algoritmos
+ Suma
- Resta
/ División
**, ^ Exponenciación
Div División entera
Mod Modulo (resto)
Los identificadores (IDs) son símbolos léxicos que nombran entidades. El concepto
es análogo al “nombre”. Los identificadores se usan ampliamente en prácticamente todos
los sistemas de procesamiento de la información. Nombrar las entidades hace posible
referirse a las mismas, lo cual es esencial para cualquier tipo de procesamiento simbólico.
Identificadores en lenguajes informáticos
24
Diseño estructurado de algoritmos
En Perl una variable se indica utilizando en prefijo llamado sigil, que especifica
aspectos de cómo se interpreta la variable en las expresiones.
25
Diseño estructurado de algoritmos
UNIDAD IV
DISEÑO DE ALGORITMOS
Los diagramas de flujo son una manera de representar visualmente el flujo de datos
atravéz de sistemas de tratamiento de información. Los diagramas de flujo describen que
operaciones y en secuencia se requieren para solucionar un problema dado.
Símbolos estándares.
Los diagramas de flujo se dibujan generalmente usando algunos símbolos
estándares; sin embargo algunos símbolos especiales pueden también ser desarrollados
cuando sean requeridos. Algunos símbolos estándares, que se requieren con frecuencia para
diagramar programas de computadora se muestran a continuación:
Símbolos gráficos.
Dentro de los símbolos fundamentales para la creación de diagrama de flujo, los
símbolos gráficos son utilizados específicamente para operaciones aritméticas y relaciones
condicionales.
+ Sumar
- Menos
* Multiplicación
/ División
± Mas o menos
= Equivalente a
> Mayor que
< Menor que
3
Mayor o igual que
£ Menor o igual que
1
O <> Diferente de
Si
No
True
False
26
Diseño estructurado de algoritmos
4.2 Pseudocodigo.
El pseudocódigo (falso lenguaje) es común mente utilizado por los trabajadores para
omitir secciones de código o para dar una explicación del paradigma que tomo el mismo
programador para hacer sus códigos esto quiere decir que el pseudocódigo no es
programable sino que facilita la programación.
27
Diseño estructurado de algoritmos
Características y Partes
Las principales características de este lenguaje son:
Se puede ejecutar en un ordenador.
Es una forma de representación sencilla de utilizar y de manipular
Facilita el paso del programa al lenguaje de programación.
Es independiente del lenguaje de programación que se vaya a utilizar.
Es un método que facilita la programación y solución al algoritmo del programa.
28
Diseño estructurado de algoritmos
Cuerpo
Inicio
Instrucciones
Fin
Ventajas
Adoptar la filosofía de la programación estructurada, que utiliza un enfoque
descendente.
Utiliza un numero limitado de símbolos de tal forma que el diagrama de flujo ocupa
menos espacio y puede leerse con cierta finalidad.
Desventajas
Deben estar completos y ser muy claros, con el fin de que se entiendan.
Ejemplo:
Se desea calcular el salario neto semanal de un trabajador en función del numero de
horas trabajadas y la taza de impuestos.
Tareas Administrativas.
Activar o inactivar la función de asignación de prioridades departamentales a
salones de laboratorio
Añadir salones
Añadir cursos
Añadir departamentos
Añadir periodos lectivos (términos)
29
Diseño estructurado de algoritmos
FIN fin
Hable con
Culge la
FIN
El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como
muestra secuencial. Ahora veremos los componentes que pertenecen a ella:
30
Diseño estructurado de algoritmos
4.5 Condicionales
Las estructuras condicionales compraran una variable contra otro(s) valor(es), para
que en base a l resultado de esta comparación, se siga un curso de acción dentro del
programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra
una constante, según se necesite. Existen dos tipos, las simples y las multiples.
31
Diseño estructurado de algoritmos
4.5.1 simples
Donde:
Si: Indica el comando de comparación
Condición: Indica la condición a evaluar
Entonces: Precede a las acciones a realizar cuando se cumple o no la condición
Introducción(es): Son las acciones a realizar cuando se cumple o no la condición
Si no: Precede a las acciones a realizar cuando no se cumple la condición.
4.5.2 multiple
32
Diseño estructurado de algoritmos
Varias condiciones NO
SI
Condic Tareas a
si la condición es ión realizar
verdadera
NO
fi
n
33
Diseño estructurado de algoritmos
UNIDAD V
INTRODUCCIÓN A UN LENGUAJE DE PROGRAMACIÓN
3.-lenguaje de alto nivel : los lenguajes de programación de alto nivel (basic, pascal,
cobol, fortran, c, etc.) son aquellos en los que las instrucciones o sentencias a la
computadora son escritas con palabras similares a los lenguajes hum
Programa de computadora
Existen diferentes conceptos :
1.-es un algoritmo desarrollado en un determinado lenguaje de programación , para ser
utilizado por la computadora; es decir una serie de pasos o instrucciones ordenadas y finitas
que pueden ser procesadas por una computadora , permitiéndonos resolver un problema o
tarea específica.
2.-secuencia de instrucciones mediante las cuales se ejecuta diferentes acciones de
acuerdo con los datos que se desse procesar.
3.- expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una
computadora.
34
Diseño estructurado de algoritmos
Definición del problema: esta fase está dada por el enunciado del problema , el cual
requiere una definición clara y precisa . Es importante que se entienda perfectamente lo que
se desea realizar la computadora, para poder continuar con la siguiente etapa.
Diagrama de flujo
un diagrama de flujo es la representación grafica de un algoritmo . También e puede
decir que es la representación detallada en forma grafica de cómo deben realizarse los pasos
en la computadora para producir los resultados deseados.
Pseudocódigo
Es una mezcla de lenguaje de programación que se emplea, dentro de la programación
estructurada para realizar el diseño de un programa .se puede definir como un lenguaje de
especificaciones de algoritmos.
Codificación
En la etapa de codificación se transcribe el pseudocódigo definido en la etapa de diseño en
código de un lenguaje de programación, es decir un programa reconocido por la
computadora a este se le conoce como código fuente.
Prueba y depuración
Los errores humanos dentro de la programación de computadoras son muchos y
aumentan considerablemente con la complejidad del problema. Al proceso de identificar y
elimina errores , para dar paso a una solución sin errores , se les llama depuración.
35
Diseño estructurado de algoritmos
36
Diseño estructurado de algoritmos
Los diferentes objetos de información con los que un programa trabaja se conocen
colectivamente como datos. El tipo de un dato es el conjunto (rango) de valores que puede
tomar durante el programa. Por lo tanto los tipos de datos son los valores que una variable
puede tomar.
Las computadoras pueden trabajar con varios tipos de datos; los algoritmos y programas
operan sobre estos.
37
Diseño estructurado de algoritmos
Una variable es un dato cuyo valor puede cambiar durante el desarrollo del algoritmo o
ejecución del programa.”
Es decir que representara un valor almacenado en memoria que se puede modificar en
cualquier momento o conservar para ser usado tantas veces como se desee.
Tipos de variables
Enteras
Reales
Caracteres
Cadenas
(una variable que es de cierto tipo solo puede tomar valores que correspondan a ese tipo,
si se asigna un valor de tipo diferente se producirá un error)
El lenguaje C acepta letras mayúsculas y minúsculas, siendo distintos los nombre, por
ejemplo: lado y Lado se refieren a diferentes variables.
Declaración de Variables.
Todas las variables deben ser declaradas antes de ser usadas. Cada variable por lo tanto
tiene asociado un nombre (identificador), un tipo y un valor. No se admiten como
identificadores palabras reservadas del lenguaje de programación que se esté utilizando.
Los nombres de variables que se elijan para el algoritmo o programa deben ser
significativos y tener relación con el objeto que representa. En lenguaje C la sintaxis para
definir una variable es:
Pseudocódigo Lenguaje C
tipo_dato variable(s) tipo_dato variable(s);
Ejemplos:
Pseudocódigo Lenguaje C
Entero i,j,k int i,j,k;
Real si float si;
Carácter s, nom(25) char s, nom(25)
38
Diseño estructurado de algoritmos
Las variables del mismo tipo pueden definirse con una definición múltiple, separándolas
mediante “,” : int x, y, z;
Una variable puede declararse en cuatro lugares diferentes del programa:
Fuera de todas las funciones(global)
Dentro de una función(local a la función)
Dentro de un bloque enmarcado por llaves {} local al bloque.
Como parámetro formal (local a la función).
Reservación de memoria
Cuando declaramos una variable le estamos diciendo al compilador que debe: reservar
espacio en memoria, que a cada espacio en memoria le asigne un nombre y un número
determinado de bytes, dependiendo del tipo de dato asignado; también se le dice que tipos
de datos puede almacenar. En C una variable es una posición de memoria de la
computadora con nombre (identificador) donde se almacena un valor con cierto tipo de
dato. Una variable es un lugar donde se puede almacenar temporalmente un dato; las
variables nos permiten guardar información
En lenguaje C una constante se define por medio de la instrucción #define (directiva del
procesador) o de la palabra const.
Pseudocódigo Lenguaje C
Constante iden_const ß valor #define iden_const valor ò const tipo iden_const
=valor;
Uso de #define
El compilador C tiene un pre-procesador incorporado. Si las líneas
# define LIMTE 100
# define PI 3.14159
39
Diseño estructurado de algoritmos
Uso de Const
El cualificador const permite dar nombres simbólicos a constantes. Su valor no puede
ser modificado por el programa.
Ejemplos:
Pseudocódigo Lenguaje C
Constante MAX ß 100 #define MAX 100 const int MAX = 100;
Constante CAR ß ‘a’ #define CAR ‘a’ const char CAR = ‘a’ ;
Constante CAR ß “a” #define CAR “a” const char CAR(4) = “a”;
Constante PI ß 3.1416 #define PI 3.1416 const float PI = 3.1416;
Constante NOM ß “Marco” #define NOM “Marco” const char NOM(10) =
“Marco”;
NOTA: “a” es diferente de ‘a’.
Comentarios.
Los comentarios son útiles para identificar los elementos principales de un programa o
para explicar la lógica subyacente de estos. Deben ser breves y evitar ambigüedades.
Los comentarios en cualquier lenguaje de programación sirven para que el código fuente
sea más entendible, aumenta la claridad de un programa ayuda para la documentación y
bien utilizados nos pueden ahorrar mucho tiempo.
Se debe utilizar comentarios solo cuando sean necesarios, por ejemplo:
Al principio del programa: nombre del autor o autores, fecha de elaboración, etc.
En cada sentencia o bloque ( bucle, if ,switch…) que presenten cierta complejidad
En los cierres de los bloques con para indicar a que sentencia de control de flujo
pertenecen, lo0s principalmente cuando existe mucho anidamiento de sentencias y los
bloques contienen muchas líneas de código.
Los comentarios los reconocerá la persona que elaboro el programa o cualquier otro
programador, inclusive después de un tiempo. Para el compilador, los comentarios son
inexistentes, aunque con mediada.
40
Diseño estructurado de algoritmos
En lenguaje C se toma como comentario todo carácter interno a los símbolos /**/ o
iniciarlos con //. L os comentarios pueden ocupar uno o más renglones, por ejemplo:
Operadores
Un operador es un símbolo que permite relacionar dos datos en una expresión y
evaluar el resultado de la operación.
Aritméticos.
Relacionales.
Lógicos.
Asignación.
Operadores aritméticos
Los operadores aritméticos (+,-,*,/,++,--) pueden ser utilizados con tipos enteros o reales y
sirven para realizar operaciones aritméticas básicas. Por ejemplo si a= 15 y b= 3.
Operadores lógicos.
Las expresiones lógicas pueden combinarse para formar expresiones mas complejas
utilizando los operadores lógicos. Estos operadores se utilizan con constantes lógicas de
forma similar al modo en que los operadores aritméticos se utilizan con las constantes
numéricas; estos operadores trabajan con operadores que son expresiones lógicas.
5.6Instrucciónes.
41
Diseño estructurado de algoritmos
En las arquitecturas típicas, una instrucción cuenta con un opcode (que especifica cuál es la
operación que se realizará, como por ejemplo: agregar datos a un registro de memoria) y
cero, uno o más operandos (que especifica registros, ubicaciones de memoria o datos).
1. Arquitectura de sistemas.
Es una descripción del diseño y contenido de un sistema de computadora. Puede incluir
información como el hardware y software que contiene, y la capacidad de la red.
2. Arquitectura de la información.
3. Arquitectura de software.
(arquitectura lógica). La arquitectura de software de un programa o sistema de
computadora, es la estructura de ese sistema, que incluye componentes de software, las
propiedades visibles externas de esos componentes, y las relaciones entre estos. El término
también puede incluir la documentación sobre la arquitectura de software del sistema
4. Arquitectura de hardware.
(hardware architecture). La arquitectura de hardware es una representación de un sistema
de hardware electromecánico o electrónico desarrollado o a desarrollar.
42
Diseño estructurado de algoritmos
Una instrucción de salida (o simplemente salida) consiste en llevar hacia el exterior los
valores (datos) obtenidos de la evaluación de una lista de expresiones. Normalmente, los
datos son enviados a la salida estándar (la pantalla), pero, también existen otros dispositivos
de salida (la impresora, el plotter,...).
En un ordinograma, tanto las instrucciones de entrada como las de salida, se escriben igual
que en pseudocódigo, pero, dentro de un romboide:
43
Diseño estructurado de algoritmos
Ejemplos
A 5
La acción de asignar es destructiva ya que el valor que tuviera la variable antes se perdería.
A 21
A 15
A 5
Asignación aritmética
La expresión que se evalúa es de tipo aritmético
AMN 3+14+8 Se evalúa la expresión y se asigna a la
Asignación lógica
La expresión que se evalúa es de tipo lógico.
Ejemplo
Asignación de caracteres
La expresión que se evalúa es de tipo carácter
44
Diseño estructurado de algoritmos
12325, 32, 1200, significaría que se han asignado a las variables esos valores y
equivaldría a la ejecución de las instrucciones.
NUMERO 12325
HORAS 32
TASA 1200
A 100
B 200
C 300
45
Diseño estructurado de algoritmos
Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para
ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de
una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un
ciclo de instrucción está formado por uno o más ciclos máquina.
Para que cualquier sistema de proceso de datos basado en microprocesador (por ejemplo un
ordenador) o microcontrolador (por ejemplo un reproductor de MP3) realice una tarea
(programa) primero debe buscar cada instrucción en la memoria principal y luego
ejecutarla.
46
Diseño estructurado de algoritmos
El ciclo de búsqueda
Los pasos 1 y 2 del ciclo de instrucción se conocen como ciclo de búsqueda (fetch). Estos
pasos son idénticos en todas las instrucciones. El ciclo de búsqueda procesa la instrucción a
partir de la palabra de instrucción, que contiene el código de operación y el operando.
El ciclo de ejecución
Los pasos 3 y 4 del ciclo de instrucción se conocen como ciclo de ejecución. Estos pasos
cambiarán con cada tipo de instrucción.
El primer paso del ciclo de ejecución es el proceso de memoria, en que los datos se
transfieren entre la CPU y el módulo de entrada/salida (I/O). A continuación se produce el
proceso de datos, que usa operaciones matemáticas así como operaciones lógicas en
referencia a los datos. Después tiene lugar el paso de alteraciones centrales, que son una
secuencia de operaciones, por ejemplo una operación de salto. El último paso es una
operación combinada de todos los otros pasos.
47
Diseño estructurado de algoritmos
5.7.1 Contadores
Un contador es una variable cuyo valor se incremento o decremento, Una forma de
controlar a un bucle es mediante un contador. Los procesos repetitivos son la base del uso
de las computadoras. En estos procesos se necesitan normalmente contar los sucesos o
acciones internas del bucle, como pueden ser los elementos de un fichero de interacciones a
realizar por el bucle.
5.7.2 Acumulador
Un acumulado es una variable cuya misión es almacenar cantidades variables resultantes de
sumas sucesivas.
5.7.3 Interruptores
Un interruptor o conmutador (switsh) a veces se les denomina indicador, o bandera (flag) es
una variable que puede tomar diversos valores a lo largo de la ejecución del programa y que
permite comunicar información de una parte a otra del mismo. Los interruptores pueden
tomar dos valores diferentes 1 y 0 (De ahí su nombre interruptor prendido apagado).
.
La cabecera de programa es una acción simple que comienza con la palabra algoritmo.
48
Diseño estructurado de algoritmos
El bloque es el resto del programa y consta de dos componentes o secciones: las acciones
de declaración u las acciones ejecutables.
Las declaraciones definen o declaran las variables y constantes que tengan nombres.
Las acciones ejecutables: son las acciones que posteriormente deberá realizar el
computador cuando el algoritmo convertido en programa se ejecute.
Esta sección comienza con la palabra reservada var (abreviatura de variable) y tiene el
formato
var
Lista de variables-1: tipo-1
.
.
lista de variables- n : tipo- n
Donde cada lista de variables es una variable simple o una lista de variables separadas por
comas y cada tipo es uno de los tipos de datos básicos (entero real char, o boolean)
Const
Pi=3.141592
Tamaño=43
Horas=6.50
49
Diseño estructurado de algoritmos
Ejem:
const
Estrella= ’*’
Frase= ’12 de octubre’
Mensaje= ‘hola mi nene’
Documentación
La documentación de un programa es el conjunto de información interna y externa al
programa que facilitara su mantenimiento.
Bibliografía:
Seccion o Articulo web:
Instrucciones www.Alegsa.com de:
http://www.alegsa.com.ar/Dic/instruccion.php
50
Diseño estructurado de algoritmos
Dale y Lilly
-pascal y estructura de datos
Mc Graw Hill
King Ville
-introducción al lenguaje C.
Mc Graw Hill
Guillermo Levine
Introducción a la computación y programación estructurada.
51