FUNDAMENTOS DE PROGRAMACIÓN.
Ing. Narly Beatriz Sánchez Caviedes
DESARROLLO DE LA SESIÓN
1. Saludo
2. Objetivo de la sesión
3. Tema (Fundamentos de programación)
4. Descripción del tema y la actividad.
5. Conclusión
3. Objetivos de la sesión
- Repasar los temas vistos en fundamentos de programación del trimestre
I.
3. Fundamentos de programación – Introducción –
En la vida cotidiana se deben imaginar, diseñar y planear soluciones
a problemas corrientes del día a día, por ende, muchas veces la
estrategia “divide y vencerás” es empleada para afrontar la solución
a estos problemas, la cual consiste en tomar un problema grande y
segmentarlo en pequeños subproblemas (o pequeñas metas) que
son más fácil de abordar, y la unión logra la solución a lo
inicialmente planteado.
Desde un punto de vista computacional esta estrategia es la más
empleada y, los grandes sistemas informáticos son la unión de un
conjunto de instrucciones computacionales que resuelven
problemas puntuales.
3. Fundamentos de programación – Algoritmo –
Según la Real Academia Española (2020) un algoritmo está definido
como un “conjunto ordenado y finito de operaciones que permite
hallar la solución de un problema”
[Link]
3. Fundamentos de programación – Algoritmo –
Fases para elaborar un programa de computador. Figura recuperada de Educación básica algoritmos y
programación. Guía para docentes, de J. C. López García, 2007-2009, Fundación Gabriel Piedrahita Uribe
[Link] p. 11.
3. Fundamentos de programación – Algoritmo –
Formular el problema Precisar elementos de entrada. Precisar resultados esperados.
A continuación, algunas preguntas Otro punto importante en la fase Para determinar con claridad cuál es el
previas a la formulación del de análisis del problema es resultado final esperado (o producto)
problema: determinar cuál es la información que se quiere obtener es necesario
disponible, por lo tanto: determinar o definir qué resultados se
¿Es posible definir de forma más
solicitan y, en qué tipo o formato deben
clara el problema? ¿Qué información es importante y
estar (mostrados en pantalla,
¿Qué palabras no son conocidas o necesaria para resolver el
se desconoce su significado? problema? diagramación, orden, etc.). Para ello, es
¿Se ha resuelto antes algún ¿Qué información no es importante tener en cuenta:
problema similar? importante y se puede prescindir?
¿Qué información es importante ¿Qué información están solicitando?
¿Cuáles son los datos de entrada
para resolver el problema? ¿En qué formato se debe entregar esta
conocidos?
¿Qué información no es importante información?
¿Cuál es la incógnita o qué se
y se puede omitir? debe calcular?
¿Los datos se pueden agrupar en
categorías?
¿Qué información adicional hace
falta para resolver el problema?
3. Fundamentos de programación – Fases para la elaboración de algoritmos –
l e o
3. Fundamentos de programación – Fases para la elaboración de algoritmos –
Ejemplo: escribir un algoritmo que calcule el cuadrado y el cubo
de un número introducido por teclado y mostrar los resultados
para el cubo y el cuadrado.
¡Análisis!
¿Cuáles son los datos de entrada?
¿Cuántas variables se requieren?
¿Cuántas operaciones?
3. Fundamentos de programación – Fases para la elaboración de algoritmos –
¡Diseño!
3. Fundamentos de programación – Prueba de escritorio –
3. Fundamentos de programación – Prueba de escritorio –
También es posible realizar pruebas de escritorio a otras
representaciones de algoritmos, como los diagramas de flujo,
expuestos a continuación, y que se representan con algoritmos
recomendando que a cada ejemplo presentado se le realice la
prueba de escritorio correspondiente.
3. Fundamentos de programación – Diagramas de flujo –
Una forma común de presentar
los algoritmos es con
diagramas de flujo, que
consiste en una representación
por medio de un gráfico.
Mientras en pseudocódigo las
sentencias se representaban
con preposiciones en
diagramas de flujo la
preposición es reemplazada
por una figura.
Diagrama de flujo imprimir un
entero
3. Fundamentos de programación – Diagramas de flujo Símbolos –
3. Fundamentos de programación – Diagramas de flujo Símbolos –
3. Fundamentos de programación – Diagramas de flujo Símbolos –
3. Fundamentos de programación – Diagramas de flujo Símbolos –
3. Fundamentos de programación – Diagramas de flujo –
Ventajas y Desventajas
Elaborar un Diagrama de flujo
3. Fundamentos de programación – Uso de identificadores y palabras reservadas –
Los identificadores son
nombres que se dan a los
elementos utilizados para
resolver un problema y
poder diferenciar unos de
otros. De acuerdo con
López (2009), al asignar
nombres (identificadores)
a variables, constantes y
procedimientos se deben
tener en cuenta algunas
reglas, a saber:
3. Fundamentos de programación – Uso de identificadores y palabras reservadas –
Los identificadores son
nombres que se dan a los
elementos utilizados para
resolver un problema y
poder diferenciar unos de
otros. De acuerdo con
López (2009), al asignar
nombres (identificadores)
a variables, constantes y
procedimientos se deben
tener en cuenta algunas
reglas, a saber:
3. Fundamentos de programación – Uso de identificadores y palabras reservadas –
Variables:
Para los algoritmos con diversos conjuntos de datos iniciales, se debe
determinar una independencia entre los datos iniciales de un problema y la
estructura de su solución. Esto se hace mediante la utilización de variables
(cantidades que se suelen emplear y que durante la ejecución del algoritmo
pueden tomar cualquier valor de un intervalo de valores posibles).
Las variables son espacios de trabajo (contenedores) dispuestos para
almacenar datos (valores). El valor de una variable puede ir cambiando en algún
paso del algoritmo o permanecer sin cambios; por lo tanto, el valor de una
variable es el del último valor o dato asignado a esta.
3. Fundamentos de programación – Uso de identificadores y palabras reservadas –
Constantes:
Las constantes se crean de la misma forma que las variables, a diferencia que se procura
su definición o creación al inicio del algoritmo. Las constantes consisten en datos que,
luego de ser asignados, no cambian en ninguna instrucción del algoritmo; pueden contener
constantes matemáticas (pi).
3. Fundamentos de programación – Uso de identificadores y palabras reservadas –
Contador: Ejemplo: definir un contador llamado contador
Un contador es una variable que está en ambos que se incremente en uno cada vez tres veces.
lados de una asignación (a la derecha y a la
izquierda) interna, a la que se le suma un valor
constante. Es necesario haberla iniciado al
principio del algoritmo, ya que va a ser leído su
contenido.
Como se puede ver en el algoritmo, tres veces
se incremente en 1 (uno) el valor del contador y
al final de la ejecución su valor es de 3. Es
importante notar que contador inicia con un
valor, el valor 0, si esta asignación inicial no se
hace el computador pondría un valor aleatorio y
el valor al final del algoritmo sería
indeterminado.
3. Fundamentos de programación – Uso de identificadores y palabras reservadas –
Acumulador:
Los acumuladores son una versión ampliada de contadores, tienen las
mismas características que un contador excepto el valor que se va
incrementando no es una constante sino una que es un valor variable.
3. Fundamentos de programación – Tipos de datos –
3. Fundamentos de programación – Tipos de datos Ejercicio–
Cree un programa que muestre la
información de un estudiante,
requerirá de datos como su nombre,
edad, género, nota, está Matriculado.
Utilice la herramienta LPP
3. Fundamentos de programación – Tipos de datos Ejercicio–
Solución:
3. Fundamentos de programación – Tipos de datos Ejercicio–
Solución:
3. Fundamentos de programación – Operadores y jerarquía en los operadores –
Los operadores son símbolos que sirven para manipular datos
3. Fundamentos de programación – Operadores y jerarquía en los operadores –
Las computadoras ejecutan
los operadores en un orden
establecido y el siguiente es
el orden (jerarquía) para
ejecutar operadores.
Ejercicio:
(2 + (7 + 8) * 16 + 3^2) /4 +5
3. Fundamentos de programación – Operadores y jerarquía en los operadores –
3. Fundamentos de programación – Los operadores relacionales –
3. Fundamentos de programación – Los operadores lógicos –
3. Fundamentos de programación – Estructuras básicas de programación –
3. Fundamentos de programación – Estructuras básicas de programación Secuencial –
3. Fundamentos de programación – Estructuras básicas de programación Secuencial –
Modelo de estructura secuencial
3. Fundamentos de programación – Estructuras Condicional –
La estructura condicional se emplea para
indicarle al computador que debe evaluar una
condición y, según el resultado, ejecutar el
bloque de instrucciones. La forma más común
está compuesta por una condición que se evalúa
y dos bloques de instrucciones que se ejecutan:
uno cuando la condición es verdadera y otro
cuando la condición es falsa.
Modelo de estructura Condicional
3. Fundamentos de programación – Estructuras Condicional Compuesta –
La estructura condicional compuesta verifica una
condición y si esta es verdadera ejecuta unas
instrucciones y si la condición es falsa, ejecuta
otras instrucciones.
Su estructura es muy similar a la condicional
simple, pero ahora se debe indicar las
instrucciones que se deben ejecutar cuando la
condición no se cumpla.
Modelo de estructura Condicional Compuesta
3. Fundamentos de programación – Estructuras Condicional Anidada –
Las Condiciones Anidadas son
simplemente la definición de una
condición al interior de otra, no se trata de
una estructura diferente o nueva, pero se
debe tener un especial cuidado con su
implementación al interior de un
programa debido a que cada una de las
estructuras debe estar correctamente
definida.
La condición interna puede estar en el
flujo verdadero de la condición externa,
en el flujo falso o en ambos. La condición
interna, además, puede contener otras
condiciones en su interior.
Modelo de estructura Condicional Anidada
3. Fundamentos de programación – Estructuras de iteración o repetitivas–
Las estructuras iterativas o de repetición permiten ejecutar una o varias instrucciones, un número
determinado de veces o indefinidamente hasta que se cumpla una condición. Esta estructura ayuda a
simplificar los algoritmos.
En programación existen, como mínimo, dos tipos de estructuras repetitivas las cuales tienen variantes en
los diferentes lenguajes de programación.
La característica común es que ambos tipos permiten ejecutar una o varias instrucciones:
•Un número conocido de veces (Estructura PARA o FOR en inglés).
•Mientras se cumpla una condición (Estructura MIENTRAS o WHILE).
3. Fundamentos de programación – Estructura PARA (FOR) –
Esta estructura se usa cuando
se sabe el número de veces
que se debe ejecutar un
conjunto de operaciones.
Este tipo de estructura tiene la
siguiente forma:
PARA <variable> ←
<expresion1> hasta
<expresion2> paso
<expresion3> haga
<acciones a repetir>
FIN PARA
3. Fundamentos de programación – Estructura PARA (FOR) –
3. Fundamentos de programación – Estructura PARA (FOR) –
Ejercicio: se necesita elaborar
un algoritmo que solicite al
usuario un número entero y
sume todos los números
naturales que hay hasta ese
número. Por ejemplo, si el
usuario digita 3, el programa
debe sumar: 1 + 2 + 3, si el
usuario digita 5 el programa
debe sumar 1+2+3+4+5. Al
finalizar debe imprimir el
resultado.
3. Fundamentos de programación – Estructura PARA (FOR) –
Ejercicio: se necesita elaborar
un algoritmo que solicite al
usuario un número entero y
sume todos los números
naturales que hay hasta ese
número. Por ejemplo, si el
usuario digita 3, el programa
debe sumar: 1 + 2 + 3, si el
usuario digita 5 el programa
debe sumar 1+2+3+4+5. Al
finalizar debe imprimir el
resultado.
3. Fundamentos de programación – Estructura MIENTRAS (WHILE) –
La instrucción "Mientras", puede impedir la ejecución de un conjunto de instrucciones, si
la evaluación de una condición lógica es falsa. Esto significa que es repetitiva
únicamente cuando la evaluación de la condición es verdadera.
Ejemplo: realice un programa que permita obtener la factorial de un número dado por el
usuario.
• Análisis:
Formular el problema: la factorial de un entero positivo n, se define como el producto de todos
los números enteros positivos desde 1 hasta n.
Ejemplo: ¡Matemáticamente 5! = 5*4*3*2*1 o a la inversa: 5! = 1*2*3*4*5.
Resultados esperados: la factorial del número digitado por el usuario.
3. Fundamentos de programación – Estructura MIENTRAS (WHILE) –
Ejemplo: realice un programa que permita obtener la factorial de un número dado por el usuario.
3. Fundamentos de programación – Estructura MIENTRAS (WHILE) –
Ejemplo: realice un programa que permita obtener la factorial de un número dado por el usuario.
3. Fundamentos de programación – Estructura MIENTRAS (WHILE) –
Ejemplo: realice un
programa que permita
obtener la factorial de
un número dado por el
usuario.
3. Fundamentos de programación – Estructura MIENTRAS (WHILE) –
Ejemplo: realice un
programa que permita
obtener la factorial de
un número dado por el
usuario.
3. Fundamentos de programación – Estructura MIENTRAS (WHILE) –
3. Fundamentos de programación – Estructura REPITA (DO - WHILE) –
La estructura cíclica REPITA, al igual que la estructura cíclica
MIENTRAS, se ejecuta un número indeterminado de veces,
estas dos estructuras tienen un comportamiento similar,
presentando su principal diferencia en el lugar de la
estructura donde se evalúa la condición, dado que la
estructura MIENTRAS evalúa la condición del ciclo al inicio
del mismo y la estructura REPITA lo hace al final del mismo,
de este modo, en la estructura cíclica REPITA, el
programador garantiza que el ciclo se ejecuta al menos una
vez.
3. Fundamentos de programación – Estructura REPITA (DO - WHILE) –
Se desea
desarrollar una
aplicación que lea
una cantidad
determinada de
números y para
cada uno indique si
se trata de un
número primo o no.
(Un número primo
es aquel que solo es
divisible por 1 o por
sí mismo).
4. Conclusión
En conclusión, se puede decir que un
algoritmo es la definición de una
secuencia lógica de pasos que permiten
solucionar un problema. Formular
algoritmos es la base de los grandes
adelantos en las ciencias matemáticas y la
tecnología, porque se pueden aplicar a
cualquier área del conocimiento.
Resumen
6. Conclusión