Вы находитесь на странице: 1из 17

ALGORITMOS

“Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. “

Diferencia Entre El Lenguaje Algorítmico Y El Informático.

El lenguaje algorítmico es aquel por medio del cual se realiza un análisis previo del problema a resolver y encontrar un
método que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse,
se le denomina ALGORITMO.

El lenguaje informático es aquel por medio del cual dicho ALGORITMO se codifica a un sistema comprensible por el
ordenador o computadora. Este tipo de lenguaje es más cercano a la máquina que al ser humano y podemos distinguir
distintos tipos dependiendo de la proximidad a la máquina.

 lenguaje de alto nivel: es más cercano a la comprensión humana.


 lenguaje de bajo nivel: es más comprensibles por la máquina.

Planteamientos de Problemas.

Lo que pretende un algoritmo es sintetizar de alguna forma una tarea, cálculo o mecanismo antes de ser transcrito al
ordenador. Los pasos que hay que seguir son los siguientes:

- Análisis previo del problema.


- Primera visión del método de resolución.
- Descomposición en módulos.
- (Programación estructurada).
- Búsqueda de soluciones parciales.
- Ensamblaje de soluciones finales.

Características de un algoritmo

 Finito: el algoritmo debe acabar tras un número finito de pasos. Es más, es casi fundamental que sea en un
número razonable de pasos.

 Objetivo: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda
ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan
mediante un lenguaje formal, ya sea matemático o de programación.

 Efectividad: debe plantearse una solución eficaz de una manera eficiente, entiende por esto que una persona
sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina.

Etapas de un algoritmo

 Entradas: el algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo.
Estas cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas
de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo
real expresadas de tal forma que sean aptas para su interpretación.

 Procesos: en esta etapa se procesan las entradas recibidas a través de cálculos o procesos lógicos o
matemáticos.

 Salidas: el algoritmo tiene una o más salidas, en relación con las entradas. Se presentan en forma
representativa la información resultante de las entradas procesadas.

Pág. 1 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


VARIABLES
Son zonas de memoria cuyo contenido cambia durante la fase de procesamiento de información.

Tipos De Variables De Acuerdo Al Tipo De Dato

 Variables Numéricas (Enteras y Reales)


 Variables Alfanuméricas
o Caracteres alfabéticos
o Dígitos
o Caracteres especiales
 Variables Lógicas (Boolenas)
Son las que únicamente pueden contener dos valores, los cuales son:
o Valor Verdadero ó 1.
o Valor Falso ó 0.

Estos tipos de variables pueden tomar únicamente valores del mismo tipo del cual fueron creadas, es decir si la variable
es entera solamente puede almacenar datos enteros.

Ejemplo:

Una variable declarada como cadena solo puede tomar valores correspondientes a ese tipo.
Nombre = "Manuel López"

Tipos De Variables De Acuerdo A Su Función

 Variables de trabajo: estas se utilizan directamente para almacenar información ya sea por asignación directa
o lectura de pantalla.
Ejemplo:
A=2
B=”casa
Leer(dato1)
Leer(nombre)

 Contadores: son variables numéricas utilizadas para contabilizar. Funcionan en la forma n=n+razón. Ya sea
dentro de un ciclo repetitivo o no. Pueden incrementar o decrementar a una razón constante.
o Ejemplo 1: un contador que incremente en razón de 1 seria. N=n+1
o Ejemplo 2: un contador que incremente en razón de 3 seria. N=n+3
o Ejemplo 3: un contador que decremente en razón de 1 seria. N=n-1

 acumuladores: son variables numéricas utilizadas para totalizar. Funcionan en la forma n=n+valor. Ya sea
dentro de un ciclo repetitivo o no. Pueden incrementar o decrementar con relación a un valor ingresado.
o Ejemplo 1: un acumulador que calcule el total de la venta. total=total+precio
o Ejemplo 2: un acumulador que calcule el total de edades ingresadas. Acutotal=acutotal+edad

 Banderas: Estas son variables de cualquiera de los tres tipos de dato. La cual se utiliza para condicionar una
rutina de acuerdo a su valor. Cualquiera de las variables creadas con las cuales estemos trabajando pueden
tomar la forma de bandera. Estableciendo un condicionante general o un centinela.
Centinela: es un condicionante establecido para cumplirse solo una vez o en casos muy particulares y
específicos.

