Codigo de Programas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 59

© élogos Conocimiento, S.L. Madrid 2007.

Todos los derechos de Propiedad Intelectual e Industrial de esta obra pertenecen a élogos Conocimiento, S.L.
Ejemplos de código

Dado un número determinado, determinar los dígitos que tiene.

INICIO
LEER numero
digitos=0

WHILE numero <> 0 DO


Numero = Numero DIV 10
digitos = digitos +1
END WHILE

ESCRIBIR digito
FIN

Como podemos ver en el código, la parte fundamental de este proceso es el ir dividiendo el


número entre 10 hasta que el número vale 0, en ese momento, como hemos ido contando el
número de veces que hemos hecho la división. Hay que tener en cuenta que la división que se está
haciendo en este algoritmo es una división entera, no una división que nos dé fracciones.

Dado un número, calcular el producto de los dígitos distintos.

INICIO
LEER numero
Product=1
WHILE numero <> 0 DO
digito = numero MOD 10
IF digito <> 0 THEN
Producto = producto * digito
END IF
numero = numero DIV 10

2 Programación
END WHILE
Imprimir producto, digito
FIN

En este código utilizamos la función MOD (módulo), que lo que nos da es el resto de una división
entera, quiere decir que si dividimos 13 MOD 10 =3 y 13 DIV 10 = 1.

Como hemos hecho en el ejercicio anterior, vamos a ir extrayendo dígito a dígito del número que
se ha introducido hasta que acabamos con él.

Realizar el algoritmo para obtiener la suma de los números pares hasta 100 inclusiveÆ Suma=
2 + 4 + 6 + .....

INICIO
Suma=0
Numero=2

//En un bucle vamos a tomar los números pares y a almacenarlos en


//la variable suma
WHILE numero <= 1000 DO
Suma = suma + numero
Numero + 2;
END WHILE
FIN

Leer dos números y escribir en la pantalla si están en orden creciente o decreciente.

INICIO
LEER numA, numB

//comparamos los números

3 Programación
IF (numA > numB) THEN
ESCRIBIR “Orden decreciente”
ELSE IF (numA < numB) THEN
ESCRIBIR “Orden Ascendente”
ELSE
ESCRIBIR “Números iguales”
END IF
FIN

Hacer un programa que lea 15 notas en un array de 1 dimensión y luego muestre por pantalla
las notas aprobadas (>= 5).

INICIO

//creamos un vector de 15 posiciones


CREAR ARRAY notas[15]

indice=1

FOR indice=1 TO 15 STEP 1


//leemos la nota y la almacenamos en su sitio del vector
LEER nota[indice]

//Si la nota es mayor que 5, entonces es que


//es un aprobado Æ escribimos la nota
IF nota[indice] >= 5 THEN
ESCRIBIR nota[indice]
END IF
NEXT
FIN

4 Programación
Crear un programa que registre 50 números enteros en un array de una dimensión, y luego
muestren los elementos que son múltiplos de 5.

En este caso, en vez de utilizar un único bucle para leer los números y ver si había aprobado, en
esta ocasión vamos a utilizar dos bucles, uno para leer los números y otro para decidir si el número
es múltiplo de 5.

La razón es que normalmente, cuando hay que analizar los valores de un vector o una lista, estos
vectores ya vienen rellenos de otra parte del código.

INICIO
//creamos el array
CREAR ARRAY numeros[50]

//leemos los 50 valores


FOR aux=1 TO 50 STEP 1
//vemos que en cada iteración leemos un valor
//lo vamos almacenando en la posición que marca ‘aux’
LEER numeros[aux]
NEXT

//ahora hacemos el bucle de analizar los valores del vector


//de los número introducidos
FOR aux=1 TO 50 STEP 1
IF (numeros[aux] MOD 5 == 0) THEN
ESCRIBIR numeros[aux]
END IF
NEXT
FIN

5 Programación
Crear un programa que registre 100 números enteros en un array de una dimensión, y que
posteriormente muestre los cuadrados de los pares y que muestre la posición de los elementos
en orden inverso.

INICIO

CREAR ARRAY numeros[100]

//leemos los valores


FOR indice=1 TO 100 DO
LEER Numeros[indice]
NEXT

//Ahora recorremos el vector de forma inversa, lo podemos


//hacer con un FOR o un WHILE
indice=100
WHILE (indice >=1)
//chequeamos si es par y mstramos el cuadrado
IF (numerous[indice] MOD 2 ==0) THEN
ESCRIBE (numerous[]indice] * numerous[]indice])
END IF
//vamos decrementando el índice para obtener la posición
//anterior del vector
Indice = indice -1
END WHILE
FIN

Hacer un programa que muestre el mensaje de acuerdo con la edad ingresada. Si la edad es de
0 a 10 años Æ ‘niño’, si la edad es de 11 a 14 Æ ‘púber’, si la edad es de 15 a 18 años
‘adolescente’, si la edad es de 19 a 25 ‘jóven’, si la edad es de 26 a 65Æ ‘adulto’, si la edad es
mayo de 65 Æ ‘anciano’.

