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

Algoritmos ( IEK, IEL.

ICM, IA)
Ao 2016 - 1-marzo-2016 - Prctica de SL en Sala de Mquinas
Objetivo de la clase
Familiarizar al alumno con el entorno de programacin SL para la representacin y ejecucin de
algoritmos de solucin computacional. Resolver ejercicios algortmicos de tipo lineal.
Sugerencia:
Al escribir cdigo de programa es importante que pueda leerse fcilmente. Para ello puede utilizar la cantidad de lineas en
blanco as como sangras y tabulaciones suficientes. En el ejemplo del ejercicio 1 puede notar que las palabras reservadas se
encuentran ms a la izquierda que el cdigo que escribe de forma que puede notar fcilmente la estructura del programa
(cabecera, definicin de variables y cuerpo).
Todas las soluciones debe alzar a Educa. Indique en cada solucin el nombre de los integrantes del grupo (como
comentario). Esta se considerar como asistencia a la clase. Debe nombrar sus ejercicios de acuerdo al nmero,
comprimirlos (.zip o .rar) y alzar un solo archivo.
Ejercicio 0
Ingrese al entorno de SL ( generalmente se encuentra instalado en c:\archivos de programa\SLE2 ) o puede accederlo
desde: Inicio->Programas->SLE
Ejercicio 1
Escriba el cdigo correspondiente a la solucin de clculo de
circunferencia y crculo que se presenta en el cuadro de la derecha.
Para ello seleccione Archivo->Nuevo.
Compile el programa (Ejecutar->Compilar o puede usar la
combinacin de teclas ALT-F9), el entorno le pedir un nombre de
archivo. Es conveniente que coloque su programa en algn lugar
fcilmente recordable, por ejemplo en el directorio
<Escritorio>\alg2016. Si no existe este directorio, crelo. Nombre su
programa con algn nombre que tenga relacin con el cdigo que
contiene. En este caso un nombre adecuado seria: calc_cia_co.

programa calc_cia_co
var
cia, co : numerico
diametro : numerico
inicio
leer(diametro)
cia = 2 * 3.14 * diametro / 2
co = 3.14 * (diametro / 2) ^ 2
imprimir (La circunferencia es , cia )
imprimir (El circulo es , co )
fin

Si su programa tiene algn error el compilador le dar el mensaje de error en un cuadro de dilogo y el cursor se posicionar en
el lugar donde se encontr el error (dejar la lnea en rojo). Para comprobar esto puede introducir intencionalmente algunos
errores, ejemplos: No declare una variable; coloque en mayscula alguna palabra reservada como var, inicio o fin; olvide algn
parntesis que cierra la llamada a una funcin; trate de asignar a una constante una expresin, etc.
Puede ejecutar su programa mediante la opcin del men Ejecutar->Ejecutar , la combinacin de teclas ALT+F9 o mediante el
botn de herramienta que se encuentra debajo del men. Al ejecutar aparecer la venta de ejecucin, la entrada y salida se
realiza a travs de esta ventana.
Notar que las palabras reservadas, constantes literales y tipo de datos bsicos se "pintan" de otro color. Tambin puede hacer
uso de las guas de indentacin para "observar" mejor la estructura de su programa.
Puede usar F1 desde del men acceder a la ayuda que contiene la lista de funciones predefinidas en el lenguaje.
Ahora intente usar el depurador del entorno. Ejecute su programa paso a paso y trate de "inspeccionar" el valor de las
variables de su programa. Adems coloque un punto de parada en algn lugar de ejecucin de su programa. Su instructor le
ayudar en esto pero trate de experimentar y probar antes de preguntar. Opcin de depuracin en el men Ejecutar
Ejercicio 2
Cambie ahora el cdigo teniendo en cuenta lo siguiente (puede ir haciendo los cambios en el mismo archivo fuente)
Tener un variable auxiliar para guardar el Radio y hacer los clculos con Radio y no con Dimetro.
Agregar ms precisin a PI, digamos 3.1415926535.
Lo mismo que el anterior pero mejorando la precisin de PI a 3.14159265358979
En vez de tener a PI como constante literal convirtalo en una constante nominal. Si ahora quiere mejorar la precisin,
cuntas veces tiene que modificar?
Para definir una constante nominal cambie as la parte inicial de su programa:
programa ..
const
PI = 3.14
var
..
inicio
..
cia = 2 * PI * diametro/2
...

