SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
ING. SISTEMAS
COMPUTACIONALES
FUNDAMENTOS DE PROGRAMACIÓN
1.2 Representación de algoritmos: gráfica y pseudocódigo.
El término algoritmo parece derivar del nombre de un matemático árabe llamado
Mohamed ibn Musa al – Khuwarizmi, que vivió en Bagdad alrededor del año 830
de nuestra era, y que escribió un libro que contenía un sistema de numeración
decimal y reglas de cálculo. Dicho libro sería utilizado con posterioridad
impulsando la sustitución del uso del ábaco.
Modernamente, se ha usado el término algoritmo en referencia a cualquier
procedimiento sistemático de cálculo, que da lugar a un resultado después de
seguirse una serie de instrucciones precisas.
En el campo de la informática y la programación, se ha adoptado el término para
describir cualquier serie de instrucciones precisas que dan lugar a un resultado.
La relación con las matemáticas sigue siendo estrecha, aunque ha ganado peso
la concepción como serie de instrucciones precisas, que no necesariamente
implican cálculo. Así, podríamos hacernos una primera idea de qué es un algoritmo
pensando en las instrucciones para montar un mueble desarmado, o en la
preparación de un plato a partir de una receta de cocina.
Las herramientas utilizadas para diseñar algoritmos son:
• Diagramas de flujo
• Pseudocódigo
•
Diagramas de flujo
Los diagramas de flujo son una manera de representar visualmente el flujo de
datos a través de sistemas de tratamiento de información. Los diagramas de flujo
describen que operaciones y en que secuencia se requieren para solucionar un
problema dado.
Un diagrama de flujo u organigrama es una representación diagramática que
ilustra la secuencia de las operaciones que se realizarán para conseguir la
solución de un problema. Los diagramas de flujo se dibujan generalmente antes
de comenzar a programar el código frente a la computadora. Los diagramas de
flujo facilitan la comunicación entre los programadores y la gente del negocio.
Estos diagramas de flujo desempeñan un papel vital en la programación de un
problema y facilitan la comprensión de problemas complicados y sobre todo muy
largos. Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribir el
programa en cualquier idioma de alto nivel. Vemos a menudo cómo los diagramas
de flujo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto,
está correcto decir que un diagrama de flujo es una necesidad para la
documentación mejor de un programa complejo.
Reglas para dibujar diagramas de flujo.
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:
Inicio o fin del programa
Pasos, procesos o líneas de instrucción de programa de
computo
Operaciones de entrada y salida
Toma de decisiones y Ramificación
Conector para unir el flujo a otra parte del diagrama
Cinta magnética
Disco magnético
Conector de pagina
Líneas de flujo
Anotación
Display, para mostrar datos
Envía datos a la impresora
Símbolos gráficos
Dentro de los símbolos fundamentales para la creación de diagramas de flujo, los
símbolos gráficos son utilizados específicamente para operaciones aritméticas y
relaciones condicionales. La siguiente es una lista de los símbolos más
comúnmente utilizados:
+ Sumar
- Menos
* Multiplicación
/ División
± Mas o menos
= Equivalente a
> Mayor que
< Menor que
³ Mayor o igual que
£ Menor o igual que
¹ o <> Diferente de
Si
No
True
False
Reglas para la creación de Diagramas
Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a
derecha.
Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que
indica la dirección que fluye la información procesos, se deben de utilizar
solamente líneas de flujo horizontal o verticales (nunca diagonales).
Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del
diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe
tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente
necesario.
No deben quedar líneas de flujo sin conectar
1. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando
el uso de muchas palabras.
2. Todos los símbolos pueden tener más de una línea de entrada, a excepción
del símbolo final.
3. Solo los símbolos de decisión pueden y deben tener más de una línea de
flujo de salida.
Ejemplos de diagramas de flujo
Diagrama de flujo que encuentra la suma de los primeros 50 números naturales
Bueno, y ahora la descripción del diagrama anterior
Suma, es la variable a la que se le va agregando la valor de cada número natural.
N, es el contador. Éste recorrerá los números hasta llegar al 50.
• El primer bloque indica el inicio del Diagrama de flujo
• El segundo bloque, es un Símbolo de procesos
En este bloque se asume que las variables suma y N han sido declaradas
previamente y las inicializa en 0 para comenzar a el conteo y la suma de
valores (Para declararlas existe el bloque Tarjeta perforada).
• El tercer bloque, es también un Símbolo de procesos
En éste paso se incrementa en 1 la variable N (N
= N + 1). Por lo que, en la primera pasada esta N valdrá 1, ya que estaba
inicializada en 0.
• El cuarto bloque es exactamente lo mismo que el anterior
Pero en éste, ya se le agrega el valor de N a la
variable que contendrá la suma (En el primer caso contendrá 1, ya que N =
1).
• El quinto bloque es un Símbolo de Toma de decisiones y Ramificación
Lo que hay dentro del bloque es una pregunta que se le hace a los valores
que actualmente influyen en el proceso ¿Es
N=50?, Obviamente la respuesta es no, ya que N todavía es 1. por lo que
el flujo de nuestro programa se dirigirá hacía la parte en donde se observa
la palabra no: Tercer Bloque, éste le sumará 1 (N=N+1) y vuelve a llegar a
éste bloque, donde preguntará ¿Es N=50?... ¡No!, todavía es 2. Ha pues,
regresa al Tercer bloque y vuelve hacer lo mismo. Y así hasta llegar a 50,
obteniendo así la suma de los primeros 50 primeros números naturales.
• Por último indicamos que el resultado será mostrado en la impresora (Este
lo puedes cambiarlo por el display para mostrar datos).
• Fin del programa (o diagrama)
Pseudocódigo
Es una herramienta de programación en la que las instrucciones se escriben en
palabras similares al inglés o español, que facilitan tanto la escritura como la
lectura de programas. En esencia, el pseudocódigo se puede definir como un
lenguaje de especificaciones de algoritmos. (Joyanes Aguilar, s/f)
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar
solución a un problema determinado. El pseudocódigo utiliza palabras que indican
el proceso a realizar. (Hernández, 2010)
Ejemplos:
Ejemplo 1: Pseudocódigo que permita calcular el área de un rectángulo. Se
debe introducir la base y la altura para poder realizar el cálculo..
Programa; área
Entorno: BASE, ALTURA, AREA son número enteros
Algoritmo:
escribir “Introduzca la base y la altura”
leer BASE, ALTURA
calcular AREA = BASE * ALTURA
escribir “El área del rectángulo es “AREA
Finprograma
Ejemplo 2: Pseudocódigo que permita al usuario introducir por teclado dos
notas, calculando la suma y el producto de las notas.
Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros
Algoritmo:
escribir “Introduzca las notas”
leer NOTA1,NOTA2
calcular SUMA = NOTA1 + NOTA2
calcular PRODUCTO = NOTA1 * NOTA2
escribir “La suma de las dos notas es:” SUMA
escribir “El producto de las dos notas es :”PRODUCTO
Finprograma
Ejemplo 3: Pseudocódigo que permita saber si un número es mayor, menor
o igual a cero.
Programa: ComparaNúmeros
Entorno: NUMERO es un número entero
Algoritmo:
Escribir “Introduzca un número “
leer NUMERO
SI NUMERO>0 ENTONCES
escribir “El número introducido es positivo”
SI NO
SI NUMERO<0 ENTONCES
escribir “El número introducido es negativo”
SI NO
escribir “El número es cero”
FINSI
FINSI
Finprograma
1.3 Diseño de algoritmos.
Fase en la resolución de problemas
Joyanes Aguilar, señala que el proceso de resolución de problemas con una
computadora conduce a la escritura de un programa y a su ejecución en la misma.
Reconoce que el proceso de diseño de un programa es un “proceso creativo”, en
el cual se puede considerar una serie de fases o pasos comunes, que
generalmente deben seguir los programadores.
Las fases de resolución de un problema con computadora son:
1. Análisis del problema.
2. Diseño del algoritmo.
3. Codificación.
4. Compilación y ejecución.
5. Verificación.
6. Depuración.
7. Mantenimiento.
8. Documentación.
Constituyen el ciclo de vida del software y las fases o etapas usuales son:
1. Análisis. El problema se analiza teniendo presente la especificación de los
requisitos dados por el cliente de la empresa o por la persona que se encarga del
programa.
2. Diseño. Una vez analizado el problema, se diseña una solución que conduzca
a un algoritmo que resuelva el problema.
3. Codificación (implementación). La solución se escribe en la sintaxis del lenguaje
de alto nivel (por ejemplo, C++) y se obtiene un programa.
4. Compilación, ejecución y verificación. El programa se ejecuta, se comprueba
rigurosamente y se eliminan todos los errores que puedan aparecer.
5. Depuración y mantenimiento. El programa se actualiza y modifica cada vez que
sea necesario, de modo que se cumplan todas las necesidades de cambio de sus
usuarios.
6. Documentación. Escritura de las diferentes fases del ciclo de vida del software,
específicamente, el análisis, diseño y codificación, unidos a manuales de usuario
y de referencia, así como normas para el mantenimiento.
ALGORITMOS COTIDIANOS
Se refiere a los algoritmos que ayudan a resolver problemas diarios, y que las
personas llevan a cabo sin darse cuenta de que están siguiendo una metodología
para resolverlos.
Algunos ejemplos son:
Diseñar un algoritmo para cambiar una llanta a un auto:
1. Inicio.
2. Conseguir un gato hidráulico.
3. Levantar el auto con el gato.
4. Aflojar los tornillos de las llantas.
5. Retirar los tornillos de las llantas.
6. Quitar la llanta.
7. Colocar la llanta de repuesto.
8. Colocar los tornillos.
9. Apretar los tornillos.
10.Bajar el gato hidráulico.
11.Retirar el gato hidráulico.
12.Fin
Diseñar un algoritmo que compare el mayor de dos números
1. Inicio
2. Obtener el primer número (entrada), denominado NUMERO1.
3. Obtener el segundo número (entrada), denominado NUMERO2.
4. Si NUMERO1 es igual a NUMERO 2 entonces
3.1 Visualizar “son iguales”
4. Si NUMERO1 es mayor a NUMERO2 entonces
4.1 NUMERO1 es mayor
4.2 SINO
4.3 NUMERO2 es mayor
5. Fin
Diseñar un algoritmo que permita obtener un refresco de una máquina
automática expendedora de bebidas embotelladas.
1. Inicio
2. Verificar el panel de bebidas, ubicando la bebida deseada.
3. Identificar el costo de la bebida.
4. Introducir en la ranura correspondiente la cantidad monetaria que así
corresponda a la bebida deseada, de preferencia introducir la cantidad exacta.
5. Pulsar el botón que corresponda a bebida deseada.
6. Si existe producto entonces
a. En la bandeja de salida saldrá la bebida seleccionada.
b. Sino
c. En el panel se visualizará producto agotado.
7. Si cantidad introducida es igual al precio de producto entonces
a. No devolverá cambio.
8. Si cantidad introducida es mayor al precio de producto entonces
a. Devolverá el efectivo de diferencia en la bandeja pertinente.
9. Si cantidad introducida es menor al precio de producto entonces
a. En el panel visualizará efectivo insuficiente.
10.Fin
1.4 Diseño algorítmico de funciones
Una función algorítmica se refiere a la implementación de un algoritmo y
normalmente forma parte de un programa grande. También se llama una función
algorítmica como procedimiento, rutina, método o subprograma. Un algoritmo es
un procedimiento detallado paso a paso para resolver un problema, pero es
independiente de cualquier lenguaje de programación ya que representa el
concepto abstracto de la solución. Por lo tanto, después de diseñar un algoritmo y
desarrollar su pseudocódigo, el siguiente paso es implementar en un lenguaje de
programación específico.
Al diseñar un algoritmo que muchos factores como tiempo, espacio y tamaño
esperado de entrada se consideran. Desarrollo y análisis de algoritmos también
implican encontrar peor de los casos, el mejor de los casos y situaciones de
promedio, como el rendimiento es muy importante para una aplicación cuya
entrada aumenta con el tiempo.
Una vez que haya finalizado el algoritmo, se traduce en una función o un
procedimiento que es específico de un lenguaje de programación. Teóricamente,
independientemente de un lenguaje de programación, un algoritmo debe producir
repetidamente misma salida. Pero, esto no sucede en la realidad, ya que cada
lenguaje de programación tiene sus propias ventajas y desventajas. Las
características de un lenguaje de programación determinan la eficiencia de un
algoritmo debido a problemas como la incapacidad para asignar recursos en
tiempo de ejecución o tener fugas de memoria silenciosa puede ralentizar un
programa y puede llevar a mal funcionamiento de un algoritmo especialmente
cuando aumenta la entrada.
Factores que influyen en el diseño de una función algorítmica
Si un algoritmo hace uso de dividir y conquistar el enfoque o la programación
dinámica, el lenguaje de programación que se utiliza para codificar una función
algorítmica debe tener soporte para realizar llamadas recursivas anidados. Casi
todos los lenguajes de programación modernos tienen soporte para realizar
llamadas recursivas pero programas escritos en lenguajes antiguos como
FORTRAN no tenga soporte para realizar llamadas anidadas. En el caso de
recursividad, un lenguaje de programación se encarga de varias ejecuciones de
una función de anidación y hacer nuevas copias de las variables en cada llamada.
Para lograrlo, la mayoría de lenguajes de programación almacenan detalles sobre
las llamadas de función anidada en una pila.
Aunque todos los lenguajes de programación proporcionan apoyo para realizar
llamadas de función anidada, existe una actuación aérea en almacenar y
recuperar los parámetros y variables locales, en recuperar direcciones relativas de
cada llamada a una función anidada y en ajusta el puntero de pila. Esta sobrecarga
a su vez aumenta el tiempo de ejecución como el número de aumentos de
llamadas recursivas.
Casi todos los lenguajes de programación orientada a objetos producen
excepciones cuando la entrada no es válida o cuando encuentra un error. Sin
embargo, otra alternativa, que se puede considerar al diseñar la función
algorítmica es devolver un código de error. Este enfoque puede ser útil en
lenguajes que no proporcionan ningún apoyo para el manejo de errores. Un código
de error normalmente da la descripción sobre el tipo de error que se ha encontrado
una función.
A pesar de que un algoritmo establece claramente la esperada entrada y salida
junto con los Estados intermedios, la aplicación real de la función algorítmica
podría variar de un lenguaje de programación a otro. Una función algorítmica
diseñada aumenta la legibilidad de un programa, aumenta la calidad del código,
reduce errores de hard to find y ayuda a mantener grandes programas fácilmente.
La programación modular permite la descomposición de un problema en un
conjunto de subproblemas independientes entre sí, más sencillos de resolver y
que pueden ser tratados separadamente unos de otros.
Módulo
Uno de los elementos principales de programación utilizados en la
representación de cada módulo es la subrutina. Una subrutina es
un conjunto de instrucciones de cómputo que realizan una tarea.
Un programa principal llama a estos módulos a medida que se
necesitan. Un módulo es un segmento, rutina, subrutina,
subalgoritmo, procedimiento o función, que puede definirse dentro
de un algoritmo con el fin de ejecutar una tarea específica y puede
ser llamada o invocada desde principal invoca al subprograma, el
subprograma ejecuta la tarea y luego devuelve el control al
programa.
Un subprograma puede llamar a su vez a sus propios subprogramas
Funciones
La función es una estructura autónoma similar a los módulos. La diferencia radica
en que la función se usa para devolver un solo valor de un tipo de dato simple a
su punto de referencia. La función se relaciona especificando su nombre en una
expresión, como si fuera una variable ordinaria de tipo simple. Las funciones se
dividen en estándares y definidas por el usuario.
Estándar: Son funciones proporcionadas por cualquier lenguaje de programación
de alto nivel, y se dividen en aritméticas y alfabéticas.
Definidas por el usuario: son funciones que puede definirlas el programador con
el propósito de ejecutar alguna función específica, y que por lo general se usan
cuando se trata de hacer algún cálculo que será requerido en varias ocasiones en
la parte principal del algoritmo.
Declaración de funciones
Consta de una cabecera, seguido de la palabra (función) y del nombre del
argumento de la función después ira el cuerpo que es una serie de acciones cuya
ejecución hará que se asigne un valor al nombre de la función, esto determina el
resultado que ha de devolver al programa.
Invocación de las funciones.
Una función puede ser llamada de la siguiente forma:
Nombre_funcion: función que llama
Lista de parámetros actuales: constantes variable , expresiones.
Cada vez que se llama a una función desde el algoritmo principal se establece una
correspondencia entre los parámetros formales y los parámetros actuales.
Una llamada a la función implica los siguientes pasos:
1. A cada parámetro formal se le asigna el valor real de su correspondiente
parámetro actual.
2. Se ejecuta el cuerpo de acciones de la función.
3. Se devuelve el valor de la función y se retorna al punto de llamada.
Ámbito:
• Variables locales y
• Globales
Según el lugar donde son declaradas puede haber dos tipos de variables:
Globales: las variables permanecen activas durante todo el programa. Se crean
al iniciarse éste y se destruyen de la memoria al finalizar. Pueden ser utilizadas en
cualquier procedimiento o función.
Locales: las variables son creadas cuando el programa llega a la función o
procedimiento en la que están definidas. Al finalizar la función o el procedimiento,
desaparecen de la memoria. Si dos variables, una global y una local, tienen el
mismo nombre, la local prevalecerá sobre la global dentro del módulo en que ha
sido declarada. Dos variables locales pueden tener el mismo nombre siempre que
estén declaradas en funciones o procedimientos diferentes.
Comunicación con subprogramas:
Parámetros por Valor
Son los parámetros que pueden recibir valores pero que no pueden devolverlos.
Es una variable global que se conecta con una variable local mediante el envío de
su valor, después de lo cual ya no hay relación. Lo que le sucede a la variable
local no afectará a la global. Cuando un parámetro actual se pasa por valor, el
subprograma hace una copia del valor de éste en una posición de memoria
idéntica en tamaño pero distinta en ubicación a la del parámetro actual y la asigna
al parámetro formal correspondiente. Como el subprograma trabaja a partir de sus
parámetros formales, si durante la ejecución se modifica el valor de un parámetro
formal correspondiente a un paso por valor, el contenido de la posición de memoria
del parámetro actual no se verá alterado.
Parámetros por Variable
Son los que pueden recibir y devolver valores. Son variables globales que se
conectan con una local a través de su contenido; al establecerse dicha conexión
las variables se convierten en sinónimos, lo que afecte a la variable local le
sucederá a la variable global.

