Está en la página 1de 12

P LANIFICACIÓN DE C LASE O NLINE

S EMANA 2

F UNDAMENTOS DE P ROGRAMACIÓN

U NIDAD 1

A LGORITMOS
• P ROBLEMAS Y ALGORITMOS
• PARTES Y CARACTERÍSTICAS DE LOS ALGORITMOS
Índice general

1 Información de la unidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Información de los subtemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


2.1 El problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.2 Diagramas de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.3 Pseudocódigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1. Información de la unidad

Objetivo
Analizar los problemas de la vida real, mediante el estudio de casos teórico-prácticos que
puedan representarse como algoritmos.

Tema
Algortimos

Subtemas
• El computador
• La memoria del computador
• El programa
• Problemas y algoritmos
• Partes y características de los algoritmos
Unidad
Introducción a la programación

Total de horas de la asignatura


144 horas
2. Información de los subtemas

2.1 El problema
En la vida diaria las personas llevan a cabo actividades repetitivas que corresponden a una
serie de pasos ordenados para resolver un problema específico. Algunos ejemplos de actividades
diarias incluyen cepillarse los dientes, ducharse y prepararse para ir al trabajo. Cada una de estas
actividades sigue una secuencia de pasos definida. A este conjunto de pasos diseñados para abordar
un problema determinado se lo conoce como algoritmo.

Definición 2.1 (Algoritmo). Un algoritmo es un conjunto de pasos, procedimientos o acciones


que permiten alcanzar un resultado o resolver un problema.

Los algoritmos son frecuentes en las matemáticas y la lógica, y son la base de la fabricación de
manuales de usuario, folletos de instrucciones, entre otros. En matemáticas, uno de los algoritmos
más conocidos es el atribuido a Euclides para obtener el máximo común divisor de dos enteros
positivos, o el llamado “método de Gauss” para resolver sistemas de ecuaciones lineales.

Ejemplo 2.1. Crear un algoritmo para llevar a cabo el cepillado de dientes.

Recursos:
1 cepillo de dientes
1 crema dental
1 vaso con agua

Procedimiento:
1 aplicar la crema sobre la cabeza del cepillo
2 realizarse el cepillado dental
3 cepillar la lengua
4 enjuagarse la boca
5 enjuagar el cepillo
6 guardar el cepillo
7 guardar crema dental
8 guardar vaso
2.1 El problema 5

Resultado:
Dientes limpios

El Ejemplo 2.1 muestra el algoritmo para cepillarse los dientes. Esta solución no es la única
forma para llevar a cabo el cepillado dental; más bien, es una de las muchas posibles. Sin embargo,
independientemente de la solución elegida, es necesario seguir las etapas mostradas en la Figura
2.1 para resolver cualquier problema.

Problema

Etapa1 Etapa2 Etapa3


Análisis del Construcción Verificación
problema del algoritmo del algoritmo

Figura 2.1: Etapas para la solución de un problema.

Etapa 1 En esta etapa se realiza un análisis del problema que permitan determinar los recursos
necesarios para plantear la solución.
Etapa 2 Esta estapa establece la secuencia de pasos a seguir y se determina la salida o resultado
que se obtendrá tras la ejecución de los pasos dados. Es decir, se define el procedimiento y la
salida esperada.
Etapa 3 Finalmente, en esta etapa se verifica que el algoritmo cumple con su objetivo; es decir,
asegurarse que resuelve el problema. Esta verificación se la realiza con datos representativos
al problema en cuestión.

Ejemplo 2.2. Crear un algoritmo que permita comprar en una tienda una camisa de fiesta.

Recursos:
presupuesto
modelo
talla

Procedimiento:
1 entrar a la tienda
2 ir a la secci ó n de camisas de fiesta
3 tomar una camisa
4 conseguir el modelo adecuado
5 comprobar la talla adecuada
6 comprobar que se tiene el presupuesto adecuado
7 comprar la camisa

Resultado:
Camisa de fiesta comprada

En ciencias de la computación, un algoritmo es un procedimiento que parte de un estado inicial


y una entrada, llega al estado final y produce un resultado como salida. En otras palabras, los
algoritmos constan de tres componentes: entrada, proceso y salida, como se muestra en la Figura
2.2.
2.1 El problema 6

Entrada Proceso Salida

Figura 2.2: Componentes de un algoritmo

