Ing. Fernando Romero
Ejercicios Propuestos y Resueltos en SLE 1. Imprimir, sumar y contar los elementos como así la posición de una lista de 100 elementos, que sean al mismo tiempo múltiplos de 2 y de 3. Generar los números de manera aleatoria. 2. Generar e imprimir una lista de 10 elementos con la tabla de multiplicar de un número que introduciremos previamente por teclado. Imprimir solo aquellos elementos que se encuentren en las filas pares de nuestra lista. 3. Crear un vector con 5 frases que se introducirán por teclado. a. Imprimir el vector b. Imprimir la frase de mayor longitud y el lugar que ocupa. c. Imprimir la frase más pequeña y el lugar que ocupa. 4. Crear e imprimir una lista unidimensional de 15 elementos generados con números aleatorios comprendidos del 1 al 100, de tal forma que ninguno se repita.
5. Imprimir los elementos que sean impares de un vector de N elementos. Imprimir los elementos en forma de filas. Generar los números con random. 6. Dada una lista numérica V[N], generar a partir de ella otra lista VNUEVO[N], que contenga los elementos de la lista anterior multiplicados por el número 5. Imprimir ambos vectores. 7. Dada una lista numérica V[N], generar a partir de ella otra lista nueva que contenga los elementos que se encuentran ubicados en las posiciones pares de V[N]. 8. Generar e imprimir una lista de N elementos con números aleatorios entre 1 y 100. Sumar los que ocupan las posiciones pares. Los elementos situados en las posiciones impares que sean múltiplos de 4 se elevan al cuadrado. imprimir su suma, así como los números de elementos que cumplan dicha condición. 9. Un restaurante guarda la lista de PLATOS [5] los platos que se dispone y en otra lista paralela PRECIO [5] el valor de cada plato. Sacar la factura de un cliente de la siguiente forma: RESTAURANTE: EL BUEN GUSTO Concepto Cantidad Importe ------------------------------------------TOTAL: ----10. Ingresar un nombre y verificar la cantidad de veces que se repiten los caracteres. Tener en cuenta el abecedario para dicho efecto. Utilizar ORD en SLE.
Ing. Fernando Romero var v: vector[100] numerico i, suma, c: numerico
1
inicio cls() desde i=1 hasta 100{ v[i] = random(100) + 1 si(v[i]%2 == 0 and v[i]%3 == 0){ suma = suma + v[i] c=c+1 beep(0,1000) imprimir("\n", v[i]," posicion ",i) } } imprimir("\n La suma de los numeros multiplos de 2 y 3 del 1 al 100 son : ",suma) imprimir("\n La cantidad de numeros multiplos de 2 y 3 del 1 al 100 son : ",c) fin
var v: vector[10] numerico i, numero: numerico
2
inicio cls() imprimir("\n Favor ingrese un numero para hallar su tabla de multiplicar : ") leer(numero) desde i=1 hasta 10{ v[i] = numero * i si(i%2 == 0){ beep(0,1000) imprimir("\n", numero," x ",i," = ",v[i]) } } fin var v: vector[5] cadena i, mayor, menor, pos_may, pos_men: numerico
3
inicio cls() menor = 9999999 desde i=1 hasta 5{ imprimir("\n Favor ingrese su frase : ") leer(v[i]) si(strlen(v[i]) >= mayor){ mayor = strlen(v[i]) pos_may = i } si(strlen(v[i]) <= menor){ menor = strlen(v[i]) pos_men = i } } imprimir("\n La Frase mas larga es : ", v[pos_may], " y se encuentra en la posicion ",pos_may) imprimir("\n La Frase de mas corta es : ", v[pos_men], " y se encuentra en la posicion ",pos_men)
fin
Ing. Fernando Romero var v: vector[15] numerico i,j,repetido: numerico inicio cls() desde i=1 hasta 15{ v[i] = random(100) + 1
4
} repetido = 1 mientras(repetido == 1){ repetido = 0 desde i=1 hasta 15{ desde j=i+1 hasta 15{ si(v[i]==v[j] and v[i]<> 100){ imprimir("\n Hay repetidos cambio ",v[i]," por ", v[i] + 1) v[i] = v[i] + 1 repetido = 1 } si(v[i]==v[j] and v[i]== 100){ v[i] = random(99) + 1 imprimir("\n Hay repetidos cambio de 100 por ", v[i]) v[i] = v[i] + 1 repetido = 1 } } } } imprimir("\n") desde i=1 hasta 15{ imprimir("\n",v[i]) } fin
var v: vector[*] numerico i,n: numerico
5
inicio cls() mientras(n <= 0){ imprimir("Favor ingrese un valor para dimensionar el vector : ") leer(n) } dim(v,n) desde i=1 hasta n{ v[i] = random(100) + 1 } desde i=1 hasta n{ si(v[i]% 2 <> 0){ imprimir("\n",v[i]) } } fin
Ing. Fernando Romero var v, vnuevo: vector[*] numerico i,n: numerico
6
inicio cls() mientras(n <= 0){ imprimir("Favor ingrese un valor para dimensionar el vector : ") leer(n) } dim(v,n) dim(vnuevo,n) desde i=1 hasta n{ v[i] = random(30) + 1 } imprimir("\n VECTOR ORIGINAL \n") imprimir("------------------\n") desde i=1 hasta n{ imprimir("\t",v[i]) } desde i=1 hasta n{ vnuevo[i] = v[i] * 5 } imprimir("\n VECTOR NUEVO MULTIPLICADO POR 5 \n") imprimir("--------------------------------\n") desde i=1 hasta n{ imprimir("\t",vnuevo[i]) } fin var v, vnuevo: vector[*] numerico i,j,n, cont_par: numerico
7
inicio cls() j=1 mientras(n <= 0){ imprimir("Favor ingrese un valor para dimensionar el vector : ") leer(n) } dim(v,n) desde i=1 hasta n{ v[i] = random(30) + 1 si(i%2 == 0){ cont_par = cont_par + 1 } } imprimir("\n VECTOR ORIGINAL \n") imprimir("------------------\n") desde i=1 hasta n{ imprimir("\t",v[i]) } dim(vnuevo,cont_par) desde i=1 hasta n{ si(i%2 == 0){ vnuevo[j] = v[i] j=j+1 } } imprimir("\n VECTOR NUEVO SOLO CON NUMEROS DE UBICACIONES PARES \n") imprimir("-----------------------------------------------------\n") desde j=1 hasta cont_par{ imprimir("\t",vnuevo[j]) } fin
Ing. Fernando Romero var v : vector [*] numerico i,j,aux, n, s_pares, s_imp_c, c_cuad : numerico
8
inicio cls() mientras(n <= 1){ imprimir("Favor Ingrese la Longitud del Vector : ") leer(n) } dim(v,n) desde i = 1 hasta n{ v[i] = random(100) + 1 } imprimir("\n\nEL VECTOR GENERADO ALEATORIAMENTE (100)") imprimir("\n---------------------------------------\n") desde i = 1 hasta n{ imprimir("\t",v[i]) } desde i = 1 hasta n{ si(i % 2 == 0){ s_pares = s_pares + v[i] sino si(v[i] % 4 == 0){ v[i] = v[i] * v[i] s_imp_c = s_imp_c + v[i] c_cuad = c_cuad + 1 } } } imprimir("\nVECTOR GENERADO CON NUMEROS ALEATORIOS (100) ") imprimir("\n-------------------------------------------\n") desde i = 1 hasta n{ imprimir("\t", v[i]) } desde i = 1 hasta n-1{ desde j=i+1 hasta n{ si(v[i] > v[j] ){ aux = v[i] v[i] = v[j] v[j] = aux } } } imprimir("\nLa suma de elementos que ocupan posiciones PARES son : ", s_pares) imprimir("\nLa suma de elementos que ocupan posiciones IMPARES y que sean Múltiplos de 4 son : ", s_imp_c) imprimir("\nLa cantidad de elementos que ocupan posiciones IMPARES y que sean Múltiplos de 4 son : ", c_cuad)
fin
Ing. Fernando Romero var v_plato : vector [*] numerico v_precio : vector [*] numerico res: cadena racion, total, i : numerico
9
inicio cls() res = "s" i=1 mientras(res == "s" or res == "S"){ dim(v_plato,i) dim(v_precio, i) imprimir("\nIngrese el Número de Plato del menú : ") leer(v_plato[i]) imprimir("\nIngrese el Número de Ración : ") leer(racion) imprimir("\nIngrese el Precio del Plato : ") leer(v_precio[i]) imprimir("\nEl importe es de Gs. : ", v_precio[i] * racion) total = total + v_precio[i] * racion imprimir("\n\n\n¿Desea Ingresar más Platos? : ") leer(res) si(res == "s" or res == "S"){ i=i+1 } } imprimir("\nEl Total que debe abonar por las raciones de los platos consumidos es de Gs. : ", total)
fin
10
var pos_A = ord ("A") k =0 z = "" c = "" F : vector [26] numerico inicio cls() imprimir ("\nFavor Ingrese una Palabra : ") leer (z) F = {0, ...} desde k=1 hasta strlen (z) { c = upper (z [k]) /* Como la "A" está en la posición 65 en la tabla ASCII, convertimos 65 en 1, 66 en 2, etc. usando la expresión 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 carácter ", ascii (pos_A + k - 1), " aparece ", F [k], " veces.") } fin
Ing. Fernando Romero
Ejercicios Propuestos 1. Imprimir los elementos que sean pares de un vector de N elementos. Imprimir los elementos en forma de columnas. Generar los números con random. 2. Imprimir los elementos de un vector V[10]. Generar los elementos de manera aleatoria. Formar nuevos vectores VP con los elementos PARES y otro vector VI con los elementos impares. 3. Supongamos que tenemos en la memoria del ordenador un vector numérico de N elementos. Los elementos que ocupan las posiciones pares los multiplicamos por 8 y a los que ocupan las posiciones impares le restamos el valor su posición. Los nuevos valores obtenidos cargarlos en otro vector llamado VGENERADO. 4. Crear e imprimir una lista unidimensional de 15 elementos generados con números aleatorios comprendidos del 1 al 100, de tal forma que ninguno se repita, además de ello no puede haber ningún elemento que sea múltiplo de la posición que ocupa. 5. Un colegio almacena en un vector de 5 elementos los nombres de los estudiantes de un curso determinado. En otro vector ASIGNATURAS, se almacena los nombres de las tres asignaturas que se imparten en el curso en cuestión y en otras 4 listas paralelas NOTA1 NOTA2 NOTA3, las notas correspondientes a las asignaturas. Imprimir la media aritmética (promedio) de las notas de cada alumno y como así la del curso.
Nombre ----------------------------------------------------------------------------
NOTAS ACADÉMICAS DEL CURSO Asignatura 1 Asignatura 2 Asignatura 3 ---------------------------------------------NOTA MEDIA GLOBAL :
Promedio --------------------------