Algoritmos Inicio
Algoritmos Inicio
Algoritmos Inicio
Las variables y las constantes Una variable o una constante es un dato, o conjunto de datos, en la memoria
del ordenador de especial interés para el programa y que recibe un nombre simbólico dentro del código del
programa. Cuando el valor de ese dato puede modificarse, se dice que es una variable, mientras que si no
puede modificarse se dice que es una constante.
Tipos de datos Internamente los ordenadores trabajan con una representación binaria (mediante unos y
ceros) de los números. Esta forma de representar la información es muy adecuada a la hora de fabricar los
circuitos electrónicos ya que:
1. Es la forma más básica de discernir.
2. Un 1 y un 0 son muy diferentes eléctricamente (tradicionalmente son 5 V de diferencia) por lo que es
difícil que se confundan entre sí.
Sin embargo hacer un programa directamente con unos y ceros es prácticamente imposible. Preferimos
utilizar palabras para las instrucciones y números en base 10. De ahí que los lenguajes de programación
ofrezcan la posibilidad de utilizar distintos tipos variables para almacenar la distinta información.
Variables booleanas Una variable booleana sólo puede tener dos valores, verdadero o falso. Para
representar una variable booleana sólo se necesita un bit (precisamente un bit es la cantidad mínima de
información y sólo puede tener dos valores: 1 y 0), haciendo corresponder el valor 1 a verdadero y 0 falso. No
obstante, hay que añadir que, en general, los computadores no son capaces de trabajar directamente con un
solo bit, sino que trabajan con un paquete mínimo de 8 bit. Esta cantidad es conocida como byte.
Existe una serie de operadores que permiten trabajar con variables booleanas, de forma que se pueden
agrupar y formar expresiones complejas. Los más habituales son los siguientes (empleando la sintaxis de
Matlab):
Operador and (&): 1&1=1 1&0=0 0&1=0 0&0=0
Operador or ( | ): 1 | 1 = 1 1|0=1 0|1=1 0|0=0
Operador not (~): ~ 1 = 0 ~0=1
El resultado de una operación AND es verdadero si los dos operandos son verdaderos. El resultado de una
operación OR es verdadero si, al menos, uno de los dos operandos es verdadero.
Números enteros Los números enteros suelen emplearse con gran frecuencia en programación, ya que su
procesamiento es muy rápido y existen muchas operaciones en las que son imprescindibles como, por
ejemplo:
• Como los índices en un vector o matriz
• Como contador del número de iteraciones en un bucle
Debido a limitaciones de memoria no se puede definir un número con una precisión arbitraria. Los lenguajes
de programación pueden definir distintos tamaños para los enteros; empleando, por ejemplo, 8 bits (para
contar desde el 0 hasta el 256), 16 bits (del 0 al 65536 o -32768 a 32761 según se considere el signo o no),
etc.
Con los números enteros se pueden hacer operaciones matemáticas. Los típicos símbolos empleados en los
lenguajes de programación son:
• + para sumar
• - para restar
• * para multiplicar
• / para dividir
Números de coma flotante Los ordenadores trabajan también con números decimales. En este caso el
ordenador trabaja con un número máximo de cifras significativas. La cifras significativas de los números
0.0001562, -1341 y 23740000 son cuatro. Se puede escribir estos números de forma científica de la siguiente
forma: 0.1562*10-3, -0.1341*10+4 y 0.2374*10+8. Los ordenadores codifican los números decimales de una
forma muy parecida.
Por motivos de eficiencia se suelen distinguir dos tipos diferentes: los números de precisión simple (32 bits y 6
o 7 cifras significativas) y los de precisión doble (64 bits y 15 cifras significativas). Con los números en coma
flotante se pueden hacer las mismas operaciones matemáticas que con los números enteros, pero en este
caso, el ordenador considerará los decimales.
Caracteres Al igual que los números los caracteres se codifican de forma binaria. A cada letra del alfabeto se
le asigna un determinado valor que la representa. Evidentemente existen diferentes formas de codificar las
letras. Destacan por su importancia:
• ASCII, emplea 7 bit para representar las letras del alfabeto latino, números y símbolos propios de la lengua
inglesa. Por ejemplo, el carácter ASCII de la letra a es 97.
• ANSI, representa las letras mediante un byte (8 bit). La codificación ANSI extendió la codificación ASCII para
incluir las letras acentuadas y especiales de idiomas como el francés, el alemán o el castellano (el cual tiene
la Ñ).
• UNICODE UTF-16, emplea 2 bytes para representar cualquier carácter en cualquier idioma, lo que incluye el
árabe, hebreo, chino, japonés. Por ejemplo la letra hebrea alef אtiene un código UTF-16 de 1488.
Características de un algoritmo Un algoritmo adecuado será el que presente las siguientes características:
a) Corrección: el algoritmo hace lo que realmente se pide.
b) Inteligibilidad: el algoritmo debe ser claro y fácil de entender, puesto que se escribirá una sola vez, pero
será necesario leerlo muchas más veces para poder mantenerlo y/o modificarlo.
c) Eficiencia: el algoritmo debe llevar a cabo la tarea que se le ha encargado en un tiempo razonable.
d) Generalidad: con pocos cambios, el algoritmo se debe poder adaptar a otros enunciados parecidos.
1. COMPRENDER EL PROBLEMA.
• Leer el problema varias veces
• Establecer los datos del problema
• Aclarar lo que se va a resolver (¿Cuál es la pregunta?)
• Precisar el resultado que se desea lograr
• Determinar la incógnita del problema
• Organizar la información
• Agrupar los datos en categorías
• Trazar una figura o diagrama.
2. HACER EL PLAN.
• Escoger y decidir las operaciones a efectuar.
• Eliminar los datos inútiles.
• Descomponer el problema en otros más pequeños.
3. EJECUTAR EL PLAN (Resolver).
• Ejecutar en detalle cada operación.
• Simplificar antes de calcular.
• Realizar un dibujo o diagrama
4. ANALIZAR LA SOLUCIÓN (Revisar).
• Dar una respuesta completa
• Hallar el mismo resultado de otra manera.
• Verificar por apreciación que la respuesta es adecuada
Así pues, un programa es sólo la codificación de un algoritmo en un lenguaje que el ordenador entienda.
El ordenador procesará nuestros algoritmos, pero para hacerlo es necesario que entienda nuestro lenguaje
algorítmico. Será preciso, pues, transcribir nuestros algoritmos a un lenguaje de programación, es decir, a un
lenguaje capaz de ser comprendido por un ordenador.
(base * altura / 2)
Desarrollar paso a paso las siguientes expresiones. Tener en cuenta la jerarquía de los operadores:
a. (5 + 2) * (4 + 4) = 56 b. 7 + 3 * 2 + (2 - 1) = 14 c. 6 * 2 + 4 * 3 + 5 / 2 = 26,5
d. 5 + 1 * 4 / 2 * 7 - (8 + 2) = 9 e. 8 + (5 * 6) - 6 = 32 f. 9 + 5 * 3 = 24 g. 4 / 2 * (10 - 5) * 3 = 30
EJEMPLO Luisa Fernanda quiere llenar 5 cajas de bombones y sabe que en cada caja hay que incluir 12
bombones de menta, 14 de fresa intensa y 10 de limón. Encontrar al menos dos expresiones equivalentes
para calcular el número de bombones que necesita Luisa Fernanda.
R/.
Expresión 1: 5 * 12 + 5 * 14 + 5 * 10 ¿Qué significa cada producto? ¿Qué significa la suma
de los productos? Expresión 2: 5 * ( 12 + 14 + 10 )
¿Qué representa la suma del paréntesis? ¿Por qué la suma se debe multiplicar por 5?
¿Las dos expresiones dan el mismo resultado?
ACTIVIDAD
da “númeroA 5 (asigna el valor 5 a la Constante númeroA) da “númeroB 8 (asigna el valor 8 a la
Constante númerob)
Utilizando la información de los valores asignados a las Constantes
númeroA y númeroB, evaluar las siguientes expresiones: (cada uno cuanto sale..=)
1. 20 + :númeroA 2. :númeroA + 3 * :númerob 3. :númeroA > :númeroB
4. :númeroA + "123 5. 4 + :númeroA - :númerob
Un Algoritmo está compuesto por instrucciones de diferentes tipos, organizadas secuencialmente, en forma de
estructuras de control. De estas estructuras, las más comunes y que se cubren en esta guía son las
siguientes: • Secuencial. • Iterativa (repetición). • Condicional (decisión, selección).
Una estructura de control se define como un esquema que permite representar ideas de manera
simplificada y que bajo condiciones normales, es constante
EJEMPLO 3-2 Escribir un procedimiento que se llame triangulo para hallar el área de un triángulo
rectángulo cuya Base mide 3 cm, la Altura 4 cm y la Hipotenusa 5 cm. Introducir en el código
comentarios que aclaren lo que está sucediendo en cada uno de los pasos importantes.
R/
ANÁLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente planteado.
Resultados esperados: El área de un triángulo rectángulo.
Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo. La incógnita es el área y todos los valores son
constantes. El valor de la hipotenusa se puede omitir. El estudiante debe preguntarse si sus conocimientos
actuales de matemáticas le permiten resolver este problema; de no ser así, debe plantear una estrategia para
obtener los conocimientos requeridos.
Restricciones: Utilizar las medidas dadas.
Procesos necesarios: Guardar en dos variables (BASE y ALTURA) los valores de Base y Altura; Guardar en
una constante (DIV) el divisor 2; aplicar la fórmula BASE*ALTURA/DIV y guardar el resultado en la variable
AREA; comunicar el resultado (AREA).
SIMBOLOGÍA DE LOS DIAGRAMAS DE FLUJO
La estandarización de los símbolos para la elaboración de Diagramas de Flujo tardó varios años. Con el fin de
evitar la utilización de símbolos diferentes para representar procesos iguales, la Organización Internacional
para la Estandarización (ISO, por su sigla en inglés) y el Instituto Nacional Americano de Estandarización
(ANSI, por su sigla en inglés), estandarizaron los símbolos que mayor aceptación tenían en 1985. Los
siguientes son los PRINCIPALES SÍMBOLOS PARA ELABORAR DIAGRAMAS DE FLUJO:
Inicio/Final Se utiliza para indicar el inicio y el final de un diagrama;
del Inicio sólo puede salir una línea de flujo y al Final sólo debe llegar una línea.
Decisión Indica la comparación de dos datos y dependiendo
del resultado lógico (falso o verdadero) se toma la decisión de seguir un camino del diagrama u otro.
Entrada General Entrada/Salida de datos en General (en esta guía, solo la usaremos para la Entrada).
Iteración Indica que una instrucción o grupo de instrucciones deben ejecutarse varias veces.
Entrada por teclado Instrucción de entrada de datos por teclado. Indica que el computador debe esperar a
que el usuario teclee un dato que se guardará en una variable o constante.
Salida Impresa Indica la presentación de uno o varios resultados en forma impresa.
Llamada a subrutina Indica la llamada a una subrutina o procedimiento determinado.
Salida en Pantalla Instrucción de presentación de mensajes o resultados en pantalla.
Acción/Proceso General Indica una acción o instrucción general que debe realizar el computador (cambios
de valores de variables, asignaciones, operaciones aritméticas, etc).
Conector Indica el enlace de dos partes de un diagrama dentro de la misma página.
Flujo Indica el seguimiento lógico del diagrama. También indica el sentido de ejecución de las operaciones.
Conector Indica el enlace de dos partes de un diagrama en páginas diferentes.