0% encontró este documento útil (0 votos)
21 vistas

Algoritmos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas

Algoritmos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

Algoritmos

 Un algoritmo es una secuencia de pasos o instrucciones bien definidas


que se utilizan para resolver un problema o realizar una tarea específica.

 Los algoritmos pueden ser expresados en lenguaje natural,


pseudocódigo o en un lenguaje de programación.

Un algoritmo en programación es un conjunto de instrucciones


definidas, ordenadas y acotadas para resolver un problema, realizar un
cálculo o desarrollar una tarea. Es decir, es un procedimiento paso a
paso para conseguir un fin. Los algoritmos son el paso previo a escribir
el código en programación. Todos los programas informáticos están
diseñados a base de algoritmos. Los algoritmos están presentes en
todos los campos de nuestra vida cotidiana.

Crear un algoritmo implica seguir un proceso estructurado para resolver


un problema o realizar una tarea específica.

1. Definir el problema: Comienza por entender claramente el problema que

deseas resolver. ¿Cuál es la entrada? ¿Cuál es la salida esperada?

2. Identificar las entradas y salidas: Determina qué datos o información

necesitas para resolver el problema y cuál será el resultado final.

3. Diseñar una estrategia general:

o Divide y vencerás: Divide el problema en subproblemas más pequeños

y resuelve cada uno por separado.

o Iterativo: Diseña un proceso que se repita hasta alcanzar la solución.


o Recursivo: Si es apropiado, utiliza llamadas recursivas para resolver

partes del problema.

4. Escribe los pasos en pseudocódigo o diagrama de flujo:

o Pseudocódigo: Describe los pasos en un lenguaje similar al código, pero

sin preocuparte por la sintaxis específica de un lenguaje de

programación.

o Diagrama de flujo: Representa los pasos como símbolos conectados por

flechas.

5. Refina y prueba tu algoritmo:

o Verifica si tu algoritmo cumple con los requisitos del problema.

o Prueba con diferentes entradas para asegurarte de que funcione

correctamente.

La diferencia entre un algoritmo y un programa:


1. Algoritmo:
o Un algoritmo es una secuencia de pasos lógicos y bien definidos que se
siguen para resolver un problema o realizar una tarea específica.
o No está ligado a un lenguaje de programación en particular; es
independiente del código.
o Puede expresarse en pseudocódigo, diagramas de flujo o simplemente
en lenguaje natural.
o Ejemplo: Imagina un algoritmo para encontrar el máximo común divisor
(MCD) de dos números.
2. Programa:

Un programa es la implementación concreta de un algoritmo en un


lenguaje de programación específico.

Está compuesto por instrucciones escritas en un lenguaje de


programación (como Python, Java, C++, etc.).

El programa toma entradas, procesa datos y produce salidas según las


reglas definidas por el algoritmo.

En resumen, el algoritmo es la idea abstracta y general de cómo


resolver un problema, mientras que el programa es la implementación
concreta de ese algoritmo en un lenguaje específico.

Los tipos de operadores en algoritmos son fundamentales para realizar


cálculos y tomar decisiones en la programación. Aquí tienes una breve
descripción de los tipos más comunes:

1. Operadores Aritméticos: Estos operadores se utilizan para realizar


cálculos matemáticos. Algunos ejemplos son:
o Suma (+): Suma dos valores.
o Resta (-): Resta un valor de otro.
o Multiplicación (*): Multiplica dos valores.
o División (/): Divide un valor entre otro.
o Módulo (%): Devuelve el residuo de la división entre dos valores.

2. Operadores Lógicos: Estos operadores se utilizan para evaluar


condiciones lógicas. Los más comunes son:
o Y (&& o and): Devuelve verdadero si ambas condiciones son
verdaderas.
o O (|| o or): Devuelve verdadero si al menos una de las condiciones es
verdadera.
o NO (! o not): Invierte el valor de una condición.

3. Operadores de Comparación: Estos operadores se utilizan para


comparar valores. Algunos ejemplos son:
o Igual (==): Comprueba si dos valores son iguales.
o Distinto (!=): Comprueba si dos valores son diferentes.
o Mayor que (>): Comprueba si un valor es mayor que otro.
o Menor que (<): Comprueba si un valor es menor que otro.

