SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Fundamentos de Programación
Unidad 2: ALGORITMOS
2.1 Análisis de problemas
 Problema: es la diferencia entre una situación actual y una
situación deseada, ésta última puede surgir como producto
de una necesidad, una deficiencia o una oportunidad de
mejora de los negocios.
Problema = situación actual – situación deseada
¿Dónde se esta?
¿Qué se tiene?
¿Dónde se desea estar?
¿Qué se desea tener?
¿Es realmente necesario hacerlo?
2.1.1 Características de un problema
 Definir y entender el problema e Identificar las
siguientes características:
◦ Entrada: información dada del problema.
¿Qué datos se necesitan para resolver el problema?
◦ Proceso: operaciones o cálculos necesarios para encontrar la
solución del problema.
◦ Salida: respuestas dadas por el proceso resultados finales de
los cálculos.
¿Qué información debe proporcionar la solución del
problema?
PROCESO
Datos
Entrada
Resultados
Salidas
Ejemplo: calcular el área de un rectángulo
Análisis del problema:
El cálculo del área del rectángulo se puede
dividir en:
◦ Entrada de datos (altura, base)
◦ Proceso: Cálculo del área (= base x altura)
◦ Salida de datos (base, altura, área)
Area=Base x Altura
Base
Altura
2.1.2 Fases de resolución de un problema
 Definición de Problema
 Análisis de los Datos
 Diseño de la Solución (Algoritmo)
 Codificación (Programa)
 Prueba y Depuración
 Documentación
 Mantenimiento
2.1.2.1 Definición del problema
 Está dada en sí por el enunciado del
problema, el cual debe ser claro y completo.
 Es importante que conozcamos
exactamente "que se desea obtener al
final del proceso" ; mientras esto no se
comprenda no puede pasarse a la siguiente
etapa.
2.1.2.2 Análisis de los datos
 Para poder definir con precisión el problema se
requiere que las especificaciones de entrada y
salida sean descritas con detalle ya que esto es un
requisito para lograr una solución eficaz.
 Analizar los siguientes aspectos:
◦ Los resultados esperados.
◦ Los datos de entrada disponibles.
◦ Herramientas a nuestro alcance para manipular
los datos y alcanzar un resultado (fórmulas,
tablas, accesorios diversos).
2.1.2.3 Diseño de la solución (Algoritmo)
 Proporcionar los sucesivos pasos a realizar, esto se
refiere a la obtención de un algoritmo que
resuelva adecuadamente el problema.
 En caso de obtenerse varios algoritmos,
seleccionar uno de ellos utilizando criterios que
consideren la eficiencia del mismo.
 Esta etapa incluye la descripción del algoritmo
resultante en un lenguaje natural, de diagrama de
flujo o natural de programación.
 Los problemas complejos se pueden resolver más
eficazmente por la computadora cuando se dividen
en subproblemas que sean más fácil de solucionar.
2.1.2. 4 Codificación (Programa)
 Se refiere a la escritura y representación en un
lenguaje de programación de un algoritmo.
 Para transcribir el algoritmo al lenguaje se debe
considerar:
◦ Usar solo el conjunto de palabras e instrucciones que
conforman el lenguaje de programación.
◦ Respetar las reglas de sintaxis y semántica del lenguaje.
2.1.2.5 Prueba y depuración
 Se realiza una prueba del programa ejecutable, a
fin de determinar si resuelve o no el problema
planteado en forma satisfactoria.
 Comúnmente se inicia la prueba de un programa
introduciendo datos válidos, inválidos e
incongruentes y observando como reacciona en
cada ocasión.
 La depuración consiste en localizar los errores y
corregirlos en caso de que estos existan.
 Si no existen errores, puede entenderse la
depuración como una etapa de refinamiento en
la que se ajustan detalles para optimizar el
desempeño del programa.
2.1.2.6 Documentación
 Debido a que el programa resultante en esta etapa
se encuentra totalmente depurado (sin errores), se
procede a la utilización para resolver problemas
del tipo que dio origen a su diseño.
 En vista de que esta utilización no podrá ser
supervisada en todas las ocasiones por el
programador, debe crearse un manual o guía de
operación que indique los pasos a seguir para
utilizar el programa.
2.1.2.7 Mantenimiento
 Se refiere a las actualizaciones que deban aplicarse
al programa cuando las circunstancias así lo
requieran.
 Este programa deberá ser susceptible de ser
modificado para adecuarlo a nuevas condiciones
de operación.
 Cualquier actualización o cambio en el programa
deberá reflejarse en su documentación.
2.2 Entidades Primitivas
 Tipos de Datos
◦ Numéricos
◦ Lógicos
◦ Carácter y cadena
 Operadores y Operandos
◦ Operadores aritméticos
◦ Operadores relacionales
◦ Operadores lógicos
 Expresiones y su representación algorítmica
◦ Aritméticas
◦ Relacionales
◦ Lógicas
◦ Carácter y cadena
2.2.1Tipos de datos1
 Un dato se define como la expresión general que describe los
objetos con los cuales opera una computadora. Los datos de
entrada se transforman por el programa, después de las etapas
intermedias, en datos de salida.
 Datos Numéricos: Son aquéllos 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 representarse en dos formas
