Sei sulla pagina 1di 43

PRCTICA PARA LA MATERIA ALGORITMOS La presentacin de esta prctica ser en coordinacin con su docente, para las preguntas del

1 al 10 Defina de manera formal los siguientes conceptos, para las preguntas del 11 al 50 se debe realizar su anlisis identificar las variables de entrada, proceso y salida, pseudocdigo y/o diagrama de flujo, prueba de escritorio. Se debe incluir cualquier clculo extra o grfico si fuera el caso. Para las preguntas del 11 al 30 no se pueden usar estructuras selectivas. CONCEPTOS BASICOS 1. 2. 3. 4. 5. 6. Concepto de Algoritmos Concepto de Diagrama de Flujo Concepto de Programa Que tipos de Programacin conoce mencione y explique brevemente sus caractersticas Qu tipo de programacin utiliza en Lenguaje Visual Basic Mencionar y explicar brevemente los pasos que se deben realizar para resolver un problema 7. Defina Lenguaje de Programacin 8. Que mtodos se utiliza para la representacin de algoritmos 9. Mencionar y explicar brevemente la Clasificacin del Software 10. Mencionar y explicar brevemente la Clasificacin del Hardware ESTRUCTURA SECUENCIAL 11. Hallar el cociente y el residuo (resto) de la divisin de dos nmeros enteros. Por ejemplo el cociente de la divisin entera entre 7 y 2 es 3 y el residuo es 1. 12. Dado el precio de venta de un producto, hallar el IVA (13%) y el costo del producto. Por ejemplo si el precio de venta del producto es 100 Bs el IVA es 13 Bs y el costo del producto es 87 Bs. 13. Hallar el resultado de a elevado a la potencia n, donde a y n son nmeros enteros positivos. 14. Hallar la raz n-sima de a, donde a y n son nmeros enteros. 15. Convertir una cantidad de Bolivianos a Dlares. 16. Convertir una temperatura de Celsius a F. La frmula es: C/5= (F-32)/9 17. Dado un nmero de 3 dgitos, devolver el nmero en orden inverso. Por ejemplo: dado el nmero 123 se tiene que devolver 321. 18. Crear un programa para encontrar el rea y el Permetro de un crculo, donde el rea=r2* , Permetro= 2r* 19. Crear un programa que permita convertir una cantidad de segundos en horas, minutos y segundos. Tomar en cuenta que en una hora hay 3600 segundos y en un minuto hay 60 segundos. Por ejemplo en 8000 segundos hay 2 horas (7200 seg), 13 minutos (780 seg.) y 20 segundos. 20. Calcular el valor de la siguiente expresin r = (3*c)/(a+b) 21. Dado un nmero N positivo volverlo negativo sin multiplicarlo por (-1). 22. Realizar un algoritmo para convertir metros a pies y pulgadas. (1 pie= 30.48cm ; 1 pulg. =

2.54cm) 23. Dado tres nmeros a, b y c encontrar el mayor (sin usar estructura selectiva). Ejemplo: si a=12, b=31 y c=15; el mayor es 31. 24. Dado un nmero entero positivo de cuatro dgitos mostrar el digito menor. Ejemplo si el numero introducido es 5139 el digito menor es 1 25. El dueo de una tienda compra un artculo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%. Por ejemplo si lo compra a 70 bs lo deber vender a 100 para que gane el 30%, que son 30bs. 26. Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida. 27. Introducir las notas de un estudiante del: primer parcial, segundo parcial y examen final. Se desea calcular la nota final del semestre. Tomar en cuenta que el primer y segundo parcial tienen un valor del 30% de la nota final del semestre, y el examen final vale 40%, lo que hace un total de 100 puntos (el 100%). 28. Realizar un algoritmo que calcule y muestre la distancia entre dos puntos P1 y P2. Tomar en cuenta que para cada punto se debe introducir su coordenada X y su coordenada Y. 29. Realizar un algoritmo, que dadas las coordenadas de los puntos P1, P2 y P3 que corresponden a los vrtices de un tringulo, calcule y muestre su permetro (que es la suma de sus tres lados). Para resolver este problema el algoritmo deber calcular las distancias de sus tres lados (distancia desde P1 a P2, de P2 a P3, de P3 a P1) y luego sumarlos. 30. Introducir un nmero entero y positivo de tres dgitos (N) y mostrar en un nuevo numero los dgitos ordenados de forma descendente. Por ejemplo si N=563 se debe mostrar 653 ESTRUCTURA SELECTIVA 31. Dado dos nmeros enteros diferentes, devolver el nmero Mayor. 32. Determinar si un nmero entero es positivo, negativo o neutro. 33. Calcular la raz cuadrada de un nmero y mostrar su resultado. Considerando el caso en que el nmero sea negativo. 34. Dado un carcter determinar si es una vocal. 35. Determinar si un nmero es mltiplo de 3 y 5. 36. Dado un nmero, devolver el doble si el nmero no es par, caso contrario el triple. 37. Realizar un algoritmo que lea 3 notas de un estudiante ( notas del 1 al 10) y calcule el promedio. Si el promedio de las notas es menor a 5.1 deber mostrar el mensaje Reprobado , en el caso que el promedio est entre 5.1 y 6 se mostrar el mensaje Aprobado pero dudoso, si es mayor a 6 mostrar Aprobado eficiente. 38. Dado tres nmeros, devolver el nmero mayor. Considerar si los nmeros son iguales. 39. Dado cuatro nmeros diferentes, devolver el nmero menor. 40. Dado 3 nmeros mostrarlos de forma ordenada descendente. Por ejemplo si se introduce los nmeros 5, 2, 13; se mostrar 13, 5, 2

41. Desarrolle un algoritmo donde se lea los valores de tres nmeros: A, B y C. Se desea calcular el valor de una variable D. Si A=B entonces evaluar si A> C y si cumple esta

condicin hallar D=A, sino D = C . Si A es diferente de B entonces evaluar si A>B y si cumple esta condicin hallar D = A-10, sino D= B + 10. Mostrar el valor de D. 42. Desarrolle un algoritmo donde se introduzcan 2 nmeros. Si la resta del primero menos el segundo da un nmero negativo mostrar el producto de los dos nmeros caso contrario mostrar la suma de los nmeros. 43. Leer cuatro nmeros a, b, c y d luego sumar el primero con el segundo, multiplicar el tercero con el cuarto, posteriormente de los resultados obtenidos restar el menor con el mayor y mostrar el resultado. 44. Desarrolle un aplicacin que obtenga las raices reales de una ecuacin de segundo grado del tipo ax2+bx+c=0. La ecuacin para las soluciones es la siguiente: = 2 4 2