6 Programación
INICIO
LEER edad

//en este caso emplearemos if encadenados


IF (0<=edad AND edad <= 10) THEN
ESCRIBIR “niño”
ELSE IF (11<=edad AND edad <= 14) THEN
ESCRIBIR “puber”
ELSE IF (15<=edad AND edad <= 18) THEN
ESCRIBIR “adolescente”
ELSE IF (19<=edad AND edad <= 25) THEN
ESCRIBIR “jóven”
ELSE IF (26<=edad AND edad <= 65) THEN
ESCRIBIR “adulto”
ELSE
//la única condición que falta es la de mayores
//de 65, siempre y cuando no permitamos entrada de valores negativos
ESCRIBIR “anciano”
END IF
FIN

Hacer un programa que registre 15 números en un array de una dimensión y muestre los
valores que ocupan las posiciones impares.

INICIO
//creamos vector
CREAR números[15]

//Leemos los 15 valores


FOR aux=1 TO 15
LEER números[aux]

7 Programación
NEXT

//Recorremos el vector, podemos hacerlo con WHILE o FOR


aux=2
WHILE (aux<=15)
//Escribimos el valor de la posición aux
ESCRIBIR números[aux]

//incrementamos el índice en dos posiciones, ya que


//sólo queremos las posiciones pares
aux = aux + 2
END WHILE
FIN

Hacer un programa que calcule el área de un rombo conocido las coordenadas de cada vértice.

INICIO
//leemos las coordenadas de los vértices del rombo
LEER x1, y1
LEER x2, y2
LEER x3, y3
LEER x4, y4

8 Programación
//Calculamos el área y lo escribimos por pantalla

//para ello calculamos las distancias entre vértices opuestos


//SQRTÆ función de raíz cuadrada
//num^2 Æ elevar num al cuadrado
diagonal1=SQRT((x1—x3) ^2 + (y1-y3)^2)
diagonal2=SQRT((x1—x3) ^2 + (y1-y3)^2)

//calculamos el area
area = diagnal1 * diagonal2 / 2
ESCRIBIR area

FIN

Hacer un programa que registre 20 números en un array de una dimensión y muestre


posteriormente los elementos que ocupan posiciones impares.

INICIO
|
| Dimensionar a[100]
|
| x=1
| mientras x <= 20 Hacer
| | Leer a[x]
| | x=x+1
| fin_mientras
|
| x=1
| mientras x<=20 Hacer
| | escribe a[x]
| | x=x+2
| fin_mientras
|

9 Programación
FIN

Hacer un programa que registre 20 números en un array de una dimensión y muestre


posteriormente los elementos que ocupan posiciones pares y de inversa.

INICIO
|
| Dimensionar a[100]
|
| x=1
| mientras x <= 20 Hacer
| | Leer a[x]
| | x=x+1
| fin_mientras
|
| x=20
| mientras x>=2 Hacer
| | escribe a[x]
| | x=x-2
| fin_mientras
|
FIN

Hacer un programa que registre 20 números en un array de una dimensión y muestre


posteriormente los elementos que contienen números múltiplos de 3.

INICIO
|
| Dimensionar a[100]
|
| x=1

10 Programación
| mientras x <= 20 Hacer
| | Leer a[x]
| | x=x+1
| fin_mientras
|
| x=1
| mientras x<20 Hacer
| | Si a[x]mod3 =0 entonces
| | | escribe a[x]
| | Fin_si
| | x=x+1
| fin_mientras
|
FIN

Hacer un programa que registre 20 números en un array de una dimensión y muestre


posteriormente los elementos que contienen números múltiplos de 5 y en forma inversa.

INICIO
|
| Dimensionar a[100]
|
| x=1
| mientras x <= 20 Hacer
| | Leer a[x]
| | x=x+1
| |
fin_mientras
|
| x=20
| mientras x>=1 Hacer

11 Programación
| | Si a[x]mod5 =0 entonces
| | escribe a[x]
| | Fin_si
| | x=x-1
| fin_mientras
|
FIN

Se necesita elaborar un programa donde se registren 20 notas de alumnos, calificadas de 0 a


20, teniendo en cuenta que se mostraran sólo los aprobados, si no saldrá una frase
"desaprobado".

INICIO
|
| Dimensionar a[100]
|
| x=1
| mientras x <= 20 Hacer
| | Leer a[x]
| | x=x+1
| fin_mientras
|
| x=1
| mientras x>=5Hacer
| | escribe a[x]
| | Si x<=5 entonces
| | escribe "Suspendido"
| | Fin_si
| | x=x+1
| | Mostrar aprobados
| fin_mientras
|
FIN

12 Programación
Hacer un programa que registre 20 números en una array de 1 dimensión y luego muestre en
la pantalla los números ingresados en orden inverso y los que ocupen posición pares.