distintas :
◦ Tipo Numérico Entero (integer): 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.
Ejemplo: 108 20 50 2015
◦ Tipo Numérico Real (real): Consiste 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.También son representados como punto flotante.
Ejemplo: 3.1416 314.16 x 10-2 31416. x 10-4 78.375
2.2.1Tipos de datos2
 Carácter o Cadenas: 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 apóstrofes o
comillas. Se clasifica en dos categorías :
◦ Datos tipo carácter (char) : Es un conjunto finito y ordenado de
caracteres que la computadora reconoce. Un dato de este tipo
contiene solo un carácter. Utiliza tablas de código como el ASCII
para su representación.Reconoce los siguientes caracteres :
 Caracteres Alfabéticos (A,B,C,…Z,a,b,c…z)
 Caracteres Numéricos (0,1,2,…9)
 Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, …….)
◦ Datos tipo Cadena (string): Es un sucesión de caracteres que se
encuentran delimitados por una comilla (apóstrofe) o dobles
comillas, según el tipo de lenguaje de programación. La longitud de
una cadena de caracteres es el número de ellos comprendidos entre
los separadores o delimitadores. Ejemplos :
„Hola Mundo‟ ‟16 de septiembre, viva bicentenario‟
2.2.1Tipos de datos3
 Lógicos: también se le denomina Booleano, es aquél 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.
 Tipos Enumerados:
◦ SUBRANGO : Son aquéllos en los que se especifica con precisión el
intervalo de valores válidos para un dato. Ejemplos:
0..100 (son enumerativos de tipo entero)
'A'..'Z' (son enumerativos de tipo cadena)
Los Reales no son válidos para crear enumerativos, ya que su intervalo no
está definido.
◦ ENUMERATIVOS : Son aquéllos en los que se definen individualmente
los valores para un dato. Ejemplos:
(0,25,40,52) Siempre deben ponerse entre paréntesis.
◦ DEFINIDOS POR EL USUARIO : Son aquéllos que el programador
crea para satisfacer las necesidades del programa en diseño.
2.2.2 Identificador, constantes y variables
 Un identificador es un nombre que se le da un
elemento de programa, ya sea una constante, variable,
un procedimiento o una función.
 Una Constante es aquélla que no cambia de valor
durante la ejecución de un programa (o comprobación
de un algoritmo).
 Las Variables son aquéllas que pueden modificar su
valor durante la ejecución de un programa.
 El identificador que se le da a una variable o constante
suele representar un espacio de memoria donde será
almacenado su valor. Lo anterior se hace con la finalidad
de facilitar la utilización de la memoria, en lugar de
utilizar directamente direcciones de memoria.
2.2.3 Operaciones primitivas
 Operando: puede ser una constante o variable
sobre la cual se realiza una determinada operación
u acción.
 Operador: es el símbolo que determina el tipo
de operación o relación que habrá de establecerse
entre los operandos para alcanzar un resultado.
 Los operadores se clasifican en tres grupos:
 Aritméticos.
 Relacionales.
 Lógicos.
2.2.3.1 Operadores aritméticos
 Son aquéllos que permiten la realización de cálculos
aritméticos. Utilizan operandos numéricos y proporcionan
resultados numéricos.
Operador Operación
^ Exponenciación
* Multiplicación
/ División
+ Suma
- Resta
DIV División entera (cociente)
MOD Modulo o residuo de División
2.2.3.2 Operadores relacionales
 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
<= Menor igual
>= Mayor igual
= igual
<> Diferente
2.2.3.3 Operadores lógicos
 Son aquéllos 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 Significado Obtiene
verdadero si
NOT Negación (No) El operando es
falso
AND Conjunción (Y) Ambos operandos
son verdaderos
OR Disyunción (O) Al menos un
operando es
verdadero
XOR Disyunción
Exclusiva
(O/SOLO)
Solo uno de los
operandos son
verdadero
2.2.3.3.1Tabla de verdad
X Y X
AND
Y
X
OR
Y
X
XOR
Y
NOT(X) NOT(Y)
F F F F F V V
F V F V V V F
V F F V V F V
V V V V F F F
2.2.3. 4 Prioridad de Operadores
 Determina el orden en que habrán de realizarse las operaciones
en una expresión determinada. Para obtener la prioridad se
deben conocer las siguientes reglas:
 Las operaciones que están encerradas entre paréntesis se
evalúan primero. Si existen diferentes paréntesis anidados
(interiores unos a otros), las expresiones más internas se
evalúan primero.
 Las operaciones aritméticas dentro de una expresión suelen
seguir el siguiente orden de prioridad:
 En caso de coincidir varios operadores de igual prioridad en una
expresión o subexpresión encerrada entre paréntesis, el orden
de prioridad en este caso es de izquierda a derecha.
Operador Prioridad
^ Exponenciación (ALTA)
*,/,DIV,MOD multiplicación,división,
cociente , residuo
+,- suma, resta
Relacionales Baja
Lógicos
2.2.3. 5 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 u operador :=, .
 A fin de manejar datos por medio de variables, estos
pueden recibir valores determinados. El tipo de los 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: Nom_variable Expresión
Donde Expresión puede ser una variable o constante, operación,
función.
 Ejemplos: A:=10*5 , B:=(5<10), palabra:=“HOLA”
2.2.3. 6 Entrada y Salida de Información
 Los cálculos que realizan las computadoras requieren para