4. Operadores de Asignación: Estos operadores se utilizan para asignar


valores a variables. Por ejemplo:
o Asignación (=): Asigna un valor a una variable.
o Incremento (+=): Aumenta el valor de una variable en una cantidad
específica.
o Decremento (-=): Disminuye el valor de una variable en una cantidad
específica.
5. Operadores de Cadena: Estos operadores se utilizan para manipular
cadenas de texto. Por ejemplo:
o Concatenación (+): Combina dos cadenas en una sola.

6. Operadores de Bit: Estos operadores trabajan a nivel de bits. Algunos


ejemplos son:
o AND a nivel de bits (&): Realiza una operación AND bit a bit.
o OR a nivel de bits (|): Realiza una operación OR bit a bit.
o Desplazamiento a la izquierda (<<): Desplaza los bits hacia la izquierda.

7. Operadores de Condición: Estos operadores se utilizan para crear


expresiones condicionales.

Los operadores lógicos son fundamentales para evaluar condiciones en


la programación.
1. AND (&&): Devuelve verdadero si ambas condiciones son verdaderas.
Por ejemplo:

Si tenemos dos variables booleanas a y b, la expresión a && b será


verdadera solo si a y b son verdaderas.

2. OR (||): Devuelve verdadero si al menos una de las condiciones es


verdadera. Por ejemplo:

Si tenemos dos variables booleanas x y y, la expresión x || y será


verdadera si x es verdadera o si y es verdadera.

3. NOT (!): Invierte el valor de una condición. Por ejemplo:

Si tenemos una variable booleana z, la expresión !z será verdadera


si z es falsa y viceversa.

Ejercicios con tablas de verdad (Algebra Booleana)

Resolver ejemplos de tablas de verdad….


Un algoritmo sirve para tomar una decisión de manera controlada o para
resolver paso a paso un problema. Con ese sentido se utilizan los
algoritmos en la matemática y la lógica: muchos de los procedimientos
tradicionales de cálculo consisten en aplicar un algoritmo.

Características de los algoritmos


Los algoritmos tienen las siguientes características generales:

 Son secuenciales. Operan en secuencia: deben procesarse uno a la


vez, comenzando por las primeras instrucciones y avanzando
linealmente hacia las últimas.
 Son precisos y específicos. Las instrucciones que los componen no
pueden ser ambiguas o subjetivas, sino directas, fáciles de seguir y lo
menos generales posible.
 Son ordenados. Deben leerse en un orden específico para que tengan
sentido. Descolocar un algoritmo o un elemento del algoritmo puede
invalidar a los demás.
 Son finitos. Tienen un inicio y un fin determinados.
 Son definidos. Un mismo algoritmo debe dar siempre los mismos
resultados si es alimentado por los mismos elementos.

Ejemplos
1. Algoritmo para sumar dos números:

Inicio

Leer num1

Leer num2

suma = num1 + num2

Escribir "La suma es: ", suma

Fin
2. Algoritmo para encontrar el número mayor entre dos números:

Inicio

Leer num1

Leer num2

Si num1 > num2 Entonces

maximo = num1

Sino

maximo = num2

FinSi

Escribir "El número máyor es: ", maximo

Fin

1. Algoritmo para encontrar el número más grande en una lista:

Inicio

Leer lista de números

maximo = primer elemento de la lista

Para cada elemento en la lista Hacer

Si elemento > maximo Entonces

maximo = elemento

FinSi

FinPara

Escribir "El número más grande es: ", maximo

Fin
Diagramas de flujo
Los diagramas de flujo son una herramienta visual utilizada en
programación para representar la lógica de un algoritmo o proceso.

algunos puntos clave sobre ellos:

1. Representación gráfica: Los diagramas de flujo se crean mediante


símbolos y líneas conectadas. Cada símbolo representa una acción o
decisión, y las líneas indican el flujo de control.