Más contenido relacionado

Similar a Programación u1

Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmoNombre Apellidos
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programazeta2015
 
Trabajo de informatica alejandra blanco
Trabajo de informatica alejandra blancoTrabajo de informatica alejandra blanco
Trabajo de informatica alejandra blancoAleBlanco
 
Trabajo de informatica Elsy Villa
Trabajo de informatica Elsy VillaTrabajo de informatica Elsy Villa
Trabajo de informatica Elsy Villaelsyance-2011
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoClariza
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La ProgramacionMary Sanchez
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmoSergioERondon
 
Glosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGlosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGabriel Méndez
 
Ejemplos de diagramae flujo
Ejemplos de diagramae flujoEjemplos de diagramae flujo
Ejemplos de diagramae flujoVanesa Arias
 
Ejemplos de diagramas de flujo
Ejemplos de diagramas de flujoEjemplos de diagramas de flujo
Ejemplos de diagramas de flujoGissellpernett
 
Tarea2
Tarea2Tarea2
Tarea2Ivan G
 
3ra evaluacion, presentacion
3ra evaluacion, presentacion3ra evaluacion, presentacion
3ra evaluacion, presentacionfabiana733179
 

Similar a Programación u1 (20)

Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Trabajo de informatica alejandra blanco
Trabajo de informatica alejandra blancoTrabajo de informatica alejandra blanco
Trabajo de informatica alejandra blanco
 