INICIO
|
| Dimensionar a[100]
| x=1
| mientras x<=20 hacer
| |
| | leer a[x]
| | x=x+1
| |
| fin_mientras
|
| x=20
| mientras x>=1 Hacer
| |
| | escribe a[x]
| | x=x-1
| |
| fin_mientras
|
| x=1
| mientras x<10 hacer
| |
| | Si a[x]mod2=0 entonces
| | | escribe a[x]
| | |
| | Fin_si
| | x=x+1
| |
| fin_mientras
|
FIN

13 Programación
"SAGA FALABELLA" se encuentra de aniversario y ha programado una serie de ofertas con la
finalidad de brindar facilidades a sus clientes y al a vez de incrementar sus ventas. Estas
ofertas se basan específicamente en un porcentaje de descuento sobre el total de compra el
cual varía de acuerdo al monto.

* Por un monto mayor o igual a $500 se hará un descuento del 30%

* Por un monto menor de $500 pero mayor o igual a 200 se hará un descuento del 20%

* Por un monto menor de $200 pero mayor o igual a 100 se hará un descuento del 10%

* Considere 100 personas

INICIO
|
| x=x+1
| Leer Consumo
|
| Si consumo >=500 entonces
| |
| | descuento = Consumo*30/100
| |
| Sino
| | Si consumo >=200 entonces
| | |
| | | descuento = Consumo*20/100
| | |
| | Sino
| | | Si consumo >=100 entonces
| | | |

14 Programación
| | | | descuento = Consumo*10/100
| | | |
| | | Sino
| | | | Descuento=0
| | | |
| | | Fin_si
| | |
| | Fin_si
| |
| Fin_si
|
| Totalpagar= Consumo-Descuento
| Imprimir Totalpagar
|
| Si x<>100 entonces
| | x=x+1
| |
| Fin_si
|
FIN

Dado la tarifa de pago por horas de un trabajador, y sus horas trabajadas calcular cuántos
trabajadores reciben un salario mayor o igual a S/.500 y calcular además el promedio de los
salarios de todos los trabajadores.

INICIO
|
| Leer N
| Leer Tarifa
| i=0
| C=0
| Suma=0

15 Programación
| mientras i<=N Hacer
| | Leer horas
| | salario= tarifa * horas
| | Escribir salario
| | Si salario >=500 entonces:
| | c=c+1
| | Fin_si
| | Suma= suma + salario
| | i=i+1
| fin_mientras
| P=suma/N
| Escribir: P,C
|
FIN

Dado N notas, calcular el promedio de las notas aprobadas y el promedio de las notas
suspendidas.

INICIO
|
| Leer N
| i=1
| Suma1 =0
| Suma2 =0
| C=0
| S=0
| mientras i<= N Hacer
| |
| | Leer Nota
| | Si Nota>=13 entonces:
| | | Suma1= Suma1+Nota
| | | C=C+1

16 Programación
| | |
| | Sino
| | |
| | | Suma2= Suma2+Nota
| | | S=S+1
| | |
| | Fin_si
| |
| | i=i+1
| |
| |
| fin_mientras
|
| Pa=Suma1/C
| Pd=Suma2/S
|
| Escribir: Pa, Pd
|
FIN

Dado N, calcular los números: 2,4,6,8,....,2N.

INICIO
|
| Leer N
| i=1
| mientras i<=2*N Hacer:
| | Si i mod2 =0 entonces:
| | | escribir i
| | Fin_si
| |
| | i=i+1

17 Programación
| |
| fin_mientras
|
FIN

Esta es una manera de hacerlo, pero sería más eficiente hacer un bucle que generase en un
número directamente los números pares, ya que se harían la mitad de iteraciones.

Dado N, escribir el producto desde 1 hasta N.

INICIO
|
| Leer N
| i=1
| mult=1
|
| mientras i<=N Hacer:
| mult= mult*i
| i=i+1
|
| fin_mientras
|
FIN

Dadas 3 longitudes, es decir mediante un mensaje si forman un triangulo: equilátero, isósceles


o escaleno, o no forman triangulo (cada lado tiene que ser menos que la suma de los otros
dos).

18 Programación
INICIO
|
| Leer a,b,c
| Si a<b+c and b<a+c and c<a+b entonces
| |
| | Si a=b and b=c entonces:
| | | escribe: "El triangulo es equilatero"
| | |
| | Sino
| | | Si a<>b and a<>c and b<>c entonces
| | | | escribe: "El triangulo es escaleno"
| | | |
| | | Sino
| | | | escribe: "El triangulo es isosceles"
| | | |
| | | Fin_si
| | |
| | Fin_si
| |
| Sino
| | escribe: "No forman triangulo"
| |
| Fin_si
|
|
FIN

Una tienda se dedica a la venta de computadoras, cuenta con 10 vendedores. Cada uno de
ellos tiene un sueldo mensual pero además de su sueldo ganan una comisión por venta.

