Contenido de Algoritmos
Contenido de Algoritmos
Introducción:
Diariamente nos enfrentamos a problemas y como tal, estos problemas nos exigen una
solución “ingeniosa”.
No siempre la solución que generamos es la más “óptima”.
La manera de responder a una necesidad difiere de una persona a otra.
Se hace necesaria una forma estándar de pensamiento que norme las acciones que
realizaremos.
Las mejores soluciones no son las más complejas; sino aquellas que son funcionalmente
ingeniosas.
Para obtener soluciones ingeniosas debemos de hallar la manera correcta de llevar a cabo
la misma, y de forma repetitiva.
Cuando hallamos la forma correcta de ejecutar una solución, y la podemos describir
formalmente, desarrollamos un ALGORITMO.
1. Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una
tarea o resolver un problema.
2. Un conjunto de reglas bien definidas para la solución de un problema en un número finito
de pasos.
3. Procedimiento lógico-matemático, aplicado para resolver un problema.
4. Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción
determinada.
Los algoritmos pueden ser: Cualitativos: son los algoritmos que resolvemos por medio o a través
de las palabras. Cuantitativos: son algoritmos que resolvemos por medio de la lógica, números y
operadores.
a) Es finito
b) Es secuencial
c) Es determinístico.
Diseño de soluciones:
Diagrama de flujo o Flujograma: es la representación gráfica donde se muestran los pasos a seguir
para la solución del problema. Debe ser Simple claro y General. Y debe indicar claramente su inicio
y su fin.
1. Encabezado: es la parte donde debemos identificar con un nombre apropiado, una breve y
clara explicación de su razón de ser.
2. Sección de Declaraciones: Declaración de tipos: un tipo es el nombre asignado a un
conjunto de datos que cumplen ciertas características distintivas. Una clasificación básica y
simple de los tipos de datos es la siguiente: Tipos predefinidos: son los que incluyen la
gramática del lenguaje utilizado. Y Tipos definidos por el Usuario: como su nombre lo
indica, son tipos de datos creados por el usuario basándose en algún tipo de dato
predefinido.
3. Declaración de Constantes y Variables: Constantes: son todos aquellos valores que no
pueden cambiar en un proyecto, y por lo tanto tienen valor fijo. Variables: si se pueden
cambiar su valor.
4. Tipos de datos: los tipos de datos predefinidos son la base para la manipulación de datos.
Los tipos de datos considerados básicos son:
Tipos de datos: Entero: Representa un subconjunto de todos los números. Los tipos
genéricos enteros son: enteros y cardinales. Un número entero figura en un rango de -
2147483648 a 2147483647. Un número cardina sin signo puede estar desde 0 a
4294967295. Carácter: Un carácter puede tomar cualquier valor del sistema de
codificación alfanumérico que se acuerde utilizar. Lógico: El tipo de dato lógico es
conocido también como booleano en honor al matemático inglés George Boole (1815-
1864). Los valores lógicos pueden ser únicamente: falso o verdadero.
5. Cuerpo del Algoritmo: El cuerpo del algoritmo es la sección en la que se escriben las
instrucciones que solucionan un problema en particular, el cuerpo del algoritmo inicia con
una palabra reservada INICIO y luego las instrucciones que resuelven el problema, para
finalizar con la palabra reservada FIN ALGORITMO y opcionalmente, el identificador del
algoritmo que finaliza.
6. Expresiones: si se observa con determinación las instrucciones escritas en cualquier
lenguaje de programación, notara que está llena de expresiones. Una expresión puede
estar en: una asignación, una instrucción de salida, los límites y los saltos de un ciclo desde
los índices de conjuntos y arreglos de datos, las condiciones, los parámetros de su
algoritmo. Tipos de expresiones: aritméticas y lógicas.
EXPRESIONES OPERADORES ARITMÉTICOS:
OPERADOES DIV Y MOD: Los operadores aritméticos DIV y MOD pueden ser aplicados
únicamente a operadores con números enteros y el resultado que producen también es
un número entero. Para el operador DIV, el resultado es la parte entera de la división. Para
el operador MOD, el resultado es el residuo de la división. Por ejemplo:
EXPRESIONES LÓGICAS: Una expresión lógica es aquella cuya evaluación general como
resultado da un valor lógico, es decir, verdadero o falso. Ejemplo: 5>3 expresión lógica con
valor verdadero.
Precedencia de operadores: Dado que una sola expresión puede contener una gran
cantidad de operandos y operadores, se hace necesario establecer el orden de
precedencia con el que los operadores serán aplicados. Ejemplo: 1+2*4 ¿Cuál es el
resultado 12 o 9?
La precedencia de operadores o reglas de prioridad tienen por objeto establecer el orden
en que los operadores deben ser aplicados a los operandos indicados en una expresión.
BLOQUES DE SENTENCIA
C++ define el tipo bool que tiene dos literales, false y true. Una expresión booleana o lógica es,
por consiguiente, una secuencia de operandos y operadores que se combinan para producir
uno de los valores false o true. Operadores como == o <= que comprueban una relación entre
dos operandos se llaman operadores relacionales y se utiliza en expresiones de la forma:
expresión1_operador_relacional_expresión2
Los operadores lógicos se utilizan con expresiones para devolver un valor verdadero o falso
(true o false). Se denominan también operadores booleanos. Los operadores lógicos de C++
son: not(!), and(&&), y or(||). El operador not produce falso si su operando es verdadero, y
viceversa. El operador and produce verdadero sólo si ambos operandos son verdaderos, si
cualquiera de los operandos es falso, produce falso. El operador or produce verdadero si
cualquiera de los operandos es verdadero, y falso en caso de que los dos operandos sean
falsos.
ESTRUCTURA DE SELECCIÓN IF: La sentencia IF-ELSE, elige entre varias alternativas en base al
valor de una o más expresiones booleanas. La SINTAXIS de la Sentencia IF-ELSE es la siguiente:
Sentencia if-else
If(expresión booleana)
< Bloque de sentencia>
Else
If(expresión booleana)
< Bloque de sentencia>
Else
< Sección de sentencia>
ESTRUCTURA SWITCH: Aunque la sentencia if de C++ es muy potente, en ocasiones su
escritura puede resultar tediosa, sobre todo en casos en los que el programa presenta varias
elecciones después de chequear una expresión: selección múltiple o multialternativa. En
situaciones donde el valor de una expresión determina qué sentencias serán ejecutadas es
mejor utilizar SWITCH en lugar de IF. La SINTAXIS de la sentencia SWITCH es:
Switch (opción){
Case1: suma=a+b;
Case2: resta=a+b;
Case3: multi=a*b;
Case4: divi= a/b;
Break;
Default:
Cout<<”opción inválida”;
}