ser útiles la Entrada de los datos necesarios para ejecutar
las operaciones que posteriormente se convertirán en
resultados, es decir, Salida.
 Las operaciones de entrada permiten leer determinados
valores y asignarlos a determinadas variables. Esta entrada
se conoce como operación de Lectura (read). Los datos
de entrada se introducen al procesador mediante
dispositivos de entrada (teclado, unidades de disco, etc).
 La salida puede aparecer en un dispositivo de salida
(pantalla, impresora, etc). La operación de salida se
denomina escritura (write).
 En la escritura de algoritmos las acciones de lectura y
escritura se representan por los formatos siguientes:
leer ( Nom_variable )
escribir (lista de variables de salida)
2.2.4 Expresiones
 Las expresiones son combinaciones de constantes,
variables, símbolos de operadores, paréntesis y nombres de
funciones especiales.
 Cada expresión toma un valor que se determina tomando
los valores de las variables y constantes implicadas y la
ejecución de las operaciones indicadas.
 Una expresión consta de operadores y operandos.
 Según sea el tipo de objetos que manipulan, las
expresiones se clasifican en : aritméticas, relacionales,
lógicas y carácter o cadena.
 El resultado de la expresión numérica es de tipo numérico ;
el resultado de una expresión relacional y de una expresión
lógica es de tipo lógico ; el resultado de una expresión
carácter es de tipo carácter.
2.3Técnicas de Diseño
 Con el objeto de facilitar el diseño de
algoritmos y la organización de los diversos
elementos de los que se componen se utilizan
algunas técnicas que muestran una metodología
a seguir para resolver los problemas.
 Estas técnicas hacen que los programas sean
más fáciles de escribir, verificar, leer y mantener.
 Algunas de las técnicas más conocidas son :
 Top Down (diseño descendente)
 Botton Up
 Warnier Orr
2.3.1.1Top Down
 Es una técnica para diseñar que consiste en tomar el
problema en forma inicial como una cuestión global y
descomponerlo sucesivamente en problemas más pequeños y
por lo tanto, de solución más sencilla.
 La descomposición del problema original (y de las etapas
subsecuentes), puede detenerse cuando los problemas
resultantes alcanzan un nivel de detalle que el programador o
analista pueden implementar fácilmente.
 El problema se descompone en etapas o estructuras
jerárquicas, de modo que se puede considerar cada estructura
como dos puntos de vista : ¿lo que hace?, y ¿cómo lo hace ?.
 Si se considera un nivel n de refinamiento, las estructuras se
consideran de la siguiente forma :
 nivel n : Vista desde el exterior. ¿lo que hace ?
 nivel n+1 : Vista desde el interior. ¿cómo lo hace ?
2.3.1.2 EjemploTop Down
2.3.2 Botton Up
 Esta técnica consiste en partir de los detalles más
precisos del algoritmo completando sucesivamente
módulos de mayor complejidad, se recomienda cuando
ya se cuenta con experiencia y ya se sabe lo que se va
a hacer.
 Conforme se va alcanzando el desarrollo de módulos
más grandes se plantea como objetivo final la
resolución global del problema.
 Este método es el inverso del anterior y es
recomendable cuando se tiene un modelo a seguir o
se cuenta con amplia experiencia en la resolución de
problemas semejantes.
 La técnica de Botton Up es frecuentemente utilizada
para la realización de pruebas a sistemas ya concluidos.
2.3.3.1Warnier Orr
 Es una técnica que utiliza una representación
semejante a la de cuadros sinópticos para mostrar
el funcionamiento y organización de los elementos
que conforman el algoritmo.
 Básicamente, utiliza una notación de llaves para
organizar los módulos y se auxilia en la siguiente
simbología para indicar operaciones de control.
 + OR (uno, otro o varios)
 + XOR (uno u otro, solo uno)
 (x,y) puede hacerse tantas veces desde x hasta y
 Los diagramas Warnier Orr se leen de izquierda a
derecha y de arriba hacia abajo.
2.3.3.2 Ejemplo Warnier Orr
2.4 Representación de Algoritmos
 Descripción narrada
 Diagrama de flujo (representación gráfica)
 Pseudocódigo
 Diagramas estructurados(N-S)
2.4.1 Descripción narrada
 Utiliza el lenguaje natural para describir la
secuencia de pasos a seguir para dar
solución a un problema especifico.
 Es muy utilizada para describir algoritmos
cotidianos como recetas de cocina,
instructivos de instalación, etc.
 Se debe de emplear una clara redacción con
énfasis en los detalles y sin ambigüedades.
 La secuencia de pasos se debe de enumerar
de acuerdo al orden de ejecución del
algoritmo.
2.4.2 Diagrama de flujo
 Se basan en la utilización de diversos
símbolos para representar operaciones
específicas.
 Se les llama diagramas de flujo porque los
símbolos utilizados se conectan por medio
de flechas para indicar la secuencia de
operación.
 La simbología utilizada para la elaboración