Trabajo de informatica Elsy Villa
Trabajo de informatica Elsy VillaTrabajo de informatica Elsy Villa
Trabajo de informatica Elsy Villa
 
Algoritmos diagramas de flujo
Algoritmos diagramas de flujoAlgoritmos diagramas de flujo
Algoritmos diagramas de flujo
 
Apartes De Algoritmos
Apartes De AlgoritmosApartes De Algoritmos
Apartes De Algoritmos
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Glosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGlosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programas
 
Ejemplos de diagramae flujo
Ejemplos de diagramae flujoEjemplos de diagramae flujo
Ejemplos de diagramae flujo
 
Ejemplos de diagramas de flujo
Ejemplos de diagramas de flujoEjemplos de diagramas de flujo
Ejemplos de diagramas de flujo
 
Act26
Act26Act26
Act26
 
Programación
ProgramaciónProgramación
Programación
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
Tarea2
Tarea2Tarea2
Tarea2
 
3ra evaluacion, presentacion
3ra evaluacion, presentacion3ra evaluacion, presentacion
3ra evaluacion, presentacion
 
algortimos
algortimosalgortimos
algortimos
 

Más de oviedospablo

Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programaoviedospablo
 
Características del lenguaje de programación
Características del lenguaje de programaciónCaracterísticas del lenguaje de programación
Características del lenguaje de programaciónoviedospablo
 