2. Símbolos comunes:
o Inicio/Fin: Representa el inicio o fin del programa.
o Proceso: Representa una acción o cálculo.
o Decisión: Representa una condición (por ejemplo, “¿es x mayor que
y?”).
o Entrada/Salida: Representa la entrada o salida de datos.
El pseudocódigo
Es una forma de representar algoritmos utilizando un lenguaje de
programación simplificado que se asemeja al lenguaje humano. Es una
herramienta utilizada en programación para planificar y diseñar algoritmos
antes de implementarlos en un lenguaje de programación específico.

El objetivo principal del pseudocódigo es proporcionar un medio para


comunicar la lógica de un algoritmo de manera clara y comprensible, sin
preocuparse por los detalles específicos de implementación de un lenguaje
de programación en particular. Esto permite a los programadores planificar
y diseñar algoritmos de manera más eficiente antes de comenzar la
codificación real.

Características:

Claridad y legibilidad: El pseudocódigo se utiliza para describir la solución


de un problema de manera lógica y clara.

Independencia de lenguaje: El pseudocódigo no está asociado a un


lenguaje de programación en particular, lo que permite que los
programadores lo utilicen como una representación independiente de la
implementación.

Flexibilidad: El pseudocódigo es flexible y permite a los programadores


expresar la lógica de un algoritmo sin estar limitados por la sintaxis y las
reglas de un lenguaje de programación en particular.

Planificación y diseño: El pseudocódigo se utiliza ampliamente en la etapa


de planificación y diseño de un proyecto de programación.

Enseñanza y aprendizaje: El pseudocódigo también es utilizado como una


herramienta de enseñanza en cursos de programación.
Declaración de Constantes y Variables

En el pseudocódigo, puedes declarar constantes y variables para almacenar


valores y utilizarlos en tu algoritmo.

Declaración de constantes:

Las constantes son valores que no cambian a lo largo del programa. Se


utilizan para representar valores fijos como números, cadenas de texto o
cualquier otro tipo de dato.

CONST nombre_constante = valor

CONST PI = 3.1416

Constantes: celdas cuyo valor nunca cambia durante la ejecución del programa.

Declaración de variables:

Las variables son espacios de almacenamiento que se utilizan para guardar


y manipular valores en un programa. En el pseudocódigo, las variables se
declaran indicando su tipo de dato y un nombre descriptivo.

tipo_dato nombre_variable

ENTERO edad

CADENA nombre

BOOLEANO esMayor

REAL precio

------------------------------
ENTERO contador = 0

CADENA mensaje = "Hola"

BOOLEANO bandera = VERDADERO

REAL pi = 3.14

Variables: celdas cuyo valor cambia durante la ejecución del programa. Cuando esto ocurre, el
valor viejo es reemplazado por el nuevo sin modificar el tamaño de la celda.

No es necesario especificar el tipo de dato de las variables, pero es una


buena práctica hacerlo para mantener la claridad y evitar confusiones.
Una vez que has declarado tus constantes y variables, puedes utilizarlas en
tu algoritmo para almacenar y manipular datos según sea necesario.

TIPOS DE DATOS Y EXPRESIONES

TIPOS DE DATOS

Todo dato que se utilice en un programa de computador debe ser almacenado en memoria. La
memoria del computador está dividida en “pedazos” del mismo tamaño dentro de los cuales se
puede guardar información. Cada “pedazo” es una celda y cada celda tiene asociada una
dirección única en memoria que permite conocer su ubicación y acceder la información
contenida en ella para consultarla, modificarla o borrarla.
Los datos se pueden clasificar en: Simples o Estructurados, según la cantidad de celdas que se
utilicen para almacenarlos. Los tipos Simples utilizan una sola celda, los Estructurados, más
de una dependiendo de la cantidad de datos a almacenar.

Los tipos de datos simples que existen en el pseudocódigo son:

1. Numéricos
Que a su vez se clasifican en:

a) Enteros
Ejemplo: 3, -3, 1234, 0, 6 -45

b) No Enteros o Número con Punto Decimal


Ejemplo: 3.5, -2.02, 4.3

2. Lógicos o Booleanos
Representan sólo dos valores: falso o verdadero, o en inglés false o true, que se abrevian con F
y V.

