Este documento proporciona una guía sobre algoritmos y programación en SL. Explica conceptos clave como identificadores, palabras reservadas, tipos de datos, constantes, variables, operadores, condicionales y ciclos. También incluye ejemplos de algoritmos para calcular operaciones matemáticas y el área y perímetro de un triángulo rectángulo. Finalmente, propone ejercicios para practicar los conceptos explicados.
1. GUIA DE ALGORITMOS
Identificadores
Los identificadores son utilizados para dar nombre a los programas, variables, subrutinas,
tipos de datos, constantes y otros elementos de un programa SL.
Existen algunas reglas a tener en cuenta en la creación de identificadores:
1. Deben comenzar con una letra o con el carácter ‘_’ (guión bajo).
2. Pueden tener hasta 32 caracteres.
3. No deben contener espacios.
4. La combinación de mayúsculas y minúsculas en los identificadores hace que los mismos
sean considerados diferentes. En otras palabras: CANTIDAD, cantidad y Cantidad
representan tres identificadores distintos.
5. Pueden incluir las letras ñ y Ñ (eñe minúscula y mayúscula respectivamente).
6. No pueden contener caracteres acentuados.
7. Pueden incluir combinaciones de letras y números y el carácter ‘_’ (guión bajo)
Así, los siguientes son identificadores válidos:
Peso, total_puntos, MAXCOLUMNAS, Resultado, mat2, var_12_meses, sgte_año
Los siguientes no son aceptables como identificadores (las explicaciones van entre
paréntesis):
2da_var (debe empezar con letra o guión bajo)
$prueba (debe empezar con letra o guión bajo)
cant alumnos (contiene un espacio)
tot-puntos (no puede contener guión)
Palabras reservadas
Las palabras utilizadas por SL para propósitos especiales son llamadas “palabras
reservadas”. Dado que las mismas tienen un significado específico para el compilador de
SL, no pueden ser utilizadas como identificadores.
Tabla 4. Palabras reservadas de SL
and hasta paso sino
archivo inicio subrutina tipos
caso lib programa var
const libext ref variables
constantes matriz registro vector
desde mientras repetir
eval not retorna
fin or si
2. Tipos de datos básicos y constantes literales
Tipo de dato básico
Cadena Cualquier secuencia de caracteres ASCII, excepto el carácter NUL (valor ASCII 0). La cadena
vacía se representa por “” y su longitud es 0.
Lógico Los valores TRUE y FALSE, o sus sinónimos SI y NO respectivamente. Estos cuatro
identificadores son constantes predefinidas.
Numérico Valores enteros y reales, con signo o sin signo.
Las cadenas de caracteres
Una cadena es una secuencia de caracteres encerrados entre comillas o apóstrofes.
Los siguientes son ejemplos de cadenas:
“Aprendiendo a programar...”
“Conteste con ‘si’ o ‘no’, por favor”
‘María dijo: “¡Buenos días!”‘
Como puede observarse, cualquier carácter puede ser incluido como parte de la cadena,
excepto el delimitador. Si por ejemplo se desea incluir una comilla en un mensaje, debe
iniciarse y finalizarse la cadena con apóstrofe, y viceversa, o utilizar ”. Las constantes de
cadena deben caber completamente en una línea. Es decir, lo siguiente no es válido
porque la comilla que cierra la cadena aparecerecién en la segunda línea:
texto = “Aprender a programar
es divertido”
Si es necesario distribuir una constante de cadena en más de una línea, puede usarse el
operador de concatenación:
texto = “Aprender a programar” +
“es divertido”
Las secuencias de escape
Las “secuencias de escape” permiten insertar en un programa fuente caracteres que, de
ser tipeados directamente, serían mal interpretados por el compilador. La siguiente tabla
resume estas secuencias y sus significados.
n Inicio de la siguiente línea
r Inicio de la línea actual
t Tabulador
Uso de variables y constantes
Un programa SL debe declarar todas sus variables antes de usarlas. Si bien la declaración
de las variables puede resultar tediosa al principio
Declaración de variables simples
Para declarar una variable, se escribe el nombre seguido de dos puntos (‘:’), seguido del
tipo de dato:
3. var
edad : numerico
nombre : cadena
Si varias variables corresponden al mismo tipo, se las puede declarar de la siguiente
forma:
var
tot_mensual, tot_general : numerico
nombre, apellido : cadena
Los valores por defecto
SL da automáticamente un valor inicial a las variables, dependiendo de qué tipo sean. La
siguiente tabla resume los valores iniciales:
Cadena: Cadena vacía. Es decir, SL implícitamente hace variable = “”
Lógico: Valor lógico falso. Es decir, SL implícitamente hace variable = FALSE
Numérico: Cero. Es decir, SL implícitamente hace variable = 0
Operadores y expresiones
Operadores aritméticos
+ Suma a = b + 10
- Resta a = b – 10
* Multiplicación a = b * 10
/ División. a = 1234 / 10 // producirá 123,4
a = int (1234 / 10) // producirá 123
% Módulo. Calcula el resto de dividir el primer operando por el segundo
a = 10 % 3 // producirá 1
a = 10.4 % 3.01 // producirá también 1
^ Potenciación. a = 2 ^ 4 // producirá 16
a = 2 ^ 0.5 // producirá 1.41421
- Cambio de signo a = 10; b = -a // b tendrá –10
+ Identidad de signo. El signo del operando al que se aplica queda inalterado.
a = -10; b = +a // b tendrá –10
Operadores lógicos
and Conjunción // está a entre 1 y 100?
si ( a >= 1 and a <= 100 )
{
...
}
or Disyunción extraño = 100 > 2000 or 1 < 10
La variable “extraño”, que debió se declarada como de tipo lógico, tendrá el valor de verdad
verdadero, ya que 1 es menor que 10, a pesar de que 100 no es mayor que 2000.
not Negación extraño = not(1 < 10)
La variable “extraño”, que debió se declarada como de tipo lógico, tendrá el valor de verdad falso.
Los paréntesis no son necesarios aquí, aunque deseables por claridad.
4. Operadores relacionales
< Menor que a < 20
> Mayor que a > 1
<= Menor o igual que a <= 20
>= Mayor o igual que a >= 20
== Igual que a == b
<> Distinto de a <> b
Sentencia condicional (si)
si ( condicion )
{
sentencias...
sino
sentencias...
}
La cláusula sino y las sentencias correspondientes son opcionales: solo se usan cuando el
programa necesita tomar acciones si la condición es falsa.
Ciclo mientras
mientras ( condición )
{
sentencias...
}
El bucle mientras permite ejecutar un bloque de instrucciones mientras que una
expresión lógica dada se cumpla, es decir, mientras su evaluación dé como resultado
verdadero.
La expresión lógica se denomina condición y siempre se evalúa antes de ejecutar el
bloque de instrucciones. Si la condición NO se cumple, el bloque NO se ejecuta. Si la
condición SÍ se cumple, el bloque SÍ se ejecuta, después de lo cual la instrucción vuelve a
empezar, es decir, la condición se vuelve a evaluar.
En el caso en que la condición se evalúe la primera vez como falsa, el bloque de
instrucciones no será ejecutado, lo cual quiere decir que el número de repeticiones o
iteraciones de este bloque será cero. Si la condición siempre evalúa como verdadera, la
instrucción se ejecutará indefinidamente, es decir, un número infinito de veces
5. Ciclo repetir...hasta
repetir
sentencias...
hasta ( condicion_de_fin )
El bucle REPETIR… HASTA es similar al bucle mientras, la diferencia radica en el momento
de evaluación de la condición.
En el bucle REPETIR… HASTA la condición se evalúa después de ejecutar el bloque de
instrucciones, por lo tanto, el bloque se ejecuta por lo menos una vez. Este bloque se
ejecuta nuevamente si la condición evalúa como verdadero, y no se ejecuta más si se
evalúa como falso.
Ciclo desde
desde variable_de_control = valor_inicio hasta valor_fin [paso
incremento]
{
sentencias...
}
El bucle desde ejecuta un bloque de instrucciones un número determinado de veces. Este
número de veces está determinado por una variable controladora que toma valores desde
un valor inicial hasta un valor final.
En cada bucle después de ejecutar el bloque de instrucciones, la variable controladora es
incrementada en un valor llamado incremento automáticamente y en el momento en
que la variable sobrepasa el límite superior el bucle termina.
De la definición de bucle desde se puede inferir que el bloque de instrucciones no se
ejecuta si el límite inferior es mayor al límite superior.
6. Ejercicios resueltos
1. Diseñar el algoritmo correspondiente a un programa que pida por teclado dos números
enteros y muestre su suma, resta, multiplicación, división y el resto (módulo) de la
división. Si la operación no es conmutativa, también se mostrará el resultado invirtiendo
los operadores.
7. 2. Diseñar el algoritmo correspondiente a un programa que calcule el área y el perímetro
de un triángulo rectángulo dada la base y la altura.
/* para calcular el area de un triangulo retangulo se usa la
formula (base x altura)/2, el perímetro es base + altura +
hipotenusa y la hipotenusa se calcula con raíz cuadrada de Hipotenusa
(base al cuadrado x altura al cuadrado)*/ Altura
var
base: Numérico
altura: Numérico Base
area: Numérico
hipotenusa: Numérico
perímetro: Numérico
inicio
cls()
imprimir (“Digite la base y la altura del triangulo”)
Leer (base, altura)
area = base * altura / 2
hipotenusa = Raiz (base^2 + altura^2)
perimetro = base + altura + hipotenusa
imprimir (“Área = “, area)
imprimir (“Perímetro = “, perímetro)
FIN
Ejercicios Propuestos
1. Imprimir un listado con los números del 1 al 100 cada uno con su respectivo cuadrado
2. Imprimir los números de 1 a N (siendo N un número que se lee).
3. Leer un dato y almacenarlo en la variable n. Calcular el valor de 2 elevado a la potencia
n
4. Leer un dato y almacenarlo en la variable n, leer otro dato y almacenarlo en la variable
x. Calcular el valor de x elevado a la potencia n