Considerar que si la expresin dentro de la raiz da como resultado un nmero negativo (menor que 0), las soluciones sern imaginarias, en este caso no se calcularn las soluciones pero la aplicacin debe mostrar un mensaje indicando que las soluciones son imaginarias. Tambin considerar que si el termino "a" vale 0 entonces ya no es una ecuacin cuadrtica, en ese caso solo habr una solucin la cual se debe calcular y mostrar. 45. Pedir un nmero e indicar si es positivo, negativo, neutro, par, impar y mltiplo de cinco, mostrar todos los mensajes que se cumplan. Ejemplo si ingresa 9 se debe mostrar los mensajes de positivo, impar. Si ingresa 20 se debe mostrar los mensajes de positivo, par, mltiplo de cinco 46. Pedir un nmero que representara a los meses del ao y mostrar en forma escrita. Por ejemplo si entra 9 se muestra Septiembre. Si entra 15 se muestra Error 47. Pedir tres nmeros que sern los lados de un triangulo e indicar que tipo de triangulo es, sabiendo que si tiene los tres lados iguales es un triangulo equiltero, si tiene dos lados iguales es un triangulo escaleno y si todos los lados son diferentes es un triangulo issceles. Por ejemplo si entra 8, 10, 8 se muestra escaleno

48. Pedir un nmero de un solo digito positivo y mostrar en forma escrita. Por ejemplo si ingresa 5 se muestra cinco. Otro ejemplo si ingresa 15 se muestra ms dgitos Error 49. Pedir el sueldo de un empleado y ao de ingreso a la empresa, calcular el nuevo sueldo del empleado. Sabiendo que a partir de tres aos tendr un bono de 3%, de cinco aos tendr un bono del 6% y a partir de 10 aos tendr un bono del 10% del sueldo.

50. Pedir tres notas de un alumno en porcentaje (1 al 100), calcular el promedio e indicar si Aprob (aprueba con un mnimo de 51), en caso de Reprobar se pide la nota de Recuperacin en porcentaje y en base a esa nota se indica si Aprob o Reprob (si aprueba con el recuperatorio su nota final solo ser 51). Por ejemplo si las notas son 80,

90, 85 se muestra Aprob con 85. Otro ejemplo si las notas son 35, 50, 55 como reprob se pide la nota recuperacin 72 y se muestra Aprob con 51

Desarrollado Por: Ing. Alanoca Mara Luisa Ing. Carpio Sandoval Javier Lic. Snchez Torrez Tomas Ing. Rios Miranda Bhylenia

Buena suerte!!!

Hacer un programa que al dar la hora hh, mm, ss, muestre las horas, minutos y segundos y tambin nos calcule la hora despus de 2 segundos. inicio leer hh, mm, ss

si (hh < 24) y (mm<60) y (ss>60) entonces ss <-- ss + 2 si ss = 60 entonces ss <-- 0 mm <-- mm + 2 si mm = 60 entonces mm <-- 0 hh <-- hh + 2 si hh = 24 entonces hh <-- 0 fin_si fin_si fin_si fin_Si escribir hh, mm, ss fin

Hacer un programa que lea 2 nmeros y deducir si estn en orden creciente o decreciente. inicio leer a, b si a <= b entonces escribir "orden creciente" si_no escribir "orden decreciente" fin_si fin

Calcular el nmero mayor de una lista de nmeros. real: UM, MAX entero: I, N inicio leer N // N >0 leer NUM MAX <-- NUM desde I <-- 2 hasta 100 hacer leer NUM si NUM > MAX entonces MAX <-- NUM fin_si fin_desde fin

De una lista de 100 nmeros determinar simultaneamente el mximo y mnimo nmero. I: entero MAX, MIN, NMERO: real inicio leer NUMERO

MAX <-- NUMERO MIN <-- NUMERO desde I <-- 2 hasta 100 hacer leer NUMERO si NUMERO > MAX entonces MAX <-- NUMERO sino si NUMERO < MIN entonces MIN <-- NUMERO fin_si fin_si fin_desde escribir "mximo", MAX, "mnimo", MIN fin Se ingresan 5 notas de un alumno, publicar 2 peores notas. inicio dimensionar a[100] x <-- 1 mientras x <= 5 hacer leer a[x] x <-- x + 1 fin_mientras x <-- 1 mientras x <= 5 hacer y <-- 1 mientras y <= 5 hacer si a[x] < a[y] entonces T <-- a [x] a[x]<-- a[y] a[y] <-- T fin_si y <-- y + 1 fin_mientras y <-- y + 1 fin_mientras //publicar x <-- 5 mientras x >= 2 hacer escribe a [x] x <-- x + 1 fin_mientras fin Calcular las raices de una ecuacion de segundo grado(a+bx+c=0)? variables a,b,c,x,x inicio leer a,b,c d_(b)-(4*a*c) si a<>0 y d>=0 entonces x_(-b+sqrt(d))\(2*a) x_(-b-sqrt(d))\(2*a) imprimir x,x

sino imprimir"no se efectua la operacion" fin si fin

Dada la duracion en minutos de una llamada calcular el costo,considerando? -Hasta tres minutos el costo es 0.50 -Por encima de tres minutos es 0.50 ms 0.1*cada minuto adicional a los tres primeros variables M,C inicio leer M si M<=3 C_0.50 sino C_0.50+0.1*(M-3) fin si imprimir el "C" fin

Dado tres numeros calcular el mayor? variables n1,n2,n3,M inicio leer n,n,n si n>n y n>n entonces mayor_ n sino fin si si n>n y n>n entonces mayor_ n sino mayor_ n fin si imprimir mayor fin

Dada N notas calcular el promedio de las notas aprovadas y el promedio de las notas desaprovadas? variables N,C,S,I,nota,S,S,Pa,Pd inicio leer N I_1 S_0 S_0

C_0 S_0 mientras I<=N hacer leer nota si nota>=12 entonces S_ S+nota C_ C+1 sino S_S+nota S_S+1 fin si I_I+1 fin mientras Pa_ suma1\C Pd_ suma2\S imprimir Pa,pd fin

Dado N calcular:(1)+(2)+(3)+......+(N*N)? variables N,I,S inicio leer N I_1 S_0 mientras I<=N hacer S_S+(I*I) fin mientras imprimir S fin

Dado N y X calcular: x1/1+x3/3+x5/5+...........+x(2n)-1? variables I,N inicio leer N I_1 mientras 1<=2*n hacer si I mod 2=0 entonces imprimir I fin si I_I+1 fin mientras fin

Dado el monto de una compra -descuento es 10% si el -descuento es 20% si el soles -no hay descuento si el

calcular el descuento considerado monto es mayor a 100 soles monto es mayor a 50 soles y menor o igual a 100 monto es mayor o igual a 50 soles

variables monto, descuento inicio leer monto si monto>100 entonces descuento_ monto*0.1 sino si monto>50 entonces descuento_ monto*0.2 sino descuento_0 fin si fin si imprimir descuento fin

Dadas tres longitudes, decir mediante un mensaje si forma un triangulo o no (cada lado tiene que ser menor que de las otras dos)? variables a,b,c inicio leer a,b,c si (a+b)<a (c+a)<b (a+b)<c imprimir sino imprimir fin si fin

y y entonces "si se formo el triangulo" "no se formo el triangulo"

A una fiesta asistieron personas de diferentes edades y sexos. Contruir un algoritmos dadas las edades y sexos de las personas.? calcular : -Cuantas personas asistieron a la fiesta -Cuantos hombres y cuantas mujeres -Promedio de edades por sexo -La edad de la persona ms joven que asistio -No se permiten menores de edad a la fiesta -Ingresar datos hasta que se ingrese una edad a cero variables sev-suma de edades de varones sem-suma de edades de mujeres a-asistentes v-varones m-mujeres e-edades s-sexo inicio