Verdadero Falso
True False
VF

3. Caracteres

Pueden ser una letra del alfabeto, un dígito o un símbolo especial (incluido el espacio en
blanco), a todos estos se les conoce como símbolos alfanuméricos.

Ejemplo de letras: a, b, c; A, B, C
Ejemplo de dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Ejemplo de símbolos: +, /, *, ?, %, $, #, !, , ä, .

Este tipo de datos se escribe entre comillas simples, por ejemplo:


En este caso los dígitos entre comillas son totalmente diferentes a los datos tipo Numérico, por
tratarse de caracteres no pueden ser empleados en operaciones aritméticas.

Entre comillas puede haber más de un carácter, a esto se le conoce como cadena de caracteres
o simplemente cadena. Las cadenas se escriben entre comillas dobles en lugar de comillas
simples, y son un tipo de dato estructurado porque requieren más de una celda.

Por ejemplo:
“hola” “0987hn” “casa” “pedro”

La cantidad de celdas depende de la cantidad de caracteres que se encuentran entre comillas,


por ejemplo:

IDENTIFICADORES
En un programa de computador, las celdas no se reconocen por su dirección sino por un nombre
o identificador. El identificador de la celda debe iniciar con una letra posterior a ella pueden
existir más letras o números; el único símbolo permitido en un identificador es el guion bajo ‘_’.
En pseudocódigo los identificadores son sensibles a mayúsculas y minúsculas, lo que significa
que Suma, suma y SUMA no son el mismo identificador, por lo tanto, corresponden a tres celdas
diferentes.

EXPRESIONES ARITMÉTICAS, RELACIONALES

Operadores Aritméticos
Son utilizados para construir expresiones aritméticas, los operandos son datos de tipo
numéricos y el resultado obtenido también es numérico. En pseudocódigo existen los siguientes
operadores aritméticos.

Los operadores MOD y DIV son utilizados para obtener el residuo y el cociente respectivamente
en una operación de división pero, a diferencia del operador /, cuando se usa MOD o DIV, la
división es entera, es decir, nunca el resultado será un número decimal.
Precedencia
Los operadores aritméticos tienen una precedencia que indica cuál de ellos debe resolverse
primero.

3 + 5 * 2 primero se resuelve la multiplicación, luego la suma.


7 / 2 ** 4 primero se resuelve la potencia, luego la división.

Asociativos
Adicionalmente los operadores pueden ser asociativos por la derecha o por la izquierda, lo que
significa que, si en una expresión aritmética todos los operadores son el mismo, se resolverán
de izquierda a derecha en orden o viceversa, dependiendo del operador.

3 + 4 + 5 primero se suma 3 + 4 al resultado se le suma el 5.


2 ** 3 ** 6 el 2 se eleva al resultado obtenido de elevar 3 a la 6 primero.

Una expresión aritmética puede contener paréntesis, lo cual modifica la precedencia y/o
asociación de los operadores. Los paréntesis deben resolverse primero.

(3 + 5) * 2 primero se resuelve la suma, luego la multiplicación.


2 ** (6 / 3) primero se resuelve la división, luego la potencia.
Operadores aritméticos y algorítmicos
Existen ecuaciones matemáticas que incluyen otros operadores que pueden ser convertidas
en expresiones algorítmicas usando los operadores aritméticos mencionados.

En el pseudocódigo existen algunas operaciones que también pueden ser resueltas directamente,
sin necesidad de conversión, a este tipo de operaciones se les conoce como funciones.

La función raíz cuadrada en el pseudocódigo tiene el siguiente formato:

Raíz ( )

Dentro de los paréntesis se coloca el valor al cuál se le desea sacar la raíz cuadrada, puede ser
una expresión o un número.

Entonces una misma expresión aritmética se puede convertir a algorítmica de dos maneras:

Recuerde que la función Raíz se puede usar únicamente para obtener la raíz cuadrada y que las
letras que no tienen comillas simples son nombres de variables.
Las funciones trigonométricas como seno, coseno y tangente tienen su representación en el
pseudocódigo así:

Sen ( ) Cos ( ) Tan ( )

