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

Gua Prctica ICI 140

Programacin en SLE

Contenido
Ejercicios Bsicos ..................................................................................................................................... 3 1) calcular rea y permetro de un cuadrado .................................................................................. 3 2) calcular rea y permetro de un rectngulo ................................................................................ 3 3) calcular rea y permetro de una circunferencia ....................................................................... 3 4) calcular la hipotenusa de un tringulo rectngulo ................................................................... 4 5) Calcular la distancia entre dos puntos en el plano cartesiano .............................................. 4 Estructuras de control .............................................................................................................................. 5 1) Calcular el factorial de un nmero ................................................................................................ 5 2) Determinar si un nmero es par o impar ..................................................................................... 5 3) Leer un entero positivo y luego escribirlo invertido ................................................................ 5 4) Determinar si un nmero es primo ............................................................................................... 6 5) multiplicar dos nmeros por medio de sumas sucesivas ...................................................... 6 6) Calcular al cabo de cuantos aos se doblar el capital .......................................................... 7 7) Calcular los n primeros nmeros de fibonacci .......................................................................... 7 8) Soluciones de una ecuacin de segundo grado ....................................................................... 8 9) saber el sueldo de los trabajadores y el impuesto que debern pagar ............................... 9 10) Calcular el descuento que le corresponde a un cliente ...................................................... 10 Arreglos...................................................................................................................................................... 10 1) Leer valores de un vector y copiarlos a otro de igual tamao ............................................. 10 2) Invertir los valores de un vector sin utilizar un vector adicional ........................................ 11 3) Para una lista de 50 temperaturas, calcular ........................................................................ 11 4) Calcular la desviacin estndar de una lista de n nmeros ................................................. 11 5) Ordenar un vector de menor a mayor ........................................................................................ 12 6) Implementar el algoritmo de bsqueda secuencial ................................................................ 12 7) Implementar el algoritmo de bsqueda binaria ....................................................................... 13 9) Intercambiar valores de las filas por las columnas ............................................................ 14 10) Sumar los nmeros negativos y positivos de una matriz ............................................... 15 11) Suponiendo que un alumno tiene 3 notas por cada asignatura .................................... 15

Ejercicios Bsicos

1) calcular rea y permetro de un cuadrado var lado,area,perimetro:numerico inicio repetir imprimir("Ingrese la longitud del lado del cuadrado: ") leer(lado) hasta(lado > 0) area=lado*lado perimetro = 4*lado imprimir("El area del cuadrado es: ",area," y el perimetro: ",perimetro,".") fin 2) calcular rea y permetro de un rectngulo var lado1,lado2,area,perimetro:numerico inicio cls() repetir imprimir("Ingrese la longitud del primer lado del rectangulo: ") leer(lado1) hasta(lado1 > 0) repetir imprimir("Ingrese la longitud del segundo lado del rectangulo: ") leer(lado2) hasta(lado2 > 0) area=lado1*lado2 perimetro = 2*lado1+2*lado2 imprimir("El area del cuadrado es: ",area," y el perimetro: ",perimetro,".") fin 3) calcular rea y permetro de una circunferencia var radio:numerico inicio repetir imprimir("Ingrese el radio de la circunferencia: ") leer(radio) hasta(radio > 0) imprimir("El area de la circunferencia es: ",radio*radio*3.1416," y el perimetro: ",2*3.1416*radio,".") fin

4) calcular la hipotenusa de un tringulo rectngulo var c1,c2,h:numerico inicio cls() repetir imprimir("Ingrese el valor del primer cateto: ") leer(c1) hasta(c1 > 0) repetir imprimir("Ingrese el valor del segundo cateto: ") leer(c2) hasta(c2 > 0) h=sqrt((c1*c1)+(c2*c2)) imprimir("El valor de la hipotenusa es: ",h) fin 5) Calcular la distancia entre dos puntos en el plano cartesiano var x1,y1,x2,y2,distancia:numerico inicio cls() imprimir("Para el punto P1=(X1,Y1) ingrese los valores:\nX1:") leer(x1) imprimir("Y1:") leer(y1) imprimir("\nPara el punto P2=(X2,Y2) ingrese los valores:\nX2: ") leer(x2) imprimir("Y2:") leer(y2) distancia=sqrt((x2-x1)^2 + (y2-y1)^2) imprimir("La distancia entre (",x1,",",y1,") y (",x2,",",y2,") es ",distancia) fin