o Ejemplo 1: ejecutar hasta que no haya más datos para cargar. Mientras(nuevodato==”si”)
o Ejemplo 2: almacenar el primer valor ingresado. Si(datoscargasdos==1) {valor=n}

Pág. 2 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


CONSTANTES

Una constante es un dato numérico o alfanumérico que no cambia durante todo el desarrollo del algoritmo o durante
la ejecución del programa. Es un objeto de valor invariable. Para expresar una constante se escribe explícitamente su
valor.

Tipos de Constantes

 Constantes Numéricas (Enteras y Reales)


 Constantes Alfanuméricas
 Constantes Lógicas (Boolenas)

Las constantes pueden ser:

 Constantes sin nombre: Es una expresión numérica donde se puede utilizar directamente el valor.

 Constantes con nombre: Se hace una reserva de memoria en la cual se guarda el valor que será utilizado como
constante.

Ejemplo:

a) PI = 3.1416

b) E = 2.718228

c) Iva = 0.13

Pág. 3 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


LENGUAJE SLE2

Para el dictado de la cátedra se implementara la utilización de dicho lenguaje el cual es un compilador de pseudocódigo
en español, para una fácil asimilación de los procesos y algoritmos así como también para poder realizar la ejecución y
depuración de las rutinas en tiempo real.

Descargar El Lenguaje Y Manual De Usuario Del Sitio Oficial: hhttps://www.cnc.una.py/sl/SL-index.html

Cuerpo De Un Programa

var
//variable1
//Variable2

Inicio
//Proceso1
//Proceso2

Fin

Comentarios
Los comentarios son notas u observaciones necesarias para comprender el código fuente o rutinas en específico. Es
recomendable y muy conveniente ir marcando con comentarios los procesos muy elaborados o cálculos avanzados.

Comentario de línea: este se señaliza con doble barra “//” sirve para realizar una anotación corta. Ejemplo:

Var
A: numérico//declarar una variable de tipo numérico

Comentario De Párrafo: se señaliza con barra y asterisco para abrir “/*” y se cierra con asterisco y barra “*/”, puede
utilizarse tantos renglones como sea necesario, para observaciones o explicaciones más detalladas. Ejemplo:

/*es recomendable en la cabecera del código fuente siempre colocar la descripción completa de las entradas, procesos
y salidas que realizara el procedimiento o programa*/

var

Es el bloque reservado para la declaración de variables, constantes, estructuras y subrutinas.

Declaración De Variables: se coloca el nombre de la variable seguida de “:” y a continuación el tipo de dato que
contendrá.

Ejemplo:

Var
A: numérico
B: cadena

Características Del Nombre De Una Variable:


a) No se puede repetir.
b) Hace distinción entre mayúsculas y minúsculas.
c) Puede contener números pero no iniciar con números.
d) No debe contener caracteres especiales.

Pág. 4 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


Inicialización De Variables

Si bien las variables de trabajo son cargadas a través de entradas o por asignación directa, hay variables que de acuerdo
a su función deben ser inicializadas antes de ser utilizadas.

 Contadores Y Acumuladores: estas deben ser siempre inicializadas en “0” antes de ser utilizadas. Para evitar
que algún dato residual de algún proceso anterior altere el resultado final.

 Máximos Y Mínimos: ya que estas obtendrán su valor de una serie de datos ingresada, la comparación debe
ser realizada solo entre los valores cargados, por lo cual deben inicializarse con el primer valor leído.

cls()
Sus siglas significan “CLEAR SCREEN”. Este procedimiento permite limpiar la pantalla.

Entradas de Datos

 Asignación Directa: es cuando se asigna directamente un valor a una variable.


Ejemplo:

 Lectura De Pantalla: es cuando se solicita al usuario que ingrese por teclado el valor para luego este ser
almacenado en una variable a través de la función leer (nombre de variable).
Ejemplo:

Salidas de Datos o Impresión a Pantalla


Mediante el procedimiento imprimir() realizamos las salidas impresas en pantalla. Hay distintas formas:

 Impresión De Solo Texto: las leyendas se encierran entre comillas “”.