Entrada Se refiere a los datos de entrada –recursos– que el algoritmo necesita para operar. Estos
datos serán solicitados por el computador al usuario.
Proceso Corresponde a la secuencia de órdenes que el algoritmo realizará para obtener el resultado
–procedimiento–. Estas órdenes harán uso de los datos de entrada.
Salida Son los resultados del proceso ejecutado, una vez terminada la ejecución del algoritmo.
Los algoritmos poseen diferentes características que pueden depender de varios factores, tales
como el nivel de detalle que se quiera o se requiera dar al algoritmo, de la experiencia de la persona
quien lo realiza o del talento de quien lo escribe, entre otros. Sin embargo, independientemente de
la solución propuesta, todo algoritmo debe tener las características que se presentan en la Figura
2.3.

P RECISOS C ONCRETOS

O RDENADOS C ARACTERÍSTICAS D EFINIDOS


DE UN
ALGORITMO

I NDEPENDIENTES
F INITOS
DEL LENGUAJE

Figura 2.3: Características de un algoritmo

Precisos Los algoritmos han de ser precisos; es decir, no pueden ser ambiguos o subjetivos.
Ordenados Los algoritmos deben establecerse en una secuencia precisa y exacta, de esta manera
su lectura tendrá sentido en la resolución del problema.
Finitos Toda secuencia de algoritmos ha de terminar en algún determinado punto y dará el resultado
esperado; es decir, no puede prolongarse hasta el infinito.
Concretos Todo algoritmo debe ofrecer un resultado en base a las funciones que cumple.
Definidos Un mismo algoritmo, cuando se le proporcionan los mismos elementos de entrada dará
siempre los mismos resultados.
Independientes del lenguaje Los algoritmos son independientes de los lenguajes de programa-
ción, ya que que un mismo algoritmo puede ser implementado en diferentes lenguajes. En
otras palabras, se trata de un diseño previo a la programación.
El Ejemplo 2.3 presenta un algoritmo, en donde se contemplan los tres componentes que debe
tener un algoritmo.

Ejemplo 2.3. Se necesita crear un algoritmo que calcule el promedio de tres valores enteros
ingresados por el usuario y luego muestre el resultado al usuario.
2.2 Diagramas de flujo 7

Algoritmo 2.1.
El algoritmo del Ejemplo 2.3 correspondiente es el siguiente:
Entrada:
• primer valor
• segundo valor
• tercer valor
Proceso:
1 Solicitar al usuario que ingrese el primer valor
2 Solicitar al usuario que ingrese el segundo valor
3 Solicitar al usuario que ingrese el tercer valor
4 sumar los primer valor , segundo valor y tercer valor
5 promediar la suma para 3
6 presentar el promedio

Salida:
• promedio
Un algoritmo puede expresarse de las siguientes maneras:
• Lenguaje natural (suele ser ambiguo, pero es bastante útil para problemas simples)
• Pseudocódigo
• Diagramas de flujo
• Programas en lenguajes de programación
2.2 Diagramas de flujo
Un diagrama de flujo, o también llamado flujograma, es una representación gráfica de un
proceso o algoritmo que muestra las diferentes etapas, pasos o acciones que lo componen y cómo
se relacionan entre sí.
En un diagrama de flujo se emplean símbolos y conectores para representar los diferentes ele-
mentos de un algoritmo. El Cuadro 2.1 muestra los símbolos comunes utilizados en los flujogramas
que se tratarán en este libro.
Los diagramas de flujo representan la solución gráfica de un algoritmo y se componen de los
mismos elementos que se muestran en la Figura 2.2, a los que se añaden los símbolos que indican
el inicio y fin del proceso. La Figura 2.4 muestra el proceso a seguir en la construcción de un
flujograma.
2.2 Diagramas de flujo 8

Símbolo Descripción
Representa el punto inicial o final del proceso.
Inicio/Fin

Se utiliza para introducir datos por teclado.


Entrada

Representa una tarea específica que se realiza dentro del


Proceso proceso.

Se utiliza para representar una decisión.

Decisión

Sirve para sacar datos de resultados.


Salida

Expresan la dirección del flujograma.

Cuadro 2.1: Símbolos utilizados en los diagramas de flujo

Inicio

Lectura

Proceso

Salida

Fin

Figura 2.4: Proceso de un diagrama de flujo.

Ejemplo 2.4. Considere el Algoritmo 2.1 del Ejemplo 2.3, que requiere promediar tres valores
enteros y mostrar su resultado al usuario. El diagrama de flujo correspondiente es el siguiente:
2.3 Pseudocódigo 9

Inicio

valor1, valor2, valor3

suma ← valor1+valor2+valor3

promedio ← suma/3

promedio

Fin
Diagrama de flujo 2.1.

Nótese que valor1, valor2, valor3, suma y promedio son identificadores de variables (o
simplemente variables) que el algoritmo utilizará para almacenar valores. Además, el símbolo
“←” indica que el valor calculado a su derecha será asignado a la variable del lado izquierdo.