* Si el monto de venta es mayor de 1000 la comisión será del 15%

19 Programación
* Si el monto de venta es mayor o igual a 500 y menor de 1000 la comisión es del 5%

* Si el monto de la venta es menor que 500 no tiene comisión

INICIO
|
| x=x+1
| Leer "Sueldo", "Venta"
|
| Si venta>=1000 entonces
| | Sueldo = Venta * 15/100
| |
| Sino
| |
| | Si venta>=500 entonces
| | Sueldo = Venta * 5/100
| |
| | Sino
| | Comision=0
| |
| | Fin_si
| |
| Fin_si
|
| Sueldototal
| Si x<>10 entonces
| | x=x+1
| |
| Fin_si
|
FIN

20 Programación
Katthy organiza una fiesta en la cual una computadora controla el ingreso mediante 5 claves.
Si se ingresa al menos una clave incorrecta esta imprimirá "TE EQUIVOCASTE DE FIESTA" y no
permitirá el ingreso. Si las 5 claves son correctas imprimirá "BIENVENIDO A LA FIESTA".

Las Claves son:


1: "TIENES"
2: "QUE SER"
3: "INVITADO"
4: "PARA"
5: "INGRESAR"

INICIO
|
| Leer Claves: C1,C2,C3,C4,C5
|
| Si C1<>"TIENE" entonces:
| | escribir "Te Equivocaste de Fiesta"
| |
| Sino
| | escribir "Ingrese la Clave2"
| |
| | Si C2<>"QUE_SER" entonces:
| | | escribir "Te Equivocaste de Fiesta"
| | |
| | Sino
| | | escribir "Ingrese la Clave3"
| | |
| | | Si C3<>"INVITADO" entonces:
| | | | escribir "Te Equivocaste de Fiesta"
| | | |

21 Programación
| | | Sino
| | | | escribir "Ingrese la Clave4"
| | | |
| | | | Si C4<>"PARA" entonces:
| | | | | escribir "Te Equivocaste de Fiesta"
| | | | |
| | | | Sino
| | | | | escribir "Ingrese la Clave5"
| | | | |
| | | | | Si C5<>"INGRESAR" entonces:
| | | | | | escribir "Te Equivocaste de Fiesta"
| | | | | |
| | | | | Sino
| | | | | | escribir "Bienvenido a la Fiesta"
| | | | | |
| | | | | Fin_si
| | | | |
| | | | Fin_si
| | | |
| | | Fin_si
| | |
| | Fin_si
| |
| Fin_si
|
FIN

Hacer un programa que clasifique 400 personas según el deporte que practica los deportes
son: Ajedrez, Atletismo, Básquet, Fútbol, Gimnasia, Karate, Natación, Tiro, Vóley.

INICIO
| x=x+1

22 Programación
| Leer "Deporte"
|
| Si deporte= "AJ" entonces
| | AJ=AJ+1
| |
| Sino
| | Si deporte= "AT" entonces
| | | AT=AT+1
| | |
| | Sino
| | | Si deporte= "B" entonces
| | | | B=B+1
| | | |
| | | Sino
| | | | Si deporte= "F" entonces
| | | | | F=F+1
| | | | |
| | | | Sino
| | | | | Si deporte= "G" entonces
| | | | | | G=G+1
| | | | | |
| | | | | Sino
| | | | | | Si deporte= "K" entonces
| | | | | | | K=K+1
| | | | | | Sino
| | | | | | | Si deporte= "N" entonces
| | | | | | | | N=N+1
| | | | | | | |
| | | | | | | Sino
| | | | | | | | Si deporte= "T" entonces
| | | | | | | | | T=T+1
| | | | | | | | |
| | | | | | | | Sino

23 Programación
| | | | | | | | | Si deporte= "V" entonces
| | | | | | | | | | V=V+1
| | | | | | | | | |
| | | | | | | | | Sino
| | | | | | | | | | Imprimir "Error"
| | | | | | | | | | | | | | | | | | | Fin_si
| | | | | | | | |
| | | | | | | | Fin_si
| | | | | | | |
| | | | | | | Fin_si
| | | | | | |
| | | | | | Fin_si
| | | | | |
| | | | | Fin_si
| | | | |
| | | | Fin_si
| | | |
| | | Fin_si
| | |
| | Fin_si
| |
| Fin_si
|
| Si x<>400 entonces
| | x=x+1
| |
| Sino
| | Imprimir AJ,AT,B,F,G,K,N,T,V
| |
| Fin_si
FIN

24 Programación
Está claro que para clasificar 400 persona se ha de hacer un bucle que lea los deportes de las 400
personas, corregir el código para que lea estos valores.

Hacer un programa que registre 10 números en un Array de un 1D y que muestre


posteriormente los elementos que contiene N°s Impares.

Inicio
Dimensionar a (100)
x=1
mientras x <=10 hacer
leer a (x)

fin_mientras
x=1