En este momento su programa no imprime ningn mensaje para solicitar el dimetro, cmo puede hacer para que Usted se
d cuenta que tiene que introducir el dimetro?, es decir imprimir un mensaje antes de la lectura.
Cmo puede modificar el cdigo de manera a tener una sola variable, la que contiene el valor del dimetro?
Cmo aparece la impresin? Seguramente en una linea separada del nmero que introdujo para el dimetro. Fjese que
existen dos impresiones. Como puede hacer para que exista una linea de por medio entre la impresin de cia y de co ?
Que pasa cuando agrega \n a La circunferencia es ?
Haga ahora para que la impresin siga siendo como el tem anterior, pero use solo una sentencia imprimir
Ahora intente limpiar la pantalla, seguramente se habr dado cuenta que despues de varias ejecuciones la pantalla de salida
tiene muchos valores (de la ejecucin actual y de anteriores)... intente usar la funcin cls() colocado
inmediatamente luego de inicio, vea que efecto tiene.

Ejercicio 3
Escriba un programa que calcule el valor denominado crculo mximo entre dos puntos de la tierra. Este valor corresponde a la
menor distancia entre los puntos en una superficie de una esfera. Para ello recibe dos coordenadas, una de cada punto de la
tierra (xg1, xm1, xs1: yg1, ym1, ys1); (xg2, xm2, xs2, yg2, ym2, ys2)) que corresponde a la latitud y longitud en grados,
minutos y segundos sexagesimales de ambos puntos. Se asumen que los datos proporcionados son correctos.
La siguiente frmula corresponde al clculo del crculo mximo en metros.

d =6371000 . arccos(sin(x 1)sin ( x 2)+ cos ( x 1) cos(x 2 )cos ( y1 y 2 ))


En este caso x1, x2, y1, y2 corresponden a los valores en radianes. Usted debe encargarse de realizar la conversin
correspondiente.
Al final debe imprimir la distancia entre dichos puntos expresada en kilmetros.
En SL no existe la funcin arccos() por lo que debe utilizar un clculo auxiliado por arctan() que si existe en SL.

1 x 2

arccos x=arctan
x

Ejemplo de los datos de entrada:


La distancia entre Asuncin y Pars ( Sur(S) y Oeste(W) son negativos , Norte(N) y Este(E) positivos )
Asuncin ( -2516'00'' -5740'00) (tomado de https://es.wikipedia.org/wiki/Asuncin)
Pars (4851'36 -220'40'') (tomado de https://es.wikipedia.org/wiki/Pars)
El resultado final es aproximadamente 9900 km. Puede verificar en el sitio http://www.movable-type.co.uk/scripts/latlong.html
Abajo se muestra un grfico del resultado arrojado por el calculador de distancia. Lo mostrado en el mapa es referencial.

Ejercicio 4
Codifique el siguiente problema de solucin lineal (no se puede utilizar sentencias condicionales)
Dada la siguiente tabla que corresponde a la cotizacin de venta de monedas extranjeras
Moneda
Euro
Dlar
Libra

Valor en Gs.
6300
5700
8400

Se leen tres variables que indican cantidades en dlares, euros y libras respectivamente.
Genere la siguiente tabla con la equivalencia en otras monedas (no podr dibujar las lineas llenas pero podr simular
con los caracteres: - + | as como se muestra abajo en el ejemplo:
+------------+-----------+-----------+-------------+-------------+------------+
|
| Monto
|
Gs.
|
Euros
|
Dolares
|
Libras
|
+------------+-----------+-----------+-------------+-------------+------------+
| Euros
| 100
| 630000
|
|
110.52
|
75
|
+------------+-----------+-----------+-------------+-------------+------------+
| Dolares
| 200
| 1140000
|
180.95
|
| 135.71
|
+------------+-----------+-----------+-------------+-------------+------------+
| Libras
| 300
| 2520000
|
400
|
442.11
|
|
+------------+-----------+-----------+-------------+-------------+------------+
Resuelva el ejercicio utilizando la menor cantidad de variables posibles (no es obligatorio, una vez que lo resuelva
puede ir mejorando su cdigo)
Para formatear los nmeros puede utilizar la funcin str(). Vea la ayuda sobre dicha funcin (Presione F1 y busque el
nombre de la funcin str ). Como sugerencia pruebe el ejemplo que se muestra en la ayuda para ver el efecto de las
diferentes formas de uso de la funcin
Por ejemplo para imprimir formateado el nmero 87.825 de manera que ocupe 8 espacios de ancho con dos
decimales, hacemos lo siguiente:
imprimir(str(87.825,8,2)) ==> imprimir

tambin redondea!!)

87.83

(sin las comillas, fijarse que

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