Este documento presenta información sobre algoritmos y programación. Explica conceptos fundamentales como tipos de datos, identificadores, variables, operaciones aritméticas y lógicas. También describe estructuras algorítmicas como condicionales e iterativas. Finalmente, ofrece pasos para resolver problemas a través de algoritmos y ejercicios de práctica.
1. Facilitadora Académica:
Irma Verónica Orduño Borquez
Grupo 3
Armenta Acosta Miguel Angel
ALGORITMOS Y FUNDAMENTOS DE
PROGRAMACIÓN
SOLUCIONES POR COMPUTADORA
2. CONTENIDO
Conceptos Fundamentales
* Tipos de Datos
* Identificadores, constantes y variables
* Operaciones aritméticas
* Expresiones Lógicas
• Bloque de asignación
Estructuras algorítmicas selectivas e iterativas
• Estructura selectiva simple “Si entonces”
• * Estructura selectiva doble “Si entonces/sino”
• * Estructura de selección múltiple “Si múltiple”
• * Estructuras selectivas en cascada (anidadas)
• * Estructura Iterativa “For”
• * Estructura Iterativa “While”
• * Estructura Iterativa “Repeat-Until”
• * Anidación de ciclos
Desarrollando soluciones a través de algoritmos
• * Pasos para resolver un problema por computadora
• * Resolución de ejercicios propuestos
3. La historia del algoritmo nace
por necesidad de hacer
cálculos matemáticos atravez
de ella se fundamenta el
paso inicial de entender
acabadamente cualquier
problema planteada.
Estos bienes surgieron a
mediados del siglo IX
por el matemático
distinguido y astrónomo
Mohammed Ibn Musa –
aljarizm.
1. Algoritmo (del latín,
dixit algurithmus): es
una lista bien definida,
ordenada y finita de
operaciones que
permite hallar la
solución a un problema.
2. Antiguamente algoritmo
significaba descripción de un
cálculo, como por ejemplo de la
nueva división después de
introducir las fracciones decimales,
en la a dualidad es todo
descripción de un cálculo en
general con un esquema de
procesos que se repite.
3. Se define también como el
conjunto de procesos finito que
deben seguir para realizar una
tarea :
Proceso 1. Debe ser el mismo
conjunto de datos para que siempre
se llegue a un mismo conjunto de
resultados.
Proceso 2. Las instrucciones han
de ser precisos, sin ambigüedad.
Proceso 3. El conjunto debe ser
finito.
4. Un Algoritmo, se puede
definir como una
secuencia de instrucciones
que representan un
modelo de solución para
determinado tipo de
problemas.
un conjunto de instrucciones
que realizadas en orden
conducen a obtener la
solución de un problema.
Los algoritmos son
independientes de los
lenguajes de
programación. En cada
problema el algoritmo
puede escribirse y luego
ejecutarse en un lenguaje
de diferente programación.
En la vida cotidiana, se emplean
algoritmos frecuentemente para
resolver problemas. Algunos
ejemplos son los manuales de
usuario, que muestran algoritmos
para usar un aparato, o las
instrucciones que recibe un
trabajador por parte de su patrón.
Muchos autores los
señalan como listas
de instrucciones para
resolver un cálculo o
un problema
abstracto.
5. Algoritmo computacional
Es un algoritmo que puede ser
ejecutado en una computadora.
Ejemplo: Fórmula aplicada para
un cálculo de la raíz cuadrada de
un valor x.
Es un algoritmo que no
requiere de una computadora
para ser ejecutado. Ejemplo:
Instalación de un equipo de
sonido.
Algoritmo no computacional
Algoritmo cualitativo
Un algoritmo es cualitativo cuando en
sus pasos o instrucciones no están
involucrados cálculos numéricos.
Ejemplos: Las instrucciones para
desarrollar una actividad física,
encontrar un tesoro.
Algoritmo cuantitativo
Una algoritmo es cuantitativo
cuando en sus pasos o
instrucciones involucran cálculos
numéricos. Ejemplo: Solución de
una ecuación de segundo grado.
6. Todo algoritmo debe tener las siguientes características.
Debe ser Preciso, porque
cada uno de sus pasos
debe indicar de manera
precisa e inequívoca que
se debe hacer.
Debe ser Finito,
porque un algoritmo
debe tener un
número limitado de
pasos.
Debe ser Definido, porque
debe producir los mismos
resultados para las mismas
condiciones de entrada.
Puede tener cero o
más elementos de
entrada.
Debe producir un resultado.
Los datos de salida serán los
resultados de efectuar las
instrucciones.
7. Todo Algoritmo debe tener las siguientes partes.
Entrada de datos, son
los datos necesarios
que el algoritmo
necesita para ser
ejecutado.
Proceso, es la secuencia
de pasos para ejecutar el
algoritmo.
Salida de resultados,
son los datos obtenidos
después de la ejecución
del algoritmo.
8. Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación, se
utilizan algunos métodos de representación escrita, gráfica o matemática.
Diagramación libre
(Diagramas de flujo).
Diagramas
Nassi-
Shneiderman.
Pseudocódigo.
Fórmulas matemáticas.
Lenguaje natural
(español, inglés, etc.).
9. Son aquellos en
los que se
describen los
pasos utilizando
palabras.
Cualitativos Cuantitativos
Son aquellos en los
que se utilizan
cálculos numéricos
para definir los pasos
del proceso.
Algoritmos Estáticos
son los que
funcionan siempre
igual,
independientemente
del tipo de problema
tratado.
Algoritmos Adaptativos
algoritmos con
cierta capacidad
de aprendizaje.
Algoritmos
Probabilísticos
son algoritmos que
no utilizan valores
de verdad
booleanos sino
continuos.
Algoritmo
Cotidiano
es la serie de
pasos que
realizamos en
nuestra vida
diaria .
Algoritmo
Determinista
es un algoritmo
que, en términos
informales, es
completamente
predictivo si se
conocen sus
entradas.
Algoritmo de escalada
la idea básica consiste
en comenzar con una
mala solución a un
determinado problema
y, repetidamente,
aplicar optimizaciones a
la misma hasta que
esta sea óptima o
satisfaga algún otro
requisito.
10. El pseudocódigo (falso lenguaje)
es una descripción de alto nivel de
un algoritmo que emplea una
mezcla de lenguaje natural con
algunas convenciones sintácticas
propias de lenguajes de
programación, como asignaciones,
ciclos y condicionales.
El pseudocódigo está pensado para
facilitar a las personas el
entendimiento de un algoritmo.
¿Para que sirve el Pseudocódigo?
Sirve para escribir programas
de computadora en lenguaje
natural de tal manera que se
facilite la comprensión, prueba
y posterior codificación en un
lenguaje de programación
específico.
11. Emplea palabras
normales de un
idioma por ejemplo:
inicio, solicitar,
escribir, imprimir,
calcular, fin.
No existe un
vocabulario obligado,
aunque por el uso
frecuente y la
comodidad se han
establecido
estándares.
Las instrucciones deben
ser escritas con precisión,
sin ambigüedades como
podría suceder con el
método de texto narrativo.
Las instrucciones
aunque escritas con
precisión no requieren
la rigurosidad de la
empleadas en un
lenguaje de
programación.
Un algoritmo
representado en
pseudocódigo puede
convertirse con facilidad
en el código de
cualquier lenguaje de
programación.
12. Un diagrama de flujo es la
representación grafica de
un proceso.
Un diagrama de flujo tiene
como objetivo facilitarnos la
comprensión de un
algoritmo o simplificar el
análisis de un proceso.
El diagrama de flujo consta
de símbolos como rombos,
rectángulos, óvalos, etc.
Estos símbolos están
conectados por
flechas de un solo
sentido y nos indican
la secuencia en que
se van desarrollando
las distintas tareas.
Los diagramas facilitan la
compresión de métodos de
solución para problemas
matemáticos y lógicos, permitiendo
a los estudiantes abstraerse de un
lenguaje determinado y enfocarse
en el procedimiento de solución.
Es un esquema
para representar
gráficamente un
algoritmo.
Se les llama diagramas de flujo
porque los símbolos utilizados se
conectan por medio de flechas
para indicar la secuencia de
operación.
18. Un identificador es un
conjunto de caracteres
alfanuméricos de cualquier
longitud que sirve para
identificar las entidades del
programa (clases, funciones,
variables, tipos compuestos)
Los identificadores pueden
ser combinaciones de letras
y números.
Una Constante es aquélla
que no cambia de valor
durante la ejecución de
un programa (o
comprobación de un
algoritmo en
este caso). Se
representa en la forma
descrita para cada
categoría.
Las Variables son aquéllas
que pueden modificar su
valor durante la ejecución
de un programa (idem).
Su representación se da a
través de letras y símbolos
generalmente numéricos a
los que se les asigna un
valor.
19. El operador +
Este operador se utiliza
para ordenarle a la
computadora que sume
dos números.
25 + 3 devuelve 28
9 + 13 devuelve 22
El operador -
Este operador se utiliza para
ordenarle a la computadora que
reste dos números.
Ejemplos:
25 - 3 devuelve 22
9 - 13 devuelve -4
El operador *
Este operador se utiliza
para ordenarle a la
computadora que
multiplique dos números.
Ejemplos:
25 * 3 devuelve 75
9 * 13 devuelve 117
El operador /
Este operador se utiliza
para ordenarle a la
computadora que divida
dos números.
Ejemplos:
25 / 5 devuelve 5
39 / 13 devuelve 3
El operador %
Este operador se utiliza
para ordenarle a la
computadora que reste
dos números.
Ejemplos:
25 % 3 devuelve 1
37 % 5 devuelve 2
En computación, la unidad aritmético
lógica, también conocida como ALU
(siglas en inglés de arithmetic logic
unit), es un circuito digital que calcula
operaciones aritméticas (como suma,
resta, multiplicación, etc.) y
operaciones lógicas (si, y, o, no), entre
dos números.
20. Sirven para plantear condiciones o comparaciones y dan como resultado un valor
booleano verdadero o falso, es decir, se cumple o no se cumple la condición. Se pueden
clasificar en simples y complejas. Las simples son las que usan operadores relacionales y
las complejas las que usan operadores lógicos.
Operadores Significado
< Menor que
> Mayor que
= Igual a
>= Mayor o igual que
<= Menor o igual que
<> Distinto o diferente a
21. La instrucción de
asignación consiste en
dar valor a una
variable
Los operadores de asignación, son
aquellos que nos permiten
modificar el valor de una variable,
el operador de asignación básico
es el 'es igual a' (=), que da el
valor que lo sigue a la variable que
lo precede: Veamos un ejemplo de
una instrucción tonta, que en
realidad no hace nada. Algo =
algo;
Un bloque de asignación se
compone de asignaciones, que se
encuentran dentro de una asignación
superior. De esta forma los bloques
de asignación pueden estar por
ejemplo dentro de asignaciones de
condiciones o dentro de bucles.
También todas las asignaciones que
están dentro de un subprograma
forman un bloque de asignación.
22. Se identifican porque están compuestos
únicamente de una condición.
La estructura si - entonces evalúa la
condición y en tal caso:
Si la condición es verdadera, entonces
ejecuta la acción Si (o acciones si son
varias).
Si la condición es falsa, entonces no se
hace nada.
Español Inglés
Si <condición> If
<condición>
Entonces then
<acción
Si> <acción Si>
fin_si endif
23. Ejemplo
• Construir un algoritmo tal, que dado como dato la calificación de un alumno
en un examen, escriba "Aprobado" en caso que esa calificación fuese
mayor que 8.
• Salidas: mensaje de aprobado si se cumple la condición.
• Entradas: calificación
• Datos adicionales: un alumno aprueba si la calificación es mayor que 8
• Variables:
• Cal = calificación
• Algoritmo:
• Inicio
• Leer (cal)
• Si cal > 8 entonces
• Escribir ("aprobado")
• Fin_si
• Fin
24. Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se
utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe
ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.
Español Inglés
Si <condición> entonces If <condición> then
<acción S1> <acción S1>
sino else
<acción S2> <acción S2>
Fin_Si End_if
25. Ejemplo
• Dado como dato la calificación de un alumno en un examen,
escriba "aprobado" si su calificación es mayor que 8 y
"Reprobado" en caso contrario.
• Algoritmo:
• Inicio
• Leer (cal)
• Si cal > 8 entonces
• Escribir ("aprobado")
• Sino
• Escribir ("reprobado")
• Fin_si
• Fin
26. Con frecuencia es necesario que
existan más de dos elecciones
posibles. Este problema se podría
resolver por estructuras selectivas
simples o dobles, anidadas o en
cascada, pero si el número de
alternativas es grande puede plantear
serios problemas de escritura y de
legibilidad.
27.
28.
29.
30.
31. bibliografía
• Concepto de algritmo
• http://es.wikipedia.org/wiki/Algoritmo
• mas sobre algoritmos
• http://informaticafrida.blogspot.mx/2009/03/algoritmo.html
• definición de algoritmo
• http://lilianarosa-lidia.blogspot.mx/2009/08/definicion-e-historia-de-algoritmo.html
• análisis de algoritmos
• http://es.wikipedia.org/wiki/An%C3%A1lisis_de_algoritmos
• tipos de algoritmos
• http://www.buenastareas.com/ensayos/Algoritmo-y-Sus-Caracteristicas/1401491.html
• mas tipos
• http://informatica-umg-vn.blogspot.mx/2011/07/tipos-de-algoritmos-cualitativos-son_22.html
• que es el pseudocodigo
• http://es.scribd.com/doc/69611351/Que-es-el-Pseudocodigo
• características del pseudocodigo
• http://informaticadostaxco.blogspot.mx/2011/02/estructuras-de-control-y-pseudocodigo.html
• definición pseudo código
• http://www.monografias.com/trabajos40/pseudo-codigo/pseudo-codigo.shtml
• representaciones de algoritmos.
• http://www.slideshare.net/CarlosBez/tutorial-p-seint-15734467
• diagrama de flujo
• http://diagramas-de-flujo.wikispaces.com/Diagrama+de+flujo
• símbolos del diagrama de flujo
• http://www.monografias.com/trabajos59/diagrama-flujo/diagrama-flujo.shtml
• http://www.monografias.com/trabajos60/diagrama-flujo-datos/diagrama-flujo-datos2.shtml
32. tipos de datos
http://www.slideshare.net/SuperFonso/tipos-de-datos-en-programacion
identificadores,constantes y variables
http://andresmtzg.wordpress.com/2012/09/27/identificadores-variables-y-constantes/
http://aurea.es/assets/2-tiposdatoslenguajec.pdf
operaciones aritméticas
http://es.wikipedia.org/wiki/Unidad_aritm%C3%A9tico_l%C3%B3gica
http://inginformatica-unprg.blogspot.mx/2008/05/los-operadores-aritmticos.html
operaciones aritmético lógicas en pascal
https://cursos.aiu.edu/Programacion%20de%20Computadoras/PDF/Tema%203b.pdf
expresiones lógicas
http://www.oocities.org/ar/luis_pirir/cursos/expresion.htm
http://www.carlospes.com/curso_de_algoritmos/05_01_02_expresiones_logicas.php
estructuras algorítmicas
http://www.mailxmail.com/curso-aprende-programar/tipos-estructuras-selectivas-estructura-simple
estructura iterativa
http://www.estructurayprogramacion.com/materias/fundamentos-de-programacion/estructuras-iterativas/
bloques de asignación
http://es.scribd.com/doc/4750382/PROGRAMACION-CON-ASIGNACIONES
asignación
http://www.ctr.unican.es/asignaturas/programacion1/cap3-Bloque1-alg-basicos-2en1.pdf
pasos para resolver un problema por computadora
http://www.slideshare.net/irmacris/tarea-4pasos-para-soluicionar-problemas-por-computador
http://kodrs.com/pasos-para-resolver-un-problema-con-la-computadora/
estructuras de for while y repeat
http://www.frsn.utn.edu.ar/informatica00/Apuntes/Info_1/cap3_tp.HTM