2.3 Pseudocódigo
El pseudocódigo (o lenguaje de descripción algorítmico) es una descripción de alto nivel
compacta e informal del principio operativo de un programa informático o algoritmo. Es un
lenguaje intermedio entre el lenguaje natural y cualquier lenguaje de programación, tal como C,
Java, Python, entre otros.
En este libro se ha adoptado una notación para la escritura de los algoritmos que está basada en
la sintaxis del lenguaje de programación C.
La elección de utilizar el lenguaje C se debe a su rigurosidad y estructura estricta en la
programación. Esto obliga a los participante a desarrollar algoritmos siguiendo una metodología
precisa, lo que permitirá comprender los fundamentos de programación de manera sólida. Además,
esta experiencia obtenida les facilitará la transición hacia otros lenguajes de programación en el
futuro, demandando un mínimo esfuerzo para que puedan adaptarse a nuevas sintaxis y conceptos.
El detalle de la notación a usar será descrito progresivamente, conforme avance su lectura.

Estructura de un pseudocódigo
La definición de un algoritmo en pseudocódigo tendrá la siguiente estructura:

hidentificador-algoritmo:i
hvari
hvariables de entradai
hbegini
hinstruccionesi
hendi

en donde,
identificador-algoritmo: es el nombre que se le asigna al algoritmo para diferenciarlo de
otros.
2.3 Pseudocódigo 10

var: palabra reservada utilizada para declarar las variables que usarán el proceso.
begin· · · end: estas palabras reservadas encierran el bloque de instrucciones que ejecutará el
algoritmo.

Definición 2.2 (Bloque). Un bloque consiste en un conjunto de instrucciones que está delimitado
por las palabras reservadas begin y end.

El Ejemplo 2.5 muestra el algoritmo para calcular el promedio de tres valores numéricos,
representado en pseudocódigo.

Ejemplo 2.5. Pseudocódigo que calcula el promedio de tres números.

Pseudocódigo 2.1.
promedio-números:
var
valor1, valor2, valor3
begin
1 valor1 ← 10
2 valor2 ← 5
3 valor3 ← 9
4 suma ← valor1 + valor2 + valor3
5 promedio ← suma / 3

end

De manera similar a lo explicado en el Diagrama de Flujo 2.1, las variables valor1, valor2,
valor3, suma y promedio empleadas en el Pseudocódigo 2.1 se utilizarán para almacenar
valores.

Normalmente el bloque de instrucciones de un algoritmo estará enumerado en este libro, de


esta manera será más sencillo analizar alguna instrucción específica.
Cuando se escriben algoritmos con pseudocódigo, se debe evitar el uso de instrucciones propias
de un lenguaje de programación específico. En el Ejemplo 2.6 se muestra una forma no recomendada
de definir el algoritmo del Ejemplo 2.5. Aunque esta solución es más corta debe evitarse, debido a
que utiliza la instrucción avg que no está definida en el algoritmo.

Ejemplo 2.6. Pseudocódigo que expresa de forma inapropiada el promedio de tres valores.

Pseudocódigo 2.2.
promedio-números:
var
valor1, valor2, valor3
begin
1 valor1 ← 10
2 valor2 ← 5
3 valor3 ← 9
4 promedio ← avg ( valor1 , valor2 , valor3 )

end
2.4 Ejercicios 11

Para el desarrollo de algoritmos y programas de cómputo se requiere de los siguientes elementos


que están relacionados entre sí.
• Tipos de datos
• Identificadores
• Variables
• Constantes
• Operadores
• Expresiones
• Instrucciones
2.4 Ejercicios
1. Crear un algoritmo que permita calcular el sueldo de un empleado que labora por horas. Para
ello es necesario ingresar el total de horas trabajadas al mes y la tarifa por hora.
2. Elaborar un algoritmo que permita calcular el área de un círculo, aplicando la fórmula
π ∗ radio2 .
3. Realizar un algoritmo que solicite tres valores y realice todas las cuatro operaciones aritméti-
cas básicas.
4. Elaborar un algoritmo que solicite el número de respuestas correctas, incorrectas y en blanco,
correspondientes a un examen de matemáticas de un estudiante. Se debe calcular el puntaje
final, teniendo en cuenta que por cada respuesta correcta tendrá 2 puntos, respuesta incorrectas
tendrá -1 y respuestas en blanco tendrá 0 puntos.
5. Crear un algoritmo que permita ingresar el número de partidos ganados, perdidos y empatados
por algún equipo de fútbol profesional. Se debe mostrar el puntaje total, considerando que
por cada partido ganado se obtendrán 3 puntos, partido empatado 1 punto y partido perdido 0
puntos.
Bibliografía

También podría gustarte