Diseño algorítmico
Diseño algorítmicoDiseño algorítmico
Diseño algorítmicooviedospablo
 
2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programaciónoviedospablo
 
Historia y evolución de los sistemas operativos
Historia y evolución de los sistemas operativosHistoria y evolución de los sistemas operativos
Historia y evolución de los sistemas operativosoviedospablo
 
Presentación de prueba
Presentación de pruebaPresentación de prueba
Presentación de pruebaoviedospablo
 

Más de oviedospablo (11)

U 1 i ind virtual
U 1 i ind virtualU 1 i ind virtual
U 1 i ind virtual
 
Fasfasfa
FasfasfaFasfasfa
Fasfasfa
 
Prueba
PruebaPrueba
Prueba
 
Resumen unidad 1
Resumen unidad 1Resumen unidad 1
Resumen unidad 1
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programa
 
Características del lenguaje de programación
Características del lenguaje de programaciónCaracterísticas del lenguaje de programación
Características del lenguaje de programación
 
Diseño algorítmico
Diseño algorítmicoDiseño algorítmico
Diseño algorítmico
 
2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación
 
Historia y evolución de los sistemas operativos
Historia y evolución de los sistemas operativosHistoria y evolución de los sistemas operativos
Historia y evolución de los sistemas operativos
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Presentación de prueba
Presentación de pruebaPresentación de prueba
Presentación de prueba
 