mientras x<=10 hacer

si a (x)mod2 = 1 entonces
escribir (x)
fin_si
x=x + 1

fin_mientras
Fin

Diseñar un formulario que permita ingresar dos notas malas y determine su promedio, debe
mostrar un comentario si este está aprobado o suspenso.

Inicio

Leer (N1)
Leer (N2)

25 Programación
P=(N1 + N2) / 2
Escribir ("el promedio es :", P)

Si P>= 5 y P<=10 entonces


Escribir ("Aprobado")

Sino

Escribir ("Suspenso")

Fin_si

Fin

Diseñar un programa que permita controlar la venta de pasajes a los clientes según la
categoría y el destino.

INICIO
| Leer (cliente)
| Leer (CAT)
|
| Si CAT= "económico" , entonces
| | Escribir ("ingrese destino")
| |
| | Si DES = "Tumbes", entonces
| | | Escribir ("No hay pasajes")
| | |
| | Sino
| | | Si DES ="Piura", entonces
| | | | P1 = 12
| | | | Escribir (P1)

26 Programación
| | | |
| | | Sino
| | | | Si DES ="Talara", entonces
| | | | | P2 = 18
| | | | | Escribir (P2)
| | | | |
| | | | Sino
| | | | | Si DES = "Lima" , entonces
| | | | | | Escribir ("No hay pasajes")
| | | | | Fin_si
| | | | Fin_si
| | | Fin_si
| | Fin_si
| |
| Sino
| | Si CAT =Imperial, entonces
| | | Escribir ("Ingrese destino")
| | |
| | | Si DES = Tumbes, entonces
| | | P3=80
| | | Escribir ("P3")
| | |
| | | Sino
| | | | Si DES =Piura, entonces
| | | | | P4= 20
| | | | | Escribir (P4)
| | | | |
| | | | Sino
| | | | | Si DES =Talara, entonces
| | | | | | P5=30
| | | | | | Escribir (P5)
| | | | | |
| | | | | Sino

27 Programación
| | | | | | Si DES = Lima , entonces
| | | | | | | Escribir ("No hay pasajes")
| | | | | | |
| | | | | | Fin_si
| | | | | Fin_si
| | | | Fin_si
| | | Fin_si
| | |
| | Sino
| | | Si CAT = Bus cama , entonces
| | | | Escribir ("Ingrese destino")
| | | |
| | | | Si DES = Tumbes, entonces
| | | | P6=100
| | | | Escribir ("P6")
| | | |
| | | | Sino
| | | | | Si DES =Piura, entonces
| | | | | | Escribir ("No hay pasaje")
| | | | | |
| | | | | Sino
| | | | | | Si DES =Talara, entonces
| | | | | | | Escribir ("No hay pasaje")
| | | | | | |
| | | | | | Sino
| | | | | | | Si DES = Lima, entonces
| | | | | | | P7=170
| | | | | | | Escribir(P7)
| | | | | | Fin_si
| | | | | Fin_si
| | | | Fin_si
| | | Fin_si
| | Fin_si

28 Programación
| |
|Fin_si
|
FIN

La compañía Barner posee una caja con $3.71 con la cual empieza todos los días diariamente
se registran retiradas de dinero.

Calcular las retiradas de dinero de la compañía y mostrar cuanto queda en caja.

(el programa termina cuando se introduce una retirada de dinero imaginario de -1)

INICIO

Caja=371
retirada =0

mientras retirada <> -1 Hacer:


Caja= Caja - retirada
Leer retirada

Fin_mientras

Escribir Caja
FIN

Dado Ny X CALCULAR:

X2/2 + X4/4 + X6/6 + .... + Xn/N

INICIO

Leer N, X
i=2

29 Programación
Suma=0

mientras i <= 2N Hacer


suma= suma +(x^i)/i
i=i+2

fin_mientras

Escribir suma

FIN

Calcular la suma de los n primeros números enteros desde el numero 8.

S=8+9+10+11+...+N

INICIO

Leer n
suma=0

desde i=8 hasta n hacer:


suma=suma+1

fin_desde

Escribir suma

FIN

30 Programación
Calcular la media de un conjunto de notas de alumnos. Se le ha dado un valor de -30 que
detecte el fin del programa.

INICIO

Total=0
n=0
Leer nota

mientras nota<>-30 Hacer:


total=total+nota
n=n+1
Leer nota

fin_mientras

media=total/n

escribir media

FIN

Calcular todos los pagos hechos de un restaurant que lea 130 consumos y que si el consumo
ingresado excede los $130 el descuento será del 15%.

INICIO

x=1

mientras x<130 Hacer


Leer consumo

31 Programación
Si consumo > 130 entonces:
descuento=consumo * 0.15

Sino
descuento=0

Fin_si

pago=consumo-descuento

escribir pago
x=x+1

fin_mientras
FIN

Hace un programa que calcule la longitud de la circunferencia, el área del círculo y el volumen
de la esfera para un radio ingresado por el teclado.