Estructuras de control 1) Calcular el factorial de un nmero var num,fact:numerico inicio cls() repetir imprimir("Ingrese el nmero al cual se le calcular su factorial:") leer(num) hasta(num>=0) imprimir(num,"! = ") fact = 1 si(num >1){ mientras(num >1){ fact=fact*num num = num - 1 } } imprimir(fact) fin 2) Determinar si un nmero es par o impar var num:numerico inicio cls() imprimir("Ingrese el el nmero que desea validar: ") leer(num) si(num%2 == 0){ imprimir("El numero ",num," es par.") sino imprimir("El numero ",num," es impar.") } fin 3) Leer un entero positivo y luego escribirlo invertido var num:numerico inicio cls() repetir imprimir("Ingrese un numero entero positivo: ") leer(num) hasta(num >= 0) mientras(num<>0){ imprimir(num%10) num = int(num/10) } fin

4) Determinar si un nmero es primo var num,i:numerico primo:logico inicio cls() imprimir("ingrese el nmero a validar: ") leer(num) primo = TRUE si(num>=2){ desde i=2 hasta num/2{ si(num%2 ==0){ primo = FALSE } } sino primo = FALSE } si(primo){ imprimir("El nmero ",num," es primo") sino imprimir("El nmero ",num," no es primo") } fin 5) multiplicar dos nmeros por medio de sumas sucesivas var a,b,i,mult:numerico inicio cls() imprimir("Ingrese los factores a multiplicar:\n") imprimir("Primer factor: ") leer(a) imprimir("Segundo factor: ") leer(b) mult = 0 si(b<0){ desde i=1 hasta -b { mult = mult + a } mult = -mult sino desde i=1 hasta b { mult = mult + a } } imprimir(a," * ",b," = ",mult) fin

6) Calcular al cabo de cuantos aos se doblar el capital var cf,c,t,i:numerico inicio cls() repetir imprimir("Ingrese el monto al cual se le aplicar el interes: ") leer(c) imprimir("Ingrese la tasa de interes anual: ") leer(i) hasta(c>0 and i>0) cf=c t=0 mientras(cf < 2*c){ cf = cf*(i+1) t=t+1 } imprimir("su capital de ",c," llegar a ",cf," tras ",t," aos") fin 7) Calcular los n primeros nmeros de fibonacci var cant,f1,f2,aux:numerico inicio cls() repetir imprimir("Ingrese cuantos numeros de la serie de fibonacci quiere conocer: ") leer(cant) hasta(cant>0) f1=0 f2=1 si(cant == 1){ imprimir(f1) sino si(cant == 2){ imprimir(f1,",",f2) sino imprimir(f1,",",f2) mientras(cant-2>0){ aux=f1+f2 f1=f2 f2=aux imprimir(",",f2) cant= cant -1 } } } fin

8) Soluciones de una ecuacin de segundo grado var a,b,c, d, xi,xr1,xr2 : numerico inicio cls() imprimir("ingrese el valor de los coeficientes a,b,c\n") leer(a,b,c) si(a==0){ imprimir("la ecuacion ",a,"x^2+",b,"x+",c,"=0 no es una ecuacin de segundo grado.") sino d=b^2-4*a*c si(d>0){ imprimir("X1=",(-b+sqrt(d))/2*a) imprimir("\nX2=",(-b-sqrt(d))/2*a) sino si(d==0){ imprimir("la solucion es X=",(-b)/2*a) sino xi=(-b)/2*a xr1=sqrt(-d)/2*a xr2=-xr1 si(xi==0){ imprimir("X1=",xr1) imprimir("\nX2=",xr2) sino imprimir("X1=",xi,"+",xr1,"i") imprimir("\nX2=",xi,"-",xr1,"i") } } } } fin // coeficientes de la ecuacion ax^2+bx+c // discriminante: b^2-4ac // solucion, parte real e imaginaria

9) saber el sueldo de los trabajadores y el impuesto que debern pagar var horas,sueldo,valor,impuesto:numerico inicio cls() repetir imprimir("Ingrese la cantidad de horas trabajadas: ") leer(horas) imprimir("ingrese el valor hora: ") leer(valor) hasta(horas>0 and valor>0) /* Calcula el sueldo con respecto a las horas trabajadas */ si(horas <= 44){ sueldo = valor*horas sino sueldo = (valor * horas) + (valor * (horas - 44) *1.5) } /* Calcula el impuestoq ue debe pagar con respecto a cuanto es su sueldo */ si(sueldo <= 300000){ impuesto = 0 sino si(sueldo <= 450000){ impuesto = (sueldo - 300000) * 0.2 sino impuesto = (150000 * 0.2) + (sueldo - 450000) * 0.3 } } imprimir("El sueldo es ",sueldo) imprimir("\nEl impuesto a pagar es ",impuesto) fin