Último

CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 

Último (20)

CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 

Programación u1

  • 2. 1.2 Representación de algoritmos: gráfica y pseudocódigo. El término algoritmo parece derivar del nombre de un matemático árabe llamado Mohamed ibn Musa al – Khuwarizmi, que vivió en Bagdad alrededor del año 830 de nuestra era, y que escribió un libro que contenía un sistema de numeración decimal y reglas de cálculo. Dicho libro sería utilizado con posterioridad impulsando la sustitución del uso del ábaco. Modernamente, se ha usado el término algoritmo en referencia a cualquier procedimiento sistemático de cálculo, que da lugar a un resultado después de seguirse una serie de instrucciones precisas. En el campo de la informática y la programación, se ha adoptado el término para describir cualquier serie de instrucciones precisas que dan lugar a un resultado. La relación con las matemáticas sigue siendo estrecha, aunque ha ganado peso la concepción como serie de instrucciones precisas, que no necesariamente implican cálculo. Así, podríamos hacernos una primera idea de qué es un algoritmo pensando en las instrucciones para montar un mueble desarmado, o en la preparación de un plato a partir de una receta de cocina. Las herramientas utilizadas para diseñar algoritmos son: • Diagramas de flujo • Pseudocódigo • Diagramas de flujo Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciones y en que secuencia se requieren para solucionar un problema dado. Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a la computadora. Los diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio. Estos diagramas de flujo desempeñan un papel vital en la programación de un problema y facilitan la comprensión de problemas complicados y sobre todo muy largos. Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribir el
  • 3. programa en cualquier idioma de alto nivel. Vemos a menudo cómo los diagramas de flujo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto, está correcto decir que un diagrama de flujo es una necesidad para la documentación mejor de un programa complejo. Reglas para dibujar diagramas de flujo. 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: Inicio o fin del programa Pasos, procesos o líneas de instrucción de programa de computo Operaciones de entrada y salida Toma de decisiones y Ramificación Conector para unir el flujo a otra parte del diagrama Cinta magnética Disco magnético Conector de pagina Líneas de flujo Anotación
  • 4. Display, para mostrar datos Envía datos a la impresora Símbolos gráficos Dentro de los símbolos fundamentales para la creación de diagramas de flujo, los símbolos gráficos son utilizados específicamente para operaciones aritméticas y relaciones condicionales. La siguiente es una lista de los símbolos más comúnmente utilizados: + Sumar - Menos * Multiplicación / División ± Mas o menos = Equivalente a > Mayor que < Menor que ³ Mayor o igual que £ Menor o igual que ¹ o <> Diferente de Si No True False Reglas para la creación de Diagramas Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales). Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente necesario.
  • 5. No deben quedar líneas de flujo sin conectar 1. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras. 2. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final. 3. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida. Ejemplos de diagramas de flujo Diagrama de flujo que encuentra la suma de los primeros 50 números naturales
  • 6. Bueno, y ahora la descripción del diagrama anterior Suma, es la variable a la que se le va agregando la valor de cada número natural. N, es el contador. Éste recorrerá los números hasta llegar al 50. • El primer bloque indica el inicio del Diagrama de flujo • El segundo bloque, es un Símbolo de procesos En este bloque se asume que las variables suma y N han sido declaradas previamente y las inicializa en 0 para comenzar a el conteo y la suma de valores (Para declararlas existe el bloque Tarjeta perforada). • El tercer bloque, es también un Símbolo de procesos En éste paso se incrementa en 1 la variable N (N = N + 1). Por lo que, en la primera pasada esta N valdrá 1, ya que estaba inicializada en 0. • El cuarto bloque es exactamente lo mismo que el anterior Pero en éste, ya se le agrega el valor de N a la variable que contendrá la suma (En el primer caso contendrá 1, ya que N = 1). • El quinto bloque es un Símbolo de Toma de decisiones y Ramificación Lo que hay dentro del bloque es una pregunta que se le hace a los valores que actualmente influyen en el proceso ¿Es N=50?, Obviamente la respuesta es no, ya que N todavía es 1. por lo que el flujo de nuestro programa se dirigirá hacía la parte en donde se observa la palabra no: Tercer Bloque, éste le sumará 1 (N=N+1) y vuelve a llegar a éste bloque, donde preguntará ¿Es N=50?... ¡No!, todavía es 2. Ha pues, regresa al Tercer bloque y vuelve hacer lo mismo. Y así hasta llegar a 50, obteniendo así la suma de los primeros 50 primeros números naturales.
  • 7. • Por último indicamos que el resultado será mostrado en la impresora (Este lo puedes cambiarlo por el display para mostrar datos). • Fin del programa (o diagrama) Pseudocódigo Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. (Joyanes Aguilar, s/f) Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar. (Hernández, 2010) Ejemplos: Ejemplo 1: Pseudocódigo que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo.. Programa; área Entorno: BASE, ALTURA, AREA son número enteros Algoritmo: escribir “Introduzca la base y la altura” leer BASE, ALTURA calcular AREA = BASE * ALTURA escribir “El área del rectángulo es “AREA Finprograma Ejemplo 2: Pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas. Programa: SumaProducto Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros Algoritmo: escribir “Introduzca las notas” leer NOTA1,NOTA2
  • 8. calcular SUMA = NOTA1 + NOTA2 calcular PRODUCTO = NOTA1 * NOTA2 escribir “La suma de las dos notas es:” SUMA escribir “El producto de las dos notas es :”PRODUCTO Finprograma Ejemplo 3: Pseudocódigo que permita saber si un número es mayor, menor o igual a cero. Programa: ComparaNúmeros Entorno: NUMERO es un número entero Algoritmo: Escribir “Introduzca un número “ leer NUMERO SI NUMERO>0 ENTONCES escribir “El número introducido es positivo” SI NO SI NUMERO<0 ENTONCES escribir “El número introducido es negativo” SI NO escribir “El número es cero” FINSI FINSI Finprograma 1.3 Diseño de algoritmos. Fase en la resolución de problemas Joyanes Aguilar, señala que el proceso de resolución de problemas con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Reconoce que el proceso de diseño de un programa es un “proceso creativo”, en el cual se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir los programadores.
  • 9. Las fases de resolución de un problema con computadora son: 1. Análisis del problema. 2. Diseño del algoritmo. 3. Codificación. 4. Compilación y ejecución. 5. Verificación. 6. Depuración. 7. Mantenimiento. 8. Documentación. Constituyen el ciclo de vida del software y las fases o etapas usuales son: 1. Análisis. El problema se analiza teniendo presente la especificación de los requisitos dados por el cliente de la empresa o por la persona que se encarga del programa. 2. Diseño. Una vez analizado el problema, se diseña una solución que conduzca a un algoritmo que resuelva el problema. 3. Codificación (implementación). La solución se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo, C++) y se obtiene un programa. 4. Compilación, ejecución y verificación. El programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores que puedan aparecer. 5. Depuración y mantenimiento. El programa se actualiza y modifica cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios. 6. Documentación. Escritura de las diferentes fases del ciclo de vida del software, específicamente, el análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para el mantenimiento.
  • 10. ALGORITMOS COTIDIANOS Se refiere a los algoritmos que ayudan a resolver problemas diarios, y que las personas llevan a cabo sin darse cuenta de que están siguiendo una metodología para resolverlos. Algunos ejemplos son: Diseñar un algoritmo para cambiar una llanta a un auto: 1. Inicio. 2. Conseguir un gato hidráulico. 3. Levantar el auto con el gato. 4. Aflojar los tornillos de las llantas. 5. Retirar los tornillos de las llantas. 6. Quitar la llanta. 7. Colocar la llanta de repuesto. 8. Colocar los tornillos. 9. Apretar los tornillos. 10.Bajar el gato hidráulico. 11.Retirar el gato hidráulico. 12.Fin Diseñar un algoritmo que compare el mayor de dos números 1. Inicio 2. Obtener el primer número (entrada), denominado NUMERO1. 3. Obtener el segundo número (entrada), denominado NUMERO2. 4. Si NUMERO1 es igual a NUMERO 2 entonces 3.1 Visualizar “son iguales” 4. Si NUMERO1 es mayor a NUMERO2 entonces
  • 11. 4.1 NUMERO1 es mayor 4.2 SINO 4.3 NUMERO2 es mayor 5. Fin Diseñar un algoritmo que permita obtener un refresco de una máquina automática expendedora de bebidas embotelladas. 1. Inicio 2. Verificar el panel de bebidas, ubicando la bebida deseada. 3. Identificar el costo de la bebida. 4. Introducir en la ranura correspondiente la cantidad monetaria que así corresponda a la bebida deseada, de preferencia introducir la cantidad exacta. 5. Pulsar el botón que corresponda a bebida deseada. 6. Si existe producto entonces a. En la bandeja de salida saldrá la bebida seleccionada. b. Sino c. En el panel se visualizará producto agotado. 7. Si cantidad introducida es igual al precio de producto entonces a. No devolverá cambio. 8. Si cantidad introducida es mayor al precio de producto entonces a. Devolverá el efectivo de diferencia en la bandeja pertinente. 9. Si cantidad introducida es menor al precio de producto entonces a. En el panel visualizará efectivo insuficiente. 10.Fin
  • 12. 1.4 Diseño algorítmico de funciones Una función algorítmica se refiere a la implementación de un algoritmo y normalmente forma parte de un programa grande. También se llama una función algorítmica como procedimiento, rutina, método o subprograma. Un algoritmo es un procedimiento detallado paso a paso para resolver un problema, pero es independiente de cualquier lenguaje de programación ya que representa el concepto abstracto de la solución. Por lo tanto, después de diseñar un algoritmo y desarrollar su pseudocódigo, el siguiente paso es implementar en un lenguaje de programación específico. Al diseñar un algoritmo que muchos factores como tiempo, espacio y tamaño esperado de entrada se consideran. Desarrollo y análisis de algoritmos también implican encontrar peor de los casos, el mejor de los casos y situaciones de promedio, como el rendimiento es muy importante para una aplicación cuya entrada aumenta con el tiempo. Una vez que haya finalizado el algoritmo, se traduce en una función o un procedimiento que es específico de un lenguaje de programación. Teóricamente, independientemente de un lenguaje de programación, un algoritmo debe producir repetidamente misma salida. Pero, esto no sucede en la realidad, ya que cada lenguaje de programación tiene sus propias ventajas y desventajas. Las características de un lenguaje de programación determinan la eficiencia de un algoritmo debido a problemas como la incapacidad para asignar recursos en tiempo de ejecución o tener fugas de memoria silenciosa puede ralentizar un programa y puede llevar a mal funcionamiento de un algoritmo especialmente cuando aumenta la entrada. Factores que influyen en el diseño de una función algorítmica Si un algoritmo hace uso de dividir y conquistar el enfoque o la programación dinámica, el lenguaje de programación que se utiliza para codificar una función algorítmica debe tener soporte para realizar llamadas recursivas anidados. Casi todos los lenguajes de programación modernos tienen soporte para realizar llamadas recursivas pero programas escritos en lenguajes antiguos como FORTRAN no tenga soporte para realizar llamadas anidadas. En el caso de recursividad, un lenguaje de programación se encarga de varias ejecuciones de una función de anidación y hacer nuevas copias de las variables en cada llamada. Para lograrlo, la mayoría de lenguajes de programación almacenan detalles sobre las llamadas de función anidada en una pila.
  • 13. Aunque todos los lenguajes de programación proporcionan apoyo para realizar llamadas de función anidada, existe una actuación aérea en almacenar y recuperar los parámetros y variables locales, en recuperar direcciones relativas de cada llamada a una función anidada y en ajusta el puntero de pila. Esta sobrecarga a su vez aumenta el tiempo de ejecución como el número de aumentos de llamadas recursivas. Casi todos los lenguajes de programación orientada a objetos producen excepciones cuando la entrada no es válida o cuando encuentra un error. Sin embargo, otra alternativa, que se puede considerar al diseñar la función algorítmica es devolver un código de error. Este enfoque puede ser útil en lenguajes que no proporcionan ningún apoyo para el manejo de errores. Un código de error normalmente da la descripción sobre el tipo de error que se ha encontrado una función. A pesar de que un algoritmo establece claramente la esperada entrada y salida junto con los Estados intermedios, la aplicación real de la función algorítmica podría variar de un lenguaje de programación a otro. Una función algorítmica diseñada aumenta la legibilidad de un programa, aumenta la calidad del código, reduce errores de hard to find y ayuda a mantener grandes programas fácilmente. La programación modular permite la descomposición de un problema en un conjunto de subproblemas independientes entre sí, más sencillos de resolver y que pueden ser tratados separadamente unos de otros. Módulo Uno de los elementos principales de programación utilizados en la representación de cada módulo es la subrutina. Una subrutina es un conjunto de instrucciones de cómputo que realizan una tarea. Un programa principal llama a estos módulos a medida que se necesitan. Un módulo es un segmento, rutina, subrutina, subalgoritmo, procedimiento o función, que puede definirse dentro de un algoritmo con el fin de ejecutar una tarea específica y puede ser llamada o invocada desde principal invoca al subprograma, el subprograma ejecuta la tarea y luego devuelve el control al programa. Un subprograma puede llamar a su vez a sus propios subprogramas
  • 14. Funciones La función es una estructura autónoma similar a los módulos. La diferencia radica en que la función se usa para devolver un solo valor de un tipo de dato simple a su punto de referencia. La función se relaciona especificando su nombre en una expresión, como si fuera una variable ordinaria de tipo simple. Las funciones se dividen en estándares y definidas por el usuario. Estándar: Son funciones proporcionadas por cualquier lenguaje de programación de alto nivel, y se dividen en aritméticas y alfabéticas. Definidas por el usuario: son funciones que puede definirlas el programador con el propósito de ejecutar alguna función específica, y que por lo general se usan cuando se trata de hacer algún cálculo que será requerido en varias ocasiones en la parte principal del algoritmo. Declaración de funciones Consta de una cabecera, seguido de la palabra (función) y del nombre del argumento de la función después ira el cuerpo que es una serie de acciones cuya ejecución hará que se asigne un valor al nombre de la función, esto determina el resultado que ha de devolver al programa. Invocación de las funciones. Una función puede ser llamada de la siguiente forma: Nombre_funcion: función que llama Lista de parámetros actuales: constantes variable , expresiones. Cada vez que se llama a una función desde el algoritmo principal se establece una correspondencia entre los parámetros formales y los parámetros actuales.
  • 15. Una llamada a la función implica los siguientes pasos: 1. A cada parámetro formal se le asigna el valor real de su correspondiente parámetro actual. 2. Se ejecuta el cuerpo de acciones de la función. 3. Se devuelve el valor de la función y se retorna al punto de llamada. Ámbito: • Variables locales y • Globales Según el lugar donde son declaradas puede haber dos tipos de variables: Globales: las variables permanecen activas durante todo el programa. Se crean al iniciarse éste y se destruyen de la memoria al finalizar. Pueden ser utilizadas en cualquier procedimiento o función. Locales: las variables son creadas cuando el programa llega a la función o procedimiento en la que están definidas. Al finalizar la función o el procedimiento, desaparecen de la memoria. Si dos variables, una global y una local, tienen el mismo nombre, la local prevalecerá sobre la global dentro del módulo en que ha sido declarada. Dos variables locales pueden tener el mismo nombre siempre que estén declaradas en funciones o procedimientos diferentes. Comunicación con subprogramas: Parámetros por Valor Son los parámetros que pueden recibir valores pero que no pueden devolverlos. Es una variable global que se conecta con una variable local mediante el envío de su valor, después de lo cual ya no hay relación. Lo que le sucede a la variable local no afectará a la global. Cuando un parámetro actual se pasa por valor, el subprograma hace una copia del valor de éste en una posición de memoria idéntica en tamaño pero distinta en ubicación a la del parámetro actual y la asigna al parámetro formal correspondiente. Como el subprograma trabaja a partir de sus parámetros formales, si durante la ejecución se modifica el valor de un parámetro formal correspondiente a un paso por valor, el contenido de la posición de memoria del parámetro actual no se verá alterado.
  • 16. Parámetros por Variable Son los que pueden recibir y devolver valores. Son variables globales que se conectan con una local a través de su contenido; al establecerse dicha conexión las variables se convierten en sinónimos, lo que afecte a la variable local le sucederá a la variable global.