Pág. 5 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


 Impresión De Texto Acompañado De Una Variable: para separar variables o leyendas entre si se utiliza la
coma “,”.

 Impresión De Variables Y Leyendas Intercaladas:

 Impresión De Cálculos:

 Impresión De Saltos De Renglón: para esto se coloca entre comillas o dentro de la leyenda “\n”. Cada “\n”
representa un salto de renglón.

 Impresión De Tabulaciones: para esto se coloca entre comillas o dentro de la leyenda “\t”. Cada “\t”
representa un tabulado.

Pág. 6 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


Operaciones Matemáticas
 Para expresar los cálculos se utilizan los operadores matemáticos, las variables o constantes según
corresponda.
 Los cálculos matemáticos deben ser expresados de manera lineal al igual que la calculadora.
 Los resultados de los cálculos deben ser almacenados en una variable para se utilizado nuevamente mas tarde
o bien directamente informados a pantalla.

Operadores Matemáticos
Suma +
Resta -
Multiplicación *
División /
Potencia ^
Divisible %

Ejemplo 1: ingresados 2 números informar su suma, resta, multiplicación y división.

Ejemplo 2: ingresado un número y el exponente informar la potencia.

Ejemplo 3: ingresado un número y el índice, informar la raíz.

Para transformar una raíz en una potencia:


1. Escribimos el radicando
2. Lo elevamos a la unidad dividida
por el índice de la raíz.

3. Convirtiendo a expresión lineal de


pseudocódigo seria

12^(1/2)

Pág. 7 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


Operaciones Lógicas – Condicionantes O Bifurcaciones
Además de los cálculos matemáticos, también para la resolución de algoritmos se utilizan las bifurcaciones, que nos
permiten a través de condicionantes realizar la toma de decisiones.

Operadores Lógicos
< Menor
> Mayor
== Igual
<= Menor o Igual
>= Mayor o Igual
<> Distinto

Para Realizar Estas Operaciones Se Utiliza La Función SI()

Cuerpo De La Función

Si (<valor a comparar> <operador lógico> <Valor condicionante>)


{
Acción
…..
Sino
Acción

}
SI() SIMPLE: es cuando una condición da como resultado una única respuesta.

SI() DOBLE: es cuando una condición da dos posibles respuestas, una en caso de cumplirse la condición y otra en caso
de no cumplirse.

Pág. 8 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


SI() COMPUESTO O ANIDADO: es cuando se establecen una o más condiciones en consecuencia de otra condición,
anidadas una dentro de otra.

UNION DE CONDICIONANTES

Operadores Lógicos De Unión


Es el operador Y, este permite unir dos o más condiciones, estableciendo que para q la
And
expresión de verdadera todas condiciones por la que está compuesta deben dar verdadera.
Es el operador O, este permite unir dos o más condiciones, estableciendo que para que la
Or expresión de verdadera al menos una de las condiciones por la que está compuesta debe dar
verdadera
Es el operador NO o NEGACION, este permite negar el resultado de una condición, comúnmente
Not
utilizado para condicionar excepciones.

EJEMPLO 1: (AND) – Ingresado un numero informar si se encuentra comprendido entre 10 y 25.

EJEMPLO 2: (OR) – Ingresado un numero informar si es menor de 25 o superior de 50.

Pág. 9 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


EJEMPLO 3: (NOT) – Ingresado un numero verificar que sea mayor de 10 pero que no sea igual a 15.

SEGÚN SEA – SI() MULTIPLE – SWITCH() - EVAL(): es un condicionante a través del cual una misma variable es evaluada
por diferentes o múltiples condicionantes.

Pág. 10 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


BUCLES O CICLOS REPETITIVOS
Un bucle es una rutina repetitiva que permite ejecutar un mismo conjunto de operaciones una determinada cantidad
de veces.

BUCLE MIENTRAS ()
Este bucle no posee una cantidad de repeticiones establecida, sino que posee una condición establecida, la cual
indicara a modo de centinela si la rutina permanecerá ejecutándose o se detendrá.

EJEMPLO: ingresar números positivos o negativos, el programa terminara al ingresarse un cero.

BUCLE DESDE ()
Utilizamos este bucle cuando se sabe de antemano la cantidad exacta de repeticiones. Utilizamos un contador interno
el cual ira incrementándose automáticamente en cada repetición hasta llegar el límite establecido.