de diagramas de flujo es variable y debe
ajustarse a un patrón definido previamente.
2.4.2.1 Simbología de Diagrama de flujo1
Símbolo Función
Terminal : representa el inicio o fin de un programa,
puede también representar una parada o interrupción
programada que sea necesario realizar en un programa
Entrada/Salida de datos
Proceso: cualquier tipo de operación que pueda originar
cambio de valor, formato o posición de la información
almacenada en memoria, operaciones aritméticas.
Descisión: indica operaciones lógicas o de comparación
entre datos.
Conector: sirve para conectar partes de un diagrama en
una misma hoja.
Indicador de dirección o línea de flujo: indica el sentido de
ejecución de las operaciones.
Línea conectora: sirve de unión entre 2 símbolos
2.4.2.1 Simbología de Diagrama de flujo2
Símbolo Función
Conector: conexión entre 2 puntos situados en páginas
diferentes.
Llamada a subrutina (proceso predeterminado) o a un
modulo independiente del programa.
Pantalla : se puede utilizar en lugar del símbolo de salida.
Impresora : se puede utilizar en lugar del símbolo de
salida.
Teclado : se puede utilizar en lugar del símbolo de
entrada.
2.4.2.2 Representación de estructuras de
control en diagrama de flujo
SECUENCIA
Acción 1
Acción 2
Acción n
SELECCIONSIMPLE
Condición
Accion(es)
NO
SI
DOBLE
Condición
Accion(es)
NO SI
Accion(es)
Selector
Accion(es)
MULTIPLE
Accion(es) Accion(es) Accion(es)…
Valor 1 Valor 2 Valor 3 Valor N
2.4.2.2 Representación de estructuras de
control de repetición diagrama de flujo
Condicionada al Inicio (While)
Condición
Accion(es)
NO
SI
PREDEFINIDA
Condicionada al Final (Repeat-Until)
Condición
Accion(es)
NO
SI
Accion(es)
SI
NO
i=Val. Inicial
i=i+1
I<=Val. Final
2.4.3 Pseudocódigo
 Es un lenguaje de especificación de algoritmos. El uso de tal
lenguaje hace el paso de codificación final (esto es, la
traducción a un lenguaje de programación) relativamente
fácil.
 La ventaja del pseudocódigo es que en su uso en la
planificación de un programa, el programador se puede
concentrar en la lógica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje específico.
 Es también fácil modificar si se descubren errores o
anomalías en la lógica del programa.
 utiliza para representar las acciones sucesivas palabras en
un lenguaje natural (similares a sus homónimos en los
lenguajes de programación), tales como inicio, fin, repite –
hasta, si –entonces-sino, etc.
2.4.3.1Palabras usadas en Pseudocódigo
Secuencia
Inicio
acción1
acción2
:
acción n
Fin
Decisión Simple
si condición entonces
acción1
acción2
:
acción n
Doble
si condición entonces
acción(es)
en caso contrario
acción(es)
Múltiple
casos selector de
valor1 : acción(es)
valor2 : acción(es)
:
valor n : acción(es)
2.4.3.1Palabras Iteración en Pseudocódigo
Predefinida
para var. Entera inicial hasta final hacer
acción(es)
Condicional al inicio
Haz mientras (condición)
acción(es)
Condicional al final
Repetir
acción(es)
Hasta que condición
2.4.4 Diagramas Estructurados
(nassi-schneiderman)
 El diagrama N-S de Nassi-Schneiderman, también
conocido como diagrama de Caja, es como un
diagrama de flujo en el que se omiten las flechas de
unión y las cajas son contiguas.
 Las acciones sucesivas se escriben en cajas
sucesivas, y, como en los diagramas de flujo, se
pueden escribir diferentes acciones en una caja.
 Los Diagramas Estructurados, son una técnica que
permite formular algoritmos mediante una
representación geométrica y de asignación
de espacios de un bloque específico.
2.4.4.1 Estructuras de control diagramas N-S
Secuencia
Selección Simple
Selección Doble
Selección Múltiple
2.4.4.1 Estructuras de control de repetición
diagramas N-S
Condicionada al inicio (While) Condicionada al final (Repeat-Until)
Pre-definida
2.4.4.2 Ejemplos diagrama (N-S)

Más contenido relacionado

La actualidad más candente

proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysql
BrenditaLr
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
Ricardo Quintero
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
starduslex
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejercicios
Walter Chacon
 
Logica de programacion de algoritmos
Logica de programacion de algoritmosLogica de programacion de algoritmos
Logica de programacion de algoritmos
David Ramos
 

La actualidad más candente (20)

PRUEBAS DE CAJA NEGRA
PRUEBAS DE CAJA NEGRAPRUEBAS DE CAJA NEGRA
PRUEBAS DE CAJA NEGRA
 
Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacion
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Java swing
Java swingJava swing
Java swing
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysql
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
S2-POO-1.2 Representación Gráfica
S2-POO-1.2 Representación GráficaS2-POO-1.2 Representación Gráfica
S2-POO-1.2 Representación Gráfica
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejercicios
 
Operadores
OperadoresOperadores
Operadores
 
Diapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacionDiapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacion
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Logica de programacion de algoritmos
Logica de programacion de algoritmosLogica de programacion de algoritmos
Logica de programacion de algoritmos
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Vuelta Atras
Vuelta AtrasVuelta Atras
Vuelta Atras
 
Funciones
FuncionesFunciones
Funciones
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes
 

Destacado

Sentencias de repetición en Java
Sentencias de repetición en JavaSentencias de repetición en Java
Sentencias de repetición en Java
Jdcaste
 
2 unidad programacion comput
2 unidad programacion comput2 unidad programacion comput
2 unidad programacion comput
cortezbfajardo
 
