Algoritmica y Programacion
Algoritmica y Programacion
Algoritmica y Programacion
INTRODUCCIÓN
Toda nuestra civilización está basada en el orden de las cosas y las acciones. La
ordenación, consciente e inconsciente es una parte importante de nuestras vidas y esta
ordenación se adquiere a través de un proceso que podríamos llamar programación.
PROGRAMACIÓN
La planificación, proyección o ejecución de una tarea o suceso.
PROGRAMACIÓN DE COMPUTADORAS
El proceso de planificar una secuencia
de instrucciones que ha de seguir una computadora.
Así como el programa de un concierto o las reglas de un juego son un esbozo impreso
con anotaciones de las acciones que se van a ejecutar, un programa de computadora es un
listado del conjunto de instrucciones que perfilan los pasos que han de ejecutarse.
PROGRAMA DE COMPUTADORAS
Una secuencia de instrucciones que indican
las acciones que han de ejecutarse.
La computadora nos permite hacer tareas de manera más eficiente, rápida y precisa de lo que
haríamos a mano. Para utilizar esta poderosa herramienta debemos especificar exactamente lo
que queremos hacer y el orden en el que debe hacerse.
Universidad Tecnológica Nacional – Facultad Regional Concordia -2-
GENERALIDADES DE LA PROGRAMACIÓN
Sistema
Informático
Hacer
Sumar
Leer
Restar
Mostrar
.................
Hardware
Software
Hardware:
Son los componentes físicos de un sistema de computación. El
equipo propiamente dicho.
Software:
Son los datos e instrucciones de un sistema de cómputos
empleados en forma simbólica.
Universidad Tecnológica Nacional – Facultad Regional Concordia -3-
HARDWARE: PRINCIPIOS DE ARQUITECTURA
Arquitectura:
BUS
Regi
stro
s
Memoria
Unidad
Secundaria Teclado,
de Impresora
(disco duro, Terminal
Control
CD)
CPU Memoria Entrada Salida
Dispositivos Periféricos
Son dispositivos de entrada, salida o almacenamiento auxiliar de una computadora.
Ejemplos: teclado, lectora de CD, disco rígido, diskette, lápiz óptico, DVD, plotter, scanner.
Impresora, monitor.
Universidad Tecnológica Nacional – Facultad Regional Concordia -4-
SOFTWARE
La característica fundamental de la computadora reside en su naturaleza de
máquinas programables y dotadas de una capacidad para memorizar información. Y no
hay que perder de vista que su objetivo principal es el tratamiento de la información.
En su sentido más amplio, el término software identifica todo cuanto complementa a
la arquitectura física del computador y lo convierte en una máquina intruíble, versátil y
dispuesta a ejecutar innumerables tareas distintas.
Adoptando una acepción más estricta, habría que hablar del software como el
conjunto de órdenes, instrucciones y programas que dan vida al hardware del ordenador:
el denominado componente lógico del ordenador.
Forman parte del software tanto los programas de procesamiento de textos, los que
manejan grandes bases de datos, como los programas internos que se ocupan de que el
hardware acepte órdenes introducidas por el teclado, visualice los datos a través de una
pantalla y ejecute las instrucciones los programas de aplicación.
Tipos de Software
DE BASE: está formado por los programas que facilitan una explotación más
racional de los ordenadores, guiando todas las tareas y ayudando a los programas en
ciertas funciones. Son escritos y proporcionados por grandes fabricantes.
Ejemplos:
GESTIÓN DE DATOS
Podría imaginarse al sistema operativo como la cabina de un avión. Sin ella hay
suficiente potencialidad pero el avión no puede volar. El sistema operativo le permite al
usuario de una computadora controlarla.
Al igual que los mandos de la cabina de un avión el sistema operativo coordina las
partes de la computadora y permite fácilmente controlarlas.
Universidad Tecnológica Nacional – Facultad Regional Concordia -6-
SOFTWARE - SISTEMA OPERATIVO
Pude decirse que el sistema operativo opera en dos niveles:
Sistema
Máquina
Operativo
Universidad Tecnológica Nacional – Facultad Regional Concordia -7-
LENGUAJES DE PROGRAMACIÓN
TIPOS DE LENGUAJES
Lenguajes de Bajo Nivel
Lenguajes de Alto Nivel
codificación compilación
Universidad Tecnológica Nacional – Facultad Regional Concordia -8-
ALGORITMOS
Ejemplo:
3. Multiplicar el número de horas trabajadas por el sueldo por hora para obtener la
paga regular.
Prueba.- Seguir los pasos exactos tal como se han establecido para ver si la solución
resuelve realmente el problema.
Fase de Implementación:
Solución Específica (programa).- Traducción del algoritmo a un lenguaje de programación
(Código).
Prueba.- Hacer que la computadora siga las instrucciones. Comprobar los resultados y
hacer correcciones hasta que las respuestas sean correctas.
Resolvemos problemas todos los días, pero normalmente ignoramos el proceso que
estamos siguiendo. Después que hemos comprendido y analizado el problema, debemos
llegar a una solución el algoritmo.
Hacer preguntas
Si le dan verbalmente una tarea, usted hace preguntas hasta que tiene claro lo que ha
de hacer.
Preguntar: cuándo, por qué, donde, hasta que la tarea esté completamente especificada.
Si la tarea se la ha puesto usted mismo, este tipo de preguntas puede que no sea
verbal, pero tienen lugar a un nivel subconsciente.
Dividir
Ejemplo:
Problema: ¿Cómo puedo ir a una fiesta?
Preguntas:
¿Dónde es la fiesta?
¿Desde dónde iré?
¿Cuál es el clima?
Una vez respondida estas preguntas se puede comenzar con el diseño del algoritmo.
Programa
Computadora Resultado
Datos
Receta
Cocina Torta
Ingrediente
Universidad Tecnológica Nacional – Facultad Regional Concordia -12-
Tipos de Datos
Los datos son símbolos físicos que representan información. Usamos diferentes
tipos de datos. Un tipo de dato es una especificación tanto de la representación interna en
memoria como de las operaciones permitidas con esos datos. Por ejemplo: si trabajo con
caracteres, no voy a poder realizar operaciones matemáticas y la representación interna
no es la misma que la de un número entero.
Existen varios tipos de datos, veremos sólo cuatro tipos de datos simples.
Números Enteros.
Números Reales.
Caracteres
No se puede sumar “8” más “3”, ya que el tipo de dato no es numérico. Podemos utilizar
cualquiera de los caracteres definidos en la tabla de código ASCII (Código Estándar
Estadounidense para Intercambio de Información). Esta tabla hace corresponder a cada carácter
un valor numérico, con lo cual hace posible la comparación entre ellos, como por ejemplo:
“A” es menor que “B” , “1” es menor que “2”
Son los datos con sólo dos posibles valores: TRUE (verdadero) y FALSE (falso).
Se usan para representar condiciones y respuestas a preguntas. Sirven para indicar
la verdad o falsedad de alguna proposición o condición.
Universidad Tecnológica Nacional – Facultad Regional Concordia -13-
Almacenamiento de Datos
Memoria
La memoria se divide en un gran número de posiciones separadas, cada una de las cuales
almacena una parte de los datos. Cada posición de memoria tiene una dirección (un número) que
puede utilizarse para referirse a ella cuando se almacenan o recuperan los datos. Podemos
visualizar la memoria como un conjunto de cajas de una oficina de correo, con los números de las
cajas como las direcciones utilizadas para designar a las posiciones particulares.
Esquema de la memoria
1
2
3
3998
3999
Variable
Variables
Ejemplos de variables:
Suma 10
Salario
20
Universidad Tecnológica Nacional – Facultad Regional Concordia - 14 -
10 es el valor de la variable Suma y 20 el de la variable Salario
Universidad Tecnológica Nacional – Facultad Regional Concordia -15-
Almacenamiento de Datos
Constantes
Ejemplo: Pi = 3.1415
Expresiones
Ejemplos:
Expresiones Aritméticas
Reglas de Precedencia
Orden Operadores
Primero ^
Segundo * /
Tercero + -
Ejemplos:
8 +7 * 3 + 4 * 5
21 20
29
49
(8 + 7) * (3 + 4) * 5
15 7
105
525
Epresiones Relacionales
Expresiones Lógicas
Reglas de Precedencia
Orden Operadores
Primero NO
Segundo Y
Tercero O
Tablas de Verdad
Las expresiones relacionales pueden combinarse mediante operadores lógicos.
Siendo:
A: expresión relacional
B: expresión relacional
A B AyB
v v v
v f f
f v f
f f f
A B AoB
v v v
v f v
f v v
f f f
A No A
v f
f v
Ejemplos:
Expresión Resultado
(2 = 3) o (4 < 5) Verdadero
(2 = 3) y no(4 < 5) Falso
Universidad Tecnológica Nacional – Facultad Regional Concordia -18-
TIPOS DE ACCIONES
Las acciones primitivas que un computador puede llevar a cabo son:
Asignar
Leer
Escribir
Asignación
Ejemplo 1: A = 0
Significa que la posición de memoria llamada A toma el valor cero.
A A
19 0
Ejemplo 2: A = 2 + 5 * 3
Significa que la posición de memoria llamada A toma el valor resultante de la
expresión.
A A
0 17
Ejemplo 3: A = A + 3
Se toma el valor de A que es 17, se le suma 3 y se almacena el resultado en la
posición de memoria llamada A, eliminando el valor anterior.
A A
17 20
Universidad Tecnológica Nacional – Facultad Regional Concordia -19-
TIPOS DE ACCIONES
Ejemplo 4:
A=2
B=4
SUMA=A+B
A
2
B
4
SUMA 6
Lectura
A
Leer A
2 2
Escritura
Permite mostrar en un medio externo (pantalla, impresora, etc.) los valores parciales
o resultantes de un algoritmo así como mensajes, totales, subtotales, gráficos, etc.
A Pantalla
Mostrar A
2 2
Memoria Computadora
Ejemplo:
Leer A
Leer B
SUMA=A+B
Universidad Tecnológica Nacional – Facultad Regional Concordia - 20 -
Mostrar “La suma es:”, SUMA
Universidad Tecnológica Nacional – Facultad Regional Concordia -21-
LA RESOLUCIÓN DE PROBLEMAS CON COMPUTADORAS
Fases:
Las dos primeras fases conducen a un diseño detallado escrito en forma de algoritmo.
Resolución de un
Problema
Resolución del
Análisis del Problema Diseño del Algoritmo Problema con la
Computadora
Universidad Tecnológica Nacional – Facultad Regional Concordia -22-
ANÁLISIS DEL PROBLEMA:
Esquema del Análisis del Problema
Los requisitos más importantes para llegar a una solución eficaz son: una buena definición
del problema y una descripción detallada de las especificaciones de entrada y de salida.
Para poder definir bien un problema es conveniente responder a las siguientes preguntas:
¿Cuál es la salida deseada?
¿Qué entradas se requieren?
¿Qué procedimientos nos dan la salida deseada?
Establecer estrategias de resolución.
Ejemplo:
Encontrar la media aritmética de tres notas de exámenes, representadas cada
una por un número entero.
Solución:
Entrada: tres números enteros que representan la nota de examen. Nota1, Nota2, Nota3.
Salida: mostrar el promedio con el mensaje correspondiente.
Universidad Tecnológica Nacional – Facultad Regional Concordia -23-
HERRAMIENTAS PARA EL DISEÑO DEL ALGORITMO
Seudocódigo
Variables Significado
Nota1 Almacena nota ingresada
Nota2 Almacena nota ingresada
Nota3 Almacena nota ingresada
Promedio Almacena el promedio de las notas
Comienzo
Mostrar “Este programa calcula el promedio de las notas”
Leer Nota1, Nota2, Nota3
Promedio = (Nota1 + Nota2 + Nota3) / 3
Mostrar “El promedio es: ”, Promedio
Fin
Variables Significado
tasa Almacena la tasa de retención
tarifa Almacena la tarifa horaria
horas Almacena las horas trabajadas
sueldo_basico Almacena el sueldo básico
retencion Almacena el monto de descuento
sueldo_neto Almacena el sueldo neto
Un programa puede ser escrito utilizando sólo los tres tipos de estructuras de control.
Secuencia
Es un conjunto de acciones que se ejecutan en el orden en el cual aparecen, desde
la primera a la última.
Comienzo
Acción 1
Acción 2
............
Acción n
Fin
Selección
Permite elegir una de dos acciones según el valor de verdad de una condición dada.
Si condición Entonces
Acción 1
Acción 2
Sino
Acción 3
Acción 4
Fin Si
Variables Significado
Num1 Almacena el primer número ingresado
Num2 Almacena el segundo número ingresado
Decisiones Anidadas
Consiste en ubicar una o más estructuras selectivas dentro de otra. Como por ejemplo
Variables Significado
pobla1 Almacena población de la provincia 1
pobla2 Almacena población de la provincia 2
pobla3 Almacena población de la provincia 3
Repetición
Permite realizar varias veces un grupo de acciones, constituyendo lo que se
denomina un ciclo o iteración. Este grupo de acciones se realizan bajo el control de una
condición cuyo cumplimiento o no determina la repetición de las mismas.
Seudocódigo
Mientras condición Hacer
| Acciones
Fin Mientras
Ejemplo: Calcular la suma de una lista de sueldos. El proceso finaliza cuando se ingresa
un sueldo igual a cero.
Variables Significado
sueldo Almacena la cantidad correspondiente al sueldo
suma Almacena la suma de los sueldos
Seudocódigo
Repetir
| Acciones
Hasta que condición
A diferencia del Mientras la condición se evalúa al final de cada iteración, por lo cual
las acciones dentro del ciclo se ejecutan al menos una vez, de alli (1, n) veces.
Si la condición es falsa se vuelve a ejecutar las acciones, de lo contrario finaliza el
ciclo, continuando con la próxima instrucción a la frase Hasta que.
Ejemplo: Suma n números enteros, conociendo n (n > 0) y los números a sumar, los que
se ingresan de a uno por vez..
Variables Significado
n Almacena la cantidad de números a sumar
numero Almacena el número a sumar
contador Almacena la cantidad de números ingresados
suma Almacena las sumas parciales de los números
Seudocódigo
Para variable = valor inicial Hasta valor final Hacer
| Acciones
Fin Para
Ejemplo: Conociendo los sueldos de los 20 empleados de una empresa, mostrar el mayor sueldo.
Los sueldos se leen de a uno por vez.
Variables Significado
sueldo Almacena los sueldos
mayor Almacena el sueldo mayor
i Almacena el valor de control del ciclo Para
Seudocódigo del Algoritmo “Mayor_Sueldo”
Comienzo
mayor = 0
Para i = 1 Hasta 20 Hacer
Leer sueldo
Si sueldo > mayor Entonces
mayor = sueldo
Fin Si
Fin Para
Mostrar “El mayor sueldo es:” mayor
Fin
Universidad Tecnológica Nacional – Facultad Regional Concordia -30-
ESTRUCTURAS DE CONTROL Y SEUDOCÓDIGO
Seudocódigo
Según dia Hacer
1 : Mostrar “Domingo”
2 : Mostrar “Lunes”
3 : Mostrar “Martes”
4 : Mostrar “Miércoles”
5 : Mostrar “Jueves”
6 : Mostrar “Viernes”
7 : Mostrar “Sábado”
De otro modo
Mostrar “Error”
Fin Según
Generalizando:
Según variable Hacer
constante 1 : acción 1
constante 2 : acción 2
constante 3 : acción 3
............................
constante n : acción n
De otro modo
acción n + 1
Fin Según
Universidad Tecnológica Nacional – Facultad Regional Concordia -31-
Los eventos
El modo de escribir los programas en los lenguajes de programación visual esta
basado en el concepto de evento. En función del evento que el usuario lanza se determina la acción
a llevar a cabo. Por ejemplo si presionamos el click derecho nos despliega el menú contectual.
Variables
Declaración explícita: se realiza la declaración de todas las variables antes de cada proceso.
Constantes
OPERADORES
Operadores Aritméticos
Operadores de Comparación
Operadores Lógicos
ESTRUCTURAS DE CONTROL
Estructuras de Decisión
Sintaxis:
I)
If condición Then
Instrucciones
End If
II)
If condición Then
Instrucciones por verdadero de la condición
Else
Instrucciones por falso de la condición
End If
III)
If condición1 Then
Bloque de instrucciones 1
[ElseIf condición2 Then
Bloque de instrucciones 2 ...]
[Else
Bloque de instrucciones n]
End If
Ejemplo1:
If b <> 0 Then
c=a+b
Else
c=0
End If
Ejemplo2:
If b <> 0 Then
c=a+b
ElseIf c <> 0 Then
c=0
End If
Ejemplo3:
If a = 1 Then
c=n+m
ElseIf a = 2 Then
c=n–m
ElseIf a = 3 Then
c=n*m
ElseIf a = 4 Then
c=n/m
Else
c=n^m
End If
Universidad Tecnológica Nacional – Facultad Regional Concordia -36-
Select Case
Sintaxis
Select Case variable
[Case lista_expresiones 1
bloque de instrucciones 1]
[Case lista_expresiones 2
bloque de instrucciones 2]
..................
[Case lista_expresiones n
bloque de instrucciones n]
[Case Else
bloque de instrucciones n + 1
End Select
Ejemplo:
Select Case a
Case 1
c=n+m
Case 2
c=n–m
Case 3
c=n*m
Case 4
c=n/m
Case Else
c=n^m
End Select
Estructuras Repetitivas
Sintaxis:
Do Do
Instrucciones Instrucciones
Loop While condición Loop Until condición
Sintaxis:
For contador = principio to fin
Instrucciones
Next [contador]
Universidad Tecnológica Nacional – Facultad Regional Concordia -37-
Ejemplos:
I)
x=1
Do While x < 5
x=x+1
Loop
II)
x=1
Do
x=x+1
Loop While x < 5
III)
x=1
Do Until x >= 5
x=x+1
Loop
IV)
For x = 1 to 5
x=x*2
Next x