Operadores Relacionales
Son utilizados para construir expresiones relacionales o de comparación, estas expresiones
incluyen el manejo de todos los tipos de datos y el resultado obtenido es Verdadero o Falso.
En el Pseudocódigo existen los siguientes operadores relacionales,

Operadores Lógicos

Son utilizados para construir expresiones lógicas, estas expresiones incluyen el manejo de sólo
los tipos de datos lógicos o booleanos y el resultado obtenido es Verdadero o Falso. Dentro de
estos operadores existe uno solo que no necesita de dos operandos, el NOT, lo que lo convierte
en un operador unario. En el Pseudocódigo existen los siguientes operadores lógicos,
Los operadores lógicos, como los aritméticos, tienen precedencia de operadores y son
asociativos por la izquierda.

NOT ( (V OR F ) AND V )
Primero se resuelve el paréntesis interno, quedando NOT ( V AND V ).
Luego se resuelve el siguiente paréntesis, quedando NOT V.
Por último, se aplica la negación, dando como resultado final F.
Resume la precedencia de todos los operadores

Instrucciones selectivas
Las instrucciones selectivas son estructuras de control que permiten
tomar decisiones en función de condiciones específicas. En el
pseudocódigo, hay diferentes tipos de instrucciones selectivas:

 simples,
 dobles,
 anidadas
 y múltiples.
1. Instrucción selectiva simple:

La instrucción selectiva simple se utiliza cuando se desea tomar una


decisión basada en una única condición.

SI condición ENTONCES

// Bloque de código si se cumple la condición

FIN SI

--------------------------------------------------------------------

SI edad >= 18 ENTONCES

ESCRIBIR "Eres mayor de edad"

FIN SI

2. Instrucción selectiva doble:

La instrucción selectiva doble se utiliza cuando se desea tomar una


decisión basada en dos posibles resultados de una condición.

SI condición ENTONCES

// Bloque de código si se cumple la condición

SINO

// Bloque de código si no se cumple la condición

FIN SI

----------------------------------------------------------------------------

SI puntaje >= 60 ENTONCES

ESCRIBIR "Aprobado"

SINO

ESCRIBIR "Reprobado"

FIN SI
3. Instrucción selectiva anidada:

La instrucción selectiva anidada se utiliza cuando se desea tomar


decisiones en función de múltiples condiciones anidadas.

SI condición1 ENTONCES

// Bloque de código si se cumple la condición1

SINO SI condición2 ENTONCES

// Bloque de código si se cumple la condición2

SINO

// Bloque de código si no se cumple ninguna condición anterior

FIN SI

--------------------------------------------------------------------

SI hora >= 6 Y hora < 12 ENTONCES

ESCRIBIR "Buenos días"

SINO SI hora >= 12 Y hora < 18 ENTONCES

ESCRIBIR "Buenas tardes"

SINO

ESCRIBIR "Buenas noches"

FIN SI

4. Instrucción selectiva múltiple:

La instrucción selectiva múltiple se utiliza cuando se desea tomar


decisiones en función de múltiples condiciones independientes. En
algunos lenguajes de programación se conoce como "switch" o
"case". En el pseudocódigo, puedes lograr una instrucción selectiva
múltiple utilizando una serie de instrucciones selectivas simples.
SEGUN variable

CASO valor1:

// Bloque de código si la variable es igual a valor1

CASO valor2:

// Bloque de código si la variable es igual a valor2

CASO valor3:

// Bloque de código si la variable es igual a valor3

OTRO:

// Bloque de código si la variable no coincide con ningún valor anterior

FIN SEGÚN

--------------------------------------------------------------------
SEGUN diaSemana

CASO 1:

ESCRIBIR "Lunes"

CASO 2:

ESCRIBIR "Martes"

CASO 3:

ESCRIBIR "Miércoles"

CASO 4:

ESCRIBIR "Jueves"

CASO 5:

ESCRIBIR "Viernes"

CASO 6:

ESCRIBIR "Sábado"

CASO 7:

ESCRIBIR "Domingo"

OTRO:

ESCRIBIR "Día inválido"

FIN SEGUN

También podría gustarte