Sentencias de Repeticion
Sentencias de RepeticionSentencias de Repeticion
Sentencias de Repeticion
Kenyi Figueroa
 
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No SecuencialesLenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Karina Arguedas Ruelas
 
Fundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10gFundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10g
Wal
 

Destacado (20)

Diseño del proceso
Diseño del procesoDiseño del proceso
Diseño del proceso
 
Sentencias de repetición en Java
Sentencias de repetición en JavaSentencias de repetición en Java
Sentencias de repetición en Java
 
Actividad3
Actividad3Actividad3
Actividad3
 
Reglas de derivadas
Reglas de  derivadasReglas de  derivadas
Reglas de derivadas
 
Diplomado epu sesión_03
Diplomado epu sesión_03Diplomado epu sesión_03
Diplomado epu sesión_03
 
Varieables de estado
Varieables de estadoVarieables de estado
Varieables de estado
 
2 unidad programacion comput
2 unidad programacion comput2 unidad programacion comput
2 unidad programacion comput
 
Diplomado EPU_Sesión_04
Diplomado EPU_Sesión_04Diplomado EPU_Sesión_04
Diplomado EPU_Sesión_04
 
Activos fijos depreciacion y registro excel
Activos fijos depreciacion y registro excelActivos fijos depreciacion y registro excel
Activos fijos depreciacion y registro excel
 
Sentencias de Repeticion
Sentencias de RepeticionSentencias de Repeticion
Sentencias de Repeticion
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No SecuencialesLenguaje Borland C - Estructuras Secuenciales y No Secuenciales
Lenguaje Borland C - Estructuras Secuenciales y No Secuenciales
 
Oracle
OracleOracle
Oracle
 
Manula Oracle 2
Manula Oracle 2Manula Oracle 2
Manula Oracle 2
 
Manualoracle 1
Manualoracle 1Manualoracle 1
Manualoracle 1
 
Intro jsf
Intro jsfIntro jsf
Intro jsf
 
Java server faces
Java server facesJava server faces
Java server faces
 
Jsf jpa-y-hibernate-capitulo-02
Jsf jpa-y-hibernate-capitulo-02Jsf jpa-y-hibernate-capitulo-02
Jsf jpa-y-hibernate-capitulo-02
 
Fundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10gFundamentos de administracion_oracle_10g
Fundamentos de administracion_oracle_10g
 
Jsf jpa-y-hibernate-capitulo-01
Jsf jpa-y-hibernate-capitulo-01Jsf jpa-y-hibernate-capitulo-01
Jsf jpa-y-hibernate-capitulo-01
 

Similar a Fundamentos de programacion

informatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxinformatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptx
DanielHidalgo92
 
01 metprogramacion
01 metprogramacion01 metprogramacion
01 metprogramacion
ConfesorAD
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
restradal
 
Entidades primitivas para algoritmos
Entidades primitivas para algoritmosEntidades primitivas para algoritmos
Entidades primitivas para algoritmos
luisce03
 
Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003
Joseluis Cruz Ramirez
 