10) Calcular el descuento que le corresponde a un cliente var antiguedad,compra,descuento:numerico inicio repetir imprimir("Ingrese monto: ") leer(compra) imprimir("Ingrese la antiguedad del cliente: ") leer(antiguedad) hasta(antiguedad>=0 and compra >=0) descuento =0 si(antiguedad<3){ si(compra>5000000){ descuento = compra*0.05 } sino si(antiguedad<=5){ si(compra>10000000){ descuento = compra * 0.09 sino si(compra>5000000){ descuento = compra*0.07 } } sino si(compra>10000000){ descuento = compra*0.15 sino si(compra>5000000){ descuento = compra*0.12 } } } } imprimir("el descuento es: ",descuento) fin

Arreglos 1) Leer valores de un vector y copiarlos a otro de igual tamao var v1,v2 : vector[10] numerico i: numerico inicio v1={1,3,5,7,9,10,16,29,30,32} desde i=1 hasta 10{ v2[i] = v1[i] } imprimir(v2) fin

2) Invertir los valores de un vector sin utilizar un vector adicional const largo = 11 var v : vector[largo] numerico aux,i : numerico inicio cls() v={1,3,5,7,9,10,16,29,30,32,35} imprimir(v) desde i=1 hasta (largo/2){ aux = v[i] v[i] = v[largo+1-i] v[largo+1-i] = aux } imprimir("\n\n",v) fin 3) Para una lista de 50 temperaturas, calcular const largo = 50 var temp : vector[largo] numerico i,mayores,menores,promedio:numerico inicio cls()//limpia la pantalla desde i=1 hasta largo{ repetir imprimir("Ingrese la temperatura ",i,": ") leer(temp[i]) hasta(temp[i]>=-273) } promedio =0 menores=0 mayores=0 desde i=1 hasta largo{ promedio = promedio + temp[i] } promedio = promedio/largo imprimir("El promedio es: ",promedio,"\n") desde i=1 hasta largo{ si(temp[i] >= promedio){ mayores=mayores+1 } } imprimir("hay ",mayores," temperaturas superiores o iguales a ",promedio) imprimir(" y ",largo-mayores," temperaturas inferiores ",promedio) fin 4) Calcular la desviacin estndar de una lista de n nmeros

var v,v1 : vector[*] numerico n,i,m,suma : numerico inicio imprimir("Ingrese la cantidad de elementos que ingresar: ") leer(n) dim(v,n) dim(v1,n) m=0 suma=0 desde i=1 hasta n{ imprimir("ingrese el valor ",i,": ") leer(v[i]) } desde i=1 hasta n{ m = m+v[i] } m = m/n desde i=1 hasta n{ suma = suma + (v[i]-m)^2 } suma = suma/(n-1) imprimir("La desviacin estandar es ",sqrt(suma)) fin 5) Ordenar un vector de menor a mayor var v:vector[*] numerico n,i,j,aux : numerico inicio imprimir("Ingrese la cantidad de elementos que ingresar: ") leer(n) dim(v,n) desde i=1 hasta n{ imprimir("ingrese el valor ",i,": ") leer(v[i]) } imprimir("Los valores que ingreso fueron los siguientes {",v,"}\n") desde i=1 hasta n-1{ desde j=1 hasta n-i{ si(v[j]>v[j+1]){ aux=v[j] v[j] = v[j+1] v[j+1] = aux } } } imprimir("\nAl ordenarlos de menor a mayor resulta lo siguiente {",v,"}") fin 6) Implementar el algoritmo de bsqueda secuencial

var v:vector[*] numerico n,i,num:numerico found : logico inicio cls() imprimir("Ingrese la cantidad de elementos que ingresar: ") leer(n) dim(v,n) desde i=1 hasta n{ imprimir("ingrese el valor ",i,": ") leer(v[i]) } cls() imprimir("Ingrese el valor que desea buscar: ") leer(num) found = FALSE desde i=1 hasta n{ si(v[i]==num){ imprimir("El numero ",num," se encuentra en la posicin ",i,"\n") found=TRUE } } si(not found){ imprimir("El numero ",num," no fue encontrado") } fin 7) Implementar el algoritmo de bsqueda binaria var v:vector[*] numerico n,i,j,m,num,aux:numerico found : logico inicio cls() imprimir("Ingrese la cantidad de elementos que ingresar: ") leer(n) dim(v,n) desde i=1 hasta n{ imprimir("ingrese el valor ",i,": ") leer(v[i]) } cls() /*Ordenamos el arreglo*/ desde i=1 hasta n-1{ desde j=1 hasta n-i{ si(v[j]>v[j+1]){ aux=v[j] v[j] = v[j+1] v[j+1] = aux } } } imprimir("Ingrese el valor que desea buscar: ")