INICIO

Leer "R"

PI=3.1416

LC=2*PI*R

A=PI*R^2

V=4/3*PI*R^3

Imprimir "LC","A","V"

32 Programación
FIN

Hacer un programa que calcule el valor de la hipotenusa de un triangulo rectángulo,


ingresando por el teclado sus catetos (Teorema de Pitágoras).

INICIO

Leer A,B

H=(A^2+B^2)^0.5

Imprimir "Hipotenusa"

FIN

Hacer un programa que permita calcular el área de un triangulo cualquiera donde los valores
de los lados son ingresados por el teclado.

INICIO

Leer A,B,C

S=(A+B+C)/2
AT= (S*(S-A)*S*(S-B)*S*(S-C))^0.5

IMPRIMIR AT

FIN

33 Programación
Hacer un programa que calcule las raíces de una ecuación cuadrática cuya forma canónica es:

Ax+By+C=0

Solo se calculara raíces reales. Si el discriminante en menor de 0, imprimir error y volver a


ingresar datos.

Los coeficientes A,B,C serán ingresados por la pantalla.

INICIO

Leer A,B,C

D=B^2-4*A*C
Si D<0 entonces:
IMPRIMIR "ERROR"

Fin_si

X=(-B+D^5)/(2*A)
Y=(-B+D^5)/(2*A)

IMPRIMIR X,Y

FIN

Hacer un programa en el que ingresados dos números por la pantalla se debe calcular la suma,
diferencia, producto y división. El proceso debe finalizar al ingresar el primer número igual a
cero.

INICIO

Leer A

34 Programación
Si A=0 entonces
escribe "Fin del programa"

Sino

Leer B

S=A+B
R=A-B
M=A*B
D=A/B

IMPRIMIR S,R,M,D
Fin_si
FIN

Hacer un programa que imprima el cubo y la raíz cuadrada de un numero ingresado por la
pantalla; el programa debe estar confeccionado de tal manera que el proceso a efectuarse sea
repetitivo.

Debe terminar cuando al pedir el numero se ingrese el valor 0.

INICIO

terminar=FALSO

//cuando el flag terminar valga verdadero, saldremos del while y //terminaremos la


ejecución del programa
WHILE (NOT terminar)
Leer N

Si N=0 entonces:

35 Programación
escribe "Fin del programa"
terminar=VERDADERO

Sino
C=N^3
R=N^0.5

IMPRIMIR C,R

Fin_si
FIN

Hacer un programa que al ingresar 2 números por la pantalla y que se calcule la suma, resta,
multiplicación y división. El proceso debe terminar cuando se hayan realizado 10 procesos
(Hacer uso de contadores).

INICIO
WHILE (x<10) DO
X=X+1
Leer A,B

S=A+B
R=A-B
M=A*B
D=A/B

IMPRIMIR ,S,R,M,D

Si x=10 entonces:
escribe "Fin del programa"

Sino

36 Programación
X=X+1

Fin_si
END WHILE
FIN

Hacer un programa que permita escoger en un conjunto de números naturales:

· Cuales son menores que 15.

· Cuales son mayores de 50.

· Cuales están comprendidos entre 25 y 50.

*el programa termina con el ingreso de un numero negativo y el numero de iteraciones debe
ser 100.

Inicio
Leer n
FOR I = 1 hasta 100 hacer
Si n < 15 entonces
Escribir n
Sino
Si n > 50 entonces
Escribir n
Sino
Si n > 25 y n < 50 entonces
Escribir n
Fin_si
Fin_si
Fin_si
NEXT

37 Programación
n =n + 1
si n < 0 entonces
Escribir “error de datos procesados”
Fin_si
Fin.

El ingeniero de sistemas del banco de crédito necesita conocer de una lista de 2500 cuentas
cual es la que posee mayor y menor cantidad de dinero (d).

Inicio
Leer n
Max = n
Min = n
Desde i = 1 hasta 2500 hacer
Leer n
Si n > max entonces
Max = n
Sin_no
Si n < min entonces
Min = n
Fin_si
Fin_si
Fin_desde
Escrbir “MÁXIMO” Max
“MINIMO” Min
fin

38 Programación
En una empresa: se debe visualizar en una lista FICHA donde se encuentra nombre categoría,
edad y sueldo además el programa debe visualizar un mensaje “existen trabajadores mayores
de 65 años en un numero de ...” y el número de trabajadores mayores de 65 años.

Inicio
SW <- 0
mientras SW = 0 hacer
Leer FICHA (NOMBRE CATEGORÍA, EDAD, SUELDO)
Escribir FICHA
Si EDAD > 65 Entonces
S <- S + 1
SW <- 1
Fin_si
Fin_mientras
Si SW = 1 Entonces
Escribir “existen trabajadores...”
Escribir S
Fin_si
Fin

Hacer un programa que permita calcular y mostrar el jornal mensual de acuerdo con las
siguientes especificaciones:

• Los trabajadores tienen dos turnos (nocturno y diurno).


• La tarifa de las horas diurnas es de 10 euros.
• La tarifa de las nocturnas es de 50 euros.
• Ningún trabajador recibe nada por festivos.
• El trabajador será despedido si sus horas trabajadas son menores que 15. (Mensual)

Inicio
Leer Horas_trabajadas, dia, turno
Mientras dia <> “domingo” hacer

39 Programación
Si turno = “diurno” entonces
Jornal= 10 * Horas trabajadas
Sino
Jornal = 50 * Horas_trabajadas
Fin_si
Fin_mientras
Si horas_trabajadas < 15 entonces
Escribir “Trabajador en observación”
Sino
Escribir “el jornal mensual es:” jornal
Fin_si
Fin

Determinar cuántos trabajadores recibirán un salario mayor o igual a 500 conocida la tarifa y
las horas trabajadas.

Variable: tarifa, horas, salarios,N,C,i


Inicio
Leer tarifa,N
C= 1
i= 0
mientras C<=N hacer
Leer horas
salario = tarifa*horas
si salario>=500 entonces
i = i+1
fin_si
fin_mientras
Imprimir i
Fin

40 Programación
En los ejemplos que se muestran a continuación veremos que el nombre de las sentencias cambia,
puesto que se está utilizando otro pseudocódigo, pero esto no debe ser impedimento para
enterder a la perfección el código.

Cuando estemos programando en un lenguaje y nos pidan que cambiemos a otro para hacer el
siguiente desarrollo, no debería ser tampoco un problema, siempre y cuando la filosofía del
lenguaje a emplear sea la mismo. Cosa muy distinta es pasar de un lenguaje procedural a uno
orientado a objetos, donde el no sólo cambia el lenguaje, también cambia la forma de programar.

Clasificar a 50 personas según la edad y el sexo al final deberá visualizar la cantidad de


personas Masculinas mayores de edad, la cantidad de personas femeninas menores de edad,
cantidad de personas mayores y menores. Además deberá indicar el porcentaje que
representa las personas mayores y menores de edad.

variables:
Nom(50), 5x(50):Texto
Ed(50),MMa, FMe,May,Men,C

Inicio
MMa=0
Fme=0
May=0
Men=0
para c=1 hasta c = 50 hacer
leer Ed(c),Sx(c)
si Ed(c)>=18 entonces
May=May+1
sino
Men=Men+1
fin_si
si sx(c)="M"entonces
Si Ed(c)>=18 entonces

41 Programación
MMa=MMa+1
fin_si
sino
si Ed(c)<18entonces
FMe=FMe+1
fin_si
fin_si
Fin Para
PMa=may*100/50
PMe=Men*100/50
mostrar MMa,FMe,May,Men,PMa,PMe
fin

Autogenerar el código del alumno tomando como datos los dos primeros caracteres del
apellido paterno el segundo y tercer carácter de apellido materno los dos últimos caracteres
de los nombres más el número que le corresponde en la lista. Además se deberá pedir dos
notas para calcular su promedio del curso de matemática. Se sabe que en el aula son 36
alumnos y además deberá mostrar al final la cantidad de alumnos suspendidos.

variables
Nom(36),pat(369,Mat(36),Cod(36):Texto
N1(36),N2(36),Prom(36),A,D,C:Numerico

Inicio
A=0
D=0
paraC=1 hasta 36
leer Nom(c), Pat(c),Mat(c),N1(c),N2(c)
cod(c)=Left(pat(c),2)+Mid(Mat(c),2.2)+Rig(Nom(c),2)+STR(c)
Prom(c)=(N1(c))+N2(c))/2
escribir cod(c), prom(c)
si prom(c)>=10.5 Then

42 Programación
A=A+1
si no
D=D+1
fin_si
fin_para
escribir A,D
Fin

Utilizando arrays bidimensional se pide realizar lo siguiente:

Ingresar como datos nombre del trabajador, categoría y cantidad de horas, según estos datos
se debe:

Calcular el sueldo según la siguiente tabla de criterios

categoría Costo hora


1 8.5
2 9.7
3 10.5
4 11.5

La cantidad de trabajadores es de 30 y al final se pide mostrar lo siguiente.

Los nombres de los trabajadores con sus respectivos sueldos, ordenados por el sueldo en forma
descendente.

La cantidad de trabajadores por categorías y el total de los sueldos de dicho trabajador.

variables
Aux, Trab(30,4):Variant
I,Ts,C1,C2,C3,C4;Fil,VH:Numerico
Ordenar=Logico
Inicio

