Está en la página 1de 24

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
------------------------------------------------------------------------------------------------------------

/*2-Haga un diagrama que diga cuantas personas fueron encuestadas,


cuantas contestaron si, cuantas contestaron no y cuantos dejaron de responder,
cuando le preguntaron si estaba de acuerdo con la eleccin del nuevo presidente de USA.*/

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
------------------------------------------------------------------------------------------------------------

/*6-Realizar un algoritmo que me permita ingresar la hora, minutos y


segundos y que me indique cuantos segundos son.
La hora que ingresa ser de la forma HH:MM:SS*/

var
h, m, s : numerico
th, tm,ts: numerico
total: numerico
inicio
cls()
set_curpos(3,1);imprimir("FORMATO HH: MM: SS")

set_curpos(2,1);imprimir("Digite horas");leer (h)

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

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

//9. Se ingresan 5 notas de un alumno, publicar 2 peores notas.

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

sino si (n<smenor && n<>menor)


smenor=n
}
inc(cont)
hasta (cont==6)
imprimir("\n\nLa peor nota es: ", menor, "\nLa siguiente peor nota es: ", smenor)
fin
Hacer un programa en sle que muestre los nmeros primos del 1 al 100

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")

//Ciclo que enva a la subrutina Primos el nmero a evaluar!


desde x=1 hasta 100{
si (Primos(x)==2) {
imprimir(x,"\t")
}
}
fin

subrutina Primos(num :numerico) retorna numerico


var
y: numerico
cont=0
inicio
//Ciclo que evala nmero recibido num
desde y=1 hasta num{
si (num%y==0){
inc(cont)
}
}
retorna (cont)
fin
EJERCICIOS RESUELTOS:
SLE(PARTE2)
CUANTAS VECES APARECE UNA LETRA

/*
* 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

CUBO Y CUADRADO DE 10 NUMEROS

/*
* 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

USO DE SUB CADENAS

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

HALLAR EL CUADRADO DE UN NUMERO


programa cuadrado
var
n,cuad:numerico;
inicio
cls();
imprimir("Por favor ingrese numero")
leer(n);
cuad=n*n
imprimir("El cuadrado es:",cuad);
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

CUADRADO DE LOS 10 PRIMEROS NUMEROS

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

DETERMINAR VALORES DE UN TRIANGULO

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

VER DIGITOS DE UN NUMERO

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
------------------------------------------------------------------------------------------------------------

/*2-Haga un diagrama que diga cuantas personas fueron encuestadas,


cuantas contestaron si, cuantas contestaron no y cuantos dejaron de responder,
cuando le preguntaron si estaba de acuerdo con la eleccin del nuevo presidente de USA.*/

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
------------------------------------------------------------------------------------------------------------

/*6-Realizar un algoritmo que me permita ingresar la hora, minutos y


segundos y que me indique cuantos segundos son.
La hora que ingresa ser de la forma HH:MM:SS*/

var
h, m, s : numerico
th, tm,ts: numerico
total: numerico
inicio
cls()
set_curpos(3,1);imprimir("FORMATO HH: MM: SS")

set_curpos(2,1);imprimir("Digite horas");leer (h)

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

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

//9. Se ingresan 5 notas de un alumno, publicar 2 peores notas.

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

sino si (n<smenor && n<>menor)


smenor=n
}
inc(cont)
hasta (cont==6)
imprimir("\n\nLa peor nota es: ", menor, "\nLa siguiente peor nota es: ", smenor)
fin
Programas resueltos
en SLE
sbado, 23 de octubre de 2010
Uso de contadores
// contador del 1 al 100
var
sum,c: numerico

inicio
cls()

c=0
sum =0
mientras (c<10){

c = c+1
sum = sum + c

imprimir (sum)
fin

//Algoritmo que imprime los numeros del 100 al 0 en orden decreciente

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

mientras (c <= 100)

c = c+2
acum = acum+ 1

imprimir (acum)
fin

//imprimir los numeros naturales desde 1 hasta un numero n

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

//imprime y calcula los numeros impares desde 100 hasta 1


var c,acum:numerico

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

imprimir (\nLa suma de los tiempos es:,hora3, horas,,


min3,minutos y ,,seg3,segundos:)
fin
Estructura selectiva simple (Condicional simple si..entonces): Se
identifican porque estn compuestas de una condicin. La estructura si
entonces evala la condicin y en tal caso: Si la condicin es
verdadera, entonces ejecuta la accin o acciones si son varias. Si la
condicin es falsa, entonces no hace nada y da por finalizada la
ejecucin del programa.
A continuacin un ejemplo de dicha estructura:

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)

prom = (suma / nple)

imprimir (\nLa suma de sueldo es: ,suma)


imprimir (\nEl promedio de los sueldos es: ,prom)
imprimir (\nEl sueldo mayor es :,mayor)
imprimir (\nEl sueldo menor es :,menor)
fin

TEMA 3: EJERCICIOS RESUELTOS CON EL CICLO (MIENTRAS)

Trabajo de Ciclos --> 10 Ejercicios resueltos con el Ciclo Mientras

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:

Donde, (condicin) es la condicin que determina si el bloque de


acciones<bloque>es ejecutado o no. Si la condicin evala a verdaderoel
bloque es ejecutado y si evala a falso no es ejecutado. Despus de ejecutar el
bloque de acciones se vuelve a evaluar la condicin.

Cualquier correccin por favor hacer el comentario, para su revisin y corresccin


si es el caso. Gracias.

Aca les dejo un video de Diagramas de Flujo, ya que hemos iniciado esta etapa
del curso.

También podría gustarte