leer(num) found = FALSE i=1 j=n m= int((i+j)/2) repetir si(v[m]==num){ found = TRUE sino si(num<v[m]){ j=m-1 sino i=m+1 } m = int((i+j)/2) } hasta(found == TRUE or i>j) si(found){ imprimir("El numero ",num," fue encontrado en la posicin ",m) sino imprimir("El numero ",num," no fue encontrado") } fin 8) Producto de la suma de sus diagonales var v : matriz[5,5] numerico i,j,suma1,suma2:numerico inicio v = {{1,0,2,35,36},{0,-56,90,65,45},{10,21,65,-15,-5},{-10,-50,21,35,3},{3,21,20,3,-5}} suma1 = 0 suma2 = 0 desde i=1 hasta 5{ desde j=1 hasta 5{ si(i==j){ suma1=suma1+v[i,j] sino si(i == (5+1-j)){ suma2=suma2+v[i,j] } } } } imprimir("La multiplicacin de la suma de las diagonales de la matriz es ",suma1*suma2) fin 9) Intercambiar valores de las filas por las columnas var v,vtemp : matriz[5,5] numerico i,j,aux:numerico

inicio v = {{1,1,1,1,1},{2,2,2,2,2},{3,3,3,3,3},{4,4,4,4,4},{5,5,5,5,5}} desde i=1 hasta 5{ desde j=1 hasta 5{ imprimir(" ",v[i,j]," ") } imprimir("\n") } desde i=1 hasta 5{ desde j=1 hasta 5{ vtemp[j,i]=v[i,j] } } v=vtemp imprimir("---------------\n") desde i=1 hasta 5{ desde j=1 hasta 5{ imprimir(" ",v[i,j]," ") } imprimir("\n") } fin 10) Sumar los nmeros negativos y positivos de una matriz var m : matriz[2,2] numerico i,j,neg,pos:numerico inicio cls() neg=0 pos=0 desde i=1 hasta 20{ desde j=1 hasta 20{ imprimir("ingrese el valor para la casilla ",i,",",j,": ") leer(m[i,j]) } } desde i=1 hasta 20{ desde j=1 hasta 20{ si(m[i,j]>=0){ pos=pos+m[i,j] sino neg = neg + m[i,j] } } } imprimir("\nLa suma de los nmeros negativos es ",neg," y la de los positivos es ",pos) fin 11) Suponiendo que un alumno tiene 3 notas por cada asignatura

var m : matriz[20,15] numerico op,alumno,asignatura,num_nota,i,j,prom:numerico inicio repetir cls() prom=0 imprimir("1) Ingresar notas\n2) Calcular promedio general\n3) Promedio de asignatura\n4) Salir\n\nOpcin: ") leer(op) si(op==1){ cls() repetir imprimir("Ingrese el nmero del alumno: ") leer(alumno) hasta(alumno>=1 and alumno<=20) repetir imprimir("Ingrese el nmero de la asignatura: ") leer(asignatura) hasta(asignatura>=1 and asignatura<=5) repetir imprimir("Ingresara la nota 1, 2 o 3 ?: ") leer(num_nota) hasta(num_nota>=1 and num_nota<=3) imprimir("Ingrese la nota: ") leer(m[alumno,(asignatura-1)*3+num_nota]) sino si(op==2){ cls() repetir imprimir("Ingrese el nmero del alumno: ") leer(alumno) hasta(alumno>=1 and alumno<=20) desde j=1 hasta 15{ prom = prom + m[alumno,j] } imprimir("El promedio general del alumno ",alumno," es ",prom/15,"\n\nPresione cualquier tecla para continuar....") readkey() sino si(op==3){ cls() repetir imprimir("Ingrese el nmero del alumno: ") leer(alumno) hasta(alumno>=1 and alumno<=20) repetir imprimir("Ingrese el nmero de la asignatura: ") leer(asignatura) hasta(asignatura>=1 and asignatura<=5) desde j=((asignatura-1)*3)+1 hasta ((asignatura-1)*3)+3{ prom = prom + m[alumno,j] } imprimir("El promedio de la asignatura ",asignatura," del alumno ",alumno," es ",prom/15,"\n\nPresione cualquier tecla para continuar....") readkey()

} } } hasta(op==4) /*muetra matriz*/ imprimir("Asign. 1 Asign.2 Asign.3 Asign.4 Asign.5\n") desde i=1 hasta 20{ desde j=1 hasta 15{ imprimir(" ",m[i,j]," ") } imprimir("\n") } fin

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