Similar a Fundamentos de programacion (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
algoritmos 7 4p.pptx
algoritmos 7 4p.pptxalgoritmos 7 4p.pptx
algoritmos 7 4p.pptx
 
informatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxinformatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptx
 
informatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxinformatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptx
 
Estructuras de un Algoritmo
Estructuras de un AlgoritmoEstructuras de un Algoritmo
Estructuras de un Algoritmo
 
01 metprogramacion
01 metprogramacion01 metprogramacion
01 metprogramacion
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Unidad i
Unidad iUnidad i
Unidad i
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Unidad i
Unidad iUnidad i
Unidad i
 
Algoritmo tp guille
Algoritmo tp guilleAlgoritmo tp guille
Algoritmo tp guille
 
Entidades primitivas para algoritmos
Entidades primitivas para algoritmosEntidades primitivas para algoritmos
Entidades primitivas para algoritmos
 
Algoritmos 02
Algoritmos 02Algoritmos 02
Algoritmos 02
 
Logica computacional conceptos basicos
Logica computacional conceptos basicosLogica computacional conceptos basicos
Logica computacional conceptos basicos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
algoritmos
algoritmosalgoritmos
algoritmos
 
Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 

Fundamentos de programacion

  • 2. 2.1 Análisis de problemas  Problema: es la diferencia entre una situación actual y una situación deseada, ésta última puede surgir como producto de una necesidad, una deficiencia o una oportunidad de mejora de los negocios. Problema = situación actual – situación deseada ¿Dónde se esta? ¿Qué se tiene? ¿Dónde se desea estar? ¿Qué se desea tener? ¿Es realmente necesario hacerlo?
  • 3. 2.1.1 Características de un problema  Definir y entender el problema e Identificar las siguientes características: ◦ Entrada: información dada del problema. ¿Qué datos se necesitan para resolver el problema? ◦ Proceso: operaciones o cálculos necesarios para encontrar la solución del problema. ◦ Salida: respuestas dadas por el proceso resultados finales de los cálculos. ¿Qué información debe proporcionar la solución del problema? PROCESO Datos Entrada Resultados Salidas
  • 4. Ejemplo: calcular el área de un rectángulo Análisis del problema: El cálculo del área del rectángulo se puede dividir en: ◦ Entrada de datos (altura, base) ◦ Proceso: Cálculo del área (= base x altura) ◦ Salida de datos (base, altura, área) Area=Base x Altura Base Altura
  • 5. 2.1.2 Fases de resolución de un problema  Definición de Problema  Análisis de los Datos  Diseño de la Solución (Algoritmo)  Codificación (Programa)  Prueba y Depuración  Documentación  Mantenimiento
  • 6. 2.1.2.1 Definición del problema  Está dada en sí por el enunciado del problema, el cual debe ser claro y completo.  Es importante que conozcamos exactamente "que se desea obtener al final del proceso" ; mientras esto no se comprenda no puede pasarse a la siguiente etapa.
  • 7. 2.1.2.2 Análisis de los datos  Para poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solución eficaz.  Analizar los siguientes aspectos: ◦ Los resultados esperados. ◦ Los datos de entrada disponibles. ◦ Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (fórmulas, tablas, accesorios diversos).
  • 8. 2.1.2.3 Diseño de la solución (Algoritmo)  Proporcionar los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo que resuelva adecuadamente el problema.  En caso de obtenerse varios algoritmos, seleccionar uno de ellos utilizando criterios que consideren la eficiencia del mismo.  Esta etapa incluye la descripción del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programación.  Los problemas complejos se pueden resolver más eficazmente por la computadora cuando se dividen en subproblemas que sean más fácil de solucionar.
  • 9. 2.1.2. 4 Codificación (Programa)  Se refiere a la escritura y representación en un lenguaje de programación de un algoritmo.  Para transcribir el algoritmo al lenguaje se debe considerar: ◦ Usar solo el conjunto de palabras e instrucciones que conforman el lenguaje de programación. ◦ Respetar las reglas de sintaxis y semántica del lenguaje.
  • 10. 2.1.2.5 Prueba y depuración  Se realiza una prueba del programa ejecutable, a fin de determinar si resuelve o no el problema planteado en forma satisfactoria.  Comúnmente se inicia la prueba de un programa introduciendo datos válidos, inválidos e incongruentes y observando como reacciona en cada ocasión.  La depuración consiste en localizar los errores y corregirlos en caso de que estos existan.  Si no existen errores, puede entenderse la depuración como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeño del programa.
  • 11. 2.1.2.6 Documentación  Debido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin errores), se procede a la utilización para resolver problemas del tipo que dio origen a su diseño.  En vista de que esta utilización no podrá ser supervisada en todas las ocasiones por el programador, debe crearse un manual o guía de operación que indique los pasos a seguir para utilizar el programa.
  • 12. 2.1.2.7 Mantenimiento  Se refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias así lo requieran.  Este programa deberá ser susceptible de ser modificado para adecuarlo a nuevas condiciones de operación.  Cualquier actualización o cambio en el programa deberá reflejarse en su documentación.
  • 13. 2.2 Entidades Primitivas  Tipos de Datos ◦ Numéricos ◦ Lógicos ◦ Carácter y cadena  Operadores y Operandos ◦ Operadores aritméticos ◦ Operadores relacionales ◦ Operadores lógicos  Expresiones y su representación algorítmica ◦ Aritméticas ◦ Relacionales ◦ Lógicas ◦ Carácter y cadena
  • 14. 2.2.1Tipos de datos1  Un dato se define como la expresión general que describe los objetos con los cuales opera una computadora. Los datos de entrada se transforman por el programa, después de las etapas intermedias, en datos de salida.  Datos Numéricos: Son aquéllos 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 representarse en dos formas distintas : ◦ Tipo Numérico Entero (integer): 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. Ejemplo: 108 20 50 2015 ◦ Tipo Numérico Real (real): Consiste 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.También son representados como punto flotante. Ejemplo: 3.1416 314.16 x 10-2 31416. x 10-4 78.375
  • 15. 2.2.1Tipos de datos2  Carácter o Cadenas: 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 apóstrofes o comillas. Se clasifica en dos categorías : ◦ Datos tipo carácter (char) : Es un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato de este tipo contiene solo un carácter. Utiliza tablas de código como el ASCII para su representación.Reconoce los siguientes caracteres :  Caracteres Alfabéticos (A,B,C,…Z,a,b,c…z)  Caracteres Numéricos (0,1,2,…9)  Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, …….) ◦ Datos tipo Cadena (string): Es un sucesión de caracteres que se encuentran delimitados por una comilla (apóstrofe) o dobles comillas, según el tipo de lenguaje de programación. La longitud de una cadena de caracteres es el número de ellos comprendidos entre los separadores o delimitadores. Ejemplos : „Hola Mundo‟ ‟16 de septiembre, viva bicentenario‟
  • 16. 2.2.1Tipos de datos3  Lógicos: también se le denomina Booleano, es aquél 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.  Tipos Enumerados: ◦ SUBRANGO : Son aquéllos en los que se especifica con precisión el intervalo de valores válidos para un dato. Ejemplos: 0..100 (son enumerativos de tipo entero) 'A'..'Z' (son enumerativos de tipo cadena) Los Reales no son válidos para crear enumerativos, ya que su intervalo no está definido. ◦ ENUMERATIVOS : Son aquéllos en los que se definen individualmente los valores para un dato. Ejemplos: (0,25,40,52) Siempre deben ponerse entre paréntesis. ◦ DEFINIDOS POR EL USUARIO : Son aquéllos que el programador crea para satisfacer las necesidades del programa en diseño.
  • 17. 2.2.2 Identificador, constantes y variables  Un identificador es un nombre que se le da un elemento de programa, ya sea una constante, variable, un procedimiento o una función.  Una Constante es aquélla que no cambia de valor durante la ejecución de un programa (o comprobación de un algoritmo).  Las Variables son aquéllas que pueden modificar su valor durante la ejecución de un programa.  El identificador que se le da a una variable o constante suele representar un espacio de memoria donde será almacenado su valor. Lo anterior se hace con la finalidad de facilitar la utilización de la memoria, en lugar de utilizar directamente direcciones de memoria.
  • 18. 2.2.3 Operaciones primitivas  Operando: puede ser una constante o variable sobre la cual se realiza una determinada operación u acción.  Operador: es el símbolo que determina el tipo de operación o relación que habrá de establecerse entre los operandos para alcanzar un resultado.  Los operadores se clasifican en tres grupos:  Aritméticos.  Relacionales.  Lógicos.
  • 19. 2.2.3.1 Operadores aritméticos  Son aquéllos que permiten la realización de cálculos aritméticos. Utilizan operandos numéricos y proporcionan resultados numéricos. Operador Operación ^ Exponenciación * Multiplicación / División + Suma - Resta DIV División entera (cociente) MOD Modulo o residuo de División
  • 20. 2.2.3.2 Operadores relacionales  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 <= Menor igual >= Mayor igual = igual <> Diferente
  • 21. 2.2.3.3 Operadores lógicos  Son aquéllos 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 Significado Obtiene verdadero si NOT Negación (No) El operando es falso AND Conjunción (Y) Ambos operandos son verdaderos OR Disyunción (O) Al menos un operando es verdadero XOR Disyunción Exclusiva (O/SOLO) Solo uno de los operandos son verdadero
  • 22. 2.2.3.3.1Tabla de verdad X Y X AND Y X OR Y X XOR Y NOT(X) NOT(Y) F F F F F V V F V F V V V F V F F V V F V V V V V F F F
  • 23. 2.2.3. 4 Prioridad de Operadores  Determina el orden en que habrán de realizarse las operaciones en una expresión determinada. Para obtener la prioridad se deben conocer las siguientes reglas:  Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis anidados (interiores unos a otros), las expresiones más internas se evalúan primero.  Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad:  En caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre paréntesis, el orden de prioridad en este caso es de izquierda a derecha. Operador Prioridad ^ Exponenciación (ALTA) *,/,DIV,MOD multiplicación,división, cociente , residuo +,- suma, resta Relacionales Baja Lógicos
  • 24. 2.2.3. 5 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 u operador :=, .  A fin de manejar datos por medio de variables, estos pueden recibir valores determinados. El tipo de los 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: Nom_variable Expresión Donde Expresión puede ser una variable o constante, operación, función.  Ejemplos: A:=10*5 , B:=(5<10), palabra:=“HOLA”
  • 25. 2.2.3. 6 Entrada y Salida de Información  Los cálculos que realizan las computadoras requieren para ser útiles la Entrada de los datos necesarios para ejecutar las operaciones que posteriormente se convertirán en resultados, es decir, Salida.  Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables. Esta entrada se conoce como operación de Lectura (read). Los datos de entrada se introducen al procesador mediante dispositivos de entrada (teclado, unidades de disco, etc).  La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc). La operación de salida se denomina escritura (write).  En la escritura de algoritmos las acciones de lectura y escritura se representan por los formatos siguientes: leer ( Nom_variable ) escribir (lista de variables de salida)
  • 26. 2.2.4 Expresiones  Las expresiones son combinaciones de constantes, variables, símbolos de operadores, paréntesis y nombres de funciones especiales.  Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.  Una expresión consta de operadores y operandos.  Según sea el tipo de objetos que manipulan, las expresiones se clasifican en : aritméticas, relacionales, lógicas y carácter o cadena.  El resultado de la expresión numérica es de tipo numérico ; el resultado de una expresión relacional y de una expresión lógica es de tipo lógico ; el resultado de una expresión carácter es de tipo carácter.
  • 27. 2.3Técnicas de Diseño  Con el objeto de facilitar el diseño de algoritmos y la organización de los diversos elementos de los que se componen se utilizan algunas técnicas que muestran una metodología a seguir para resolver los problemas.  Estas técnicas hacen que los programas sean más fáciles de escribir, verificar, leer y mantener.  Algunas de las técnicas más conocidas son :  Top Down (diseño descendente)  Botton Up  Warnier Orr
  • 28. 2.3.1.1Top Down  Es una técnica para diseñar que consiste en tomar el problema en forma inicial como una cuestión global y descomponerlo sucesivamente en problemas más pequeños y por lo tanto, de solución más sencilla.  La descomposición del problema original (y de las etapas subsecuentes), puede detenerse cuando los problemas resultantes alcanzan un nivel de detalle que el programador o analista pueden implementar fácilmente.  El problema se descompone en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura como dos puntos de vista : ¿lo que hace?, y ¿cómo lo hace ?.  Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente forma :  nivel n : Vista desde el exterior. ¿lo que hace ?  nivel n+1 : Vista desde el interior. ¿cómo lo hace ?
  • 30. 2.3.2 Botton Up  Esta técnica consiste en partir de los detalles más precisos del algoritmo completando sucesivamente módulos de mayor complejidad, se recomienda cuando ya se cuenta con experiencia y ya se sabe lo que se va a hacer.  Conforme se va alcanzando el desarrollo de módulos más grandes se plantea como objetivo final la resolución global del problema.  Este método es el inverso del anterior y es recomendable cuando se tiene un modelo a seguir o se cuenta con amplia experiencia en la resolución de problemas semejantes.  La técnica de Botton Up es frecuentemente utilizada para la realización de pruebas a sistemas ya concluidos.
  • 31. 2.3.3.1Warnier Orr  Es una técnica que utiliza una representación semejante a la de cuadros sinópticos para mostrar el funcionamiento y organización de los elementos que conforman el algoritmo.  Básicamente, utiliza una notación de llaves para organizar los módulos y se auxilia en la siguiente simbología para indicar operaciones de control.  + OR (uno, otro o varios)  + XOR (uno u otro, solo uno)  (x,y) puede hacerse tantas veces desde x hasta y  Los diagramas Warnier Orr se leen de izquierda a derecha y de arriba hacia abajo.
  • 33. 2.4 Representación de Algoritmos  Descripción narrada  Diagrama de flujo (representación gráfica)  Pseudocódigo  Diagramas estructurados(N-S)
  • 34. 2.4.1 Descripción narrada  Utiliza el lenguaje natural para describir la secuencia de pasos a seguir para dar solución a un problema especifico.  Es muy utilizada para describir algoritmos cotidianos como recetas de cocina, instructivos de instalación, etc.  Se debe de emplear una clara redacción con énfasis en los detalles y sin ambigüedades.  La secuencia de pasos se debe de enumerar de acuerdo al orden de ejecución del algoritmo.
  • 35. 2.4.2 Diagrama de flujo  Se basan en la utilización de diversos símbolos para representar operaciones específicas.  Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de operación.  La simbología utilizada para la elaboración de diagramas de flujo es variable y debe ajustarse a un patrón definido previamente.
  • 36. 2.4.2.1 Simbología de Diagrama de flujo1 Símbolo Función Terminal : representa el inicio o fin de un programa, puede también representar una parada o interrupción programada que sea necesario realizar en un programa Entrada/Salida de datos Proceso: cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritméticas. Descisión: indica operaciones lógicas o de comparación entre datos. Conector: sirve para conectar partes de un diagrama en una misma hoja. Indicador de dirección o línea de flujo: indica el sentido de ejecución de las operaciones. Línea conectora: sirve de unión entre 2 símbolos
  • 37. 2.4.2.1 Simbología de Diagrama de flujo2 Símbolo Función Conector: conexión entre 2 puntos situados en páginas diferentes. Llamada a subrutina (proceso predeterminado) o a un modulo independiente del programa. Pantalla : se puede utilizar en lugar del símbolo de salida. Impresora : se puede utilizar en lugar del símbolo de salida. Teclado : se puede utilizar en lugar del símbolo de entrada.
  • 38. 2.4.2.2 Representación de estructuras de control en diagrama de flujo SECUENCIA Acción 1 Acción 2 Acción n SELECCIONSIMPLE Condición Accion(es) NO SI DOBLE Condición Accion(es) NO SI Accion(es) Selector Accion(es) MULTIPLE Accion(es) Accion(es) Accion(es)… Valor 1 Valor 2 Valor 3 Valor N
  • 39. 2.4.2.2 Representación de estructuras de control de repetición diagrama de flujo Condicionada al Inicio (While) Condición Accion(es) NO SI PREDEFINIDA Condicionada al Final (Repeat-Until) Condición Accion(es) NO SI Accion(es) SI NO i=Val. Inicial i=i+1 I<=Val. Final
  • 40. 2.4.3 Pseudocódigo  Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.  La ventaja del pseudocódigo es que en su uso en la planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje específico.  Es también fácil modificar si se descubren errores o anomalías en la lógica del programa.  utiliza para representar las acciones sucesivas palabras en un lenguaje natural (similares a sus homónimos en los lenguajes de programación), tales como inicio, fin, repite – hasta, si –entonces-sino, etc.
  • 41. 2.4.3.1Palabras usadas en Pseudocódigo Secuencia Inicio acción1 acción2 : acción n Fin Decisión Simple si condición entonces acción1 acción2 : acción n Doble si condición entonces acción(es) en caso contrario acción(es) Múltiple casos selector de valor1 : acción(es) valor2 : acción(es) : valor n : acción(es)
  • 42. 2.4.3.1Palabras Iteración en Pseudocódigo Predefinida para var. Entera inicial hasta final hacer acción(es) Condicional al inicio Haz mientras (condición) acción(es) Condicional al final Repetir acción(es) Hasta que condición
  • 43. 2.4.4 Diagramas Estructurados (nassi-schneiderman)  El diagrama N-S de Nassi-Schneiderman, también conocido como diagrama de Caja, es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas.  Las acciones sucesivas se escriben en cajas sucesivas, y, como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja.  Los Diagramas Estructurados, son una técnica que permite formular algoritmos mediante una representación geométrica y de asignación de espacios de un bloque específico.
  • 44. 2.4.4.1 Estructuras de control diagramas N-S Secuencia Selección Simple Selección Doble Selección Múltiple
  • 45. 2.4.4.1 Estructuras de control de repetición diagramas N-S Condicionada al inicio (While) Condicionada al final (Repeat-Until) Pre-definida