43 Programación
C1=0
C2=0
C3=0
C4=0
TS=0
para fil = 01 hasta 30
Ingresar trab(Fil,1), trab(Fil,2), trab(Fil,3)
Seleccione Caso segun trab(Fil,2)
Caso trab(Fil,2)= 1
VH=8.5
C1=C1+1
caso trab(Fil,2)=2
VH=9.7
C1=C2+1
caso trab(Fil,2)=3
VH =10.5
C3=C3+1
caso trab(Fil,2)=4
VH = C4=C4+1
Fin_Seleccione
trab(Fil,4)=Vh*Trab(Fil,3)
Ts=Ts+Trab(Fil,4)
Fin_para

Ordenar=True
mientras ordenar=True hacer
Ordenar=False
Para Fil=1 Hasta29
Si Trab(Fil,4)<Trab(Fil+1,4) Entonces
Aux=Trab(Fil,1)
Trab(Fil,1)=Trab(Fil+1,1)
Trab(Fil+1,1)=Aux
Aux=Trab(Fil,2)

44 Programación
Trab(Fil,2)=Trab(Fil+1,2)
Trab(Fil+1,2)=Aux
Ordenar=True
Fin-si
Fin_Para
Fin mientras
Para Fil=1 hasta 30
Mostrar C1;C2,C3,C4,Ts
Fin_para
Fin

Clasificar una lista de números indicando al final la cantidad de números pares y la cantidad de
números impares el dato a ingresar es un número y se debe en proceso repetir mientras el
número ingresado sea diferente a cero.

variables
NP, N1,NUm : numericos
Inicio
Np= 0
N1=0
leer Num
mientras Num <>0 hacer
si (NUM MOD 2) = 0 entonces
NP= NP+1
sino
NI= NI+1
Fin_si
Ingresar Num
Fin_Hacer
mostrar NP, NI
Fin

45 Programación
En este bloque de códigos de programas sencillos, vamos a incluir el código y en muchos de ellos
también el diagrama de flujo, para ver aplicaciones prácticas de los mismos.

Desarrolle un algoritmo que permita leer dos valores distintos y determinar cuál de los dos
valores es el mayor y escribirlo.

46 Programación
Desarrolle un algoritmo que permita leer tres valores y almacenarlos en las variables A, B y C
respectivamente. El algoritmo debe imprimir cual es el mayor y cual es el menor. Recuerde
constatar que los tres valores introducidos por el teclado sean valores diferentes. Presente un
mensaje de alerta en caso de que se detecte la introducción de valores iguales.

El algoritmo presentado no soluciona enteramente el enunciado presentado, dejamos al alumno las


modificaciones necesarias para que cumpla con todos los requisitos del enunciado.

47 Programación
Desarrolle un algoritmo que realice el sumatorio de los números enteros comprendidos entre
el 1 y el 10, es decir 1 +2 +3 + …. + 10

48 Programación
Determinar la hipotenusa de un triángulo rectángulo conocidas las longitudes de sus catetos.

Este algoritmo tiene errores, detéctelos y corríjalos.

49 Programación
Desarrolle un algoritmo que permita determinar el área y volumen de un cilindro dado su radio
(R) y altura (H).

50 Programación
Desarrolle un algoritmo que permita leer un valor cualquiera N y escriba si dicho número es
par o impar.

En este algoritmo hay una instrucción que falta, rellénela.

51 Programación
Desarrolle un algoritmo que permita convertir calificaciones numéricas, según la siguiente
tabla: A=19,20, B=16,17, C=13,14, D=10, 11,12, E=de 1 a 9, se asume que la nota está
comprendida entre 1 y 20.

52 Programación
Desarrolle un algoritmo que permita leer dos números y ordenarlos de menor a mayor si es el
caso.

53 Programación
Desarrolle un algoritmo que permita leer un valor entero positivo N y determinar si es primo o
no.

Este algoritmo presenta errores, encontradlos y corregirlos.

54 Programación
Tanto el pseudocódigo como el diagrama de flujo presentan errores, encuéntrelos y corríjalos.
Realice un algoritmo que calcule el monto a pagar por el servicio de estacionamiento,
teniendo en cuenta que por la primera hora de parking se tiene una tarifa de 1000 unidades y
las restantes tienen un costo de 600 unidades. Se tiene como datos: hora de entrada, hora de
salida, iniciada una hora se cuenta como hora total.

55 Programación
Realice un algoritmo que a partir de proporcionarle la velocidad de un automóvil, expresada
en kilómetros hora, proporcione la velocidad en metros por segundo.

Realizar el diagrama de flujo.

Desarrolle un algoritmo que permita calcular el promedio de notas, finaliza cuando N=0.

56 Programación
Desarrolle un algoritmo para una empresa de construcción que le permita calcular e imprimir
la nómina para la paga de un total de 50 obreros calificados a los que se les paga por horas
trabajadas. La hora trabajada se paga a 30.000 unidades.

57 Programación
Desarrolle un algoritmo que funcione como una caja registradora.

58 Programación
Desarrolle un algoritmo que permita determinar a partir de un número de días, introducido
por pantalla ¿cuántos años, meses, semanas y días constituyen utilizando la estructura
WHILE?...elaborar el código.

59 Programación

También podría gustarte