sev_0 sem_0 a_0 v_0 e_1 menor_200 mientras e<>0 hacer leer e,s si e>=18 entonces a_a+1 si s="m" entonces m_m+1 sem_sem+e sino v_v+1 sev_sev+e finsi si e<menor entonces menor_e finsi sino imprimir "menor de edad" finsi fin mientras pm_sem\m pv_sev\v imprimir pm,pv,menor,a,m,v fin

Dada las horas trabajadas de 20 personas y la tarifa de pago calcular el salario? variables horas tarifa salario inicio i_1 mientras i<=20 hacer leer horas , tarifa salario_ horas *tarifa imprimir salario i_i+1 fin mientras

De una lista de 10 nmeros calcular la media y determinar cuantos son mayores que 10.5, cuantos son iguales y cuntos son menores. Inicio Real Num S <- 0.00 M <- 0.00; Entero I, C1 = 0, C2 = 0, C3 = 0; Para i = 1 ; i = 10 Leer Num

10

Fin_Para Para i = 1 ; i = 10 S <- S + Num Fin_Para M <- 10 Para i = 1; i = 10 Si Num = 10.5 entonces C1 <- C1 + 1 Fin_Si Si Num > 10.5 C2 <- C2 + 1 Fin_Si Si Num < 10.5 entonces C3 <- C3 + 1 Fin_Si Fin_Para Escribir "Media" , M ; Escribir "Iguales que l10.5" , C1 ; Escribir "Mayores que 10.5", C2 ; Escribir "Menores que 10.5" , C3; Fin

Se desea realizar un algoritmo que realice las siguientes tareas: a)Leer una lista de nmeros enteros b)Visualizar dichos nmeros. c)El algoritmo deber pedir si yo deseo ordenar en sentido decreciente o creciente (burbuja) Inicio Num : entero Repetir Mostrar Mostrar Mostrar Mostrar Repetir "A "B "C "D ingresar" mostrar" ordenar" salir"

creciente [

Ingresar opc Hasta (opc = A) o (opc = B) o (opc = c) o (opc = d) Segn sea opc hacer A : Inicio Para i = 1 ; i = N Ingresar Num Fin_Para Fin B : Inicio Para i = 1 ; i = N Mostrar Num Fin_Para Fin C : Inicio Repetir Ingresar "ordenar decreciente o ]" : rp Hasta (rp = c) o (rp = d) Si (rp = c) entonces Para (i = 1 , = N - 1 ; i ++) Para j = 1 ; j = N - i

11

Si num [j]) > Num [j + 1] entonces Aux <Num [j] Num [j] <- num [j+1] Num [j + 1] <- aux Fin_Para Fin_Para Sino Para I = 1 ; i = N - 1 Para j = 1 ; j = VF - i Si Num [j] < Num [j+1] entonces Aux <Num [j] Num [j] <- Num [j + 1] Num [j + 1] <- aux Fin_Si Fin_Para Fin_Para Fin_Si Hasta (opc = D) Fin

Se tiene un arreglo "A" donde se encuentra 10 nmeros ordenados en forma ascendente, y se pide que el algoritmo me permita el ingreso de un nmero y lo coloque en la posicin donde debera de estar con respecto al orden del arreglo. Inicio A [10] : entero i , num, p, N : entero Para i = 1 , i = 10 ingresar A Fin_para p <- N + 1 ingresar "nmero" : num Para I = 1 , i = N Si num = A [i] entonces P <- i i <- N + 1 Fin_Si Fin_Para N <- N + 1 Para i = N ; i > P A [i] <- A [i - 1] Fin_Para A [p] <- num Fin

Realizar un algoritmo que permita ingresar una frase y la descomponga esta en sus palabras imprimindolas al revs. Ejem.

12

CIUDAD CHICLAYO DADUIC OYALCIHC Inicio Caracter Frase [20] ; Entero L, K, C, j ; Lee cadena (Frase) ; L = longitud (Frase) ; Para i = 1 ; i = L Si (Frase [i] = ' ') entonces Ce <- ce + 1 ; Fin_Si Fin_Para Entero x = 1 Para i = 1 K = 1 C = 0 Para j = x ; Frase [j] < > '' Invertida [k] <- Frase [j] C <- C + 1 Fin_Para Para k = 1 ; k =L Mostrar "Invertida [k] Fin_Para x = j + i Fin_Para Fin

