Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONTENIDO
1. UN POCO DE HISTORIA
2. EL PAPEL DE LOS ALGORITMOS EN LA SOLUCIÓ N DE PROBLEMAS
2.1 EL CONCEPTO DE ALGORITMO
2.2 IMPORTANCIA DE LOS ALGORITMOS
2.3 PASOS PARA RESOLVER UN PROBLEMA POR COMPUTADOR
2.4 METODOLOGÍA PARA LA ELABORACIÓ N DE ALGORITMOS
3. INTRODUCCIÓ N A LA PROGRAMACIÓ N DE COMPUTADORES
3.1 LOS PROGRAMAS DE COMPUTADOR Y LOS LENGUAJES DE PROGRAMACIÓ N
3.2 TIPOS DE LENGUAJES DE PROGRAMACIÓ N
3.3 PARADIGMAS DE PROGRAMACIÓ N
3.3.1 Programació n Estructurada
3.3.2 Programació n Modular
3.3.3 Programació n Orientada a Objetos ( POO)
3.3.4 Programació n Orientada a Componentes
3.3.5 Programació n Orientada a Aspectos
3.3.6 Programació n Funcional
4. ELEMENTOS GENERALES DE UN PROGRAMA
4.1 ESTRUCTURA BÁ SICA DE UN PROGRAMA
4.2 ELEMENTOS BÁ SICOS DE UN LENGUAJE DE PROGRAMACIÓ N
4.2.1 Identificadores
4.2.2 Variables
4.2.3 Constantes
4.2.4 Tipos de datos
4.2.5 Operadores
4.2.6 Expresiones
4.2.7 Comentarios
4.3 INSTRUCCIONES BÁ SICAS DE UN LENGUAJE DE PROGRAMACIÓ N
4.3.1 Estructura secuencial
4.3.2 Estructura alternativa (condicional a de decisió n)
4.3.3 Estructura repetitiva (bucles o ciclos)
4.4 USO DE VARIABLES CONTADORES, ACUMULADORES E INTERRUPTORES
1. UN POCO DE HISTORIA
Luego de jugar un papel primordial en la enseñ anza de las matemá ticas, los
algoritmos han pasado a ser un objeto no considerado o poco estudiado en la
Educació n Matemá tica. Sin embargo, su existencia en matemá ticas es clara y el papel
que juegan en el aprendizaje de las mismas, puede favorecer u obstaculizar el
desarrollo del pensamiento matemá tico. Particularmente el rol que desempeñ an en la
resolució n de problemas, permite al resolutor identificar nuevas regularidades o
informaciones que el problema por sí mismo no proporciona. Por otro lado, las
isometrías en el plano como un objeto a estudiar desde la Educació n Bá sica, son
fundamentales en el desarrollo del pensamiento espacial y, en muchos de los
problemas que se relacionan con geometría, las isometrías emergen instantá neamente
y las regularidades que de ellas se deducen, proporcionan informació n importante
para solucionar dicho problema. Así, la identificació n de algoritmos en la resolució n
de problemas sobre isometrías del plano proporciona nuevas herramientas a
considerar en el amplio estudio de la resolució n de problemas y amplía la mirada
sobre el papel que los algoritmos juegan en la Educació n Matemá tica – “Uso de
algoritmos en la resolució n de problemas sobre isometrías; autores: Brigitte”.
En la prá ctica, para poder solucionar un problema por medio del computador, se
necesita que nos pongamos en el lugar del computador, y analizar que es necesario
que me ordenen y en que secuencia, para poder producir los resultados esperados. En
general, el computador se utiliza para automatizar tareas, por lo tanto, también da
buenos resultados hacer similitudes con la labor de un empleado que hace el mismo
trabajo que deseamos programarle al computador.
Los algoritmos poseen hoy una gran importancia tanto para informá tica , robó tica
y ciencias de la computació n , por medio de algoritmos se llega a un orden de ideas
y un proceso correcto en la elaboració n de maquinarias y robots lo que conlleva a
un avance en la tecnología y un mayor progreso a nivel mundial.
Los algoritmos conllevan a llevar un proceso y un orden de ideas en todos los
aspectos , pues cada actividad por mínima que sea requiere un orden que se da por
medio de los grandes algoritmos que creamos así sean mentales.
Los algoritmos son necesarios para pasar el programa de tu mente, a la má quina, y
el pensamiento sistemá tico, para adelantarse a los errores que se puedan producir
mientras realizas tu programa, ver las partes del todo si dejar de fijarse en el todo.
El algoritmo es el paso que le precede (ya sea en papel o en la mente) a la
programació n de computadores. La programació n es importante porque permite
automatizar todo tipo de tareas. Cuando un trabajo se hace manualmente, el
tiempo empleado para realizar un trabajo suele ser directamente proporcional a la
cantidad de trabajo.
Si tenemos en cuenta la revolució n de las nuevas tecnologías de la informació n y si
éstas han de tener una incidencia en la enseñ anza, parece que los algoritmos
vuelven a adquirir un papel relevante.
Las tres (3) técnicas utilizadas comú nmente para diseñ ar algoritmos son:
Suelen usar tipos de datos para la programació n y hay lenguajes de propó sito general
(cualquier tipo de aplicació n) y de propó sito específico (como FORTRAN para trabajos
científicos).
Se trata de un término no aceptado por todos, pero que seguramente usted habrá
oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores.
Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del
sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes
de bajo nivel y a la vez realizar operaciones de alto nivel.
Lenguajes compilados y lenguajes interpretados
Algunas ventajas de los lenguajes tipificados es que permiten detectar errores de tipo
(cuando un dato de un tipo se guarda en una variable de otro tipo), que permiten a los
compiladores optimizar mejor el có digo ejecutable y, en el caso de exigir la
declaració n de tipo de las variables, que facilitan la comprensió n de los programas.
Algunas ventajas de los lenguajes no tipificados es la mayor flexibilidad de los
programas, y una serie de características que aunque no se derivan necesariamente de
la falta de tipificació n suelen presentar los lenguajes no tipificados: simplicidad,
mayor nú mero de tipos de datos, metaprogramació n (introspecció n, eval, etc.).
Lenguajes de propó sito general son aptos para todo tipo de tareas: Ejemplo: C. Los
enguajes de propó sito específico, está n hechos para un objetivo muy concreto.
Ejemplo: Csound (para crear ficheros de audio).
Programació n estructurada
Programació n dirigida por eventos
Programació n modular
Programació n orientada a aspectos
Programació n con restricciones
Programació n orientada a componentes
Surgió en la década de 1960, particularmente del trabajo de Bö hm y Jacopini, y una
famosa carta, La sentencia goto considerada perjudicial, de Edsger Dijkstra en 1968 —
y fue reforzado teó ricamente por el teorema del programa estructurado, y
prá cticamente por la aparició n de lenguajes como ALGOL con adecuadas y ricas
estructuras de control.
A finales de los añ os 1970 surgió una nueva forma de programar que no solamente
daba lugar a programas fiables y eficientes, sino que ademá s estaban escritos de
manera que facilitaba su mejor comprensió n, no só lo proveyendo ventajas durante la
fase de desarrollo, sino también posibilitando una má s sencilla modificació n posterior.
El teorema del programa estructurado, propuesto por Bö hm-Jacopini, demuestra que
todo programa puede escribirse utilizando ú nicamente las tres instrucciones de
control siguientes:
Secuencia
Instrucció n condicional.
Iteració n (bucle de instrucciones) con condició n al principio.
Solamente con estas tres estructuras se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de programació n tienen un mayor
repertorio de estructuras de control, éstas pueden ser construidas mediante las tres
bá sicas citadas.
Un 'mó dulo' es cada una de las partes de un programa que resuelve uno de los
subproblemas en que se divide el problema complejo original. Cada uno de estos
mó dulos tiene una tarea bien definida y algunos necesitan de otros para poder operar.
En caso de que un mó dulo necesite de otro, puede comunicarse con éste mediante una
interfaz de comunicació n que también debe estar bien definida.
Los procedimientos y funciones nos lleva a dos (2) conceptos nuevos, que son:
El de los pará metros. A los pará metros también se les conoce como
argumentos y tienen la misió n de comunicar al procedimiento con el programa
que lo llama. Por ejemplo, si quieres hacer un subprograma que multiplique
dos nú meros, lo má s có modo es que al llamar al procedimiento le pases los
valores que participará n en la operació n.
Variables globales y locales. Se denominan así dependiendo sí la variable es
reconocida en todo el programa o solo en un bloque de instrucciones.
Todos los procesos del sistema son colocados en componentes separados de tal
manera que todos los datos y funciones dentro de cada componente está n
semá nticamente relacionados (justo como con el contenimiento de clases). Debido a
este principio, con frecuencia se dice que los componentes son modulares y cohesivos.
En los lenguajes funcionales las instrucciones cíclicas como for, while y do-while no
existen. Todo se procesa usando recursividad y funciones de alto orden.
Referencias[editar]
Palabras reservadas: Son un conjunto de palabras especiales que nos sirven para
definir la estructura del programa, y solo se pueden usar para el fin para el que
está n reservadas.
Cada lenguaje de programació n exige o no una estructura rígida para organizar los
elementos que conformará n el programa. A continuació n se muestran las estructuras
generales de un programa escrito en lenguaje C/C++, Java y Python.
Comentarios
Inclusión de archivos
main()
{
variables locales
flujo de sentencias (instrucciones)
}
Definición de funciones creadas por el programador utilizadas en main()
Los comentarios nos sirven para escribir informació n que nos referencie al programa
pero que no forme parte de él. Por ejemplo especificar que hace el programa, quien lo
elaboró , en que fecha, que versió n es, etc.
En C/C++, todo está constituido a base de funciones. El programa principal no es la
excepció n. main() indica la funció n principal del programa la cual se delimita con
llaves, esta es la primera que se ejecuta en el programa.
El lenguaje Python no exige una estructura rígida en los có digos, pero se debe tener
presente que los mó dulos y funciones deben ser programados o cargados antes de ser
invocados en el có digo. La sintaxis se debe tener muy presente y poner especial
atenció n en los espacios o INDENTACION, ya que Python identifica los finales de
bloques con estos espacios.
Los programas trabajan con datos, los leen o los generan, los procesan y los
transforman en informació n para la toma de decisiones.
Dato: es cualquier objeto de informació n con los que trabajan los programas.
Todos los datos tienen un tipo asociado a ellos. Esto nos sirve para poder conocer con
qué informació n se trabaja.
Existen dos (2) tipos de datos de datos: los simples (primitivos) y los estructurados
(no primitivos).
Son aquellos que no está n considerados por el lenguaje y tendrá n que ser definidos
por el programador, empleando para ello los tipos de datos simples o bá sicos.
4.2.2 Variables
Para que un programa pueda reconocer una variable se debe darle un nombre. Por lo
tanto, una variable tiene asociado un nombre y un valor.
Las variables se clasifican en dos grandes categorías, que son: a) por su contenido o
valor: numéricas, ló gicas, cará cter, etc; b) por su uso: de trabajo, contadores y
acumuladores.
Acumuladores: Es una variable que sirve para llevar la suma acumulativa de una serie
de valores que se van leyendo o calculando progresivamente.
4.2.3 Constantes
4.2.4 Identificadores
Un identificador es una secuencia de caracteres que sirve para identificar una posició n
de memoria que nos permite acceder a su contenido. En pocas palabras, un
identificador es el nombre que le damos a una posició n/direcció n de memoria. En este
sentido, en una posició n de memoria podemos guardar un valor o dato.
4.2.5 Operadores
Los operadores son símbolos que se utilizan para definir las operaciones que el
computador puede realizar con los datos.
Los operadores son símbolos que relacionan de forma diferente los valores de una o
má s variables y/o constante. Los valores sobre los que actú an los operadores se
denominan operandos.
Tipos de operadores:
Para manejar estos operadores, cada uno de los lenguajes de programació n debe
definir los siguientes requerimientos:
Operado
Nombre Ejemplo Algunos lenguajes de programació n tienen otros
r
operadores como el de divisió n entera (DIV),
+ Suma 7=3+4 potenciació n (^ ó **), entre otros.
Diferenci
- -1=3-4
a
* Producto 12=3*4
2.8=20/
/ Cociente Casi todos los lenguajes de programació n tienen
7
los siguientes operadores relacionales cuyo
% o MOD Mó dulo 6=20%7
significado se muestra en la tabla siguiente.
Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el
resultado de la comparació n es correcto la expresió n considerada es verdadera, en
caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se
representa por el valor true del tipo bá sico boolean, en cambio, 8<4 (ocho menor que
cuatro) es falsa, false. En la primera columna de la tabla anterior, se dan los símbolos
de los operadores relacionales, el la segunda, el nombre de dichos operadores, y a
continuació n su significado mediante un ejemplo.
AND y OR trabajan con dos operandos y retornan un valor ló gico basadas en las
denominadas tablas de verdad. El operador NOT actú a sobre un operando. Estas
tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo:
"si hace sol Y tengo tiempo, iré a la playa", "si NO hace sol, me quedaré en casa", "si
llueve O hace viento, iré al cine". Las tablas de verdad de los operadores AND, OR y
NOT se muestran en las tablas siguientes
X y resultado
True true true
True false false
False true false
False false false
El operador ló gico OR
X y resultado
True true true
True false true
false true true
false false false
x Resultado
true False
false True
4.2.6 Expresiones
El computador utiliza los operadores y las expresiones para poder ejecutar las
operaciones sobre los datos.
Expresiones aritméticas
SIGNO SIGNIFICADO
+ Suma
- Resta
* Multiplicación
/ División
^ Potenciación
() Agrupa operaciones
El orden de prioridad en la evolución de los operadores aritméticos es el
siguiente:
1) Paréntesis
2) Potenciación
3) Multiplicación y División
4) Suma y Resta
Ejemplo: Si a = 9; b =2; c =5; d = 3
Expresión Aritmética Resultado
a+b*c 19
(a+b)*c 55
((a + c – b) * b) / (c + d ) 3
(c + d) ^ b 64
Expresiones relacionales
SIGNO SIGNIFICADO
< Menor que
> Mayor que
= Igual a
<= Menor o igual que
>= Mayor o igual que
<> Distinto de
Una expresió n ló gica es una combinació n de constantes y/o variables y/o expresiones
matemá ticas o relacionales, unidas o relacionadas con operadores lógicos.
SIGNOS SIGNIFICADO
AND Producto ló gico (y)
OR Suma ló gica (0)
NOT Negació n (NO)
1) NOT
2) AND
3) OR
AND: es el operador ló gico de conjunció n. La expresió n que se evalú a de có mo
resultado verdadero si y solo si todos las condiciones son verdaderas. Dicho de otra
manera, es suficiente que unas de las condiciones sea falsa para que el resultado sea
falso.
Condición 1 Resultado
A Not A
FALSO VERDADERO
VERDADERO FALSO
EJEMPLOS: A =9, B: 2, C: 5, D: 3
Expresiones alfanuméricas
Una expresió n alfanumérica se utilizan para unir datos alfanuméricos. Recuerde que
los datos alfanuméricos no pueden utilizarse en expresiones aritméticas
OPERADOR SIGNICADO
+ CONCATENACION
En síntesis,
a) Estos cuatro (4) tipos de expresiones se pueden combinar para establecer las
condiciones y/o comparaciones en las en las sentencias condicionales.
b) Orden de evaluación (Reglas de prioridad). En el momento de establecer un
condició n combinando varios o todos los tipos de expresiones, se debe seguir y
respetar el siguiente orden de precedencia de los operadores.
2) 2+8-1 mod 1
3) 3*2^5 mod 1
4) 7 mod (5 mod 3)
5) 7 mod 5 mod 3
6) NOT ((5 / 2 * 3 – 1) = 4 div 2 mod 2 OR (10 < = 3 + 3 - 2) AND (3 / 4) ^2 * (2 +
10 mod 3))
7) (3*2^5 mod 1 + 8*(3-5) < (2+8-1 mod 1)
8) A es verdadero; A OR (3+5*8) < 3 AND ((-6/3 div 4)*2 < 2)
9) B = -12; (-B*2 <> 8*3 mod 4) AND (“A”> “B”)
4.2.7 Comentarios
Los comentarios pueden ser de dos tipos: de una sola línea o multi-línea y cada
lenguaje de programació n utilizan símbolos propios para poder expresarlos.
Los comentarios de una sola línea puede abarcar toda la línea o escribirse después
que termina una instrucció n, pero nunca abarcará má s de una línea, es decir, siempre
terminara en la misma línea donde empezó .
Por ejemplo,
b) en lenguaje Python…
Los comentarios de una sola línea empiezan con el caracter #
Los comentarios multi-línea empiezan con los caracteres """ se escribe el
comentario y terminan con los caracteres """
c) En lenguaje Ensamblador…
Los comentarios son de una sola línea y empiezan con el caracter punto y
coma (;).
d) en lenguaje Ruby…
Estos tres tipos de estructuras ló gicas de control pueden ser combinados para
producir programas que manejen cualquier tarea de procesamiento de informació n. El
resto de repertorio de estructuras de control que tienen los lenguajes de
programació n, pueden ser construidas mediante estas tres bá sicas citadas.
Existe una forma alternativa de expresar una estructura secuencial escribiendo varias
acciones en la misma línea pero utilizando el punto y coma, ;, como separador entre
una acció n y la que le sigue. Sin embargo, esta ú ltima notació n es no es aconsejable
puesto que puede llegar a hacer el có digo bastante difícil de leer.
Estructura multialternativa:
O lo que es lo mismo:
Cuando se está dentro del ciclo (entre el para y fin-para), cada vez que se llega (de
arriba hacia abajo) al fin-para, el programa salta hasta el para, y el mismo incrementa
o decrementa la variable contadora, y ejecuta las acciones del ciclo mientras no
sobrepase el valor final; de lo contrario salta (hacia abajo) a ejecutar las instrucciones
que está n debajo del fin-para.
Ejemplo No. 2:
Algoritmo en Pseudocódigo Programa Python
producto = 1 #usando decremento en el ciclo for
para j = 5000 hasta 100, 10 hacer: (5000, hasta 100, decremento 10)
producto = producto * j producto =1
fin para for j in range(5000,99,-10):
producto = producto * j
print "j = ", j
Ejemplo: Algoritmo que muestra los nú meros del 1 al 100 utilizando la sentencia
mientras.
for i in range(2,101,2):
print(i)
print("Final")
Estructura repetir-hasta (repeat … until)
repetir
acció n // conjunto de acciones a ejecutar dentro del bucle
hasta expresió n ló gica
Ejemplo: Algoritmo que muestra los nú meros del 1 al 100 utilizando la sentencia
repetir.
Bucles infinitos
Los bucles infinitos deben evitarse pues significan perder el control del programa.
Cada lenguaje de programació n utiliza una combinació n de teclas para interrumpir la
ejecució n de un bucle infinito: por ejemplo, en Python para interrumpir un bucle
infinito, hay que pulsar la combinació n de teclas Ctrl+C.
i=1
while i <= 10: Imprime infinitamente (nunca sale del ciclo)
print(i, "", end=") 1 1 1 1 1 1 1 1 ...
i=1
while i > 0:
print(i, "", end="") Imprime infinitamente (nunca sale del ciclo)
i += 1 1 2 3 4 5 6 7 8 9 10 11 ...
En muchos programas se necesitan variables que cuenten cuá ntas veces ha ocurrido
algo (contadores) o que acumulen valores (acumuladores).
Se entiende por contador una variable que lleva la cuenta del nú mero de veces que se
ha cumplido una condició n. El ejemplo siguiente es un ejemplo de programa con
contador.
Ejemplo: Elaborar un algoritmo que nos averigü e e imprimir cuá ntos nú meros
mú ltiplos de 7 hay en los 1000 primeros nú meros enteros positivos.
print("Comienzo")
cuenta = 0
for i in range(1, 1001):
if i % 7 == 0:
cuenta = cuenta + 1
print("Desde 1 hasta 1000 hay", cuenta, "mú ltiplos de 7")
Detalles importantes:
Variable Acumulador
Se entiende por acumulador una variable que acumula el resultado de una operació n.
El ejemplo siguiente es un ejemplo de programa con contador El ejemplo siguiente es
un ejemplo de programa con contador.
Ejemplo: Elaborar un algoritmo que nos imprima la suma de los primeros 4 nú meros
enteros positivos.
print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print("La suma de los nú meros de 1 a 4 es", suma)
Detalles importantes:
El acumulador se modifica en cada iteració n del bucle. (en este caso, el valor de
i se añ ade al acumulador suma).
Antes del bucle se debe dar un valor inicial al acumulador (en este caso, 0)
Si continuar vale
Verdadero verdadero se repite
Continuar Sí Sí Sí
Falso un bucle y si vale
falso se sale de él
Almacena la
Verdadero
Opinion contestació n a una Sí No No
Falso
pregunta de un test
Elabore un programa de computador que lea los siguientes datos para un nú mero
desconocido de personas:
Edad de la persona
Sexo (1 si es masculino, 2 si es femenino)
Estado civil (1 si es soltero, 2 si es casado)
Se desea saber:
El nú mero de ventas diarias es desconocido. Esto es obvio porque ninguna tienda sabe
cuantas ventas va a realizar en un día cualquiera.
distancia_objeto=503
distancia_alcanzada=0
gravedad=9.8
angulo=45
velocidad=0
velocidad_inicial=0
velocidad_final=0
continuar="s"
while(continuar=="s"):
velocidad=float(input("digite velocidad"))
distancia_alcanzada=( ( velocidad* velocidad ) / gravedad ) * math.sin( 2 *
math.radians(angulo) )
print ("la distancia alcanzada fue de: ",distancia_alcanzada)
if distancia_alcanzada >= distancia_objeto:
print ("Se sobrepasó el objetivo, con una velocidad de ",velocidad)
else:
print ("NO se sobrepasó el objetivo")
continuar=input("desea continuar? s/n:")