Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios para El Examen Final de Sle2
Ejercicios para El Examen Final de Sle2
//1-Haga un diagrama que muestre los nmeros pares del 1 al 100 y la suma de ellos
var
x, suma: numerico
inicio
cls()
set_curpos(1,22); imprimir("LOS NUMEROS PARES DEL 1 AL 100 SON\n\n")
desde x=2 hasta 100 paso 2{
imprimir(x, "\t")
suma= suma+x
}
imprimir ("\nLa suma de ellos es: ", suma)
fin
------------------------------------------------------------------------------------------------------------
var
cs, cn, cns, cper: numerico
op, resp:cadena
inicio
cls()
repetir
set_curpos(1,1)
imprimir ("Estuvo de acuerdo con la eleccin del presidente de USA? s/n")
leer (resp)
si (upper(resp)=="S"){
cs=cs+1
set_curpos(1,1);imprimir("Respuesta si! ")
sino si (upper(resp)=="N")
set_curpos(1,1);imprimir("Respuesta no! ")
cn=cn+1
sino
set_curpos(1,1);imprimir("No respondi!, ")
cns=cns+1
}
set_curpos(1,18)
imprimir("Desea salir s/n")
leer (op)
cper=cper+1
hasta (upper(op)=="S")
set_curpos(1,1)
imprimir("Respuestas si:", cs, "\nRespuestas no:", cn, "\nNo responde: ", cns)
imprimir("\nTotal encuestados:", cper)
fin
------------------------------------------------------------------------------------------------------------
//3-Realice un programa que capture los das y muestre cuantas horas, minutos y segundos
habr en ese tiempo
var
dias,h, m, s: numerico
inicio
cls()
imprimir("Ingrese los das quiere pasar a horas, minutos, segundos:")
leer(dias)
s=dias*86400
mientras (s>=60){
si (s<3600){
m=m+1
s=s-60
sino
h=h+1
s=s-3600
}
}
imprimir("Horas: ",h, " Minutos:",m, " Segundos: ",s)
fin
------------------------------------------------------------------------------------------------------------
//4. Leer cuatro nmeros y calcular e imprimir su suma, su producto y su media aritmtica. Los
nmeros deben ser mayores que cero.
var
n1, n2, n3, n4, media,producto, suma: numerico
inicio
cls()
set_curpos(1,1)
imprimir ("Digite nmero 1"); leer(n1)
set_curpos(1,1)
imprimir ("Digite nmero 2"); leer(n2)
set_curpos(1,1)
imprimir ("Digite nmero 3"); leer(n3)
set_curpos(1,1)
imprimir ("Digite nmero 4"); leer(n4)
suma= n1+n2+n3+n4
producto= n1*n2*n3*n4
media= suma/4
set_curpos(1,1); imprimir("La suma es: ", suma, " ")
set_curpos(2,1); imprimir("El producto es: ", producto)
set_curpos(3,1); imprimir("la media Aritmtica es: ", media)
fin
------------------------------------------------------------------------------------------------------------
/*5-Realizar un programa que capture un valor en metros y presente un men que muestre
las opciones en un men, que permita convertir ese valor a pulgadas, a yardas y a millas.
( 1 pulgada = 0.02540 metros, 1 yarda = 0.9144 metros, 1 milla = 1609,3 Metros)*/
var
pulgada=0.02540
yarda= 0.9144
milla=1609.3
metros: numerico
op:numerico
op2: cadena
inicio
cls()
repetir
repetir
set_curpos(1,32);imprimir("MENU PRINCIPAL\n Digite opcin: ")
set_curpos(3,1); imprimir(" 1- De metros a pulgadas\n 2- De metros yardas. \n 3- De metros a
millas\n")
leer (op)
hasta (op>0 && op<4)
set_curpos(6,1);imprimir("Cuantos metros desea convertir?")
leer(metros)
si (op==1){
cls()
set_curpos (2,1); imprimir(metros," mts equivalen a : ",metros/pulgada, " Pulgadas\n")
sino si (op==2)
cls()
set_curpos (2,1); imprimir(metros," mts equivalen a : ",metros/yarda, " yardas\n")
sino si (op==3)
cls()
set_curpos (2,1); imprimir(metros," mts equivalen a : ",metros/milla, " millas\n")
}
imprimir ("\nDesea continuar s/n")
leer(op2)
hasta (op2=="n")
fin
------------------------------------------------------------------------------------------------------------
var
h, m, s : numerico
th, tm,ts: numerico
total: numerico
inicio
cls()
set_curpos(3,1);imprimir("FORMATO HH: MM: SS")
repetir
set_curpos(2,1);imprimir("Digite minutos");leer (m)
hasta (m>=0 && m<60)
repetir
set_curpos(2,1);imprimir("Digite segundos");leer (s)
hasta (s>=0 && s<60)
th= h*3600
tm=m*60
ts=s
total= th+tm+ts
set_curpos(1,1); imprimir(" RESULTADO\n********************")
set_curpos(3,1);imprimir(h," horas, ", m, " min, ", s," seg", " equivalen a: ",total, " segundos")
fin
------------------------------------------------------------------------------------------------------------
/*7. Elabore un diagrama de flujo que lea una serie de enteros positivos,
contar los valores introducidos y calcular su promedio.
El final de los datos se indicar con un nmero negativo. */
var
num: numerico
prom: numerico
suma: numerico
cont: numerico
inicio
cls()
repetir
imprimir("Digite entero positivo")
leer (num)
si (num>0){
suma= suma+num
cont=cont+1
}
hasta (num<0)
imprimir("Se han introducido ", cont," valores; El promedio de estos es: ", suma/cont)
fin
------------------------------------------------------------------------------------------------------------
var
menor=10
smenor, n: numerico
cont=1
inicio
cls()
set_curpos(1,1); imprimir(strdup("=",80))
set_curpos(3,1); imprimir(strdup("=",80))
set_curpos(2,32);imprimir("NOTAS DE BRIEVA")
set_curpos(4,1);imprimir("Nota 1")
set_curpos(5,1);imprimir("Nota 2")
set_curpos(6,1);imprimir("Nota 3")
set_curpos(7,1);imprimir("Nota 4")
set_curpos(8,1);imprimir("Nota 5")
repetir
repetir
set_curpos(10,1)
imprimir ("Digite nota", cont)
leer(n)
hasta (n<=10 && n>=0)
set_curpos(cont+3,8)
imprimir("->",n)
si (n<menor){
smenor=menor
menor=n
var
x:numerico
inicio
cls()
//Marco y ttulo
set_curpos(1,1)
imprimir(strdup("=",80))
set_curpos(2,24)
imprimir("NMEROS PRIMOS DEL 1 AL 100")
set_curpos(3,1)
imprimir(strdup("=",80),"\n")
/*
* Ejemplo de uso de ord().
*/
var
pos_A = ord ("A")
k =0
z = ""
c = ""
F : vector [26] numerico
inicio
cls();
leer (z)
F = {0, ...}
desde k=1 hasta strlen (z) {
c = upper (z [k])
/*
* Como la "A" est en la posicin 65 en la tabla ASCII,
* convertimos 65 en 1, 66 en 2, etc. usando la expresin
* ord (c) - pos_A + 1
*/
si ( c >= "A" && c <= "Z" ) {
inc (F [ord (c) - pos_A + 1])
}
}
desde k=1 hasta alen (F) {
imprimir ("\nEl carcter ", ascii (pos_A + k - 1),
" aparece ", F [k], " veces.")
}
fin
/*
* Ejemplo de uso de secuencias de escape al imprimir.
*/
var
n, c2, c3 : numerico
inicio
imprimir ("\nNmero\tCubo\tCuadrado")
desde n=1 hasta 10 {
imprimir ("\n", n, "\t", n*n*n, "\t", n*n)
}
fin
SEPARAR DIGITOS
programa separar_digito
/*separar cada digito de un entero positivo ingresado por el usuario
,empezando por el primero de la derecha.
cada digito de iimprime en una linea independiente*/
var
num,dig,a:numerico
inicio
cls();
imprimir("\nIngrese un numero entero positivo:")
leer(num)
imprimir("\nLos digitos de",num,"son:")
repetir
dig=num%10
imprimir("\n",dig)
num=int(num/10)
hasta(num==0);
fin
programa sub_cadenas
/*mostrar el uso de subcadenas*/
var
z,subcad:cadena
g,k,p:numerico
inicio
z="123456789ABCDEF"
g=strlen(z)
p=1
k=1
mientras (p<g)
{
subcad=substr(z,p,k)
imprimir("\n", subcad)
p=p+k
k=k+1
}
fin
CALCULAR COCIENTE
programa calcular_cociente
/* calcular el cociente de a/b, donde a y b son enteros,
la division se hace por restas sucesivas.*/
var
a,b,cociente:numerico
inicio
cls();
imprimir("\nPrograma para calcular cociente de la division",
"entera de dos numeros,ambos enteros."
)
imprimir("\nIngrese dos numeros enteros,separados por comas:")
leer(a,b)
cociente=0
mientras (a>=b)
{
a=a-b
cociente=cociente+1
}
imprimir("\nEl cociente es",a);
fin
FUNCION VAL
programa funcion_val
/*EL VALOR NUMERICO DE INA CADENA PUEDE OBTENERSE USANDO LA FUNCION
VAL()
TODA VEZ QUE DICAH CADENA CONTENGA LA SECUENCIAVALIDA DE CARACTERS
PARA UN NUMERO*/
var
n:numerico
z:cadena
inicio
z="300"
n=val(z)+val(substr("415",2,1));
imprimir("el valor sera:",n)
fin
programa cuadrado
/*imprimir una tabla con el cuadrado de los primeros 10
numeros enteros*/
var
k:numerico
inicio
cls();
desde k=1 hasta 10
{
imprimir("\n",k, ":\t",k^2)
}
fin
programa HallarValores
/*determinar si tre valores numericos ingresados por el uusario
pueden ser los lados de un tringulo(ninguno de los lados del
triangulo pueden ser mayor a la suma de los otros dos)*/
var
a,b,c:numerico
inicio
cls();
imprimir("\nPor favor introducir primer lado")
leer(a);
imprimir("\nPor favor introducir segundo lado")
leer(b);
imprimir("\nPor favor introducir tercer lado")
leer(c);
/*para no hacer todos los pasos y hallar de forma directa podemos hacer
lo siguiente,despues de cls(); poner leer(a,b,c) y continuar al siguiente paso*/
si((a>b+c)or(b>a+c)or(c>a+b))
{
imprimir("\nNo pueden ser los lados de un trinagulo");
sino
imprimir("\nPueden formar un triangulo")
}
fin
SUMA DE N NUMEROS
programa sumadennumeros
var
n,num,suma:numerico
inicio
cls();
imprimir("ingrsa numeero")
leer(n)
num=1
repetir
num=(n*(n+1))/2
hasta (n>0)
imprimir("la suma es :",num)
fin
programa hallar
var
num,dig,a,i:numerico
inicio
cls();
imprimir("\ningrse un num ent pos")
leer(num)
imprimir("\nlos digitos de ",num,"son:")
repetir
dig=num%10
imprimir("\n",dig)
num=int(num/10)
hasta(num==0)
fin
EJERCICIOS PARA EL EXAMEN FINAL DE SLE2
//1-Haga un diagrama que muestre los nmeros pares del 1 al 100 y la suma de ellos
var
x, suma: numerico
inicio
cls()
set_curpos(1,22); imprimir("LOS NUMEROS PARES DEL 1 AL 100 SON\n\n")
desde x=2 hasta 100 paso 2{
imprimir(x, "\t")
suma= suma+x
}
imprimir ("\nLa suma de ellos es: ", suma)
fin
------------------------------------------------------------------------------------------------------------
var
cs, cn, cns, cper: numerico
op, resp:cadena
inicio
cls()
repetir
set_curpos(1,1)
imprimir ("Estuvo de acuerdo con la eleccin del presidente de USA? s/n")
leer (resp)
si (upper(resp)=="S"){
cs=cs+1
set_curpos(1,1);imprimir("Respuesta si! ")
sino si (upper(resp)=="N")
set_curpos(1,1);imprimir("Respuesta no! ")
cn=cn+1
sino
set_curpos(1,1);imprimir("No respondi!, ")
cns=cns+1
}
set_curpos(1,18)
imprimir("Desea salir s/n")
leer (op)
cper=cper+1
hasta (upper(op)=="S")
set_curpos(1,1)
imprimir("Respuestas si:", cs, "\nRespuestas no:", cn, "\nNo responde: ", cns)
imprimir("\nTotal encuestados:", cper)
fin
------------------------------------------------------------------------------------------------------------
//3-Realice un programa que capture los das y muestre cuantas horas, minutos y segundos
habr en ese tiempo
var
dias,h, m, s: numerico
inicio
cls()
imprimir("Ingrese los das quiere pasar a horas, minutos, segundos:")
leer(dias)
s=dias*86400
mientras (s>=60){
si (s<3600){
m=m+1
s=s-60
sino
h=h+1
s=s-3600
}
}
imprimir("Horas: ",h, " Minutos:",m, " Segundos: ",s)
fin
------------------------------------------------------------------------------------------------------------
//4. Leer cuatro nmeros y calcular e imprimir su suma, su producto y su media aritmtica. Los
nmeros deben ser mayores que cero.
var
n1, n2, n3, n4, media,producto, suma: numerico
inicio
cls()
set_curpos(1,1)
imprimir ("Digite nmero 1"); leer(n1)
set_curpos(1,1)
imprimir ("Digite nmero 2"); leer(n2)
set_curpos(1,1)
imprimir ("Digite nmero 3"); leer(n3)
set_curpos(1,1)
imprimir ("Digite nmero 4"); leer(n4)
suma= n1+n2+n3+n4
producto= n1*n2*n3*n4
media= suma/4
set_curpos(1,1); imprimir("La suma es: ", suma, " ")
set_curpos(2,1); imprimir("El producto es: ", producto)
set_curpos(3,1); imprimir("la media Aritmtica es: ", media)
fin
------------------------------------------------------------------------------------------------------------
/*5-Realizar un programa que capture un valor en metros y presente un men que muestre
las opciones en un men, que permita convertir ese valor a pulgadas, a yardas y a millas.
( 1 pulgada = 0.02540 metros, 1 yarda = 0.9144 metros, 1 milla = 1609,3 Metros)*/
var
pulgada=0.02540
yarda= 0.9144
milla=1609.3
metros: numerico
op:numerico
op2: cadena
inicio
cls()
repetir
repetir
set_curpos(1,32);imprimir("MENU PRINCIPAL\n Digite opcin: ")
set_curpos(3,1); imprimir(" 1- De metros a pulgadas\n 2- De metros yardas. \n 3- De metros a
millas\n")
leer (op)
hasta (op>0 && op<4)
set_curpos(6,1);imprimir("Cuantos metros desea convertir?")
leer(metros)
si (op==1){
cls()
set_curpos (2,1); imprimir(metros," mts equivalen a : ",metros/pulgada, " Pulgadas\n")
sino si (op==2)
cls()
set_curpos (2,1); imprimir(metros," mts equivalen a : ",metros/yarda, " yardas\n")
sino si (op==3)
cls()
set_curpos (2,1); imprimir(metros," mts equivalen a : ",metros/milla, " millas\n")
}
imprimir ("\nDesea continuar s/n")
leer(op2)
hasta (op2=="n")
fin
------------------------------------------------------------------------------------------------------------
var
h, m, s : numerico
th, tm,ts: numerico
total: numerico
inicio
cls()
set_curpos(3,1);imprimir("FORMATO HH: MM: SS")
repetir
set_curpos(2,1);imprimir("Digite minutos");leer (m)
hasta (m>=0 && m<60)
repetir
set_curpos(2,1);imprimir("Digite segundos");leer (s)
hasta (s>=0 && s<60)
th= h*3600
tm=m*60
ts=s
total= th+tm+ts
set_curpos(1,1); imprimir(" RESULTADO\n********************")
set_curpos(3,1);imprimir(h," horas, ", m, " min, ", s," seg", " equivalen a: ",total, " segundos")
fin
------------------------------------------------------------------------------------------------------------
/*7. Elabore un diagrama de flujo que lea una serie de enteros positivos,
contar los valores introducidos y calcular su promedio.
El final de los datos se indicar con un nmero negativo. */
var
num: numerico
prom: numerico
suma: numerico
cont: numerico
inicio
cls()
repetir
imprimir("Digite entero positivo")
leer (num)
si (num>0){
suma= suma+num
cont=cont+1
}
hasta (num<0)
imprimir("Se han introducido ", cont," valores; El promedio de estos es: ", suma/cont)
fin
------------------------------------------------------------------------------------------------------------
var
menor=10
smenor, n: numerico
cont=1
inicio
cls()
set_curpos(1,1); imprimir(strdup("=",80))
set_curpos(3,1); imprimir(strdup("=",80))
set_curpos(2,32);imprimir("NOTAS DE BRIEVA")
set_curpos(4,1);imprimir("Nota 1")
set_curpos(5,1);imprimir("Nota 2")
set_curpos(6,1);imprimir("Nota 3")
set_curpos(7,1);imprimir("Nota 4")
set_curpos(8,1);imprimir("Nota 5")
repetir
repetir
set_curpos(10,1)
imprimir ("Digite nota", cont)
leer(n)
hasta (n<=10 && n>=0)
set_curpos(cont+3,8)
imprimir("->",n)
si (n<menor){
smenor=menor
menor=n
inicio
cls()
c=0
sum =0
mientras (c<10){
c = c+1
sum = sum + c
imprimir (sum)
fin
var
c:numerico
inicio
cls()
c=100
mientras(c>=0){
imprimir("numeros:",c)
c= c-1
fin
// hacer un programa que imprima los numeros pares entre 2 y 100
var
c:numerico
inicio
cls()
c=2
mientras(c<=100){
imprimir("numeros:",c)
c=c+2
}
fin
// imprime numeros pares de 100 a 2 com mientras
var c: numerico
inicio
cls()
c = 100
mientras (c >= 2)
{
imprimir ("\n:",c)
c= c-2
fin
// imprime los numeros impares hasta el 100 y muestra cuantos impares hay
var c, acum:numerico
inicio
cls()
c=1
acum = 0
c = c+2
acum = acum+ 1
imprimir (acum)
fin
var c,n:numerico
inicio
cls()
c=0
n=0
imprimir("\nDigite un numero:")
leer(n)
mientras(c<n){
c=c+1
imprimir("numero:",c)
}
fin
inicio
cls()
c= 99
acum = 0
mientras (c >= 1)
{
c = c-2
acum = acum + 1
}
imprimir (acum)
fin
ESTRUCTURAS DE ALGORTIMOS
EN SLE
Estructura Secuencial: La estructura secuencial es aquella en que
una accin (instruccin) sigue a otra secuencia. Las tareas se suceden
de tal modo que la salida de una es la entrada de la siguiente y as
sucesivamente hasta el fin del proceso.
A continuacin un ejemplo de esta estructura:
var
hora1,min1,seg1: numerico
hora2,min2,seg2: numerico
totseg,resto: numerico
hora3,min3,seg3: numerico
inicio
cls()
imprimir(\nIngrese numero de horas 1:)
leer (hora1)
imprimir(\nIngrese numero de minutos 1:)
leer(min1)
imprimir(\nIngrese numero de segundos 1:)
leer (seg1)
imprimir(\nIngrese numero de horas 2:)
leer (hora2)
imprimir(\nIngrese numero de minutos 2:)
leer (min2)
imprimir(\nIngrese numero de segundos 2:)
leer (seg2)
totseg = (hora1 + hora2) * 3600 + (min1 + min2)*60 + (seg1 + seg2)
hora3 = int(totseg/3600)
resto = totseg % 3600
min3 = int ( resto/60)
seg3 = resto % 60
var
n1:numerico
n2:numerico
n3:logico;numerico
inicio
imprimir (\nIngrese nota 1:)
leer (n1)
imprimir (\nIngrese nota 2:)
leer (n2)
imprimir (\nIngrese nota 3:)
leer (n3)
si (n3>10 and n3<=18)
{
n3=n3+2
}
si (n3 = 19)
{
n3=n3+1
}
prom = (n1+n2+n3)/3
imprimir (\El promedio es:,prom)
fin
Estructura selectiva doble (condicional doble
si..entonces..sino): Se identifican porque estn compuestas de una
condicin. La estructura si entonces evala la condicin y el tal
caso: Si la condicin es falsa, entonces ejecuta otra accin o conjunto
de acciones (sino), por la naturaleza de estas se debe ejecutar una o la
otra, pero no ambas a la vez es decir, son mutuamente excluyentes.
A continucacin un ejemplo de esta estructura:
var
horas_trabajadas,tarifa,salario,tarifa_extra,horas_extras: numerico
inicio
cls()
imprimir (\nIngrese las horas trabajadas:)
leer (horas_trabajadas)
imprimir (\nIngrese la tarifa:)
leer (tarifa)
si (horas_trabajadas <= 40 )
{
salario = horas_trabajadas * tarifa
sino
tarifa_extra = tarifa + 0.50 * tarifa
horas_extras = horas_trabajadas 40
salario = (horas_extras * tarifa_extra) + 40 * tarifa
imprimir (\nEl salario total es:,salario)}
fin
Estructura Selectiva Anidad (condicional doble encadenado
si..sino..si): La estructura de seleccin doble encadenada si..sino..si
evala un conjunto de condiciones en orden descendente pasando de
una condicin a otra siempre que la condicin anterior sea falsa, y en
el momento que encuentre una condicin verdadera, efecta la accin
correspondiente a dicha condicin y abandona el resto de la estructura.
La estructura tiene una accin por defecto que se efecta en el caso
que todas las condiciones sean falsas.
A continuacin un ejemplo de esta estructura:
var
num: numerico
inicio
cls()
leer (num)
si (num==0)
{
imprimir (\nCero)
sino
si (num > 0)
{
imprimir (\nPositivo)
sino
imprimir (\nNegativo)
}
}
fin
Estructura Selectiva Mltiple (segn sea tambien llamada
eval): Se identifican porque estn compuestos de un selector, el
cual es una variable, que ser evaluada segn el contenido que tenga,
para lo cual es indispensable conocer los datos por anticipado que
dicha variable pueda almacenar, sino se conocen, el control no es
aplicable. Cada posible dato que pueda almacenar esta variable
selectora ser una caso (case) que llevar a una o ms acciones a
realizar de complirse con esa alternativa.
A continuacin un ejemplo de esta estructura:
var
nd: numerico
inicio
cls()
imprimir (\Ingrese un numero del 1 al 7:)
leer(nd)
eval
{
caso (nd==1)
imprimir(\nLunes)
caso (nd==2)
imprimir(\nMartes)
caso (nd==3)
imprimir(\nMiercoles)
caso (nd==4)
imprimir(\nJueves)
caso (nd==5)
imprimir(\nViernes)
caso (nd==6)
imprimir(\nSabado)
caso (nd==7)
imprimir(\nDomingo)
}
fin
Estructura Repetitiva Mientras (Mientrashacer): El ciclo for al
ciclo for se le llama ciclo de repeticin fija porque el ciclo se repite
un nmero determinado de veces. Lo primero que se lleva a cabo
antes de ejecutar los enunciados del ciclo es la inicializacin de una
variable controladora del ciclo. Iniciacin significa establecer una
variable a algn valor inicial. Despus se ejecuta la expresin de
verificacin para verificar el valor de la variable.
A continuacin un ejemplo de esta estructura:
var
c:numerico
suma: numerico
mayor: numerico
menor: numerico
nple: numerico
suel:numerico
prom:numerico
inicio
cls()
imprimir (\nIngrese cantidad de empleados:)
leer (nple)
mientras (c<=nple)
{
imprimir (\nIngrese el sueldo de empleado:)
leer (suel)
si (mayor<suel)
{
mayor = suel
sino
menor = suel
}
c=c+1
suma = (suma + suel)
EL CICLO MIENTRAS
El ciclo mientras ejecuta un bloque de acciones mientras que una condicin
dada se cumpla, es decir, cuando la condicin evala a verdadero. La condicin
es evaluada antes de ejecutar el bloque de acciones y si la condicin no se
cumple, el bloque no se ejecuta. De esta manera es que el nmero de
repeticiones del bloque de acciones sea cero, pues, si la condicin la primera vez
evala a falso, el bloque no ser ejecutado alguna vez. La forma general del ciclo
mientras es la siguiente:
Aca les dejo un video de Diagramas de Flujo, ya que hemos iniciado esta etapa
del curso.