Disear un algoritmo que calcule y almacene en un arreglo los 105 primeros nmeros pares anteriores a un nmero dado N (N es mayor que 51 y menor que 100), para posteriormente proceder a ordenarlo en sentido decreciente. Inicio Num [50]: entero i, j : entero Repetir Ingresar Num Hasta Num [i] > 51) y (Num [i] < 100 Repetir Num <- Num + 1 Si (Num [i] mod 2 < > 0) y (num [i] < > 0) entonces c <- C + 1 Fin_Si Hasta C <- 105 VF <- C Para i = 1 ; i = VF - 1 Para j = 1 ; j = VF - i Si Num [j] < num [j + 1] entonces Aux Num <- Num [j] Num [j] <- Num [j + 1] Num [j + 1] <- aux Num Fin_Si Fin_Para Fin_Para Fin

13

Hacer un programa que registre 10 apellidos y que los muestre en forma inversa al orden con el que fueron ingresados. Inicio Dimensionar Apellido[10] X<-1 mientras x<=10 hacer leer Apellido[x] x<- x+1 fin_mientras X <- 10 mientras X >= 1 hacer mostrar Apellido[X] X <- X - 1 fin_mientras Fin

Elaborar un algoritmo que permita ingresar 20 nmeros y muestre todos los nmeros menores e iguales a 25 Inicio Dimensionar NUM[20] X<-1 mientras X<=20 hacer leer NUM[X] X<- X+1 fin_mientras X <- 1 N <- 0 Mientras X<=20 Hacer Si NUM[X]<=25 entonces N <- N+1 Mostrar NUM [X] Fin_si X <- X+1 Fin_Mientras Si N = 0 Entonces Mostrar "Ningn nmero es Menor a 25" Fin_si Fin

Elaborar un algoritmo, que permita el ingreso de 100 nmeros enteros. El programa debe sumar todos los nmeros que sean mltiplos de 3. Inicio Dimensionar numero[100] x<-1 mientras x<=100 hacer leer numero[x] x<-x+1 fin - mientras x<- 1 s<- 0 mientras x<=100 hacer

14

Si (numero[x] mod 3 = 0) entonces s<- s+numero[x] Fin_Si x<-x+1 Fin_mientras Mostrar s Fin

Mostrar las 30 primeras potencias de 3 y la suma de ellos. Inicio Dimensionar nmero[30] x<-0 n<-3 t<-0 s<-0 mientras x<=29 hacer t<- n^(x+1) Mostrar t s <- s + t x <- x+1 fin_mientras Mostrar s Fin

Hacer un algoritmo que pida 10 edades y mostrarlas en orden inverso al que fueron ingresados. Inicio Dimensionar E[20] X <- 1 Mientras X <= 10 hacer Leer E[X] X <- X+1 Fin_mientras Y <- 10 Mientras Y >= 1 hacer Mostrar E[Y] Y <- Y-1 Fin_mientras Fin

ELIMINAR UN ALUMNO DEL SALON, DADA UNA POSICIN INDICADA Inicio Dimensionar ALUMNO[100],NOTA1[100], NOTA2[100] ENTERO i,pos,n leer n i <- 1 mientras i<=n hacer leer ALUMNO[i], NOTA1[i],NOTA2[i] i <- i+1 fin_mientras leer pos

15

si (pos<n) entonces i <- pos mientras i<n ALUMNO[pos]<- ALUMNO[pos + 1] NOTA1 [pos]<- NOTA1[pos+1] NOTA2 [pos]<- NOTA2[pos+1] n <- n-1 fin_mientras escribir ALUMNO[pos], NOTA1[pos],NOTA2[pos] sino si (pos=n) entonces ALUMNO[n]<- "" NOTA1 [n]<- 0 NOTA2 [n]<- 0 fin_si sino si (pos>n) entonces Escribir "Cambiar Dato" fin_si Fin

INGRESAR UN ELEMENTO EN UNA POSICION INDICADA EN UN ARREGLO DE N ELEMENTOS (NUMEROS), HASTA QUE EL USUARIO DESEE SALIR. Inicio Dimensionar numero[100] entero ne,pos,i,nuevo e caracter rpta leer n para i=0 hasta i<n leer numero[i] fin_para Repetir leer rpta,pos si(pos<n) entonces leer pos,nuevo e para i=n hasta i>pos de -1 numero[i]<- numero[i-1] fin_para numero[pos]<- nuevo e n<-n+1 sino escribir"posicion no existe" fin_si Hasta rpta="s" Fin

MOSTRAR ASCENDENTEMENTE LOS NUMEROS DE UN ARREGLO Inicio Dimensionar numero[100] entero i,j,NE,aux leer NE si (NE>0) entonces para(i=0 hasta i<NE)

16

leer numero [i] fin_para para i=0 hasta i<NE-1 para j=i+1 hasta j<NE si(numero [i]> numero[j])entonces aux <- numero [i] numero[i]<- numero[j] numero[j]<- aux fin_si fin_para fin_para para i=0 hasta i< NE escribir numero[i] fin_para sino escribir"no existe elemento en el arreglo" fin_si Fin

MOSTRAR ALUMNOS ORDENADOS POR MAYOR PUNTAJE DE PROMEDIO Inicio Dimensionar alumno[100], nota[100] entero i ,j,NE,aux1,aux2 leer NE si(NE>0) entonces para i=0 hasta i<NE leer alumno[i],nota[i] fin_para para i=0 hasta i<NE-1 para j=i+1 hasta j<NE si( nota[i]<nota[j]) entonces aux1<- alumno[j] aux2<- nota[i] alumno[i]<- alumno[j] nota[i]<- nota[j] alumno[j]<- aux1 nota[j]<-aux2 fin_si fin_para fin_para para i=0 hasta i<NE escribir alumno[i],nota[i] fin_para fin_si Fin

MOSTRAR ARTICULOS DE ABARROTES ORDENADOS POR MAYOR PRECIO Y MOSTRAR LOS 5 ARTICULOS DEMENOR PRECIO Inicio Dimensionar articulo[100],precio[100] enteroi,j,NE real aux1 caracter aux2

17

leer NE si(NE>0)entonces para i=0 hasta i<NE leer articulo[i],precio[i] fin_para para i=0 hasta i<NE-1 para j =i+1 hasta j<NE si(precio[i] < precio[j]) entonces aux1<- precio aux2<- articulo[i] precio[i]<- precio[j] articulo[i]<- precio[j] precio[j]<- aux1 articulo[j]<- aux2 fin_si fin_para fin_para para i=0 hasta i<NE escribir articulo[i],precio[i] fin_para para i=NE hasta i>5 escribir articulo [i],precio[i] fin_para sino escribir "arreglo vacio" fin_si Fin

Hacer un programa que permita el ingreso de Nombre[X], Telefono[X], donde X va desde 1a 100 luego mostrar la lista de los usuarios en orden inverso a la que fueron ingresados. Inicio Dimensionar Nombre[200], Telefono[200] X <- 1 mientras X <= 100 hacer leer Nombre[X], Telefono[X] X <- X + 1 fin_mientras X <- 100 mientras X >= 1 hacer mostrar Nombre[X], Telefono[X] X <- X - 1 fin_mientras Fin

En una empresa de 1000 trabajadores, se har un aumento al salario de acuerdo al tiempo de servicio, para este aumento se tomar en cuenta lo siguiente: Tiempo de servicio: de 1 a 5 aos Aumento: S/. 100 Tiempo de servicio: de 5 a 10 aos Aumento: S/. 250 Tiempo de servicio: de 10 a 20 aos Aumento: S/. 400 Tiempo de servicio: de 20 aos a ms Aumento: S/. 550 Se desea obtener unalista del personal en orden creciente con respecto al sueldo modificado

18

Inicio Dimensionar Nombre[1200], Tiempo[1200], Sueldo[1200] X <- 1 mientras X <= 1000 hacer leer Nombre[X], Tiempo[X] X <- X + 1 fin_mientras X <- 1 mientras X <= 1000 hacer si Tiempo[X] <= 5 entonces Sueldo[X] <- 1000 + 100 fin_si si Tiempo[X] <= 10 entonces Sueldo[X] <- 1000 + 250 fin_si si Tiempo[X] <= 20 entonces Sueldo[X] <- 1000 + 400 sino Sueldo[X] <- 1000 + 550 fin_si X <- X + 1 fin_mientras X <- 1 mientras X <= 1000 hacer Y <- X mientras Y <= 1000 hacer si Sueldo[X] > Sueldo[Y] entonces T <- Nombre[X] Nombre[X] <- Nombre[Y] Nombre[Y] <- T T <- Tiempo[X] Tiempo[X] <- Tiempo[Y] Tiempo[Y] <- T T <- Sueldo[X] Sueldo[X] <- Sueldo[Y] Sueldo[Y] <- T fin_si Y <- Y +1 fin_mientras X <- X + 1 fin_mientras X <- 1 mientras X <= 100 hacer mostrar Nombre[X], Tiempo[X], Sueldo[X] X <- X + 1 fin_mientras Fin

Dada una lista de 100 personas se pide una relacin de las personas mayores de 35 aos. Inicio Dimensionar Nombre[150], Edad[150] X <- 1 mientras X <= 150 hacer leer Nombre[X], Edad[X]

19

X <- X + 1 fin_mientras X <- 1 mientras X <= 150 hacer Si Edad[X]>= 35 Entonces mostrar Nombre[X], Edad[X] fin_si X <- X + 1 fin_mientras Fin

En una encuesta cuyas alternativas son "si" y "no" participaron 10000 personas.Se quiere saber cuantas personas votaron por la primera opcin. Inicio Dimensionar Voto[10000], SI[10000], NO[10000] X <- 1 S <- 0 N <- 0 mientras X <= 10000 hacer leer Voto[X] Si Voto[X]= "si" Entonces S <- S + 1 Sino N <- N + 1 fin_si X <- X + 1 fin_mientras mostrar S Fin

Disear un algoritmo, que permita ingresar el dividendo y el divisor y que luego me calcule el residuo y el cociente de dicha divisin. Inicio D,d,c :entero r :real Leer "Dividendo",D Repetir Leer "Divisor", d Hasta (d <> 0) Hacer c D div d Hacer r D mod d Mostrar "El cociente": c Mostrar "El residuo": r Fin

Disear un algoritmo que calcule y escriba el cuadrado de 243. Inicio A: entero M: entero Ingresar A Si A = 243 entonces

20

Hacer M A * A Fin_si Mostrar Fin "M"

Disear un algoritmo que intercambie los valores de dos variables numricas. Inicio Aux, N1, N2: entero Leer "Primer Numero", N1 Leer "Segundo Numero", N2 Si (N1 <> N2) entonces Hacer Aux N1 Hacer N1 N2 Hacer N2 Aux Fin_si Mostrar "N1" Mostrar "N2" Fin

Disear un algoritmo que me permita ingresar cualquier nmero mayor que cero y menor que diez, y luego el algoritmo deber calcular los mltiplos menores que cien del numero ingresado. Inicio A, i, M : entero Repetir Ingresar A Hasta (A > 0 y A < 10) Para (i>0; i<=100,i++) Hacer M A * i Fin_Para Mostrar "N1" Mostrar "N2" Fin

Disear un algoritmo que me permita ingresar un valor inicial y luego un valor final, para luego calcular el valor central de los nmeros. Inicio A1, A2: entero C: real Leer "Valor inicial",A1 Leer "Valor final",A2 Hacer C (A1+A2)/2 Mostrar "Valor central",C Fin

Leer 200 nmeros y obtener cuantos son positivos, negativos e iguales a cero. Inicio N : entero C1 0; C2 0; C3 0: entero

21

Repetir Leer N Si (N > 0) entonces Hacer C1 C1 + 1 Si (N < 0) entonces Hacer C2 C2 + 1 Si (N = 0) entonces Hacer C3 C3 + 1 Fin_Si Fin_Si Fin_Si Hasta (C1+C2+C3=200) Fin

Disear un algoritmo que me permita determinar si un numero ingresado desde el teclado es un numero par o impar. Inicio A : entero Repetir Ingresar A Hasta (A > 0) Si (A mod 2 = 0) entonces Mostrar "A es par" Sino Mostrar "A es impar" Fin_Si

Fin
Se desea calcular independientemente la suma de los nmeros pares e impares comprendidos entre 1 y 50. Inicio B, i: entero S1 0; S2 0 : real Para(i=1; i<50; i++) Repetir Ingresar B Hasta (B mod 2 = 0) Hacer S1 S1 + B Mostrar"S1" Hasta (B mod 2 <> 0) Hacer S2 S2 + B Mostrar"S2" Fin_Para Fin

Disear un algoritmo que me permita ingresar una lista de nmeros terminados con el numero cero, para luego calcular cuantos nmeros fueron ingresados. Inicio N, C 0:entero Repetir Ingresar "N"

22

Si(N <> 0) entonces Hacer C C +1 Fin_Si Hasta (N = 0) Mostrar "C" Fin

Determinar la media aritmtica de una lista de nmeros positivos. Inicio N, S 0, C 0, :entero Media : real Leer N Si(N > 0) entonces Hacer C C + 1 Hacer S S + N Fin_Si Media S / C Mostrar "Media" Fin

Averiguar si dado dos nmeros, uno es divisor de otro. Inicio N1, N2 :entero Leer N1, N2 Si(N1 > N2) entonces Mostrar N2 "es divisor de " N1 Fin_Si Si(N1 = N2) entonces Mostrar "Son divisores" Fin_Si Si(N1 < N2) entonces Mostrar N1 "es divisor de " N2 Fin_Si Fin

Disear un algoritmo que me permita calcular los 4 primeros nmeros pares, para posteriormente calcular su media aritmtica. Inicio N 0, X 0, P 0 :entero Media : real Repetir N N + 1 Si(N mod 2 = 0) entonces Hacer p p + 1 Hacer x x + N Fin_Si Hasta (p = 4) Media X/P Mostrar "Media" Fin

23

Disear un algoritmo que me permita ingresar 10 nmeros primos cualesquiera. Inicio K 0, N, P 0, i 0 :entero Repetir Leer N Para (i = 1; i<= N; i++) Si(N mod i = 0) entonces Hacer K K + 1 Fin_Si Fin_Para Si(N mod i = 0) entonces Hacer P P + 1 Fin_Si Hasta (p > = 10) Fin

Disear un algoritmo que calcule los 5 primeros nmeros impares que preceden a un numero N ingresado por teclado. Inicio N 0, C 0 :entero Leer N Repetir Hacer N N - 1 Si(N mod 2 <> 0) entonces Hacer C C + 1 Mostrar N Fin_Si Hasta (C = 5) Fin

Ingresar una lista de 25 notas y determinar cuantas estas fueron aprobadas. Inicio Nota, Aprobado 0, i 0 :entero Para (i = 1; i<= 25; i++) Repetir Leer Nota Hasta (Nota <= 20) y ( Nota > 10) Si(Nota > 10) entonces Hacer Aprobado Aprobado + 1 Fin_Si Fin_Para Mostrar "Total de aprobados",Aprobado Fin

Disear un algoritmo que me permita calcular las 5 primeras parejas de nmeros primos gemelos(dos nmeros son primos gemelos si adems de ser nmeros primos, la diferencia entre ellos es exactamente dos).

24

Inicio C 0, G1 0, G2 0, N1, N2 :entero Repetir Ingresar N1, N2 Hasta (N1 > 0) y ( N2 > 0) Repetir Para (i = 1; i<= N1; i++) Si(N1 mod i = 0) entonces Hacer G1 G1 + 1 Fin_Si Fin_Para Para (i = 1; i<= N2; i++) Si(N2 mod i = 0) entonces Hacer G2 G2 + 1 Fin_Si Fin_Para Si(G1 = 2) y (G2 = 2) entonces Mostrar "N1 y N2 son primos Si (N1-N2=2)o(N2-N1= 2) entonces Hacer C C + 1 Sino Mostrar "Error" Fin_Si Fin_Si Hasta (C = 5) Fin

Disear un algoritmo que me permita calcular los 5 primeros nmeros perfectos (un numero es perfecto, cuando la suma de sus divisores, sin incluirlo al numero es exactamente el mismo numero). El 6 es un numero perfecto por sus divisores son 1,2 y 3. Inicio N 0, P 0, C 0 :entero Repetir Hacer N N + 1 Para (i = 1; i< N; i++) Si(N mod i = 0) entonces Hacer C C + 1 Fin_Si Fin_Para Si(C = N) entonces Hacer P P + 1 Fin_Si Hasta (P = 5) Fin

Disear un algoritmo que permita convertir un numero natural en nmeros romanos. Inicio N, Miles, Resto, Cen, Dec, Uni :entero Leer N Miles = N/1000 Resto = N mod 1000

25

Cen = Resto/100 Resto = Resto mod 100 Uni = Resto mod 10 Escribir "En romanos es:" Segn sea (Miles) Escribir "M" Escribir "M" Fin_Segn Segn sea (Cen) Escribir "C" Escribir "CC" Escribir "CCC" Escribir "CD" Escribir "D" Escribir "DC" Escribir "DCC" Escribir "DCCC" Escribir "CM" Fin_Segn Segn sea (Dec) Escribir "X" Escribir "XX" Escribir "XXX" Escribir "XL" Escribir "L" Escribir "LX" Escribir "LXX" Escribir "LXXX" Escribir "XC" Fin_Segn Segn sea (Uni) Escribir "I" Escribir "II" Escribir "III" Escribir "IV" Escribir "V" Escribir "VI" Escribir "VII" Escribir "VIII" Escribir "IX" Fin_Segn Fin

Disear un algoritmo que me permita calcular el factorial de un numero. Utilice las estructuras repetitivas(Repetir Hasta, Repetir Mientras, Repetir Desde - Para) **Repetir Hasta Inicio N, i, F : entero Leer N F 1 Repetir F F * N N N - 1 Hasta (N = 0)

26

Mostrar "F" Fin **Repetir Mientras Inicio N, F : entero Leer N F 1 Mientras (N > 1) F F * N N N - 1 Fin_Mientras Mostrar "F" Fin **Repetir Desde Inicio N, i, F : entero Leer N F 1 Desde (i = 1) hasta N hacer F F * i i i + 1 Fin_Desde Mostrar "F" Fin **Repetir Para Inicio N, i, F : entero Leer N F 1 Para (i = 1; i<=N; i++) F F * i i i + 1 Fin_Para Mostrar "F" Fin

Disear un algoritmo que permita calcular la suma de los primeros 30 trminos de la siguiente serie: 1-1/3+1/5-1/7...+1/9 Siendo N un numero ingresado por el teclado. Inicio N 0, C 0 : entero S 0 : real Repetir N N+1 Si (N mod 2 <>0) entonces Hacer C C + 1

27

Si (N mod 2 = 0= ENTONCES Hacer S S-7/N Sino S S + 1/N Fin_Si Fin_Si Hasta (N = 30) Fin

Disear un algoritmo que permita encontrar la solucin a la siguiente serie:1,1/2!,1/3!,1/4!,1/5!,...1/N! Siendo N un numero ingresado por el teclado. Inicio N, H, K, F :entero S : real Leer N Repetir Hacer K K + 1 Hacer H K Hacer F 1 Repetir Hacer F F * H Hacer H H-1 Hasta (H = 0) Hacer S 1/F Mostrar 1/F Hasta (k = N) Fin

Realizar el diseo de un algoritmo que me permita : Ingresar el cdigo del trabajar Ingresar numero de horas trabajadas Ingresar el costo de la hora Calcular el sueldo bruto semanal Calcular el sueldo neto semanal Imprimir el sueldo bruto y el sueldo neto respectivo(sueldo bruto menos el descuento del seguro de pensiones 11%) Inicio Cod : entero HT, CH, SB 0, SN, DESC : real Leer "codigo",cod Repetir Leer "costo hora",CH Hasta (HT > 0 y CH > 0) Hacer SB HT * CH Hacer Desc SB * (11/100) Hacer SN SB - Desc Mostrar "Sueldo Bruto",SB Mostrar "Sueldo Neto" ,SN Fin

28

Realizar un algoritmo que me permita ingresar un numero determinado de segundos y lo convierta en horas, minutos y segundos. Inicio S, H, M :entero Repetir Ingresar "s" Hasta (S > 0) Si(S > = 3600) entonces Hacer H S div 60 Hacer S S mod 60 Fin_Si Mostrar "H", "M", "S" Fin

Realizar un algoritmo que me permita ingresar la hora, minutos y segundos y que me indique cuantos segundos son. Inicio T, H, M, S, P1, P2, P3 Ingresar S, H, M Hacer P1 H * Hacer P2 M * Hacer P3 S * T = (P1 + P2 + P3) Mostrar "T" Fin :entero 3600 60 1

Disear un algoritmo que me permita ingresar la hora, minutos y segundos y que me calcule la hora en el siguiente segundo ("0=< H =<23", "0=< M =<59" "0=< S=<59"). Inicio HH 0, MM 0, SS 0 : entero Leer (HH, MM, SS) Si (HH < 24) y (MM < 60 y (SS < 60) entonces Hacer SS SS + 1 Si (SS 60) entonces Hacer S 0 Hacer MM MM + 1 Si (MM=60) entonces Hacer MM 0 Hacer HH HH + 1 Si (HH = 24) entonces Hacer HH 0 Fin_Si Fin_Si Fin_Si Fin_Si Mostrar ("HH", "MM", "SS") Fin

29

Ingresar el numero el mes y determinar cuantos das tiene el mes, para el caso de Febrero, el algoritmo deber indicar que no cuenta con la informacin necesaria para dar la respuesta. Inicio Mes :entero Repetir Leer Mes Hasta (Mes > = 1) y (Mes <=12) Segn sea Mes hacer 1,3,5,7,8,10,12:Mostrar "Tiene 31 das" 4,6,9,11: Mostrar "Tiene 30 das" 2:"No cuenta con la informacin necesaria" Fin_Segn sea Fin

Escribir un algoritmo que determine si un ao es bisiesto. Un ao es bisiesto si es mltiplo de 4 (por ejemplo 1984). Los aos mltiplos de 100 no son bisiestos, salvo si ellos son tambin mltiplos de 400 (2000 es bisiesto, pero; 1800 no lo es). Inicio Ao, B : entero Leer "Ao" Si (B mod 4000 = 0) entonces Mostrar "Ao es bisiesto" Fin_Si Si (B mod 100 = 0) entonces Mostrar "Ao no es bisiesto" Fin_Si Si (B mod 4 = 0) entonces Mostrar "Ao es bisiesto" Sino Mostrar "Ao no es bisiesto" Fin_Si Fin

Ingresar el da, mes y ao en el formato numrico (2-11-2001), para luego mostrarlo el formato carcter (2 de Noviembre del 2001). Inicio D, M, A :entero Repetir Ingresar D, M, A Hasta (D>= 0 y D< = 31) y (M> = 0 y H< = 12) y (A >= 0) Segn sea M hacer Mostrar "D de Enero del A" Mostrar "D de Febrero del A" Mostrar "D de Marzo del A" Mostrar "D de Abril del A" Mostrar "D de Mayo del A" Mostrar "D de Junio del A" Mostrar "D de Julio del A" Mostrar "D de Agosto del A" Mostrar "D de Septiembre del A"

30

Mostrar "D de Octubre del A" Mostrar "D de Noviembre del A" Mostrar "D de Diciembre del A" Fin_Segn sea

Fin
hacer un programa que registre 50 consumo realizados 'por las personas * si el consumo esxceda 50, el descuento sera 20%. * muestre el total todos los pagos total. inicio x<-1 pago<-0 pago_total<-0 mientras x <=50 hacer si consumo >50 entonces descuento<- descuento*0.20 sino desc<-0 fin-si pago <- consumo - descuento pago_total <- pago_total + pago x<- x+1 fin-mientras fin

se desea saber: alumnos[x], examen parcial[x], examen final[x] . cual de los alumno tiene las mejores promedios. . cuales fueron los 5 peores alumnos del examen parcial. . cuales fueron los 3 peores del examen final NOTA : repetido EL EJERCICIO inicio dimensionar alumnos[100], examen parcial[100], examen final[100] n <- 10 x <- 1 mientras x<= n hacer leer alumnos[x], examen parcial[x], examen final[x] x <- x+1 fin_mientras C<-0 X <-1 mientras X<=N hacer p <- ( e. parcial[x] + e. final[x])/2 si p> c entonces c<- p A <- alumnos[x] fin-si x <-x+1 fin_mientras x <-1 mientras x >=n hacer y <- x mientras y <= n hacer si examen parcial[x]> examen parcial[x] entonces t<- examen parcial[x]

31

examen parcial[x] <- examen parcial[y] examen parcial[y] <- t t <- examen final[x] examen final[x] <- examen final[y] e. final[y] <- t t <- alumnos[x] alumnos[x] <- alumnos[y] alumnos[y] <- t fin-si y <- y+1 fin_miemtras x <- x+1 fin_mientras x <- 1 mientras x<= 5 hacer escribir alumnos[x], examen parcial[x], examen final[x] x <- x+1 fin-mientras x <-1 mientras x<= n hacer y <- x mientras y <=n hacer si examen final[x] > examen final[x] entonces t <- examen final[x] examen final[x] <- examen final[y] examen final[y] <- t t<- e. parcial[x] e. parcial[x] <- e. parcial[y] e. parcial[y] <- t t <- alumnos[x] alumnos[x] <- alumnos[y] alumnos[y] <- t fi-si y <- y+1 fin-mientras x <- x+1 fin-mientras x <- 1 mientras x <=3 hacer escribir escribir alumnos[x], examen parcial[x], examen final[x] x <- x+1 fin-mientras fin

hacer

varios sorteo: ORDENAR POER NOMBRE

REPETIDO EL EJERCICIO : codigo[x], nombre [x], direccin[x]

32

inicio dimensionar codigo[100], nombre [100], direccin[100] x <- 1 n <- 10 mientras x <=n hacer leer codigo[x], nombre [x], direccin[x] x <- x+1 fin-mientras x<- 1 mientras x <= n hacer y <- x mientras y <=n hacer si nombre [x]> nombre [x] entonces t <- nombre [x] nombre [x] <- nombre [y] nombre [y] <- t t<- codigo[x] codigo[x] <-codigo[y] codigo[y] <- t t <- direccin[x] direccin[x] <- direccin[y] direccin[y] <-t fin-si y <- y+1 fin-mientras x <- x+1 fin-mientras x <-1 mientras x <= n hacer escribir codigo[x], nombre [x], direccin[x] x <- x+1 fin-mientras fin

clasificar los sgts lista en forma ascendente 1.- (72) 2.- (50) 3.- (37) 4. (9) 5.. (45) 6.(19) inicio dimensionar a[100] x <- 1 n <- 6 mientras x <= 6 hacer leer a[x] x <- x+1 fin- mientras I <- 1

33

mientras I <= n-1 hacer y <- 1 mientras y<= n-1 hacer si [y]> a[y+1] entonces t <- a[y] a[y] <- a[y+1] a[y+1] <- t fin-si y<- y+1 fin-mientras I <- I +1 x <- 1 mientras x <= 6 hacer escribira a[x] fin-mientras fin

Hacer un programa que muestre si los cincos primeros numeros impares son multiples de tres inicio leer N si N>=4 y N<=5 entonces escribir N sino si N Mod 2=1 entonces escribir "Impar" sino si N Mod 3=0 entonces escribir "Multiplo" fin_si fin_si fin_si fIN

Hacer un programa que muestre la tabla de dividir de un numero dado en forma decreciente. fnicio leer n x<-12 mientras X>=1 hacer D<-n/x escribir x,n,D X<-X-1 fin-mientras fIN

Hacer un programa que lea 50 consumos de un restaurant. Si el consumo ingresado exede los 70 soles, el dscto ser de 5%. muestre rodos los pagos hechos.

34

inicio X<-1 mientras X<=50 hacer leer consumo si consumo > 70 entonces desc<- consumo*0.05 sino desc<---0 fin_si Pago<- consumo - desc escribir Pago X<--- X+1 fin_mientras

fin
Hacer un programa que registre 7 nmeros en un array de 10, y luegose ingrese in la posicin 4 un nuevo numero. Inicio Domencionar [400] X-1 mientras X<=7 hacer leer a[X] X<--- X+1 FIN-MIENTRAS X-7 mientras X>=4 hacer a[X+1]<--- a[X] X<--- X-1 FIN-Mientras X<---4 leer a[X] X<---1 mientras X<=8 hacer escribir a[X] X<--- X+1 FIN-Mientras FIN

Hacer un programa que registre 6 nmero en un array de una dimensin, y ademas muestre el intercambio de variables. Inicio Dimencionar a[100] X<---1 mientras X<=6 hacer leer a[X] X<- X+1 fin_mientras X<---1 y<---6 mientras X<=3 hacer

35

T<--- a[X] a[X]<--- a[y] a[y]<--- T X<--- X+1 y<--- y-1 fin_mientras X<---1 mientras X<=6 hacer escribir a[X] X<-X+1 fin-mientras FIN

PARA 10 NUMEROS (hay una eliminacion que posicin cual es) inicio dimensionar a[100] leer 10 x <- 1 mientras x >= 10 hacer leer a[x] x <x + 1 fin mientras x<- 10 mientras x >= 10 hacer a[x]<- a[x + 1] x <- x +1 fin mientras a[x]<- 0 x <- 1 mientras x >= 9 hacer escribe a[x] x <- x +1 fin mientras fin

ARRAYS DE ELIMINACIN de la posin 2

PARA 3 NUMEROS

inicio dimensionar a[90] x <--- 1 mientras x >= 3 hacer leer a[x] x <--- x +1 fin mientras x <- 2 mientras x <= 3 hacer a[x]<--- a[x + 1] x <--- x +1 fin mientras a[x]<--- 0 x <--- 1 mientras x <= 2 hacer

36

escribe a[x] x <--- x +1 fin mientras

fin

Un algoritmo es un mtodo para resolver un problema. La resolucin de un problema exige al menos los siguientes pasos: 1. Definicin o anlisis del problema. 2. Diseo del algoritmo. 3. Transformacin del algoritmo en un programa. 4. Ejecucin y validacin del programa. Los problemas de computadoras generalmente presentan el siguiente flujo: Introducir o leer los datos ---> Procesar los Datos ----> Publicar Resultados. Ejemplo: INTRODUCIR DATOS PROCESAR Publicar Resultados - LEER 2 NMEROS - SUMARLOS - Mostrar la Suma Hallada

Para realizar un proceso se le debe suministrar al procesador un algoritmo adecuado. Por ejemplo, al cocinero debe drsele una receta, al pianista la partitura y as sucesivamente, considerando al cocinero y al pianista como procesadores. La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema propuesto. Los pasos para la resolucin de un problema son: 1. Diseo del algoritmo que describe la secuencia ordenada de pasos sin ambigedades que conducen a la solucin de un problema dado. (Anlisis del programa y desarrollo del algoritmo.) 2. Expresar el algoritmo como un programa en un lenguaje de programacin adecuado. (Fase de codificacin.) 3. Ejecucin y validacin del programa por la computadora.

37

Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la computadora que los ejecuta. en nuestro curso haremos algoritmos en el papel. Pero podemos comprobarlos con QBASIC, un lenguaje de programacin muy bsico.

Las caractersticas fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento; o sea, debe tener un nmero finito de pasos.
Ejemplo 1.1 Un cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazar el pedido. Redactar el algoritmo correspondiente. Los pasos del algoritmo son: 1. Inicio. 2. Leer el pedido. 3. Examinar la ficha del cliente 4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido 5. Fin Ejemplo 1.2 Se desea disear un algoritmo para saber si un nmero es primo o no. Un nmero es primo si solo puede dividirse por si mismo y pro la unidad (es decir no tiene ms divisores que l mismo y la unidad). Por ejemplo, 9, 8, 6, 4, 12, 16, 20, etc, no son primos ya que son divisibles por nmeros distintos en a ellos y a la unidad. As, 9 es divisible por 3, 8 lo es por 2, etc. El algoritmo de resolucin del problema pasa por dividir sucesivamente el nmero por 2, 3, 4. . ., etc. 1. Inicio. 2. Poner X igual a 2 (X = 2, X, variable que representa a los divisores del nmero que se busca N). 3. Dividir N por X (N / X). 4. Si el resultado de N / X es entero, entonces N no es un nmero primo y bifurcar al punto 7; en caso contrario continuar el proceso. 5. Suma 1 a X (X X + 1) . 6. Si X es igual a N, entonces N es un nmero primo en caso contrario bifurcar al punto 3. 7. Fin.

Ejemplo 1.3
Realizar la suma de todos los nmeros pares entre 2 y 1000. El problema consiste en sumar 2 + 4 + 6 + 8 + ... + 1000. Utilizaremos las palabras SUMA Y NUMERO (variables, sern denominadas mas tarde) para representar las sumas sucesivas (2 + 4), (2 + 4 + 6), (2 + 4 + 6 + 8), etc. La solucin se puede escribir con el siguiente algoritmo:

38

1. Inicio. 2. Establecer SUMA a 0 . 3. Establecer NUMERO a 2 . 4. Sumar NUMERO A SUMA .El resultado ser el nuevo valor de la suma (SUMA) . 5. Incrementar NUMERO 2 unidades . 6. El NUMERO =< 1000 bifurca al paso 4 ; en caso contrario, escribir el ultimo valor de SUMA y terminar el proceso . 7. Fin .

VARIABLES Y CONSTANTES Constante .- Valor que permanece igual durante la ejecucin de un programa

Variable.- El valor adoptado por una variable puede cambiar mientras se ejecuta un programa en el programa INICIO A= 15 A= A + 10 ESCRIBE A FIN 15 es una constante, A es una variable. Aqu en este programa A vale 15 pero en la segunda lnea A vale 25 puesto que primero se calcula parte derecha A + 10 o sea 15+10 esto da 25, que es el valor que adopta finalmente A Escribe A, es una orden para mostrar en la pantalla de la computadora el ULTIMO VALOR DE A que fue 25

TIPOS DE DATOS

Para nuestro curso Usaremos numricos( entero o real) y de carcter (texto).

39

Ojo, las cadenas de textos van entre comillas ejemplo "HOLA JUAN" en cambio los nmeros no llevan comillas delimitadoras.

ENTRADA Y SALIDA DE INFORMACIN


Los clculos que realizan las computadoras requieren para ser tiles la entrada de los datos necesarios para ejecutar las operaciones que posteriormente se convertirn en resultados, es decir, salida. Entrada Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables. Esta entrada se conoce como operacin de lectura (read). Los datos de entrada se introducen al procesador mediante dispositivos de entrada (teclado, tarjetas perforadas, unidades de disco, etc.). Ejemplo leer A, B, C representa la lectura de tres valores de entrada que se asignan a las variables A, B y C. Salida La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc.). La operacin de salida se denomina escritura (write). Ejemplo escribir "hola Vargas"

Primeros programas resueltos


Ejercicio resuelto 1 Hacer un programa que permita introducir 3 nmeros y que calcule la suma de ellos INICIO Leer A,B,C Misuma = A+B+C Escribir Misuma FIN

Ejercicio resuelto 2

40

Hacer un programa que permita introducir 3 nmeros y que calcule la suma de ellos y tambin la multiplicacin de ellos INICIO Leer A,B,C Misuma = A+B+C Producto = A * B * C Escribir Misuma Escribir Producto FIN

Ejercicio resuelto 3 Hacer un programa que permita introducir 2 nmeros y que calcule la suma, la resta, la multiplicacin y la divisin de ellos INICIO Leer A,B Misuma = A+B Resta = A-B Producto = A * B DiviUSAT = A / B Escribir Misuma, Resta, Producto, DiviUSAT FIN

Note que en una orden Escribir se pueden mostrar varias variables separadas por comas Note que los nombres de las variables son libres y cada uno usa el nombre que mas le parece.

Ejercicio 4
Hacer un programa que calcule el rea de un Cuadrado. Antes de resolver pensemos Que dato se necesita para saber el rea de un cuadrado? este tipo de preguntas que uno se formula ser crucial en el curso puesto que el enunciado no dice hacer un programa que lea el LADO de un cuadrado y calcule el rea en base a este dato proporcionado. Bien obviamente necesito el LADO y la incgnita es el rea QUE tengo que ingresar el LADO QUE tengo que procesar UNA MULTIPLICACIN DE LADO X LADO QUE tengo que mostrar El REA CALCULADA

41

entonces: INICIO LEER L AREACUAD = L * L ESCRIBIR AREACUAD FIN


14) Hacer un programa donde el importe de un artculo esta dado, calcular el IGV (19%) y calcule el precio al que se debe vender. Inicio Leer A IGV= (A* 0.19) P= A + IGV Escribir P Fin 15) Hacer un programa donde se ingresan dos valores, se pide calcular el cuadrado de la suma de estos. Inicio Leer x, y S= x + y C=S^2 Escribir C Fin 16) Hacer un programa que calcule el rea de un triangulo Inicio Leer b, h A = b* h/2 Escribir A Fin 17) Calcular el rea total de la siguiente figura

Inicio Leer X1, Y2 R1 = X1* Y2 Leer X2, Y1 R2 = (X2 X1) * Y1

42

AT = R1 + R2 Escribir AT Fin

18) Hacer un programa q lea 3 nmeros, calcular y escribir su producto, luego calcular su suma de los nmeros ingresados. Inicio Leer m,n,i P=m*n*i S=m+n+i Escribir P, S Fin

19) Hacer un programa, donde se ingresa un Valor en dlares, se pide calcular ese valor en soles pero aumentado el doble. Inicio Leer V S = V * 3.40 A=S*2 Leer A Fin

20)

Hacer un programa que calcule el volumen de un cilindro.

Inicio Leer Radio Leer Altura Area_base = 3.1416 * Radio ^ 2 Volumen = Area_base * Altura Escribe Volumen Fin

43