EJEMPLO: ingresar 3 números.

Pág. 11 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


EJERCICIOS RESUELTOS

1. Ingresar por teclado tres números, calcular el promedio e informar por pantalla.

2. Ingresar un valor por teclado, calcular e informar el 20%.

3. Calcular el sueldo de un empleado dados como datos de entrada: el nombre, horas trabajadas y el precio por
hora.

4. Elaborar un algoritmo que obtenga e imprima el valor de Y a partir de la ecuación ingresándose X por teclado.
(Y= 3*2X + 7X – 15)

Pág. 12 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


5. Ingresados dos números informar cual es el mayor o si son iguales.

6. Ingresados tres números informarlos ordenados de menor a mayor.

Pág. 13 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


7. Ingresados 5 números informar cual es el mayor y cuál es el menor.

8. Elabora un algoritmo para leer un número y determinar si es par o impar.

9. Elaborar un algoritmo para leer 3 números y determinar sí uno es la suma de los otros dos.

Pág. 14 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


10. Solicitar un entero y determinar sí es múltiplo de 3 y además que se encuentre en el rango (100-200).

11. Elaborar un algoritmo para leer la fecha de nacimiento de una persona y muestre su edad exacta y signo
zodiacal.

Pág. 15 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


12. Desarrollar un algoritmo que imprima los números impares en orden descendiente que hay entre 1y 50.

13. Ingresada una cantidad indeterminada de números, informar:


a) Cantidad de números pares.
b) Cantidad de números impares.
c) Cantidad comprendidos entre 35 y 62.
d) Mayor numero leído.
e) Menor número leído.
f) Porcentaje de números comprendidos entre 20 y 50.
g) Promedio general.
h) Promedio de números impares.
i) Promedio de números pares

var
n,acupar,acuimpar,conpar,conimpar,con3562,cant,acug,cont,max,min:numerico
rta:cadena
inicio
cls()
acupar=0
acuimpar=0
conpar=0
conimpar=0
con3562=0
cant=0
cont=0
acug=0
imprimir("\n- ¿Ingresar otro numero?(si/no)");leer(rta)
mientras(rta<>"no")
{
imprimir("\n- Ingrese un numero: ");leer(n)
cant=cant+1
acug=acug+n
si(n%2==0)
{
conpar=conpar+1
acupar=acupar+n

Pág. 16 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO


sino
conimpar=conimpar+1
acuimpar=acuimpar+1
}
si(n>=35 and n<=62){con3562=con3562+1}
si(n>=20 and n<=50){cont=cont+1}
si(cant==1)
{
max=n
min=n
sino
si(n>max){max=n}
si(n<min){min=n}
}
imprimir("\n- ¿Ingresar otro numero?(si/no)");leer(rta)
}
cls()
imprimir("Cantidad de numeros pares: ",conpar)
imprimir("\nCantidad de numeros impares: ",conimpar)
imprimir("\nCantidad de numeros comprendidos entre 35 y 62: ",con3562)
imprimir("\nMayor numero leido: ",max)
imprimir("\nMenor numero leido: ",min)
imprimir("\nPorcentaje de números comprendidos entre 20 y 50: ",(cont/cant)*100," %")

si(cant>0)
{
imprimir("\nPromedio general: ",acug/cant)
sino
imprimir("\nNO SE PUEDE CALCULAR PROMEDIO GENERAL, NINGUN VALOR INGRESADO.")
}

si(conpar>0)
{
imprimir("\nPromedio general de numeros pares: ",acupar/conpar)
sino
imprimir("\nNO SE PUEDE CALCULAR PROMEDIO DE NUMEROS PARES, NINGUN VALOR PAR
INGRESADO.")
}

si(conimpar>0)
{
imprimir("\nPromedio general de numeros pares: ",acuimpar/conimpar)
sino
imprimir("\nNO SE PUEDE CALCULAR PROMEDIO DE NUMEROS IMPARES, NINGUN VALOR IMPAR
INGRESADO.")
}

fin

Pág. 17 ALGORITMOS – 1º AÑO – ESPINOSA, FERNANDO ERNESTO

Вам также может понравиться