Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte...

101
Programación estructurada 1. Definición La programación estructurada es un conjunto de técnicas utilizadas para escribir programas de forma clara. La programación estructurada se basa en el diseño descendente, esto es, se plantea una operación como un todo y se divide en segmentos más sencillos o de menor complejidad, facilitando así el desarrollo de un programa; una vez terminado todos los segmentos del programa se procede a unirlos. La programación estructurada logra minimizar la complejidad y errores de los programas. La principal desventaja de la programación estructurada, es que en el momento de hacerse demasiado grande puede resultar bastante problemático su manejo, ya que todo se constituye en un solo bloque. Utiliza únicamente tres estructuras: la secuencial, la selectiva y la iterativa. 2. Estructura secuencial Se representa por una sentencia ó un conjunto de sentencias (a la que en adelante llamaremos acción) que se ejecutan una a continuación de otra a modo de secuencia. Las sentencias se suceden de tal modo que la salida de una es la entrada de la siguiente, y así sucesivamente hasta finalizar el algoritmo. Su sintaxis es: Pseudocodigo Diagrama de flujo Inicio Acción1 Acción2 . . . AcciónN Fin inicio Accion1 Accion2 . . . AccionN Fin 2.1. Ejercicios resueltos Ejemplo 01 Pseudocódigo para sumar dos números. Lectura de datos Impresión de datos nro1, nro2 suma nro1 + nro2 suma

Transcript of Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte...

Page 1: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Programación estructurada

1. Definición

La programación estructurada es un conjunto de técnicas utilizadas para escribir

programas de forma clara. La programación estructurada se basa en el diseño descendente, esto es, se

plantea una operación como un todo y se divide en segmentos más sencillos o de

menor complejidad, facilitando así el desarrollo de un programa; una vez terminado

todos los segmentos del programa se procede a unirlos.

La programación estructurada logra minimizar la complejidad y errores de los

programas.

La principal desventaja de la programación estructurada, es que en el momento de

hacerse demasiado grande puede resultar bastante problemático su manejo, ya que

todo se constituye en un solo bloque.

Utiliza únicamente tres estructuras: la secuencial, la selectiva y la iterativa.

2. Estructura secuencial

Se representa por una sentencia ó un conjunto de sentencias (a la que en adelante

llamaremos acción) que se ejecutan una a continuación de otra a modo de

secuencia. Las sentencias se suceden de tal modo que la salida de una es la

entrada de la siguiente, y así sucesivamente hasta finalizar el algoritmo. Su sintaxis

es:

Pseudocodigo Diagrama de flujo

Inicio

Acción1

Acción2

.

.

.

AcciónN

Fin

inicio

Accion1

Accion2

.

.

. AccionN

Fin

2.1. Ejercicios resueltos Ejemplo 01 Pseudocódigo para sumar dos números.

Lectura de datos Impresión de datos

nro1, nro2 suma nro1 + nro2 suma

Page 2: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

nro1 primer número nro2 segundo número

suma suma dos números

Inicio

// Definir variables

entero: nro1, nro2, suma

// Lectura de datos

Escribir (“Ingresar dos valores”)

Leer (nro1, nro2)

// Calcular suma suma nro1 + nro2

Escribir (“La suma de ambos números es: ” , suma)

Fin Explicación

Los Pseudocódigos están delimitados por las palabras: Inicio y Fin.

Los comentarios son mensajes de texto opcionales que se utiliza para

documentar un programa haciéndolo fácilmente entendibles a los lectores.

Empieza con los caracteres “//” seguido a continuación del comentario deseado.

En nuestro ejemplo se ha utilizado:

// Definir e inicializar variables

// Lectura de datos

// Calcular suma

Se definen todas las variables que se van a utilizar en el desarrollo del

algoritmo. En nuestro ejemplo:

entero: nro1, nro2, suma

Aqui se define el tipo de dato de las variables y a continuación la lista de

variables separadas por comas.

Se utiliza la palabra Leer para introducir el valor de una variable a través del

teclado o algún otro medio. En nuestro ejemplo:

Leer (nro1, nro2)

Se asigna un valor a una variable, a través del símbolo flecha ( ) que dice que

el valor a la derecha tiene que ser asignado a la variable que esta a la izquierda. En nuestro ejemplo:

suma nro1 + nro2

Se suman los números nro1 y nro2 utilizando el operador “+”. Luego este resultado es asignado a la variable suma.

Se usa la palabra Escribir para identificar una salida estándar a través del

monitor o consola. En nuestro ejemplo:

Escribir (“La suma de ambos números es: ”, suma)

De esta forma, se muestra en la pantalla el siguiente texto: La suma de ambos

números es: … , en este caso el operador “,” une el texto La suma de ambos

números es: con el contenido de la variable suma. Ejemplo 02

Pseudocódigo para calcular el área de un rectángulo, donde la base y la altura serán ingresados. La fórmula es:

Lectura de datos

base, altura

area = base * altura

area base * altura

Impresión de datos

area

Page 3: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

base base del rectángulo

altura altura del rectángulo

area área del rectángulo

Inicio

// Definir variables

entero: base, altura, area

// Lectura de datos

Escribir (“Ingrese la base y la altura”) Leer (base, altura)

// Proceso: calculo del area

area base * altura

// Salida de resultados

Escribir (“El área del rectángulo es ”,area)

Fin Ejemplo 03

Pseudocódigo para determinar la suma de las cifras de un número entero positivo

de 3 cifras.

Por ejemplo para sumar las cifras del número 257 se tiene:

2 + 5 + 7 = 14

Para obtener cada cifra del número será necesario realizar divisiones sucesivas entre 10.

Lectura de datos

Impresión de datos

nro

unidades nro Mod 10

nro nro Div 10

decenas nro Mod 10

nro nro Div 10

centenas nro Mod 10

suma unidades + decenas + centenas

suma

Variables a utilizar en el pseudocódigo

nro número ingresado de tres dígitos

suma suma de los dígitos del número

unidades unidades del número

decenas decenas del número

centenas centenas del número

Inicio

// Definir e inicializar variables

entero: nro, unidades, decenas, centenas, suma 0

// Lectura de datos

Leer (nro)

// Proceso de cálculo

unidades nro Mod 10

nro nro Div 10

decenas nro Mod 10

nro nro Div 10

centenas nro Mod 10

suma unidades + decenas + centenas

// Salida de resultados Escribir (“La suma de los dígitos es ”, suma)

Fin

Page 4: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Ejemplo 04

Pseudocódigo para sumar dos tiempos dados en horas, minutos y segundos.

Por ejemplo:

Tiempo 1 = 8:15:56

Tiempo 2 = 10:58:43

1 1

8 : 15 : 56

10 : 58 : 43

19 74 60 99 60

60 1 60 1

19 : 14 : 39

Para el desarrollo del pseudocódigo se suman los segundos de los dos tiempos, el

resultado de esta suma se divide entre 60, siendo el residuo de esta división el total

de segundos y el cociente se suma a los minutos, de igual forma se realiza la suma

de los minutos, el resultado de esta suma se divide entre 60, siendo el residuo de

la división el total de minutos y el cociente se suma a las horas. Lectura de datos Impresión de datos

hor1, min1, seg1 hor2, min2, seg2

seg seg1 + seg2

llevaMin seg Div 60

seg seg Mod 60

min llevaMin + min1 + min2

llevaHora min Div 60

min min Mod 60

hor llevaHora + hor1 + hor2

hor, min, seg

Variables a utilizar en el pseudocódigo

hor1 horas del primer tiempo

min1 minutos del primer tiempo

seg1 segundos del primer tiempo

hor2 horas del segundo tiempo min2 minutos del segundo tiempo

seg2 segundos del segundo tiempo

llevaMin minutos que se lleva

llevaHora hora que se lleva

hor horas resultante min minutos resultante

seg segundos resultante

Inicio

// Definir variables

entero: hor1, min1, seg1, llevaMin,hor2, min2, seg2, llevaHora, hor, min, seg

// Lectura de datos

Escribir (“Ingresar primer tiempo”)

Leer (hor1, min1, seg1)

Escribir (“Ingresar segundo tiempo”)

Leer (hor2, min2, seg2)

// Determina la cantidad total de segundos entre los dos tiempos

seg seg1 + seg2

llevaMin seg Div 60

seg seg Mod 60

min llevaMin + min1 + min2

Page 5: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

llevaHora min Div 60

min min Mod 60

hor llevaHora + hor1 + hor2

// Salida de resultados

Escribir (“La suma de los 2 tiempos es ”, hor, min, seg)

Ejemplo 05

Pseudocódigo que permita pasar de grados centígrados a grados Farenheit sabiendo que:

º F 9

º C 32 5

El siguiente cuadro muestra resultados con datos de prueba, para diferentes

valores de la variable centi.

centi faren 10 50 20 68 30 86 40 104

Lectura de datos Impresión de datos

centi faren 9/5*centi +32 faren

Variables a utilizar en el pseudocódigo

centi medida ingresada en centígrado

faren medida en farenheit

Inicio

// Definir variables

real: centi, faren

// Lectura de datos

Escribir (“Ingresar grados centígrados”)

Leer (centi) // Proceso de cálculo: conversión de temperatura

faren 9 / 5 * centi +32

// Salida de resultados

Escribir (centi, “ centígrado equivale a ”, faren, “ Farenheit“)

Fin Ejemplo 06 Pseudocodigo calcular la suma de los “n” primeros números naturales. Emplear la

fórmula:

suma n (n 1)

2

Lectura de datos Impresión de datos

nro suma nro*(nro+1)/2 suma

Page 6: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

nro nro ingresado

suma suma de los nros

Inicio

// Definir variables

entero: nro, suma

// Lectura de datos

Escribir (“Ingresar cantidad de números a sumar”)

Leer (nro)

// Proceso de cálculo: Suma de los “n” nros naturales suma nro * (nro + 1) / 2

// Salida de resultados

Escribir (“La suma es ”, suma)

Fin

Factor de conversión

Es una fracción en la que el numerador y denominador son medidas iguales expresadas en unidades distintas, de tal manera, que esta fracción vale la unidad.

Método efectivo para cambio de unidades y resolución de ejercicios sencillos

dejando de utilizar la regla de tres.

Ejemplo 1: Pasar 15 pulgadas a centímetros (1 pulgada = 2.54 cm)

15 pulgadas × (2.54 cm / 1 pulgada) = 15 × 2.54 cm = 38.1 cm.

Ejemplo 2: Pasar 25 metros por segundo a kilómetros por hora (1 kilómetro =

1000 metros, 1 hora = 3600 segundos)

25 m/s × (1 km / 1000 m ) × (3600 s / 1 h) = 90 km/h.

Ejemplo 07

Pseudocódigo para convertir una longitud dada en metros a sus equivalentes en milímetros, centímetros, pies, pulgadas y yardas. Se sabe que:

1 metro = 1000 milímetros

1 metro = 100 centímetros

1 pulgada = 2.54 centímetros

1 pie = 12 pulgadas

1 yarda = 3 pies

1 Kilómetro = 1000 metros

El siguiente cuadro muestra resultados con datos de prueba, para diferentes

valores:

Metros Milímetros Centímetros Pulgadas Pies Yardas Kilómetros

5 5000 500 196.85 16.4042 5.46807 0.005 10 10000 1000 393.701 32.8084 10.9361 0.01 20 20000 2000 787.402 65.6168 21.8723 0.02 50 50000 5000 1968.50 164.042 54.6807 0.05 70 70000 7000 2755.91 229.659 76.5529 0.07

Page 7: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Lectura de datos

metros

mili 1000*metros

cent metros*100

pulg cent/2.54

pies pulg/12

yarda pies/3 km m /1000

Impresión de datos

mili, cent, pulg, pies, yardas, km

Variables a utilizar en el pseudocódigo

metros medida ingresada en metros mili medida en milímetros

cent medida en centímetros

pies medida en pies

pulg medida en pulgadas

yarda medida en yardas

Inicio

// Definir variables

real: metros, mili, cent, pies, pulg, yarda, km

// Lectura de datos

Escribir (“Ingresar medida en metros”) Leer (metros)

// Proceso de cálculo: conversiones métricas

mili 1000 * metros

cent metros * 100

pulg cent / 2.54

pies pulg / 12

yarda pies / 3

km metros / 1000

// Salida de resultados

Escribir (metros, “metros equivale a ”, mili, “ milímetros ”, cent,

“Centímetros ”, pulg, “pulgadas ”, pies, “ pies ”, yarda, “ yardas ”, km,

“Kilómetros”)

Fin Ejemplo 08

Pseudocódigo para convertir pesos, dado en gramos a sus equivalentes en

miligramos, kilogramos, onza y libras. Se sabe que:

1 gramo = 1000 miligramos

1 kilogramo = 1000 gramos

1 onza = 28.35 gramos

1 libra = 16 onzas = 453.6 gramos

1 tonelada = 2000 libras El siguiente cuadro muestra resultados con datos de prueba, para diferentes

valores:

Gramos Miligramos Kilogramos Onza Libra Toneladas 500 500000 0.5 17.6367 1.10229 0.0005 300 300000 0.3 10.5822 0.66139 0.0003 600 20000 0.6 21.1644 1.32277 0.0006 700 50000 0.7 24.6918 1.54324 0.0007 900 900000 0.9 31.7466 1.98416 0.0009

Page 8: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Lectura de datos Impresión de datos

gramo

mili 1000*gramo

kilo gramo/1000

onza gramo/28.35

libra gramo/453.6

mili, kilo, onza, libra

Variables a utilizar en el pseudocódigo

gramo peso ingresada en gramos

mili peso en miligramos

kilo peso en kilos

onza peso en onza

libra peso en libra

tm peso en toneladas

Inicio

// Definir variables

real: gramo, mili, kilo, onza, libra, tm

// Lectura de datos

Escribir (“Ingresar peso en gramos”)

Leer (gramo)

// Proceso de cálculo: conversiones de pesos mili 1000 * gramo

kilo gramo / 1000

onza gramo / 28.35

libra gramo / 453.6

tm libra / 2000

// Salida de resultados Escribir (gramo, “gramos equivale a ”, mili, “ miligramos “, kilo, “

Kilogramos ”, onza, “ Onzas ”, libra, “ Libra ”, tm , “ toneladas ”)

Fin Ejemplo 09

Pseudocódigo para convertir velocidades dada en metros/segundos a sus

equivalentes en km/hora, km/seg, pies/seg, milla/hora, nudo. Se sabe que:

1 km = 1000 metros

1 minuto = 60segundos

1 hora = 3600 segundos

1 nudo = 1.852 km

1 pie = 12 pulgadas =0.3048 metros

1 milla =1.609 km El siguiente cuadro muestra resultados con datos de prueba, para diferentes

valores:

Mts/seg Km/hora Km/seg Pies/seg Milla/hora Nudo 10 36 0.01 32.8084 22.3741 19.4384 20 72 0.02 65.6168 44.7483 38.8769 30 108 0.03 98.4252 67.1224 58.3153 40 144 0.04 131.234 89.4966 77.7538 50 180 0.05 164.042 111.871 97.1922

Page 9: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Lectura de datos Impresión de datos

metroSeg kmHora metroSeg * 3.6

kmSeg metroSeg/1000

piesSeg 100 * metroSeg /30.48

millaHora 3600 * metroSeg /1609

nudo 3600 * metroSeg /1852

kmHora, kmSeg, piesSeg, millaHora,

nudo

Variables a utilizar en el pseudocódigo

metroSeg medida ingresada en metros/ seg

kmHora medida en kilómetros/ Hora

kmSeg medida en kilómetros/seg

piesSeg medida en pies/ seg

millaHora medida en millas /hora

nudo medida en nudos

Inicio

// Definir variables

real: metroSeg, kmHora, kmSeg, piesSeg, millaHora, nudo

// Lectura de datos

Escribir (“Ingresar velocidad en metros y segundos”) Leer (metroSeg)

// Proceso de cálculo: conversiones de velocidades

kmHora metroSeg * 3.6

kmSeg metroSeg / 1000 piesSeg

metroSeg / 0.3048 millaHora 3600

* metroSeg / 1609

nudo 3600 * metroSeg / 1852

// Salida de resultados

Escribir (metroSeg, “ Metros/seg equivale a ”, kmHora, “ Kilómetros/hora ”,

kmSeg, “ Kilómetros /seg ”, piesSeg, “ Pie/seg ”, millaHora, “ Millas/hora ”, nudo, “ Nudo ”)

Fin Ejemplo 10 En una tienda se ha puesto en oferta la venta de cierto tipo de producto ofreciendo

un descuento fijo del 15% del monto de la compra. Elabore un algoritmo que

determine el monto del descuento y el monto a pagar por la compra de cierta cantidad de unidades del producto.

Lectura de datos Impresión de datos

precio, cantidad compra precio * cantidad

desc 0.15 * compra

montoAPagar compra - desc

desc, compra

Variables a utilizar en el pseudocódigo

cantidad cantidad de productos a comprar

precio precio del producto

desc monto descontado

compra monto de la compra

montoAPagar monto a pagar

Inicio

Page 10: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

// Definir variables

entero: cantidad

real: precio, desc, compra, montoAPagar

// Lectura de datos

Escribir (“Ingresar precio del producto”)

Leer (precio) Escribir (“Ingresar cantidad”)

Leer (cantidad)

// Proceso de calculo

compra precio * cantidad

desc 0.15 * compra

montoAPagar compra - desc

// Salida de resultados Escribir (“El monto del descuento es ”, desc)

Escribir (“El monto a pagar es ”, montoAPagar)

Ejemplo 11

Pseudocódigo que determina el porcentaje de varones y de mujeres que hay en un salón de clase.

Lectura de datos Impresión de datos

cvar, cmuj total cvar + cmuj pvar

(cvar * 100) / total pmuj

100 - pvar

pvar, pmuj

Variables a utilizar en el pseudocódigo

cvar cantidad de varones

cmuj cantidad de mujeres

total total de alumnos pvar porcentaje de varones pmuj porcentaje de mujeres

Inicio

// Definir variables

entero: cvar, cmuj, total

real: pvar, pmuj

// Lectura de datos

Escribir (“Ingresar cantidad de varones”)

Leer (cvar)

Escribir (“Ingresar cantidad de mujeres”)

Leer (cmuj)

// Proceso de calculo

total cvar + cmuj

pvar (cvar * 100) / total

pmuj 100 - pvar

// Salida de resultados Escribir (“El porcentaje de varones es ”, pvar)

Escribir (“El porcentaje de mujeres es ”, pmuj)

Fin Ejemplo 12

Pseudocódigo que intercambie las cifras de las unidades de dos números naturales.

Por ejemplo:

Número 1: 2485

Número 2: 17

Page 11: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Intercambiando sus unidades se obtiene: 2487 y 15.

Lectura de datos

nro1, nro2

unro1 nro1 Mod 10

unro2 nro2 Mod 10

nro1 nro1 – unro1 + unro2

nro2 nro2 – unro2 + unro1

Impresión de datos

nro1, nro2

Variables a utilizar en el pseudocódigo

nro1 primer número ingresado

nro2 segundo número ingresado

unro1 unidades del primer número

unro2 unidades del segundo número

Inicio

// Definir variables

entero: nro1, nro2, unro1, unro2

// Lectura de datos

Escribir (“Ingresar dos números”) Leer (nro1, nro2)

// Proceso de calculo

unro1 nro1 Mod 10

unro2 nro2 Mod 10

nro1 nro1 – unro1 + unro2

nro2 nro2 – unro2 + unro1

// Salida de resultados

Escribir (“Los números intercambiados son ”, nro1, nro2)

Fin Ejemplo 13 Pseudocódigo que convierte una hora expresada como un número real a su

equivalente en horas, minutos y segundos.

Por ejemplo:

Hora: 16.235

Equivale a: 16 horas, 14 minutos y 6 segundos

Lectura de datos

hora

hor entero (hora)

hora hora - hor

minuto hora * 60

min entero (minuto)

minuto minuto - min segundo minuto * 60

seg entero (segundo)

segundo segundo – seg

cs segundo * 100

Impresión de datos

hor, min, seg, cs

Para la resolución de este ejemplo se hace uso de la función predefinida entero().

Variables a utilizar en el pseudocódigo

hora hora real

minuto minuto real

segundo segundo real hor hora entera

Page 12: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

min minuto entero

seg segundo entero

cs centésimo de segundos entero

Inicio

// Definir variables

real: hora, minuto, segundo

entero: hor, min, seg, cs

// Lectura de datos Escribir (“Ingresar hora”)

Leer (hora)

// Proceso de cálculo

hor entero (hora)

hora hora - hor minuto hora * 60

min entero (minuto)

minuto minuto - min

segundo minuto * 60

seg entero (segundo)

segundo segundo – seg

cs segundo * 100

// Salida de resultados

Escribir (“El equivalente es ”, hor, min, seg, cs)

Fin Ejemplo 14

Pesudocódigo para calcular el monto final que se paga por la compra de un auto al

crédito, al precio de venta se le aumenta el 4% de impuestos estatales, de tal

forma que el cliente tendrá que pagar como cuota inicial el 20% de este nuevo

precio, el monto financiado tendrá un interés del 7% anual.

Lectura de datos

precio, tiempo

imp 0.04 * precio

precio precio + imp

cuota 0.20 * precio

finan precio - cuota inter 0.07 * finan * tiempo

total cuota + finan + inter

Impresión de datos

total

Variables a utilizar en el pseudocódigo imp impuesto estatal

precio precio del auto

cuota cuota inicial

finan monto financiado

inter intereses generados total total a pagar

tiempo tiempo a financiar

Inicio

// Definir variables

real: imp, precio, cuota, finan, inter, total

// Lectura de datos

Escribir (“Ingresar precio”)

Leer (precio)

Escribir (“Ingresar años financiados”)

Page 13: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

Leer (tiempo)

// Proceso de cálculo imp 0.04 * precio

precio precio + imp

cuota 0.20 * precio

finan precio - cuota

inter 0.07 * finan * tiempo

total cuota + finan + inter

// Salida de resultados

Escribir (“El total a pagar es ”, total)

Ejemplo 15

Pseudocódigo para calcular la cantidad de arena que se necesita para pulir una

pared, se conoce las medidas de la pared (largo y alto) y se sabe que se necesita 0,5 metros cúbicos de arena por cada metro cuadrado de pared.

Lectura de datos

largo, alto

area largo * alto

arena 0.5 * area

Impresión de datos

arena

Variables a utilizar en el pseudocódigo largo largo de la pared

ancho ancho de la pared

area área total de la pared

arena cantidad de arena que se necesita

Inicio

// Definir variables

real: largo, alto, area, arena

// Lectura de datos

Escribir (“Ingresar largo y alto de la pared”)

Leer (largo, alto)

// Proceso de cálculo area largo * alto

arena 0.5 * area

// Salida de resultados Escribir (“Se necesita ”, arena, “metros cúbicos de arena”)

Fin Ejemplo 16

Pesudocódigo para calcular el tiempo que tarda el atleta en dar 2 vueltas a una

pista de atletismo, se tiene como datos la velocidad en metros/segundos y el radio

de la circunferencia de la pista, se sabe además que el atleta descansa 1 minuto

cada 100 metros.

Lectura de datos

vel, radio

recor (2 * 3.1416 * radio) * 2

tiempo recor / vel

tiemdes (recor Div 100) * 2 tiempo tiempo + tiemdes

Impresión de datos

tiempo

Page 14: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

vel velocidad que corre el atleta radio radio de la pista de atletismo

recor recorrido total

tiemdes tiempo que descansa el atleta

tiempo tiempo empleado en dar 2 vueltas a la pista

Inicio

// Definir variables

real: vel, radio, recor, tiempo, tiemdes

// Lectura de datos

Escribir (“Ingresar velocidad”)

Leer (vel)

Escribir (“Ingresar radio”)

Leer (radio)

// Proceso de cálculo recor (2 * 3.1416 * radio) * 2 tiempo recor / vel

tiemdes (recor Div 100) * 2

tiempo tiempo + tiemdes

// Salida de resultados

Escribir (“El tiempo empleado en dar 2 vueltas es ”, tiempo)

Fin Ejemplo 17

Pseudocódigo para calcular el precio de venta de una pizza; el tamaño de la pizza

varía según la solicitud del cliente, quien determina el diámetro en centímetros que

tendrá la pizza. El costo básico (pizza sin ingredientes extras) es de 0,48 soles por

cm, el costo de cada ingrediente extra agregado a la pizza base es de 0,10 soles

por cm, el precio de venta de la pizza se obtiene recargando un 120% en costo total.

Lectura de datos

diam, extra

precio diam * 0.48

adic extra * diam

recar (precio + adic) * 1.2

venta precio + adic + recar

Impresión de datos

venta

Variables a utilizar en el pseudocódigo

diam diámetro de la pizza

extra cantidad de ingredientes extras

precio precio base de la pizza

adic monto adicional por los ingredientes extras

recar monto recargado

venta precio de venta

Inicio

// Definir variables

entero: diam, extra

real: precio, adic, recar, venta

// Lectura de datos

Escribir (“Ingresar diámetro de la pizza”)

Leer (diam)

Escribir (“Ingresar cantidad de ingredientes extras”)

Leer (extra)

Page 15: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

// Proceso de cálculo

precio diam * 0.48 adic extra * diam

recar (precio + adic) * 1.2

venta precio + adic + recar

// Salida de resultados

Escribir (“El precio de venta es ”, venta)

Ejemplo 18

Pesudocódigo para calcular el mínimo de monedas de 2.00, 1.00, 0.50, 0.20 y 0.10 que una máquina electrónica da como vuelto por la compra de un paquete de

galletas, dicha maquina solo acepta monedas de 5 soles.

Lectura de datos

precio

vuelto 5 – precio

vueltoEnt entero (vuelto)

vueltoReal (vuelto – vueltoEnt) * 100 m2 vueltoEnt Div 2

m1 vueltoEnt Mod 2

m50 vueltoReal Div 50

vueltoReal vueltoReal Mod 50

m20 vueltoReal Div 20

m10 vueltoReal Mod 20

Impresión de datos

m1, m2, m50, m20, m10

Variables a utilizar en el pseudocódigo

precio precio de la galleta

vuelto vuelto de la compra vueltoEnt parte entera del vuelto expresado como valor entero

vueltoReal parte fraccionaria del vuelto expresado como valor entero m2 cantidad de monedas de 2.00 soles

m1 cantidad de monedas de 1.00 sol

m50 cantidad de monedas de 0.50 céntimos

m20 cantidad de monedas de 0.20 céntimos

m10 cantidad de monedas de 0.10 céntimos

Inicio

// Definir variables

entero: vueltoEnt, vueltoReal, m1, m2, m50, m20, m10

real: precio, vuelto

// Lectura de datos

Escribir (“Ingresar precio de la galleta”)

Leer (precio) // Proceso de cálculo

vuelto 5 – precio

vueltoEnt entero (vuelto)

vueltoReal (vuelto – vueltoEnt) * 100

m2 vueltoEnt Div 2

m1 vueltoEnt Mod 2 m50

vueltoReal Div 50 vueltoReal

vueltoReal Mod 50

m20 vueltoReal Div 20

m10 vueltoReal Mod 20

// Salida de resultados

Page 16: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

Escribir (“Se recibe ”, m2, “monedas de 2.00 soles”, m1, “monedas de 1.00

sol”, m50, “monedas de 0.50 céntimos”, m20, “monedas de 0.20 céntimos”,

m10, “monedas de 0.10 céntimos”)

Ejemplo 19

Pseudocódigo para calcular el tiempo, en horas y minutos que emplea un profesor

para calificar un grupo de exámenes. Se tienen tres tipos de examen A, B, C y el

tiempo en minutos requerido para cada tipo son: A = 5 min, B = 7 min y C = 8

min.

Lectura de datos Impresión de datos

ca, cb, cc

tiempo (ca*5) + (cb*7) + (cc*8)

hor tiempo Div 60 min tiempo Mod 60

hor, min

Variables a utilizar en el pseudocódigo

ca cantidad de exámenes tipo a

cb cantidad de exámenes tipo b

cc cantidad de exámenes tipo c

hor horas empleadas para calificar los exámenes min

minutos empleados para calificar los exámenes tiempo

tiempo en horas,minutos para calificar los exámenes

Inicio

// Definir variables

entero: ca, cb, cc, hor, min

// Lectura de datos

Escribir (“Ingresar cantidad de exámenes tipo A”) Leer (ca)

Escribir (“Ingresar cantidad de exámenes tipo B”)

Leer (cb)

Escribir (“Ingresar cantidad de exámenes tipo C”)

Leer (cc)

// Proceso de cálculo

tiempo (ca * 5) + (cb * 7) + (cc * 8)

hor tiempo Div 60

min tiempo Mod 60

// Salida de resultados

Escribir (“Se emplea ”, hor, “horas con”, min, “minutos”)

Fin

2.2.Ejercicios Propuestos

1. Dada las siguientes ecuaciones:

a = b + 2c + 3m

c = a + 3b + n

z = m + n + 5a

Diseñe un pesudocódigo que determine los valores de m y z conociendo los

valores de a, b, y c.

2. Una persona tiene 2 recipientes llenos de gasolina cuyas capacidades están

dadas en galones y pies cúbicos, respectivamente. Diseñe un pesudocódigo que determine la cantidad total de gasolina en metros cúbicos, pies cúbicos

y yardas cúbicas. Considere los siguientes factores de conversión:

Page 17: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

1 pie cúbico = 0.0283 metros cúbicos

1 galón = 3.79 litros

1 metro cúbico = 1000 litros

1 yarda cúbica = 27 pies cúbicos

3. Diseñe un pesudocódigo que calcule las HH:MM:SS transcurridos entre dos

tiempos. Ambos tiempos vienen dados en el formato HH:MM:SS. 4. Diseñe un pesudocódigo que lea la hora actual del día HH:MM:SS y

determine cuantas horas, minutos y segundos restan para culminar el día.

5. El sueldo neto de un vendedor se calcula como la suma de un sueldo básico

más el 12% del monto total que ha vendido. Diseñe un pesudocódigo que

determine el sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes.

6. Elaborar un pseudocódigo que permita convertir un volumen dado en litros a

sus equivalentes en mililitros, hectolitro, pie cúbico, pinta, galones. Se sabe

que:

1 litro = 1000 mililitros

1 hectolitro = 100 litros

1 pie cúbico = 28.32 litros

1 onza fluida = 29.57 mililitro

1 pinta = 16 onza fluida

1 galón = 3.785 litros

7. Desarrollar un programa que dado el largo y el ancho de un campo, permita

determinar cuantos metros de alambre serán necesarios para colocar al

perímetro 5 hilos de alambrado.

8. Una empresa exportadora de trigo trabaja con 2 proveedores; el primer proveedor le brinda una cierta cantidad de trigo en gramos y el segundo

proveedor otra cierta cantidad de trigo en libras. Se pide elaborar un

pesudocódigo que calcule la cantidad total de trigo que obtiene la empresa.

1 libras = 16 onzas

1 onza = 28.35 gramos

1 kilogramo = 1000 gramos

1 tonelada = 1000 kilogramos

9. Calcular el perímetro de una circunferencia dado su radio. Luego calcule el

perímetro de la misma si se reduce al 50%, y el perímetro de la misma si se

reduce al 25% con respecto al resultado anterior.

10. La calificación final de un estudiante viene dada por tres calificaciones: nota

de laboratorio que cuenta un 30% del total, nota de examen parcial que

cuenta un 20% del total y nota de examen final que cuenta el 50% restante. Diseñar un pesudocódigo que lea la nota de laboratorio, la nota del examen

parcial y la nota del examen final de un estudiante y muestre el tanto por

ciento correspondiente a cada una de las notas así como la calificación final.

11. Diseñe un algoritmo que lea un número de 4 dígitos luego intercambie el

primer digito con el último dígito.

12. Una empresa constructora ofrece departamentos al crédito, para adquirir un

departamento se abona una cuota inicial del 12% y se determina la cantidad

de años que se financia. Al monto financiado se le aplica un interés del 10% anual. Diseñar un pesudocódigo que calcule el monto mensual que se paga

por un departamento.

13. Tres personas deciden invertir su dinero para fundar una empresa. Cada una

de ellas invierte una cantidad distinta. Obtener el porcentaje que cada

persona invierte con respecto a la cantidad total invertida.

Page 18: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

3. Estructura selectiva Para poder desarrollar aplicaciones, no basta con ejecutar sentencias secuenciales,

también resulta esencial tomar decisiones en base a evaluaciones de expresiones

lógicas que nos señalaran el camino alternativo a seguir. El tipo de resultado de una estructura selectiva es lógico (booleano), es decir,

verdadero (true) o falso (false).

Las estructuras selectivas que se utilizan para tomar decisiones podemos clasificarlas en: simple, doble y múltiple.

3.1.Estructura selectiva simple: Si - Fin_si

Evalúa una expresión lógica y si su resultado es verdadero (true), se ejecuta

una acción determinada. Su sintaxis es la siguiente:

Si (expresión_lógica) entonces

Acción(es)

Fin_si

Funcionamiento de la estructura selectiva Si - Fin_si Cuando la sentencia Si - Fin_si inicia su ejecución, se suceden los siguientes

pasos:

a) Se evalúa una expresión_lógica, obteniéndose un resultado lógico.

b) Si este resultado es verdadero (true), se ejecuta una acción, luego el pseudocódigo proseguirá con la siguiente acción que sigue al Fin_si.

c) Si este resultado es falso (false), la ejecución del pseudocódigo saltará a la

acción que sigue al Fin_si, es decir, no se ejecuta la acción que se encuentra a continuación del Si.

Ejemplo 01

Pseudocódigo que lea tres notas de un alumno: examen parcial, examen final y promedio de prácticas imprima el promedio final del estudiante y el mensaje

“aprobado”, solo si el promedio final es mayor o igual que 10.5.

El siguiente cuadro muestra los resultados con datos de prueba:

exPar

exFin

promP promedio =

(exPar+exFin+promP)/3

mensaje

14 16 12 14.00 aprobado 10 14 15 13.00 aprobado

Variables a utilizar en el pseudocódigo

exPar examen parcial

exFin examen final

promP promedio de prácticas

promedio promedio final

Inicio

// Definir variables

real: exPar, exFin, promP, promedio

// Lectura de datos

Escribir (“Ingresar tres notas:”)

Leer (exPar, exFin, promP)

Page 19: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

// Calcula promedio

promedio (exPar + exFin + promP) / 3

Si (promedio >= 10.5) entonces

Escribir (“El promedio es ”, promedio, "aprobado”)

Fin_si

Fin

Explicación

Para resolver el ejemplo planteado se definen las variables reales exPar, exFin,

promP y promedio:

real: exPar, exFin, promP, promedio

Se ingresa tres notas exPar, exFin, promP:

Escribir (“Ingresar tres notas”)

Leer (exPar, exFin, promP)

Posteriormente se calcula el promedio de las tres notas ingresadas exPar, exFin, promP:

promedio (exPar + exFin + promP) / 3

Con el promedio calculado se evalua la expresión lógica (promedio >= 10.5) si esta condición es verdadera se imprime el mensaje solicitado:

Si (promedio>=10.5) entonces

Escribir (“El promedio es ”, promedio, "aprobado”) Fin_si

Ejemplo 02

Pseudocódigo que lea el sueldo de un trabajador, aplique un aumento del 15%

si su sueldo es inferior a 500 e imprima el nuevo sueldo.

Variables a utilizar en el pseudocódigo

sueldo sueldo aum

aumento nuevoSueldo

nuevo sueldo

Inicio

// Definir variables

real: sueldo, nuevoSueldo, aum 0

// Lectura de datos Escribir (“Ingresar sueldo: ”)

Leer (sueldo)

// Calcula el sueldo

Si (sueldo >=0 and sueldo < 500) entonces aum 0.15*sueldo

Fin_si

nuevoSueldo sueldo + aum

Escribir (“Nuevo sueldo ”, nuevoSueldo)

Fin

Ejemplo 03 Pseudocódigo calcula el monto final que se paga por un consumo en un

restaurante, sabiendo que por consumos mayores a S/.100.00 se aplica un

descuento del 20%.

Variables a utilizar en el pseudocódigo

consumo monto del consumo

desc descuento

montoFinal monto final a pagar

Page 20: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Inicio

// Definir e inicializar variables

real: consumo, desc 0, montoFinal

// Lectura de datos Escribir (“Ingresar consumo: ”)

Leer (consumo)

// Calcula el descuento

Si (consumo > 100) entonces

desc 0.20 * consumo

Fin_si

montoFinal consumo - desc

Escribir (“El total a pagar es ”, montoFinal)

Fin

Ejemplo 04 Pseudocódigo que calcula el sueldo semanal de un obrero que trabaja por horas,

si durante la semana trabajó más de 40 horas se le paga por cada hora extra

dos veces la tarifa normal.

Variables a utilizar en el pseudocódigo tarifa tarifa de cada hora trabajada

horas total de horas trabajadas

extra pago extra

sueldo sueldo del obrero

Inicio

// Definir e inicializar variables real: tarifa, sueldo, extra 0

entero: horas

// Lectura de datos

Escribir (“Ingresar tarifa: ”)

Leer (tarifa)

Escribir (“Ingresar horas trabajadas: ”)

Leer (horas)

// Calcula el sueldo

sueldo horas * tarifa

Si (horas > 40) entonces

extra (horas – 40) * (2*tarifa)

Fin_si sueldo sueldo +extra

Escribir (“El sueldo final es ”, sueldo)

Fin

Ejemplo 05

Pseudocódigo para hallar el menor de 4 números.

Variables a utilizar en el pseudocódigo

nro1 primer número

nro2 segundo número

nro3 tercero número

nro4 cuarto número menor menor número

Inicio

// Definir variables

entero: nro1, nro2, nro3, nro4, menor

Page 21: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

// Lectura de datos

Escribir (“Ingresar 4 números: ”) Leer (nro1, nro2, nro3, nro4)

// Proceso

menor nro1

Si (nro2 < menor) entonces menor nro2

Fin_si

Si (nro3 < menor) entonces menor nro3

Fin_si

Si (nro4 < menor) entonces menor nro4

Fin_si

Escribir (“El menor es ”, menor) Fin

3.2. Estructura selectiva doble: Si – Sino – Fin_si

Se evalúa la expresión-lógica, si este resultado es verdadero se ejecuta la

Accion1, si el resultado es falso se ejecuta la Accion2. En ambos casos, luego de

finalizar la acción seleccionada, se termina la sentecia Si – Sino - Fin_si y la

ejecución del pseudocódigo proseguirá con la primera sentencia que sigue al Si

- Sino - Fin_si. Su sintaxis es la siguiente:

Si (expresión_lógica) entonces

Acción1

Sino

Fin_si

Acción2

Funcionamiento de la estructura selectiva Si – Sino - Fin_si

Cuando la sentencia Si – Sino - Fin_si inicia su ejecución, se suceden los siguientes pasos:

a) Se evalúa expresión-lógica, obteniendo un resultado lógico.

b) Si este resultado es verdadero, se ejecuta la Acción1 y se va al paso d.

c) Si este resultado es falso, se ejecuta la Acción2 y se va al paso d.

d) La ejecución del pseudocódigo proseguirá con la siguiente sentencia que

sigue al Fin_si

Ejemplo 06

Pseudocódigo para hallar el mayor de dos números.

El siguiente cuadro muestra resultados con datos de prueba:

nro1 nro2 mayor 14 16 16 12 10 12

Variables a utilizar en el pseudocódigo

nro1 primer número

nro2 segundo número

mayor mayor de dos números

Inicio

// Definir variables

entero: nro1, nro2, mayor

Page 22: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

// Lectura de datos

Escribir (“Ingresar dos números: ”) Leer (nro1, nro2)

// Calcula el mayor de dos números

Si (nro1 > nro2) entonces

mayor nro1

Sino

mayor nro2

Fin_si

Escribir ("El mayor de dos números es:", mayor)

Explicación

Para resolver el ejemplo planteado se definen las variables enteras nro1, nro2,

mayor:

entero: nro1, nro2, mayor

Se lee dos números:

Leer (nro1, nro2)

Se evalua la expresión logica (nro1 > nro2) si esta condicion es verdadera se

asigna nro1 a mayor, de lo contrario se asigna nro2 a mayor.

Si (nro1 > nro2) entonces

mayor nro1

Sino

mayor nro2

Fin_si

Ejemplo 07

Pseudocódigo para hallar el mayor de tres números

El siguiente cuadro muestra los resultados con datos de prueba:

nro1 nro2 nro3 mayor 14 16 18 18 12 14 11 14

08 05 04 08

Variables a utilizar en el pseudocódigo

nro1 primer número

nro2 segundo número

nro3 tercer número

t variable temporal mayor mayor de tres números

Inicio

// Definir variables

entero: nro1, nro2, nro3, t, mayor

// Lectura de datos

Escribir (“Ingresar tres números:”)

Leer (nro1, nro2, nro3)

// Calcula el mayor de tres números

Si (nro1 > nro2) entonces t nro1

Sino

Page 23: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

t nro2

Fin_si

Si (t > nro3) entonces mayor t

Sino

mayor nro3

Fin_si

Escribir (“El mayor de tres números es: ”, mayor)

Ejemplo 08

Pseudocódigo que lea el espacio recorrido por un auto y su tiempo empleado en

este recorrido. Se pide hallar la velocidad del recorrido. Fórmula:

velocidad = espacio / tiempo.

Tenga en cuenta que en caso de que el tiempo sea igual a cero la velocidad no se podrá calcularse.

Variables a utilizar en el pseudocódigo

espacio espacio recorrido

tiempo tiempo empleado

velocidad velocidad del recorrido

Inicio

// Definir variables

real : espacio, tiempo, velocidad

// Lectura de datos

Escribir (“Ingresar espacio recorrido y tiempo”)

Leer (espacio, tiempo)

// Calcula velocidad

Si (tiempo <> 0) entonces

velocidad espacio / tiempo

Escribir (“La velocidad es: ”, velocidad)

Sino

Escribir (“Error”)

Fin_si

Fin

Ejemplo 09 Pseudocódigo que lea tres valores tal como a, b, c. Calcular el resultado de la

siguiente expresión:

y = (a - b) / c

Donde: a > b > c, además c no puede ser cero.

Variables a utilizar en el pseudocódigo

a primer valor

b segundo valor

c tercer valor

y resultado de la expresión

Inicio

// Definir variables

real: a, b, c, y

// Lectura de datos

Page 24: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

Escribir (“Ingresar tres números”)

Leer (a, b, c)

// Calcula expresión

Si (c <> 0 ) entonces

y (a - b ) / c

Escribir (y) Sino

Escribir (“No se puede calcular la expresión”)

Fin_si

Ejemplo 10

Pseudocódigo que lea tres notas de un alumno: examen parcial, examen final y promedio de prácticas, imprima el promedio y el mensaje aprobado en caso de

que el promedio es mayor o igual que 10.5, si su promedio es menor de 10.5

imprimir el promedio y el mensaje desaprobado.

El siguiente cuadro muestra los resultados con datos de prueba:

exPar exFin promP promedio =

(exPar+exFin+promP)/3 mensaje

14 16 12 14.00 aprobado 10 08 06 8.0 desaprobado

Variables a utilizar en el pseudocódigo

exPar examen parcial

exFin examen final

promP promedio de practicas

promedio promedio final

Inicio

// Definir variables

real: exPar, exFin, promP, promedio

// Lectura de datos

Escribir ("Ingrese tres notas: ")

Leer (exPar, exFin, promP)

// Calcula promedio

promedio (exPar + exFin + promP) / 3

Si (promedio >= 10.5) entonces

Escribir (promedio, “aprobado”)

sino

Escribir (promedio, “desaprobado”)

Fin_si

Fin

Ejemplo 11 Pseudocódigo que lea como dato el sueldo de un trabajador, aplique un

aumento del 15% si su sueldo es inferior a 500 y 10% en caso contrario.

Imprima el nuevo sueldo del trabajador.

Variables a utilizar en el pseudocódigo sueldo sueldo

aum aumento

nuevoSueldo nuevo sueldo

Inicio

// Definir variables

Page 25: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

real: sueldo, aum, nuevoSueldo

// Lectura de datos Escribir (“Ingrese sueldo)

Leer (sueldo)

// Calcula sueldo

Si (sueldo < 500) entonces aum 0.15 * sueldo

sino

aum 0.10 * sueldo

Fin_si

nuevoSueldo sueldo + aum

Escribir (“Nuevo sueldo ”, nuevoSueldo)

Ejemplo 12 Pseudocódigo que determine si un número es múltiplo de otro. Un número a es

múltiplo de otro numero b, cuando el residuo de la división de a entre b es cero.

En la siguiente tabla se muestra resultados para diferentes valores de las

variables:

nro1 nro2 r = nro1 Mod nro2 Mensaje a mostrar 20 5 0 20 es múltiplo de 5 18 6 0 18 es múltiplo de 6 9 2 1 9 no es múltiplo de 2

Variables a utilizar en el pseudocódigo

nro1 primer número

nro2 segundo número

r residuo de dos números

Inicio

// Definir variables

entero: nro1,nro2, r

// Lectura de datos

Escribir (“Ingresar dos numeros”)

Leer (nro1, nro2)

// Calcular múltiplo

r nro1 Mod nro2

Si (r = 0) entonces

Escribir (nro1, “es múltiplo de”, nro2)

Fin

sino Fin_si

Escribir (nro1, “no es múltiplo de”, nro2)

Ejemplo 13

Pseudocódigo que lea tres números e imprima su producto si el primero de ellos es positivo, en caso contrario imprima su suma.

Por ejemplo:

a = 4, b = 3, c = 2 entonces su producto es p = a * b * c = 42

a = -4, b = 3, c = 2 entonces la suma es s = a + b + c = 1

Variables a utilizar en el pseudocódigo

a primer número

b segundo número c tercer número

Page 26: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

p producto

s suma

Inicio

// Definir variables

entero: a, b, c, p, s

// Lectura de datos

Escribir (“Ingresar primer numero:”)

Leer (a)

Escribir (“Ingresar segundo número:”)

Leer (b)

Escribir (“Ingresar tercer número:”)

Leer (c)

Si (a > 0) entonces p a * b * c

Escribir (“El producto es igual ”, p)

Sino s a+b+c

Escribir (“La suma es igual ”, s)

Fin_si

Fin

Ejemplo 14 Pseudocódigo que lea dos números y diga si la suma de los números es par o

impar.

Por ejemplo:

a = 4, b = 3 entonces su suma es s = a + b = 7 es impar a = 4, b = 4 entonces la suma es s = a + b = 8 es par

Variables a utilizar en el pseudocódigo

a primer número

b segundo número

s suma

Inicio

// Definir variables

entero: a, b, s

// Lectura de datos

Escribir ("Ingresar primer numero:")

Leer (a)

Escribir ("Ingresar segundo número:")

Leer (b)

s a+b

Si (s Mod 2 = 0) entonces

Escribir (s, “La suma es par”)

Sino

Escribir (s, “La suma es impar”)

Fin_si

Fin

Ejemplo 15 Pseudocódigo que determine si un año es bisiesto. Un año es bisiesto si es

múltiplo de 4 y no de 100 o cuando es múltiplo de 400.

Un año es bisiesto si es múltiplo de 4. Para esto tendremos que verificar si el

residuo de la división del año entre 4 es igual a cero.

Page 27: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

a Mod 4 = 0

Además, se sabe que no debe ser múltiplo de 100 para lo cual escribimos a Mod 100 <> 0

Sea múltiplo de 400. a Mod 400 = 0

Entonces un año es bisiesto si múltiplo de 4, que no debe ser multiplo de 100 a

menos que sea múltiplo de 400

(((a Mod 4 = 0 ) and (a Mod 100 <> 0)) or (a Mod 400 = 0))

Variables a utilizar en el pseudocódigo

a año

Inicio

// Definir variable entero: a

// Lectura de datos

Escribir ("Ingresar año:")

Leer (a)

Si (((a Mod 4 = 0) and (a Mod 100 <> 0)) or (a Mod 400 = 0)) entonces

Escribir (“El año es bisiesto”)

Sino

Escribir (“El año no es bisiesto”)

Fin_si

Fin

Ejemplo 16

Pseudocódigo que calcule el total a pagar por la compra de camisas. Si se

compran tres camisas o más se aplica un descuento del 20% sobre el total de

la compra, sino se aplica un descuento del 10%.

Variables a utilizar en el pseudocódigo

precio precio de cada camisa

cant cantidad a comprar

compra monto de la compra

desc descuento

total total a pagar

Inicio

// Definir variables

entero: cant

real: precio, compra, desc, total

// Lectura de datos

Escribir ("Ingresar precio unitario:")

Leer (precio)

Escribir ("Ingresar cantidad de camisas:")

Leer (cant) compra cant * precio

Si (compra >=3) entonces desc 0.20 * compra

Sino

desc 0.10 * compra

Fin_si

total compra – desc

Escribir (“El total a pagar es ”, total)

Fin

Page 28: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Ejemplo 17

Pseudocódigo que calcule el total que se paga en una playa de estacionamiento, en el que se registra la hora de ingreso y la hora de salida del vehículo en

HH:MM, la tarifa por hora o fracción de S/.2.00.

Por ejemplo:

Hora de inicio:4:20

Hora de término: 7:10

Total a pagar: 7:10- 4:20= 2: 40 = 6

Hora de inicio:3:20

Hora de termino: 8:40

Total a pagar: 8:40- 3:20= 5: 20 = 12

Variables a utilizar en el pseudocódigo

h1, m1 hora de ingreso

h2, m2 hora de salida

pago total a pagar

Inicio

// Definir e inicializar variables entero: h1, m1, h2, m2, min, hor 0

real : pago

// Lectura de datos

Escribir ("Ingresar hora de ingreso:")

Leer (h1, m1)

Escribir ("Ingresar hora de salida:")

Leer (h2, m2)

Si (m2 >= m1) entonces min m2 – m1

Sino

min (m2 + 60) – m1 h2 h2 - 1

Fin_si

hor h2 – h1

Si (min > 0)

hor hor + 1

Fin_si

pago hor * 2

Escribir (“El total a pagar es ”, pago)

Fin

3.3.Estructura selectiva múltiple

3.3.1. Estructura selectiva múltiple: Si anidado

Un Si anidado es una sentencia Si que esta contenido dentro de otro Si o

Sino. Cuando se anidan Si, cada sentencia Sino siempre se corresponde a la

sentencia Si mas próxima dentro del mismo bloque y que no este asociada

con otro Sino. Un caso particular de una sentencia Si anidada es la

siguiente:

Si (expresión_lógica1) entonces Acción1

Sino Si (expresión_lógica2) entonces

Acción2

Page 29: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin_si

Sino Fin_si

Acción3

Funcionamiento de Si anidado: Si – Sino - Si ...

Cuando la sentencia si múltiple inicia su ejecución, se suceden los siguientes

pasos:

a) Se evalúa expresión_lógica1, obteniendo un resultado lógico.

b) Si este resultado es verdadero (true), se ejecuta la Accion1 y se va al

paso d.

c) Si este resultado es falso, se evalúa expresión_lógica2, obteniendo un

resultado lógico, si este resultado es verdadero, se ejecuta la Accion2 y

se va al paso d, si este resultado es falso, se ejecuta la Accion3 y se va al paso d.

d) La ejecución del pseudocódigo proseguirá con la siguiente sentencia que

sigue al ultimo Fin_si

Ejemplo 18

Pseudocódigo que lea un número y determine si es positivo, negativo o cero.

Variables a utilizar en el pseudocódigo

nro número a ingresar

mensa mensaje a mostrar

Inicio

Fin

// Definir variables

entero: nro

cadena: mensa

// Lectura de datos

Escribir (“Ingresar numero:”)

Leer (nro) Si (nro = 0 ) entonces

mensa “Cero”

Sino

Si (nro>0) entonces

mensa

“Positivo”

Sino

mensa “Negativo”

Fin_si

Fin_si

Escribir (nro, mensa)

Explicación

Para resolver el ejemplo planteado se define la variable entera nro y la

variable cadena mensa: entero: nro

cadena: mensa

Se ingresa un número cualquiera:

Escribir (“Ingresar numero:”)

Leer (nro)

Se evalua la expresión lógica (nro = 0) en caso de cumplirse la igualdad se

asigna “Cero” a la variable mensa:

Page 30: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Si (nro = 0 ) entonces

mensa “Cero”

Después de esta asignación la ejecución pasa a la sentencia escribir y

finaliza el pseudocodigo:

Escribir (nro, mensa)

Pero, si la expresión lógica (nro = 0) resulta ser falsa, se ejecuta el SINO

asociado al primer SI:

SINO

Este sino esta conformado por un SI que evalua la expresión logica (nro > 0), si la asignación es verdadera se asigna “Positivo” a la variable mensa:

Si (nro>0) entonces mensa “Positivo”

Después de esta asignación la ejecución pasa a la sentencia escribir y

finaliza el pseudocodigo:

Escribir (nro, mensa)

Pero, si la expresión logica resulta ser falsa se ejecuta el SINO asociado al

segundo SI en la cual se asigna “Negativo” a la variable mensa:

mensa “Negativo”

Después de esta asignación la ejecución pasa a la sentencia escribir y

finaliza el pseudocodigo:

Escribir (nro, mensa)

Ejemplo 19

En una tienda comercial se realizan descuentos en las compras en función

del importe total de dichas compras. Se desea calcular el importe que se

cobra a un cliente, teniendo en cuenta los siguientes supuestos:

Si el importe total de la compra es menor de 200 soles no hay

descuentos.

Si el importe total de la compra esta comprendido entre 200 y 800 se

hace un descuento del 10% Si el importe total de la compra es mayor de 800 se hace un descuento

del 20%.

Se pide mostrar el nombre del cliente, el importe total, el descuento y el

importe a cobrar a un cliente cualquiera

Variables a utilizar en el pseudocódigo

nombre nombre del cliente

importeTotal importe total

descto descuento

importeACobrar importe a cobrar

Inicio

// Definir variables

real: importeTotal, descto, importeACobrar cadena: nombre

// Lectura de datos

Escribir (“Ingresar nombre del cliente:”) Leer (nombre)

Escribir (“Ingresar monto total de la compra:”)

Page 31: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Leer (importeTotal)

// Calcula el importe a Cobrar Si (importeTotal >= 0 and importeTotal < 200) entonces

descto 0

Sino

Fin_si

Si (importeTotal <= 800) entonces

descto 0.10*importeTotal

Sino

descto 0.20*importeTotal

Fin_si

Fin

ImporteACobrar importeTotal - descto

Escribir (“Cliente: ”, nombre)

Escribir (“Descuento: ”, descto)

Escribir (“Importe total: ”, importeTotal)

Escribir (“Importe a cobrar: ”, importeACobrar)

Ejemplo 20

Una compañía de gaseosas está realizando una promoción por la compra de su producto. Dentro de cada chapa viene un número que determina el

premio que obtiene un comprador.

Si la chapa tiene un número entre 1 y 5 el comprador obtiene como

premio el doble del precio pagado por la gaseosa.

Si la chapa tiene un número entre 6 y 8 el comprador obtiene como

premio la devolución del precio pagado por la gaseosa.

Si chapa tiene un número entre 9 y 10 el comprador no gana ningún

premio.

Escribir un pseudocódigo que muestre los diferentes resultados que se podría obtener al comprar una gaseosa.

El siguiente cuadro muestra los resultados con datos de prueba:

nro

corrida datos Premio

(soles) precio nroChapa 1 0.50 5 1.0 2 1.00 4 2.0 3 3.00 9 0.0 4 5.00 7 5.0

Variables a utilizar en el pseudocódigo

nroChapa numero de chapa

precio precio de la gaseosa

premio premio a recibir

Inicio

// Definir variables entero: nroChapa

real: premio, precio

// Lectura de datos

Escribir (“Ingresar precio y nro de chapa: ”)

Leer (precio, nroChapa)

Si (nroChapa >=1 and nroChapa<=5 ) entonces

premio 2*precio

Sino Si (nroChapa >=6 and nroChapa<= 8) entonces

premio precio

Page 32: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Sino Si (nroChapa >=9 and nroChapa<=10) entonces

premio 0

Fin_si

Fin_si

Fin_si

Fin

Escribir (“Premio: ”, premio)

Ejemplo 21

El precio de venta de DVD varía de acuerdo a la cantidad que se compra:

S/.2.50 si se compran unidades separadas hasta 9.

S/.2.20 si se compran entre 10 unidades hasta 99.

S/.1.90 entre 100 y 499 unidades

S/.1.50 para mas de 500

El vendedor gana por cada CD vendido el 20% del costo. Realizar un pseudocódigo que calcule el pago total y la ganancia para el vendedor.

Variables a utilizar en el pseudocódigo

cant cantidad de dvd

pago pago total

ganan ganancia del vendedor

Inicio // Definir variables

entero: cant

real: pago, ganan

// Lectura de datos

Escribir (“Ingresar cantidad de DVD: ”)

Leer (cant)

Si (cant < 10) entonces pago 2.50 * cant

Sino Si (cant < 100) entonces

pago 2.20 * cant

Sino Si (cant < 500) entonces

pago 1.90 * cant

Fin_si

Fin_si

Sino

Fin_si

pago 1.50 * cant

Fin

ganan 0.20 * pago

Escribir (“El pago total es: ”, pago)

Escribir (“La ganancia del vendedor es: ”, ganan)

Ejemplo 22

Pseudocódigo que calcule el sueldo neto de un trabajador, que tiene los siguientes descuentos:

11% del sueldo bruto si pertenece a la AFP A

10% del sueldo bruto si pertenece a la AFP B

7% del sueldo bruto por seguro si gana mas de 4000

6% del sueldo bruto por seguro si gana mas de 3000

5% del sueldo bruto por seguro si gana menos o igual a 3000

Page 33: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

afp afp al que pertenece el empleado sueldoBruto sueldo bruto

desc1 descuento por AFP

desc2 descuento por seguro

sueldoNeto sueldo neto

Inicio

// Definir variables

caracter: afp

real: sueldoBruto, desc1, desc2, sueldoNeto

// Lectura de datos

Escribir (“Ingresar sueldo bruto: ”) Leer (sueldoBruto)

Escribir (“Ingresar AFP: ”)

Leer (afp)

Si (afp = „A‟) entonces

desc1 0.11 * sueldoBruto

Sino Si (afp = „B‟) entonces

desc1 0.10 * sueldoBruto

Fin_si

Fin_si

Si (sueldoBruto > 4000) entonces

desc2 0.07 * sueldoBruto

Sino Si (sueldoBruto > 3000) entonces

desc2 0.06 * sueldoBruto

Fin_si

Sino Fin_si

desc2 0.05 * sueldoBruto

Fin

sueldoNeto sueldoBruto – desc1 – desc2

Escribir (“El sueldo neto es: ”, sueldoNeto)

Ejemplo 23

Un supermercado ofrece a sus clientes descuentos de acuerdo al monto de

compra, como se muestra en el siguiente cuadro:

Compra (S/.) Descuento (%) 0 – 250

251 – 500

501 – 1000

1001 – más

0

10

15

20

Elaborar un pseudocódigo que calcule el monto final que paga un cliente por

una compra.

Variables a utilizar en el pseudocódigo

montoCompra monto de la compra

desc descuento

montoFinal monto final

Inicio

// Definir variables

Page 34: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

real: montoCompra, desc, montoFinal

// Lectura de datos Escribir (“Ingresar monto compra: ”)

Leer (montoCompra)

Si (montoCompra <= 250) entonces

desc 0

Sino Si (montoCompra <= 500) entonces

desc 0.10 * montoCompra

Sino Si (montoCompra <= 1000) entonces

desc 0.15 * montoCompra

Fin_si

Fin_si

Sino

Fin_si

desc 0.20 * montoCompra

Fin

montoFinal montoCompra – desc

Escribir (“El total a pagar es: ”, montoFinal)

Ejemplo 24

En empresa ensambladora de computadoras oferta a sus clientes descuentos

que varían de acuerdo al número de computadoras que se compre. Si se

compra hasta cinco computadoras se descontará el 10%, si se compra entre

6 y 10 computadoras se descuenta el 20% y si se compra más de 10

computadoras se descuenta el 40%.

Elaborar un pseudocódigo que calcule el monto final que se paga por un

cierto número de computadoras.

Variables a utilizar en el pseudocódigo precio precio de venta

total total a pagar

desc descuento

cant cantidad de computadoras

Inicio

// Definir variables

real: precio, total, desc

entero: cant

// Lectura de datos

Escribir (“Ingresar precio: ”)

Leer (precio)

Escribir (“Ingresar cantidad: ”)

Leer (cant) total precio * cant

Si (cant <= 5) entonces desc 0.10 * total

Sino Si (cant <= 10) entonces

desc 0.20 * total

Fin_si

Sino

Fin_si

desc 0.40 * total

Page 35: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

total total – desc

Escribir (“El total a pagar es: ”, total)

Fin

Ejemplo 25 Pseudocódigo que compruebe si tres lados forman un triángulo, de ser así

calcule su área y muestre que tipo de triangulo forma: equilátero, isósceles

o escaleno.

Teorema: En todo triángulo cada lado es menor que la suma de los otros dos

lados, pero mayor que su diferencia.

Para hallar el área de un triángulo conociendo sus lados se aplica la

siguiente fórmula:

area

Donde, p es el semiperímetro.

p( p a)( p b)( p c)

Variables a utilizar en el pseudocódigo

a, b, c lados del triángulo

p semiperímetro

area área del triángulo

Inicio

// Definir variables real: p, area

entero: a, b, c

// Lectura de datos

Escribir (“Ingresar lados: ”)

Leer (a, b, c)

Si ((a < b + c) and (b < a + c) and (c < a + b)) entonces

Escribir (“Forman un triángulo”)

p (a + b + c) /2

area raiz (p * (p - a) * (p - b) * (p - c))

Si (a = b and b = c) entonces Escribir (“Equilátero”)

Sino Si (a = b or b = c or a = c) entonces

Escribir (“Isósceles”)

Fin_si

Sino Fin_si

Escribir (“Escaleno”)

Fin

Sino Fin_si

Escribir (“El área es ”, area)

Escribir (“No forman un triángulo”)

Ejemplo 26

Pseudocódigo que calcula la calificación de un alumno en base a 3 notas, validar el ingreso de notas entre 0 y 100, considerar la siguiente tabla:

Promedio Calificación 90 – 100

80 – 89

70 – 79

A B

C

Page 36: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

50 – 69 D

0 – 49 E

Variables a utilizar en el pseudocódigo

nt1 nota 1

nt2 nota 2

nt3 nota 3

caft carácter de calificación prom promedio

Inicio

// Definir variables

entero: nt1, nt2, nt3, prom

caracter: calf

// Lectura de datos

Escribir (“Ingresar tres notas: ”)

Leer (nt1, nt2, nt3)

Si ((nt1 >= 0 and nt1 <= 100) and (nt2 >= 0 and nt2 <= 100) and

(nt3 >= 0 and nt3 <= 100)) entonces

prom (nt1 + nt2 + nt3) Div 3

Si (prom > 89) entonces calf „A‟

Sino Si (prom > 79) entonces

calf „B‟

Sino Si (prom > 69) entonces

calf „C‟

Sino Si (prom > 49) entonces

calf „D‟

Sino calf „E‟

Fin_si

Fin_si

Fin_si

Fin_si

Fin

Escribir (“La calificación es: ”, calf)

Sino

Escribir (“Ingreso incorrecto”) Fin_si

Ejemplo 27 Una clínica ofrece tres tipos de seguro:

Tipo Máximo De consultas Pago mensual (S/.)

A

B

C

8

6

4

80.00

60.00

40.00

Si el cliente realiza más consultas de las indicadas en el cuadro anterior

tendrá que pagar S/.8.50 por cada consulta adicional si el seguro es de tipo

A, S/.6.50 por cada consulta adicional si el seguro es de tipo B, y S/.5.00

mensuales por cada consulta adicional si el seguro es de tipo C. Calcular el

monto que paga un cliente durante un mes.

Page 37: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

tipo tipo de seguro cant cantidad de consultas realizadas en el mes

max maximo número de consultas

padic pago adicional

pago pago mensual

Inicio

// Definir variables

entero: cant, max

real: pago 0, padic

caracter: tipo

entero: cant

// Lectura de datos

Escribir (“Ingresar tipo de seguro: ”)

Leer (tipo)

Escribir (“Ingresar cantidad de consultas: ”)

Leer (cant)

Si (tipo = „A‟) entonces

pago 80.00

max 8

padic 8.50

Sino Si (tipo = „B‟) entonces

pago 60.00

max 6

padic 6.50

Sino Si (tipo = „C‟) entonces

pago 40.00

max 4

padic 5.00

Fin_si

Fin_si

Fin_si

Si (cant > max) entonces padic padic * (cant - max)

Fin

Fin_si

pago pago + padic

Escribir (“El total a pagar es: ”, pago)

Ejemplo 28

Un centro comercial bonifica a sus clientes con puntos los cuales son

reemplazados por obsequios. Por compras menores a S/.10.00 el cliente

recibe 1 punto, por compras de S/.10.00 a más el cliente recibe 2 puntos

por cada S/.10.00 y un punto por el monto adicional. Elaborar un pseudocódigo que calcule la cantidad de puntos que obtiene un cliente en

una compra.

Por ejemplo:

Si la compra es de S/.7.00 el cliente recibe 1 punto

Si la compra es de S/.23.00 el cliente recibe 5 puntos (2 puntos por cada

S/.10.00 y 1 punto por los S/.3.00).

Si la compra es de S/.40.00 el cliente recibe 8 puntos (2 puntos por cada

S/.10.00)

Page 38: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

punto puntos obtenidos monto monto de la compra parEnt valor

entero de la compra

resto1 residuo del valor entero de la compra

resto2 valor real de la compra

c10 cantidad de montos de S/.10.00

Inicio

// Definir variables

entero: punto 0, parEnt, resto2, c10

real: monto, resto1 0

// Lectura de datos

Escribir (“Ingresar monto de la compra: ”)

Leer (monto)

Si (monto < 10) entonces punto 1

Sino parEnt entero (monto)

resto1 monto – parEnt

resto2 parEnt Mod 10

c10 parEnt Div 10

Si (resto1 > 0 or resto2 >0) entonces punto (2 * c10) + 1

Fin_si

Sino Fin_si

punto 2 * c10

Fin

Escribir (“Los puntos obtenidos son: ”, punto)

Ejemplo 29

Un grupo de alumnos de un centro educativo, desea saber cuanto se va a gastar en pasajes para realizar el viaje de promoción, el precio de cada

pasaje varía de acuerdo al día en que viajan y al número de alumnos que

viajan:

Cantidad de

alumnos Precio x pasaje ($)

Hasta el día 15 del mes Después del día 15 del mes 1 – 10

11 – 20

21 – mas

60

55

50

50

45

40 Elaborar un pseudocódigo que muestre el costo total de los pasajes.

Variables a utilizar en el pseudocódigo

dia dia del mes en el que se desea viajar

cant cantidad de alumnos

total monto total a pagar por los pasajes

Inicio

// Definir variables

entero: dia, cant

real: total

// Lectura de datos

Escribir (“Ingresar día del mes: ”)

Leer (dia)

Page 39: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Escribir (“Ingresar cantidad de alumnos: ”)

Leer (cant)

Si (dia <= 15) entonces

Si (cant < 11) entonces

total 60 * cant

Sino Si (cant < 21) entonces

total 55 * cant

Sino

Fin_si

Sino Fin_si

total 50 * cant

Si (cant < 11) entonces total 50 * cant

Sino Si (cant < 21) entonces

total 45 * cant

Fin_si

Fin_si

Sino

Fin_si

total 40 * cant

Fin

Escribir (“El costo total de los pasajes es: ”, total)

3.3.2. Estructura selectiva múltiple: En caso sea – Fin_caso

Ejecuta una acción dependiendo del resultado del selector. Se presenta

como una alternativa de la sentencia Si anidada, ya que en ocasiones resulta

ser más comprensible y ordenado. Su sintaxis es la siguiente:

En caso sea (selector) hacer c1: Acción 1

c2: Acción 2

.

.

.

cn: Acción N Sino

Accion c

Fin_Caso

Donde: Selector, cuyo valor se compara con cada una de las alternativas (c1, c2,

etc).

c1, c2, etc., son constantes enteras o de tipo caracter compatibles con el

selector. Si es de tipo caracter c1, c2, etc. deben de ir encerradas entre

comillas simples, es decir „c1’, ‘c2’, etc.

Sino, cuando toma un valor distinto de las alternativas (c1, c2, etc). El Sino es opcional, si se omite y no hay coincidencia finaliza la sentencia

En caso sea – Fin_caso sin ejecutar nada.

Las sentencias si anidadas pueden aplicarse a cualquier tipo de dato simple,

en contraste con la sentencia En caso – Fin_caso donde solo puede aplicarse

al selector variables: enteras y caracteres.

Page 40: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Funcionamiento de En caso sea – Fin_caso

Cuando la sentencia En caso sea – Fin_caso inicia su ejecución, se suceden los siguientes pasos:

a) Se evalúa el Selector, obteniéndose un resultado de tipo entero o

carácter.

b) Se compara este resultado con las alternativas (constantes) c1, c2, etc.

c) Si algunas de estas constantes es igual al valor del selector, entonces se

ejecutan la acción correspondiente a esa alternativa y se va al paso e.

d) Si no existe coincidencia con las alternativas, se ejecutará la acción

correspondiente al Sino y se va al paso e.

e) La ejecución del pseudocódigo proseguirá con la siguiente sentencia que

sigue al Fin_Caso

Ejemplo 30

Pseudocódigo que lea una variable entera, que representa un día de la

semana y que muestre el texto correspondiente al día. Por ejemplo: Lunes si

es 1, Martes si es 2, …, Domingo si es 7.

El siguiente cuadro muestra resultados con datos de prueba:

Día Texto a mostrar 1 Lunes 4 Jueves 6 Sábado

Variables a utilizar en el pseudocódigo

dia día de la semana

Inicio

// Definir variable

entero: dia

// Lectura de datos

Escribir (“Ingresar dia:”)

Leer (dia)

En caso sea (dia) hacer

1 : Escribir (“lunes”)

2 : Escribir (“martes”)

3 : Escribir (“miércoles”)

4 : Escribir (“jueves”)

5 : Escribir (“viernes”)

6 : Escribir (“sábado”) 7 : Escribir (“domingo”)

Sino Escribir (“Fuera de rango”)

Fin

Fin_Caso

Explicación

Para resolver el ejemplo planteado se define la variable entera dia:

entero: dia

Se ingresa la variable dia

Escribir (“Ingresar dia:”)

Leer (dia)

Page 41: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Y se evalua el contenido de la variable dia mediante la sentencia En caso sea

- hacer, si coincide con algunos de los valores de 1 a 7 se ejecuta la sentencia correspondinte al valor que coincide y la ejecución del

pseudocódigo proseguira con la siguiente sentencia a Fin_caso:

En caso sea (dia) hacer

1 : Escribir (“lunes”)

2 : Escribir (“martes”)

3 : Escribir (“miércoles”)

4 : Escribir (“jueves”)

5 : Escribir (“viernes”)

6 : Escribir (“sábado”)

7 : Escribir (“domingo”)

Si no coincide con algunos de los valores de la sentencia En caso sea – hacer

se ejecuta la sentencia Sino, ejecutándose:

Sino

Escribir (“Fuera de rango”)

Ejemplo 31

Pseudocódigo que permite ingresar una calificación expresada con un

caracter (a, b, c o d) y averiguar su equivalencia correspondiente de acuerdo a la siguiente tabla:

Nota Descripción

A Sobresaliente B Notable C Aprobado D Insuficiente

Otra letra Nota no esta en el rango

Variables a utilizar en el pseudocódigo

nota nota del alumno

Inicio

// Definir variable caracter: nota

// Lectura de datos

Escribir (“Ingresar nota”)

Leer (nota)

En caso sea (nota) hacer

„A‟: Escribir (“Sobresaliente”)

„B‟: Escribir (“Notable”)

„C‟: Escribir (“Aprobado”)

„D‟: Escribir (“Insuficiente”)

Sino

Escribir (“Nota no esta en el rango”) Fin_caso

Fin

Ejemplo 32. Una compañía incrementa el sueldo actual de sus empleados de acuerdo a

su categoría como se muestra en el siguiente cuadro:

Categoría Incremento (%) A

B

C

25

20

15

Page 42: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

D 10

Además recibe un aumento especial de 2.5% de su sueldo actual por cada

hijo que tuviese. Así mismo si el nuevo sueldo excede a S/.2000 se

descuenta el 3% por impuesto de solidaridad. Construir un pesudocódigo

que permita calcular el sueldo neto que recibe un empleado de dicha

compañía.

Variables a utilizar en el pseudocódigo cat categoría del empleado

sueldo sueldo del empleado

cant cantidad de hijos del empleado

aum aumento

adic pago adicional por cada hijo

desc descuento de solidaridad

sueldoNeto sueldo neto

sw bandera que cambia de valor cuando se ingresa una

categoría no existente

Inicio

// Definir e inicializar variables

entero: cant

real: sueldo, aum, adic, desc, sueldoNeto

caracter: cat

// Lectura de datos

Escribir (“Ingresar categoría”)

Leer (cat)

Escribir (“Ingresar sueldo”)

Leer (sueldo)

Escribir (“Ingresar cantidad de hijos”) Leer (cant)

En caso sea (cat) hacer

„A‟: aum 0.25 * sueldo

„B‟: aum 0.20 * sueldo

„C‟: aum 0.15 * sueldo

„D‟: aum 0.10 * sueldo

Sino

Escribir (“Categoría no existe”)

sw 1

Fin_caso

Si (sw = 0) entonces

sueldo sueldo + aum

Si (cant > 0) entonces

adic 0.025 * sueldo * cant

Fin_si

sueldo sueldo + adic

Si (sueldo > 2000) entonces

desc 0.03 * sueldo

Fin_si

sueldoNeto sueldo - desc

Escribir (“El sueldo neto del empleado es ”, sueldoNeto)

Fin_si

Fin

En ocasiones es necesario el uso de una variable que altere el

funcionamiento del algoritmo, cambiando su valor entre 0 y 1 ó entre

verdadero y falso, a esta variable también se le conoce como switch o

Page 43: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

bandera. Para nuestro ejemplo se ha utilizado la variable sw inicializado en

cero; este valor cambia a 1 al entrar al sino del En caso sea, luego de

identificar que se ha ingresado una categoría diferente a las existentes; esto

permite que una vez impreso el mensaje de error ya no se realice los

siguientes cálculos.

Ejemplo 33 Pseudocódigo que actúe como una calculadora, permitiendo realizar las

operaciones de suma, resta, multiplicación y división entre dos números

cualquiera.

Variables a utilizar en el pseudocódigo

n1 primer número

n2 segundo número

res resultado de la operación

oper operador

sw bandera que cambia de valor cuando en la división se ingresa un divisor igual a 0

Inicio

// Definir e inicializar variables

real: n1, n2, res

caracter: oper

entero: sw 0

// Lectura de datos

Escribir (“Ingresar primer número”)

Leer (n1)

Escribir (“Ingresar operador”)

Leer (oper)

Escribir (“Ingresar segundo número”)

Leer (n2)

En caso sea (oper) hacer

„+‟: res n1 + n2

„-‟ : res n1 - n2

„*‟: res n1 * n2

„/‟ : Si (n2 <>0)

res n1 / n2

Sino

Sino

Fin_si

Escribir (“Error”)

sw 1

Escribir (“Operador no válido”)

sw 1

Fin_caso

Si (sw = 0) entonces

Escribir (“El resultado es ”, res)

Fin

Fin_si

Ejemplo 34

Un centro comercial ofrece ventas financiadas por medio de 3 tipos de

tarjetas de crédito como indica a continuación:

Tipo de Tarjeta Máximo de Letras Interés (%) A

B 36

24 7

6

Page 44: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

C 12 5

El cliente solo puede financiar una compra hasta el máximo de letras que se

indica en el cuadro anterior, en caso contrario la venta no debe proceder.

Calcular el monto de cada letra por pagar así como el monto total.

Variables a utilizar en el pseudocódigo

tipo tipo de tarjeta monto monto de la compra

cant cantidad de letras que se desea financiar

max máximo de letras a financiar

inte interés del la compra

letra monto de cada letra

Inicio

// Definir variables

entero: cant, max, sw 0

real: monto, inte, letra

caracter: tipo

// Lectura de datos

Escribir (“Ingresar tipo de tarjeta”)

Leer (tipo)

Escribir (“Ingresar monto de la compra”)

Leer (monto)

Escribir (“Ingresar cantidad de letras a financiar”)

Leer (cant)

En caso sea (tipo) hacer

„A‟: max 36

inte 0.07 * monto

„B‟: max 24

inte 0.06 * monto

„C‟: max 12

inte 0.05 * monto

Fin

Sino

Escribir (“Tipo de tarjeta no existe”)

sw 1

Fin_caso

Si (sw = 0) entonces

monto monto + inte

Si (cant <= max) entonces letra monto / cant

Escribir (“El monto total a pagar es ”, monto) Escribir (“El monto de cada letra es ”, letra)

Sino

Escribir (“La venta no procede”)

Fin_si

Fin_si

Ejemplo 35

Calcular el consumo de combustible y el total que se invirtió en el recorrido

de un automóvil. Para esto se debe diseñar un algoritmo en el que se

ingresa los kilometrajes con el que inicia y termina el recorrido, así como la

cantidad de galones de combustible con el que se inicia y termina el

recorrido. Además calcular la cantidad de galones que consume el auto por

cada 100 kilómetros. Los precio por cada galón de combustible son:

Page 45: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Tipo de combustible Precio (S/.) x galón Gasolina 97 16.98 Gasolina 95 15.60 Gasolina 89 13.50 Diesel 10.20

Variables a utilizar en el pseudocódigo

kil1 kilometraje de incio de recorrido kil2 kilometraje fin del recorrido

gal1 galones de inicio de recorrido

gal2 galones fin de recorrido

tipo tipo de combustible

kilRec kilómetros recorridos totGal total de galones

total total que se invirtio en el recorrido

c100 cantidad de galones que consume el auto por cada 100 km

Inicio

// Definir variables

entero: tipo real: kil1, kil2, gal1, gal2, kilRec 0, totGal 0, total, c100

// Lectura de datos

Escribir (“Ingresar kilometraje de inicio y fin del recorrido”)

Leer (kil1, kil2)

Escribir (“Ingresar galones con el que inicia y termina el recorrido”)

Leer (gal1, gal2)

Escribir (“Ingresar tipo de combustible que usa el automóvil

(1)Gasolina 97, (2)Gasolina 95, (3)Gasolina 89, (4)Diesel”)

Leer (tipo)

Si (tipo > 0 and tipo < 5) entonces

En caso sea (tipo) hacer

1 : precio 16.98

2 : precio 15.60

3 : precio 13.50

4 : precio 10.20

Fin_caso kilRec kil2 – kil1 totGal gal2 – gal1

total totGal * precio

c100 (totGal * 100) / kilRec

Escribir (“El total de combustible que se consumió es ”, totGal) Escribir (“El total de se invirtió en el recorrido es ”, total)

Escribir (“El consumo por cada 100 kilómetros es ”, c100)

Sino

Escribir (“El tipo de combustible no es válido”)

Fin_si

Fin

3.3.3. Estructura selectiva múltiple: En caso sea múltiple

La sentencia En caso sea múltiple se presenta de dos formas:

a) Cuando más de una alternativa debe ejecutar la misma acción; para

estos casos se agrupan todas las alternativas con acciones comunes.

Page 46: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Ejemplo 36

Pseudocódigo que determine si un número que se encuentre en el rango de

1 a 9, es par o impar.

El siguiente cuadro muestra resultados con datos de prueba, para diferentes

valores de la variable nro.

Nro de

corrida

Nro

Resultado

1 5 impar 2 2 par 3 9 impar 5 10 Error fuera de rango

Variables a utilizar en el pseudocódigo

nro número a determinar si es par o impar

Inicio

// Definir variable entero: nro

// Lectura de datos

Escribir (“Ingresar número:”)

Leer (nro)

En caso sea (nro) hacer

1: 3: 5: 7: 9: Escribir (“impar”)

2: 4: 6: 8 : Escribir (“par” )

sino Escribir (“Fuera de rango”)

Fin

Fin_Caso

Ejemplo 37 En un campeonato de tiro al blanco se ha llegado a un acuerdo entre los

participantes para que el puntaje obtenido sea calculado en base al puntaje

original (el que esta entre 0 y 10) alcanzado en el tiro multiplicado por un

factor el cual se muestra en el siguiente cuadro. Hacer un pseudocódigo que muestre el nuevo puntaje obtenido por cualquier participante.

Puntaje original Factor

0 0 Entre 1 y 5 6 Entre 6 y 8 9 Entre 9 y 10 10

Variables a utilizar en el pseudocódigo

puntaje puntaje original

factor factor multiplicativo

nuevoPuntaje nuevo puntaje del participante

sw bandera que condiciona el cálculo del nuevo puntaje

Inicio

// Definir e inicializar variables

entero: factor, puntaje, nuevoPuntaje, sw 0

// Lectura de datos

Escribir (“Ingresar puntaje:”) Leer (puntaje)

// Calcula puntaje

En caso sea (puntaje) hacer

Page 47: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

0: factor 0

1: 2: 3: 4: 5: factor 6

6: 7: 8: factor 9

9: 10: factor 10

Sino

Escribir (“Fuera de rango”)

sw 1

Fin_Caso

Si (sw = 0) entonces

nuevoPuntaje puntaje + factor

Escribir (“El nuevo puntaje es ”, nuevoPuntaje) Fin_si

Ejemplo 38

Pseudocódigo que permita calcular cuántos días tiene un mes, teniendo en

cuenta lo siguiente:

a) El orden del calendario indica que enero es 1, febrero es 2, etc.

b) Enero, marzo, mayo, julio, agosto, octubre y diciembre tienen 31 días. c) Abril, junio, setiembre y noviembre tienen 30 días.

d) Febrero tiene 28 días o 29 días si el año bisiesto. Un año es bisiesto si es

múltiplo de 4 y no de 100 o cuando es múltiplo de 400.

En la siguiente tabla se muestra resultados para diferentes valores de las

variables:

Nro

corrida datos Resultado

Mes Año Día 1 2 2004 29 2 4 2016 29 3 2 2001 28 4 2 2000 29 5 10 2006 31 6 4 2007 30

Variables a utilizar en el pseudocódigo

dia día que tiene un mes

mes mes del año

year año a determinar si es bisiesto

Inicio // Definir variables

entero: mes, year, dias

// Lectura de datos

Escribir (“Ingresar mes, año ”)

Leer (mes, year)

En caso sea (mes) Hacer

1: 3: 5: 7: 8: 10: 12: dias 31

4: 6: 9: dias 30

2: Si (year Mod 4 = 0) and (year Mod 100 <> 0) or

(year Mod 400 = 0)) entonces

dias 29

Sino

dias 28

Fin_si

Fin_Caso

Escribir (mes, year, dias)

Page 48: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

b) Cuando se presentan selecciones basadas en dos o más niveles; en estos

casos se utiliza la sentencia En caso sea anidado.

Ejemplo 39

Pseudocódigo para calcular la pensión que tiene que pagar un alumno de un instituto cuya cuota de matricula tiene un porcentaje de descuento que se

establece en la siguiente tabla y esta en función del colegio de procedencia

del alumno y de las tres categorías que existe en el instituto. Considere que

la pensión esta exonerada de impuesto.

Colegio de

procedencia Categoría

A B C Nacional 50 40 30 Particular 15 20 25

En la siguiente tabla se muestra resultados para diferentes valores de las

variables:

Pensión Colegio Categoría Descuento Pensión final 1000 Nacional A 1000*0.05=500 500.0 1500 Particular B 1500*0.20=300 1200.0

Variables a utilizar en el pseudocódigo colegio

colegio de procedencia categoria

categoría dentro del instituto dscto

descuento a realizar cuota pago mensual

importe importe a pagar

Inicio

// Definir e inicializar variables real: cuota, dscto, importe 0

caracter: colegio, categoría

entero: sw 0

// Lectura de datos

Escribir (“Ingresar colegio de procedencia (N)acional, (P)articular:”)

Leer (colegio) Escribir (“Ingresar categoría (A, B, C):”)

Leer (categoria)

Escribir (“Ingresar cuota:”)

Leer (cuota)

// Cálculos

En caso sea (colegio) hacer

„N‟: En caso sea (categoria) hacer

„A‟ : dscto 0.50 * cuota

„B‟ : dscto 0.40 * cuota

„C‟ : dscto 0.30 * cuota

Sino Escribir (“Opción no contemplada”)

sw 1

Fin_caso

„P‟: En caso sea (categoria) hacer

„A‟ : dscto 0.25 * cuota

„B‟ : dscto 0.20 * cuota

Page 49: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Sino

„C‟ : dscto 0.15 * cuota Escribir (“Opción no contemplada”) sw 1

Sino

Fin_caso Escribir (“Opción no contemplada”)

sw 1

Fin_caso

Si (sw = 0) entonces

importe cuota – dscto

Escribir(“El importe a pagar es: ”, importe)

Fin

Fin_si

Ejemplo 40

Calcular el pago de un obrero que trabaja al destajo. El pago que recibe el

obrero por cada unidad producida depende de su categoría y del tipo de

producto que produce, como se muestra en el siguiente cuadro:

Categoría Tarifa (S/. x unidad)

Tejas Losetas A

B

C

2.50

2.00

1.50

2.00

1.50

1.00

Así mismo, el obrero recibe una bonificación especial de acuerdo a la

cantidad que produce:

Unidades Producidas Bonificación (%) 1 – 250

251 – 500

501 – 1000

1001 – mas

0.00

50.00

100.00

150.00

Además del total de ingresos se descuenta S/.25.00 por seguro.

Variables a utilizar en el pseudocódigo

cat categoría del obrero

prod producto que se produce cant cantidad producida

pago pago del obrero

bonf bonificación desc descuento

sw bandera

Inicio

// Definir e inicializar variables

entero: cant, sw 0

real: pago, bonf, desc 25.00

caracter: cat, prod

// Lectura de datos

Escribir (“Ingresar categoría:”) Leer (cat)

Escribir (“Ingresar producto que produce (T)ejas, (L)osetas”)

Leer (prod)

Escribir (“Ingresar cantidad producida:”)

Page 50: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

3

Leer (cant)

// Cálculos

En caso sea (prod) hacer

„T‟: En caso sea (cat) hacer

„A‟ : pago 2.50 * cant

„B‟ : pago 2.00 * cant

„C‟ : pago 1.50 * cant

Sino Escribir (“Categoría no existe”)

sw 1

Fin_caso

„L‟: En caso sea (cat) hacer

„A‟ : pago 2.00 * cant

„B‟ : pago 1.50 * cant

„C‟ : pago 1.00 * cant

Sino Escribir (“Categoría no existe”)

sw 1

Sino

Fin_caso Escribir (“Producto no existe”) sw 1

Fin_caso

Si (sw = 0) entonces

Si (cant <= 250) entonces bonf 0

Sino Si (cant <= 500) entonces

bonf 50.00

Sino Si (cant <= 1000) entonces

bonf 100.00

Fin_si

Fin_si

Sino

Fin_si

bonf 150.00

Fin

Fin_si

pago pago + bonf – desc

// Salida de resultados

Escribir (“El pago del obrero es: ”, pago)

3.4.Ejercicios propuestos

1. Evaluar la siguiente función:

x2

x / 6

f x

si ( x Mod 4 ) 0

si ( x Mod 4 ) 1

x

x 5

si ( x Mod 4 ) 2

si ( x Mod 4 ) 3

2. Una compañía de gaseosas esta realizando una promoción por la compra de

sus productos. Dentro de cada chapa viene un número que determina el

premio que obtiene un comprador.

Page 51: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Si la chapa tiene un número entre 1 y 5 el comprador obtiene como premio

el doble del precio pagado por la gaseosa. Si la chapa tiene un número entre 6 y 8 el comprador obtiene como premio

la devolución del precio pagado por la gaseosa

Si chapa tiene un número entre 9 y 10 el comprador no gana ningún premio

Se pide mostrar los diferentes resultados que podría obtener un comprador

al comprar una gaseosa. Utilizar la sentencia En caso sea. 3. Escribir un programa para hallar el valor absoluto de un número:

0, si x 0

x x, si x 0

- x, si x 0

Por Ejemplo:

De -7 su valor absoluto es: -(-7) = 7 (cuando es negativo se cambia de

signo)

De 7 su valor absoluto es: (7) = 7 (cuando es positivo nos da el mismo

número) 4. Escribir un programa para leer dos números a, b y obtenga el valor

numérico de la función.

2

a b,

si a2 - b2 0

f x a2 - 2b, si a2 - b2 0

a b,

si a2 - b2 0

5. Pseudocódigo que determine si un número es divisible por 5. Un número es

divisible por 5 cuando acaba en cero 0 en 5. 6. Mostrar el nombre correspondiente a un número de mes y además mostrar

la estación al cual pertenece. Considerar 3 meses por estación.

Verano = enero, febrero, marzo Otoño = abril, mayo, junio

Invierno = julio, agosto, setiembre

Primavera = octubre, noviembre, diciembre.

7. Ingresar cuatro valores por el teclado a, b, c, d. Se desea redondear a la

centena más próxima y visualizar la salida. Por ejemplo:

a = 2, b = 3, c = 6 y d = 2 entonces n = 2362 el resultado redondeado será

2400.

Si n = 2342 el resultado redondeado será 2300

Si n = 2962 el resultado redondeado será 3000

8. Pseudocódigo que lea tres números y diga si la suma de los dos primeros

números es igual al tercer número.

9. Una empresa de bienes y raíces ofrece casas de interés social bajo las

siguientes condiciones: si el ingreso mensual del comprador es menos de

S/2250 la cuota inicial será igual al 15% del costo de la casa y el resto se

distribuirá en 120 cuotas mensuales. Si el ingreso mensual del comprador es

mayor o igual a S/.2250 la cuota inicial será igual al 30% del costo de la

casa y el resto se distribuirá en 75 cuotas mensuales. Diseñe un algoritmo

que permita determinar cuanto debe pagar un comprador por concepto de

cuota inicial y cuanto por cada cuota mensual.

10. En una escuela la colegiatura de los alumnos se determina según el número

de materias que cursan. El costo de todas las materias es el mismo. Se ha

establecido un programa para estimular a los alumnos, el cual consiste en lo

siguiente: si el promedio obtenido por un alumno en el ultimo periodo es mayor o igual que 15, se le hará un descuento del 30% sobre la colegiatura

y no se le cobrara impuesto; si el promedio obtenido es menor que 15

deberá pagar la colegiatura completa, la cual incluye el 10% de impuesto.

Obtener cuanto debe pagar un alumno.

Page 52: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

11. Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto

dinero le prestará el banco por hipotecar su casa. Tiene una cuenta

bancaria, pero no quiere disponer de ella a menos que el monto por

hipotecar su casa sea muy pequeño. Si el monto de la hipoteca es menor

que $30,000 entonces invertirá el 50% de la inversión total y un socio

invertirá el otro 50%. Si el monto de la hipoteca es de $30,000 o mas,

entonces invertirá el monto total de la hipoteca y el resto del dinero que se

necesite para cubrir la inversión total se repartirá a partes iguales entre el

socio y el. 12. Elaborar un algoritmo que tenga como entrada los valores de dos ángulos,

expresados en grados, minutos y segundos, obtenga el valor de su suma de

la misma forma. Se supone que las entradas son correctas, en el sentido de

que cada ángulo está expresado como tres números enteros, en los rangos

respectivos (0 - 360), (0 - 60) y (0 - 60). La salida debe estar expresada de la misma manera.

13. El ministerio de agricultura ha distribuido la siembra de 3 productos en

terrenos con más de 1000 hectáreas de la siguiente manera:

Producto Terreno (%) Papa

Zanahoria

Camote

50

30

20 Si la superficie del terreno es menor o igual 1000 hectáreas, se deberá

sembrar de la siguiente manera:

Producto Terreno (%) Papa

Zanahoria

Camote

60

25

15 Se desea saber la cantidad de toneladas de papa, zanahoria y camote que se

espera cosechar, si se sabe que se obtiene 2 toneladas de papa, zanahoria y

camote en 10, 8 y 9 hectáreas respectivamente.

14. Una empresa eléctrica dispone de la siguiente tabla de costos:

Cod. de tarifa Descripción Tarifa 1 kw/hora (S/.) Porcentaje (%)

1

2

3

Domestico

Industrial

Comercial

35.00

80.00

100.00

1.5

2.5

3 Además se dispone del cobro de un impuesto especial que esta dado por los

porcentajes mencionados en el cuadro anterior, así como el cobro por

arbitrios municipales:

Alumbrado público 4.5%

Limpieza pública 10%

Parques y jardines 2.5%

15. Calcular el costo del servicio de mudanza, de acuerdo a la distancia entre el

punto de partida y de llegada, el tipo de carga y al número de viajes ida y

vuelta. Para calcular el costo se debe tener en cuenta:

a) Si la distancia por cada viaje es mayor o igual a 5 Km., se cobrará

S/.5.00 por kilómetro, de lo contrario se cobrará el monto básico que

será igual a S/.25.00.

b) La carga puede ser frágil o no frágil. Solo si la carga es frágil al monto

calculado anteriormente se le aumentará 20%.

c) El monto resultante de acuerdo a la distancia y al tipo de carga se

multiplicará por el número de viajes.

16. Una empresa calcula las bonificaciones de sus empleados teniendo en

cuenta lo siguiente: si el sueldo del empleado es menor a S/.750, recibe una

bonificación del 15% del sueldo, si el sueldo esta entre S/.750 y S/.1200,

Page 53: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

recibe una bonificación del 10% y si el sueldo es superior a los S/.1200,

recibe una bonificación del 7%.

4. Estructura repetitiva Las estructuras repetitivas se utilizan cuando es necesaria la repetición de una o

mas sentencias, en un número determinado de veces, ó tantas veces como lo

permita el resultado de una expresión lógica. Los controles de esta estructura son:

mientras, repetir y para. Dentro de las estructuras repetitivas intervienen los contadores y acumuladores,

que son variables que toman valores iniciales antes de que empiece el proceso

repetitivo, para que luego, dentro del proceso repetitivo, incrementar sus valores

según la lógica de solución del problema.

4.1.Conceptos básicos

Contador Es una variable numérica entera que se incrementa o decrementa cada vez que

se ejecuta la acción que lo contiene, toma un valor inicial de cero o uno, según

sea el caso. En la siguiente figura la variable i representa a un contador.

i = i + 1

valor actual valor anterior cantidad a incrementar

Acumulador o totalizador Es una variable numérica que se incrementa o decrementa de forma no

constante, toma un valor inicial de cero o uno según sea el caso. En la siguiente

figura, la variable total representa a un acumulador y la variable parcial es la cantidad que se incrementará el acumulador en cada iteración.

total = total + parcial

valor actual valor anterior cantidad a incrementar

Bucle

Es un mecanismo de programación que repite un segmento de un programa

(una o mas sentencias) un cierto número de veces. Los bucles se implementan

utilizando las sentencias repetitivas: mientras, repetir y para.

Cuerpo del bucle

Son las sentencias que se ejecutarán repetidamente un cierto número de veces.

Iteración

Representa cada repetición del cuerpo de bucle.

4.2.Estructura repetitiva Mientras – Fin_mientras

Repite una o mas acciones mientras el resultado de una expresión lógica es verdadera (true). Si el resultado de la expresión lógica es falsa (false), este

proceso de repetición termina, y la ejecución del programa continúa con la

siguiente sentencia que sigue al Fin_mientras. Su sintaxis es la siguiente:

Page 54: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Mientras (expresión_lógica) hacer

Acción

Fin_Mientras

Funcionamiento de Mientras – Fin_mientras Cuando la sentencia Mientras inicia su ejecución, se suceden los siguientes

pasos:

a) Se evalúa expresión_lógica, obteniéndose un resultado lógico.

b) Si este resultado es verdadero (true), se ejecuta la acción y se retorna al

paso a. c) Si este resultado es falso (false), la ejecución del pseudocódigo proseguirá

con la sentencia siguiente al Fin_Mientras.

Ejemplo 01

Pseudocódigo que invierta un número entero positivo.

Variables a utilizar en el pseudocódigo

nro número a invertir

nro1 variable auxiliar donde guardamos el número nro

nroinvertido número invertido

digito dígito

Inicio

// Definir e inicializar variables

entero: nro, nro1, digito, nroinvertido 0

// Leer Datos

Escribir (“Ingresar número:”)

Leer (nro)

// Calcular número invertido

nro1 nro

Mientras (nro > 0) hacer

digito nro Mod 10

nroinvertido 10 * nroinvertido + digito nro nro Div 10

Fin_Mientras

Escribir (“El número invertido de ”, nro1, “es ”, nroinvertido)

Fin

Explicación

Para resolver el ejemplo planteado se definen las variables enteras: nro, nro1,

dígito y se inicializa en cero la variable nroinvertido entero: nro, nro1, digito, nroinvertido 0

Se ingresa la variable nro:

Escribir (“Ingresar número:”)

Leer (nro)

Y se asigna nro a una nueva variable nro1, para conservar el valor original del número ingresado:

nro1 nro

La sentencia Mientras ejecuta tres sentencias, mientras que la expresión lógica (nro > 0) es verdadera, en estas sentencia se va extrayendo cada dógito del

número ingresado:

Mientras (nro > 0) hacer digito nro Mod 10

nroinvertido 10 * nroinvertido + digito

nro nro Div 10

Fin_Mientras

Page 55: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Cuando la expresión logica (nro > 0) llega a ser falsa, se ejecuta la sentencia

escribir y finaliza el pseudocódigo:

Escribir (“El número invertido de ”, nro1, “es ”, nroinvertido)

Por ejemplo si el número es 134, entonces el número invertido será 431. Para

ir reduciendo cada número emplearemos la operación:

Así tenemos:

nro nro Div 10

134 Div 10 = 13

13 Div 10 = 1

1 Div 10 = 0

Se detiene cuando

es cero

A la vez, para obtener cada dígito emplearemos la operación:

digito digito Mod 10

Así tenemos:

134 Mod 10 = 4

13 Mod 10 = 3

1 Mod 10 = 1

Se puede ir formando el número invertido multiplicando el mismo número

invertido por 10 y agregándole cada digito empleando la operación:

nroinvertido = 10 * nroinvertido + digito

Que en valores es:

10 * 0 + 4 = 4 10 * 4 + 3 = 43

10 * 43+ 1 = 431

Inicialmente nroinvertido = 0

La siguiente tabla muestra los resultados de la corrida del algoritmo.

Iteración nro

Valores de nro

Expresión

Lógica

nro > 0

Resultado de la

Expresión Lógica

Resultados del cuerpo del bucle

digito =

nro Mod 10 nroinvertido =

10*nroinvertido + digito

nro =

nro Div 10

1 134 134>0 True 4 4 13 2 13 13 >0 True 3 43 1 3 1 1> 0 True 1 431 0

--- 0 0 > 0 False Fin del Mientras

Ejemplo 02

Pseudocódigo que multiplique dos números enteros utilizando el siguiente

algoritmo:

Proceso de división: Se divide por 2 el primer número y se obtiene un

cociente. Se divide por 2 este cociente y se obtiene otro cociente. Se

continúa este proceso de división por 2, hasta que el número cociente sea 1.

Page 56: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Proceso de Multiplicación: Se multiplica por 2 el segundo número y se

obtiene un número. Se multiplica por 2 este número y se obtiene otro

número. Se continúa este proceso de multiplicación por 2 hasta que el

cociente obtenido en el paso 1 sea igual a 1.

Se suma el segundo número con todos los valores obtenidos al multiplicar el

segundo número por 2 siempre y cuando sus correspondientes valores al

dividir el primer número por 2 sea impar. El resultado de esta suma será la

multiplicación de ambos números.

Por ejemplo si se tiene los números 23 y 4, emplearemos para el proceso de división la operación:

nro1 nro1 Div 2

mediante el cual se obtiene los siguientes valores:

23 Div 2 = 11 11 Div 2 = 5

5 Div 2 = 2

2 Div 2 = 1

Se detiene cuando

es 1

Para el proceso de multiplicación emplearemos la operación: nro2 nro2 * 2

que permite obtener los siguientes valores:

4 * 2 = 8 8 * 2 = 16

16 * 2 = 32

32 * 2 = 64

Para sumar los valores de la multiplicación emplearemos la operación:

suma suma + nro2

que permite obtener los siguientes valores: 4 + 8 + 16 + 64 = 92, que es

igual al valor de multiplicar 23 * 4.

Variables a utilizar en el pseudocódigo

nro1, nro2 números a multiplicar

suma producto de dos números

Inicio

// Definir e inicializar variables

entero: nro1, nro2, suma 0

// Leer Datos

Escribir (“Ingresar dos números:”)

Leer (nro1, nro2)

// Calcula multiplicación

Mientras (nro1 >= 1) Hacer

Si (nro1 Mod 2 = 1) entonces suma suma + nro2

Fin

Fin_si

nro1 nro1 Div 2

nro2 nro2 * 2

Fin_mientras

Escribir (“El producto es: ”, suma)

Ejemplo 03

Page 57: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Pseudocódigo que muestre los n términos de la siguiente serie y calcule su

suma:

2 + 5 + 8 + 11 + 14 + …

Variables a utilizar en el pseudocódigo n cantidad de términos de la serie

ter cada término de la serie

suma suma de los elementos de la serie con contador

Inicio

// Definir e inicializar variables

entero: n, ter 2, con , suma 0

// Leer Datos

Escribir (“Ingresar cantidad de términos:”)

Leer (n)

// Calcula serie y suma

con 1

Mientras (con <= n) Hacer

Escribir (ter)

suma suma + ter

ter ter + 3

con con + 1

Fin_mientras

Escribir (“La suma es: ”, suma)

Fin

Ejemplo 04 Pseudocódigo que calcule la suma total y determine cuantos números múltiplos

de M hay en los N primeros números naturales, tal que M <= N.

Por ejemplo: Si se desea saber cuantos múltiplos de 7 hay en los primeros 80 números

naturales.

Diremos que existen 11 números y son:

7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77

Variables a utilizar en el pseudocódigo n cantidad de números naturales

m múltiplo a validar

suma suma de los múltiplos de m

con contador

Inicio

// Definir e inicializar variables entero: n, m, con, suma 0

// Leer Datos

Escribir (“Ingresar cantidad de números:”) Leer (n)

Escribir (“Ingresar múltiplo a validar:”)

Leer (m)

// Calcula serie y suma con 1

Mientras (m <= n) Hacer

Escribir (m)

Page 58: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

con con + 1

suma suma + m

m m + n

Fin_mientras

Escribir (“La suma es: ”, suma)

Escribir (“La cantidad de múltiplos de ”, m, “encontrados en los ”, n, “primeros números naturales es ”, con)

Ejemplo 05

Pseudocódigo que calcule el cuadrado de un número realizando sólo sumas. El cuadrado de un número n es la suma de los n primeros números impares.

Ejemplo: 32 = 1 + 3 + 5 = 9.

Variables a utilizar en el pseudocódigo

n número ingresado ter números impares

cuad número al cuadrado

con contador

Inicio // Definir e inicializar variables

entero: n, cuad 0, ter 1, con

// Leer Datos

Escribir (“Ingresar número:”)

Leer (n)

// Calcula serie y suma con 1

Mientras (con <= n) Hacer

cuad cuad + ter

ter ter + 2

con con + 1

Fin_mientras Escribir (“El cuadrado de ”, n, “es: ”, cuad)

Fin

Ejemplo 06

Pseudocódigo que imprima la serie y calcule el producto de los n términos de:

1/12 * 3/22 * 5/32 * 7/42 * …

Variables a utilizar en el pseudocódigo

n cantidad de términos de la serie num numerador

den denominador

prod producto de los términos de la serie con contador

Inicio

// Definir e inicializar variables

entero: n, con real : num 1, den 1, prod 1

// Leer Datos

Escribir (“Ingresar cantidad de términos:”)

Leer (n)

// Calcula serie y multiplica

con 1

Page 59: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

Mientras (con <= n) Hacer

Escribir (num, “/”, den, “^2”) prod prod * (num/(den^2))

num num + 2

den den + 1

con con + 1

Fin_mientras

Escribir (“El producto es: ”, prod)

Ejemplo 07

Pseudocódigo que imprima la serie y calcule la suma de los n términos de:

1 + 2 + 5 + 10 + 17 + 26 + …

Variables a utilizar en el pseudocódigo

n cantidad de términos de la serie

ter término de la serie

inc incremento

suma suma de los términos de la serie

con contador

Inicio

// Definir e inicializar variables

entero: n, con, ter 1, suma 0, inc 1

// Leer Datos

Escribir (“Ingresar cantidad de términos:”)

Leer (n)

con 1

// Calcula serie y suma

Mientras (con <= n) Hacer

Escribir (ter) suma suma + ter ter ter + inc

inc inc + 2

con con + 1

Fin_mientras

Escribir (“La suma es: ”, suma)

Fin

Ejemplo 08

Pseudocódigo en el que se ingresa un número entero y se calcula:

a) La suma de sus dígitos

b) El número total (cantidad) de dígitos.

c) La cantidad de dígitos pares e impares

Por ejemplo si se tiene el número 3897, es necesario reducir el número empleando la operación nro nro Div 10, que en valores es:

3897 Div 10 = 389

389 Div 10 = 38

38 Div 10 = 3

3 Div 10 = 0

Se detiene cuando es cero

Para obtener cada digito emplearemos la operación digito digito Mod 10, que

en valores es:

Page 60: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

3897 Mod 10 = 7 389 Mod 10 = 9

38 Mod10 = 8

3 Mod 10 = 3

Para calcular la suma de los dígitos de un número emplearemos la operación: suma suma + digito

Para calcular la cantidad total de dígitos de un número emplearemos un contador tal como: c c + 1

Para calcular la cantidad de dígitos pares e impares evaluamos cada dígito,

un dígito es par si el residuo de la división del dígito entre 2 es cero, en caso

contrario será impar. De manera se irán acumulando en dos contadores diferentes la cantidad total de dígitos pares y de dígitos impares.

Variables a utilizar en el pseudocódigo

nro número ingresado

digito cada dígito del número

suma la suma total de dígitos

c contador que guarda la cantidad de dígitos cpar contador que guarda la cantidad de dígitos pares

cimpar contador que guarda la cantidad de dígitos impares

Inicio

// Definir e inicializar variables

entero: nro, digito, suma 0, c 0, cpar 0, cimpar 0

// Leer Datos

Escribir (“Ingresar número:”)

Leer (nro)

Mientras (nro>0) Hacer digito

nro Mod 10 suma

suma + digito c c +

1

Si (digito Mod 2 = 0) entonces

cpar cpar + 1

Sino

cimpar cimpar + 1

Fin_si

nro nro Div 10

Fin_mientras

Escribir (“La suma es: ”, suma) Escribir (“El total de dígitos es: ”, c)

Escribir (“La cantidad de digitos pares es: ”, cpar)

Escribir (“La cantidad de digitos impares es: ”, cimpar)

Fin

Ejemplo 09 Pseudocódigo que calcula los salarios de un conjunto de N trabajadores,

conociendo la tarifa por hora y las horas trabajadas, asi como, la cantidad de

trabajadores que reciben un salario mayor o igual a S/.700. Considerar una

única tarifa por hora para todos los trabajadores.

Variables a utilizar en el pseudocódigo

n cantidad de trabajadores tar tarifa por hora

hor horas trabajadas

salario salario

conS contador de trabajadores con salario mayor o igual a S/.700

Page 61: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

con contador

Inicio

// Definir e inicializar variables

entero: tar, n, con, hor, salario, conS 0

// Leer Datos

Escribir (“Ingresar tarifa:”)

Leer (tar)

Escribir (“Ingresar cantidad de trabajadores:”) Leer (n)

// Calculo

con 1

Mientras (con <= n) Hacer

Escribir (“Ingresar horas trabajadas del trabajador”, con, “:”)

Leer (hor)

salario hor * tar

Si (salario >= 700) entonces conS conS + 1

Fin

Fin_si

con con + 1

Escribir (“El salario del trabajador ”, con, “ es ”, salario)

Fin_mientras

Escribir (“La cantidad de trabajadores con salarios mayores o iguales a

S/.700.00 es: ”, conS)

Ejemplo 10

Durante un censo se registra los datos de n personas como: sexo (masculino, femenino), edad y estado civil (soltero, casado, viudo, divorciado). Elaborar un

pseudocódigo que muestre el número de jóvenes solteras que tienen entre 18 y

30 años.

Variables a utilizar en el pseudocódigo

n cantidad de personas

sexo sexo de la persona

edad edad de la persona

estCiv estado civil conM cantidad de mujeres solteras entre 18 y 30 años

con contador

Inicio

// Definir e inicializar variables entero: n, edad, con 1 , conM 0

caracter: sexo, estCiv

// Leer Datos

Escribir (“Ingresar cantidad de personas:”) Leer (n)

// Calculo

con 1

Mientras (con <= n) Hacer

Escribir (“Ingresar sexo (M)asculino, (F)emenino:”)

Leer (sexo)

Escribir (“Ingresar edad:”)

Leer (edad)

Escribir (“Ingresar estado civil (S)oltero, (C)asado, (V)iudo, (D)ivorsiado:”)

Leer (estCiv)

Si (sexo = „F‟ and estCiv = „S‟ and edad>=18 and edad <=30) entonces

Page 62: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin_si

conM conM + 1

Fin

con con + 1

Fin_mientras

Escribir (“La cantidad de mujeres solteras entre 18 y 30 años son: ”, conM)

Ejemplo 11

Una organización de bienestar familiar registra los pesos de las N personas de un centro poblado, a partir de estos datos, se desea determinar el promedio de

peso de los niños, jóvenes, adultos y ancianos que existen en la zona.

Considerar la siguiente tabla de categorías:

Categoría Edad Niños

Jóvenes

Adultos

Ancianos

0 – 12

13 – 29

30 – 59

60 – más

Variables a utilizar en el pseudocódigo n cantidad de personas del centro poblado

edad edad de cada persona

peso peso de cada persona

con contador

sumaN suma de los pesos de los niños

sumaJ suma de los pesos de los jóvenes

sumaA suma de los pesos de los adultos

sumaC suma de los pesos de los ancianos

conN contador de niños

conJ contador de jóvenes

conA contador de adultos conC contador de ancianos

promN promedio de peso de los niños

promJ promedio de peso de los jóvenes

promA promedio de peso de los adultos

promC promedio de peso de los ancianos

Inicio

// Definir e inicializar variables

entero: n, edad, con 1, conN 0, conJ 0, conA 0, conC 0 real: peso, sumaN 0, sumaJ 0, sumaA 0, sumaC 0,

promN,

promJ, promA, promC

// Leer Datos

Escribir (“Ingresar cantidad de población”)

Leer (n) // Calculo

con 1

Mientras (con <= n) Hacer

Escribir (“Ingresar edad”)

Leer (edad)

Escribir (“Ingresar peso”)

Leer (peso)

Si (edad <= 12) entonces

sumaN sumaN + peso conN conN + 1

Sino Si (edad <= 29) entonces

Page 63: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Cociente

1560 432 264 168

Residuo 264 168

Sino

sumaJ sumaJ + peso

conJ conJ + 1

Si (edad <= 59) entonces

sumaA sumaA + peso

conA conA + 1

Fin_si

Fin_si

Sino

Fin_si

sumaC sumaC + peso

conC conC + 1

Fin

Fin_mientras promN sumaN / conN

promJ sumaJ/ conJ

promA sumaA / conA

promC sumaC / conC

Escribir (“El promedio de peso de los niños es: ”, promN)

Escribir (“El promedio de peso de los jóvenes es: ”, promJ)

Escribir (“El promedio de peso de los adultos es: ”, promA)

Escribir (“El promedio de peso de los ancianos es: ”, promC)

Ejemplo 12

Pseudocódigo para calcular el máximo común divisor (M.C.D.) de dos números a y b, empleando el algoritmo de Euclides.

El algoritmo consiste en:

a) Dividir el mayor número entre el menor número, obteniendo el cociente q1 y

el resto r1.

b) Si r1 < > 0, se divide el menor número entre r1, obteniendo el cociente q2

y el resto r2.

c) Si r2 < > 0, se divide r1 entre r2 obteniendo cociente q3 y resto r3.

d) Este proceso continua hasta obtener un resto igual a 0.

e) El máximo común divisor (M.C.D.) es el resto anterior al resto igual a 0.

Por ejemplo se queremos hallar el M.C.D. de 1560 y 432, dividimos el mayor

entre el menor. b

a

r1<>0 r2<>0 r3<>0 r4<>0 r5<>0 r6 = 0

El M.C.D. es 24

Observamos que a toma el valor de b y b toma el valor del residuo para lo cual escribimos a b y b residuo.

Variables a utilizar en el pseudocódigo

n1 primer número ingresado

n2 segundo número ingresado

Page 64: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

a dividendo

b divisor

residuo residuo

Inicio

// Definir variables

entero: a, b, residuo, n1, n2

// Leer Datos

Escribir (“Ingresar dos números:”) Leer (n1, n2)

// Calculo

Si (n1 > n2) entonces

a n1

b n2

Sino

a n2

b n1

Fin_si

Mientras (b > 0) Hacer residuo a Mod b

a b

b residuo

Fin_mientras Escribir (“El máximo común divisor es: ”, a)

Fin

Ejemplo 13 Para convertir un número en base diferente de 10 a base 10, emplearemos la

descomposición polinómica, se denomina así por que tiene la característica de

un polinomio donde la variable del polinomio viene a estar dado por la base en

la cual se ha escrito el número. Se pide realizar un Pseudocódigo para realizar la

descomposición polinómica

La siguiente tabla muestra la descomposición polinómica:

Numero a

convertir y su

correspondiente

base

Proceso de Conversión

(descomposicion polinomica)

Resultado

de la

conversión

344(7 3*72 + 4*71 + 4*70 = 3*49 + 4*7 + 4

*1= 147 + 28 + 4 179

1304(5 1*53 + 3*52 + 0*51 + 4*50 = 1*125 +

3*25 + 0*5 + 4*1 = 125 + 75 + 0 + 4 204

Por ejemplo, sea el número 344.

Para ir reduciendo cada número emplearemos la operación nro nro Div 10,

que en valores es:

344 Div 10 = 34

34 Div 10 = 3

3 Div 10 = 0

Se detiene cuando es cero

Para obtener cada dígito emplearemos la operación digito digito Mod 10, que

en valores es:

Page 65: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

344 Mod 10 = 4

34 Mod 10 = 4

3 Mod 10 = 3

Se puede ir formando la descomposición polinómica multiplicando el primer residuo por la base elevado a la cero, el segundo residuo multiplicado por la base elevado a la 1 y así sucesivamente, guardando el resultado de esta operación en un acumulador suma, expresado mediante la operación: suma

suma + digito * baseexpo , así, inicializando suma en cero tenemos:

0 + 4 * 70 = 4

4 + 4 * 71 = 32

32 + 3 * 72 = 179

Variables a utilizar en el pseudocódigo

digito cada dígito del número

base base del número

nro número a realizar la descomposición polinómica

nro1 variable auxiliar donde guardamos el nro

expo exponente

suma resultado de la descomposición polinómica

Inicio

// Definir e inicializar variables

entero: nro, nro1, base, digito, suma 0, expo 0

// Leer datos

Escribir (“Ingresar un número y su base”)

Leer (nro, base)

nro1 nro

Mientras( nro > 0) hacer digito nro Mod 10

suma suma + digito * base ^ expo expo expo +1

nro nro Div 10

Fin_mientras Escribir (“El número ”, nro1, “en base 10 es ”, suma)

Fin

Ejemplo 14

Pseudocódigo para convertir un número decimal a una base que puede ser binario u octal.

Existe varios sistemas de numeración como:

El sistema binario utiliza los dígitos 0, 1

El sistema octal usa ocho dígitos 0, 1, 2, 3, 4, 5, 6 y 7.

El sistema hexadecimal utiliza 16 dígitos, del 0 al 9 y para los otros seis se

usan las letras A, B, C, D, E y F, que tienen valores 10, 11, 12, 13, 14 y 15,

respectivamente. Se usan indistintamente mayúsculas y minúsculas.

En la tabla se muestran los primeros diecisiete números decimales con su

respectiva equivalencia binaria, octal y hexadecimal.

Decimal Binario Octal Hexadecimal 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4

Page 66: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

10

0

5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 17 10001 21 11

Para convertir un número de base decimal a cualquier base, se emplea el

método de las divisiones sucesivas que consiste en dividir sucesivamente el

número decimal y los cocientes que se van obteniendo entre la base, hasta que

una de las divisiones se haga 0. La unión de todos los restos obtenidos escritos

en orden inverso, nos proporcionan el número inicial expresado en el sistema

deseado. Por ejemplo convertir el número 10 en base 2, obtenemos:

10(10)=1010(2)

a) Se plantea una primera solución mediante el empleo de una fórmula

aritmética que permita calcular la conversión del número.

Variables a utilizar en el pseudocódigo

digito cada digito del número

base base que puede ser binario u octal

nro número al cual vamos a convertir a otra base nro1 variable auxiliar donde guardamos nro

coeficiente forma los coeficientes del nro

mensa guardamos el texto correspondiente, si el número es

binario u octal

nuevonro número convertido a otra base

Inicio

// Definir e inicializar variables

entero: nro, nro1, base, residuo, nuevonro 0, coeficiente 1

cadena: mensa

// Lectura de datos

Escribir ("Ingrese numero en base decimal: " )

Leer (nro)

Escribir ("Ingrese base: ")

Leer (base) nro1 nro

Mientras (nro >0) hacer residuo nro Mod base

Page 67: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

nuevonro nuevonro + coeficiente * residuo

coeficiente 10*coeficiente

nro nro Div base

Fin_mientras

Si (base = 2) entonces

mensa "Binario"

Fin_si

Si (base = 8) entonces

mensa "Octal"

Fin_si

Escribir (“El número ”,nro1,“ en ”, mensa, “es ”, nuevonro)

b) Se plantea una segunda solución usando cadenas, permitiendo concatenar

cada digito del número.

Concatenar significa unir, enlazar elementos de texto en uno solo.

digito = nro Mod base Concatenar ( unir)

cadena = digito + cadena

nro = nro / base

12 Mod 2 = 0 0 + “ ” = 0 12 Div 2 = 6 6 Mod 2 = 0 0 + 0 = 00 6 Div 2 = 3 3 Mod 2 = 1 1 + 00 = 100 3 Div 2 = 1 1 Mod 2 = 1 1 + 100 = 1100 1 Div 2 = 0

El resultado es 1100.

Variables a utilizar en el pseudocódigo

residuo residuo de nro y base

base base que puede se binario u octal

nro número al cual vamos a convertir a otra base

nro1 variable auxiliar donde guardamos nro

mensa guardamos el texto correspondiente, si el número es

binario u octal

nuevonro número convertido a otra base

Inicio

// Definir e inicializar variables

entero: nro,nro1,base,residuo cadena: nuevonro “ ”, mensa

// Lectura de datos

Escribir (“Ingrese numero en base decimal:”)

Leer (nro)

Escribir (“Ingrese base:”)

Leer (base)

nro1 nro

Mientras (nro >0) hacer residuo

nro Mod base nuevonro

residuo + nuevonro nro nro

Div base

Fin_mientras Si (base = 2) entonces

mensa “Binario”

Fin_si

Si (base = 8) entonces

mensa “Octal”

Fin_si

Page 68: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

Escribir (“El número ”,nro1,“ en ”, mensa, “es ”, nuevonro)

c) Se plantea una tercera solución usando cadenas, pero en este caso se

procede a calcular conversiones a cualquier base incluyendo la base

hexadecinal.

Para hexadecimal tenemos que tener en cuenta las letras a, b, c, d, e, f para

ello preguntamos si dígito es 10, 11, 12, 13, 14, 15 para lo cual hacemos las

asignaciones correspondientes mediante la operación binario "letra" +

binario.

Si los dígitos son menores o igual que 9 para formar la conversión correspondiente hacemos la operación binario digito + binario.

Variables a utilizar en el pseudocódigo

residuo residuo de nro y base

base base que puede se binario, octal o hexadecimal

nro número al cual vamos a convertir a otra base

nro1 variable auxiliar donde guardamos el nro

mensa variable donde guardamos si el numero es binario, octal

o Hexadecimal

nuevonro número convertido a otra base

Inicio // Definir e inicializar variables

entero: nro, base, residuo, nro1 cadena: nuevonro “ ”, mensa “ ”

// Lectura de datos Escribir (“Ingresar número en base dcimal: ”)

Leer (nro)

Escribir (“Ingresar base: ”)

Leer (base)

nro1 nro

Mientras (nro > 0) hacer

residuo nro Mod base

Si (residuo <= 9) entonces

nuevonro residuo + nuevonro

Fin_si

Si (residuo <= 10) entonces nuevonro “a” + nuevonro

Fin_si

Si (residuo <= 11) entonces

nuevonro “b” + nuevonro

Fin_si

Si (residuo <= 12) entonces

nuevonro “c” + nuevonro

Fin_si

Si (residuo <= 13) entonces nuevonro “c” + nuevonro

Fin_si

Si (residuo <= 14) entonces nuevonro “d” + nuevonro

Fin_si

Si (residuo <=15 ) entonces

nuevonro “f” + nuevonro

Fin_si

Si (base = 2) entonces

Page 69: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin_si

mensa “Binario”

Si (base = 8) entonces mensa “Octal”

Fin_si

Si (base = 16) entonces

mensa “Hexadecimal”

Fin

Fin_si

nro nro Div base

Fin_mientras

Escribir (nro1, “ en base ”, mensa, “ es ”, nuevonro)

4.3.Estructura repetitiva Repetir – Hasta_que

Esta sentencia repite una sentencia o más sentencias hasta que el resultado de

una expresión lógica sea verdadero (true), momento en que termina la

sentencia Repetir y se continúa con el resto del algoritmo. Su sintaxis es la

siguiente:

Repetir

Acción

Hasta_que (expresión_lógica)

Funcionamiento de Repetir – Hasta_que

Cuando la sentencia Repetir – hasta_que inicia su ejecución, se suceden los

siguientes pasos:

a) Se ejecuta la acción (o conjunto de sentencias). b) Se evalúa Expresión_lógica, obteniéndose un resultado lógico.

c) Si este resultado es falso (false), se retorna al paso a.

d) Si este resultado es verdadero (true), la ejecución del pseudocódigo

proseguirá con sentencia siguiente al hasta_que.

Ejemplo 15

Pseudocódigo que imprime los 10 primeros términos de la serie:

1, 3, 5, 7, ...

Observamos que cada término de la serie se incrementa en 2, para lo cual emplearemos la operación termino termino + 2.

Para imprimir los 10 primeros términos se requiere de un contador que empieza en 1 y acaba en 10, de esta manera cada vez que se obtiene un término el

contador se incrementa en 1 para lo cual usaremos con con + 1.

Variables a utilizar en el pseudocódigo

con controla la estructura repetitiva repetir - hasta_que

termino cada uno de los términos de la serie

Inicio

// Definir e inicializar variables

entero: termino 1, con 1

// Calcula e imprime termino

Repetir

Escribir (termino)

termino termino + 2

con con + 1

Page 70: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

Hasta_que (con = 10)

La siguiente tabla muestra los resultados de la corrida del algoritmo.

Iteración

numero

con

Resultados del

cuerpo del bucle Expresión

lógica

con = 10

Resultado

de la

Expresión lógica

Escribir termino termino =

termino + 2 con =

con + 1

1 1 3 2 2 = 10 false 2 3 5 3 3 = 10 false 3 5 7 4 4 = 10 false

…..

….. ……

…… …..

….. ….

….. ……

…… ……

….. 10 19 21 10 10 = 10 true

Ejemplo 16 Pseudocódigo que encuentra el menor número, de un conjunto de números

positivos ingresados. El pseudocódigo termina cuando se ingresa el cero o un

número negativo.

Asumimos que el valor inicial del menor número es un número grande:

menor 99999, para poder iniciar la comparación con todos los números

ingresados.

Variables a utilizar en el pseudocódigo

nro cada número ingresado

menor menor número

Inicio // Definir e inicializar variables entero: nro, menor 99999

// Calcula e imprime término

Repetir

Escribir (“Ingresar número”) Leer (nro)

Si (nro < menor) entonces

menor nro

Fin

Fin_si

Hasta_que (nro <= 0)

Escribir (“El menor número ingresado es ”, menor)

Ejemplo 17

Pseudocódigo que genere una secuencia de números utilizando el siguiente algoritmo:

Que empiece con cualquier número entero positivo.

Si es par, lo dividimos por dos, si es impar lo multiplicamos por tres y le sumamos 1.

Repetimos el paso anterior con el número resultante, la secuencia se puede

repetir indefinidamente.

Por ejemplo si ingresemos el número 7, la secuencia generada seria:

Page 71: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 4 2 1 …

Que se obtuvo de la siguiente manera:

Número Proceso

7

22

11

34

17

52

26

12

40

10

5

16

8

4

2

1

7 es impar, entonces 7 * 3 + 1 = 22

22 es par, entonces 22 / 2 = 11

11 es impar, entonces 11 * 3 + 1 =34

34 es par, entonces 34 / 2 = 17

17 es impar, entonces 17 * 3 + 1 = 52

52 es par, entonces 52 / 2 = 26

26 es par, entonces 26 / 2 = 13

13 es impar, entonces 13 * 3 + 1 = 40

40 es par, entonces 40 / 2 = 10

10 es par, entonces 10 / 2 = 5

5 es impar, entonces 5 * 3 + 1 = 16

16 es par, entonces 16 / 2 = 8

8 es par, entonces 8 / 2 = 4

4 es par, entonces 4 / 2 = 2

2 es par, entonces 2 / 2 = 1

Observar que la serie comienza a repetir la serie 4 2 1 indefinidamente, el

algoritmo debe de leer el número inicial, imprimir el número de valores

encontrados hasta la aparición de un valor 1 en la secuencia.

Para los números pares emplearemos la operación: nro nro Div 2

Para los números impares emplearemos la operación: nro 3 * nro + 1

Variables a utilizar en el pseudocódigo

residuo residuo del numero

nro numero inicial de la serie

Inicio

// Definir variables

entero: nro, residuo

// Leer Datos

Escribir (“Ingresar número:”) Leer (nro)

// Calcula la serie

Repetir

residuo nro Mod 2

Si (residuo = 0) entonces

nro nro Div 2

Sino

Fin_si

nro 3 * nro + 1

Fin

Escribir (nro) Hasta_que (nro = 1)

Ejemplo 18

Pseudocódigo que calcule el promedio de números positivos y el promedio de números negativos de un conjunto de números ingresados. El pseudocódigo

termina cuando se ingresa el cero.

Page 72: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo nro

cada número ingresado sumap

suma de números positivos suman

suma de números negativos

cp contador de números positivos cn

contador de números negativos promp

promedios de los números positivos promn

promedios de los números negativos

Inicio

// Definir e inicializar variables

entero: nro, sumap 0, suman 0, cp 0, cn

0 real: promp, promn

// Ingreso y cálculo

Repetir

Escribir (“Ingresar número”)

Leer (nro)

Si (nro > 0) entonces

sumap sumap + nro

cp cp + 1

Sino Si (nro < 0) entonces

suman suman + nro cn cn + 1

Fin_si

Fin_si

Fin

Hasta_que (nro = 0)

promp sumap / cp

promn suman / cn

Escribir (“El promedio de los números positivos es ”, promp) Escribir (“El promedio de los números negativos es ”, promn)

Ejemplo 19

Pseudocódigo que lee N consumos de un restaurante. Si el consumo ingresado

excede los S/.70.00, se le descontará el 15%. Mostrar el monto de cada

consumo realizado y el total que recauda el restaurante por todos los consumos.

Variables a utilizar en el pseudocódigo

n cantidad de consumos consumo monto consumido

desc descuento

total total que recauda el restaurante con contador

Inicio

// Definir e inicializar variables

entero: n, con 0

real: consumo, desc 0, total 0

Escribir (“Ingresar cantidad de consumos”)

Leer (n)

// Cálculo

Repetir

Escribir (“Ingresar consumo”)

Leer (consumo)

Si (consumo > 70.00) entonces

desc 0.15 * consumo

Fin_si

Page 73: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

consumo consumo – desc

Escribir (“El monto final del consumo es ”, consumo) total total + consumo con con +1

Hasta_que (con = n)

Escribir (“El total que recauda el restaurante es ”, total)

Ejemplo 20 Pseudocódigo que calcula la compra de N productos de diferentes precios, dicha

compra se realiza hasta que el cliente ya no desea seguir comprando. Mostrar el

monto total que paga el cliente.

Variables a utilizar en el pseudocódigo

cant cantidad de productos

precio precio del producto

subTot monto del subtotal

total monto total

resp respuesta

Inicio // Definir e inicializar variables

entero: cant real: precio, subTot, total 0

caracter: resp

// Cálculo

Repetir

Escribir (“Ingresar precio del producto”)

Leer (precio)

Escribir (“Ingresar cantidad de productos”)

Leer (cant)

subTot precio * cant

total total + subTot

Escribir (“¿Desea seguir comprando (S/N)?”)

Leer (resp)

Hasta_que(resp = „N‟)

Escribir (“El total a pagar es ”, total)

Fin

Ejemplo 21 Pseudocódigo que calcula el monto total que se paga por una entrada a un

evento cultural, los precios varían de acuerdo al tipo de entrada:

Tipo Precio (S/.) Vip

Platea

Popular

70.00

50.00

30.00

Además el precio tiene un incremento del 12% por impuesto. Validar el ingreso

de datos.

Variables a utilizar en el pseudocódigo

tipo tipo de entrada

precio precio del producto

inc incremento

Inicio

Page 74: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

// Definir variables

real: precio, inc

caracter: tipo

// Cálculo

Repetir

Escribir (“Ingresar tipo de entrada (V)ip, (P)latea, Popu(L)ar”) Leer (tipo)

Si (tipo <> „V‟ and tipo <> „P‟ and tipo <> „L‟)

Escribir (“Tipo no existe”)

Fin

Fin_si Hasta_que (tipo = „V‟ or tipo = „P‟ or tipo = „L‟)

Según sea (tipo)

„V‟: precio 70.00

„P‟: precio 50.00

„L‟: precio 30.00

Fin_según inc precio * 0.12 precio precio + inc

Escribir (“El precio final a pagar es ”, precio)

Ejemplo 22

Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilómetros durante 10 días, para determinar si es apto para competir. Para que el atleta

sea considerado apto debe cumplir por lo menos una de las siguientes

condiciones:

Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos.

Que su promedio de tiempos sea menor o igual a 15 minutos.

Variables a utilizar en el pseudocódigo

tpo tiempo en minutos

ct cantidad de dias que recorre en mas de 16 minutos

suma suma de tiempos

con contador

prom promedio de tiempos

Inicio

// Definir e inicializar variables

entero: tpo, ct 0, suma 0, con

0 real: prom

// Cálculo

Repetir

Escribir (“Ingresar tiempo en minutos”) Leer (tpo)

Si (tpo > 16) entonces

ct ct + 1

Fin

Fin_si

suma suma + tpo

con con + 1

Hasta_que (con = 10)

prom suma / 10

Si ((ct = 0) or (prom <= 15))

Escribir (“Si es apto para competir”) Sino

Escribir (“No es apto para competir”)

Fin_si

Page 75: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Ejemplo 23

Se ingresan los resultados de la evaluación de un cierto número de alumnos del curso de Programación; por cada alumno se informa: su asistencia (1 =

presente; 0 = ausente) y su calificación. A partir de esta información se debe

calcular:

La cantidad y el porcentaje de alumnos presentes.

Promedio de calificaciones de alumnos presentes.

Si un alumno esta ausente no se registra su calificación. El pseudocódigo

termina cuando se ingresa como asistencia un valor diferente a 1 ó 0.

Variables a utilizar en el pseudocódigo

asis asistencia del alumno

calf calificación

suma suma de calificaciones de los alumnos presentes

cap cantidad de alumnos presentes

caa cantidad de alumnos ausentes

cant cantidad de alumnos registrados

porp porcentaje de alumnos presentes

prom promedio de calificaciones de los alumnos presentes

Inicio

// Definir e inicializar variables entero: asis, calf, suma 0, cap 0, caa 0, cant

0 real: porp, prom

// Cálculo

Repetir Escribir (“Ingresar asistencia (1)Presente, (0)Ausente”)

Leer (asis)

Si (asis = 1)

Escribir (“Ingresar calificación”)

Leer (calf)

suma suma + calf

Fin

Fin_si

Según sea (asis) hacer

1 : cap cap + 1

0 : caa caa + 1

Fin_según

cant cant + 1

Hasta_que (asis <> 0 or asis <>1) porp (cap * 100) / cant prom suma / cap

Escribir (“La cantidad de alumnos presentes es ”, cap)

Escribir (“El porcentaje de alumnos presentes es ”, porp)

Escribir (“El promedio de calificaciones de los alumnos presentes es ”, prom)

Ejemplo 24

Pseudocódigo que lee de forma consecutiva y aleatoria una serie de números, y

finalice cuando se ingresa un número mayor que la suma de los dos números

anteriores ingresados, mostrándose la cantidad de números ingresados y los

tres números que cumplieron la condición.

Variables a utilizar en el pseudocódigo

nro cada número ingresado

n1 primer número antes del número ingresado

n2 segundo número antes del número ingresado

Page 76: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

con contador de números

suma suma del primer y segundo número antes del número ingresado sw bandera

Inicio

// Definir e inicializar variables

entero: nro, sw 0, n1 0, n2 0, con 0, suma

// Cálculo

Repetir

Escribir (“Ingresar número”) Leer (nro)

Si (con >= 2)

suma n1 + n2

Si (nro > suma) entonces

sw 1

Fin_si Fin_si

Si (sw = 0) entonces

Si (con Mod 2 = 0) entonces n1 nro

Fin_si

Sino

Fin_si

n2 nro

Fin

con con + 1

Hasta_que (sw = 1)

Escribir (“La cantidad de números ingresados es ”, con)

Escribir (“Los números que cumplieron la condicion son ”, n1, n2, nro)

Ejemplo 25

Pseudocódigo que lee números de forma consecutiva y aleatoria hasta que se

ingrese el número 0 (cero). Calcular la suma de todos los números ingresados

antes de que aparezca el primer número mayor a 150, asi como la suma de

todos los números que entran a continuación de éste, hasta la aparición del

cero.

Mostrar la cantidad de números ingresados (sin contar el cero ni el primer número mayor de 150), en la primera y la segunda suma.

Contemplar la posibilidad de que entre antes el 0 que el primer número mayor

de 150.

Variables a utilizar en el pseudocódigo

nro cada número ingresado

suma1 primera suma

suma2 segunda suma

con contador de números sw bandera

Inicio

// Definir e inicializar variables

entero: nro, sw 0, suma1 0, suma2 0, con 0

// Cálculo

Repetir Escribir (“Ingresar número”)

Leer (nro)

Si (nro <> 0) entonces

con con + 1

Page 77: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin_si

Si (sw = 1) entonces suma2 suma2 + nro

Fin_si

Si ((nro < 150) and (sw = 0)) entonces

suma1 suma1 + nro

Sino

Fin_si

sw = 1

con con - 1

Fin

Hasta_que (nro = 0)

Escribir (“La cantidad de números ingresados es ”, con) Escribir (“La primera suma es ”, suma1)

Escribir (“La segunda suma es ”, suma2)

Ejemplo 26

Suponga que se piden X soles prestados a un banco, con el acuerdo de devolver

Y soles cada mes hasta devolver el préstamo completo. Parte del pago mensual

serán los intereses calculados como el i por ciento del capital por devolver en ese momento. El resto del pago mensual se aplica a reducir el capital a

devolver. El algoritmo debe determinar:

La cantidad de intereses que se paga cada mes.

La cantidad de dinero aplicada cada mes al capital por devolver.

La cantidad acumulada de intereses.

La cantidad del préstamo aún pendiente al final de cada mes. La cantidad probable que se devuelve en el último pago.

Por ejemplo, si se pide prestado S/.1000.00 prestados a un banco a un interes

del 15% se tiene:

Page 78: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Nro Amortización Interés Interes

Acumulado Préstamo

Pendiente Couta

(Y) 1

2

3

4

5

6

7

8

9

10

50.00

57.50

66.125

76.0438

87.4503

100.568

115.653

133.001

152.951

160.708

150.00

142.50

133.875

123.956

112.55

99.4321

84.347

66.999

47.0489

24.1062

150.00

292.50

426.375

550.331

662.881

762.3131

846.6601

913.6591

960.708

984.8142

950.00

892.50

826.375

750.3312

662.8809

562.3129

446.6599

313.6589

160.7079

0

200

200

200

200

200

200

200

200

200

200

1000.00

Variables a utilizar en el Pseudocódigo

x monto prestado i interes

y monto que se devuelve

ma monto aplicado al capital

inte interés generado

suma suma de intereses

Inicio

// Definir e inicializar variables real: x, i, inte, y, ma, suma 0

// Leer dato

Escribir (“Ingresar monto prestado”) Leer (x)

Escribir (“Ingresar interes”)

Leer (i)

Escribir (“Ingresar monto que se devuelve”)

Leer (y)

Repetir

inte (i/100) * x

Escribir (“El interes del mes es”, inte)

ma y - inte

Si (y > x) entonces Escribir (“El monto aplicado al capital es ”, x)

Sino

Fin_si

Escribir (“El monto aplicado al capital es ”, ma)

x x - ma

Si (x < 0) entonces

Escribir (“El monto pendiente es 0”) Escribir (“Se le devuelve ”, -x)

Sino

Fin_si

Escribir (“El monto pendiente es ”,x)

Fin

suma suma + inte

Hasta_que (x > 0)

Escribir (“La cantidad acumulada de interés es ”, suma)

Page 79: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

4.4.Estructura repetitiva Desde – Fin_desde

La sentencia Desde, repite una o más acciones un número determinado de

veces. Se utiliza cuando se conoce por anticipado el número de veces que se

van a repetir estas acciones. Su sintaxis es la siguiente:

Desde (i Valor_Inicial) hasta (expresión_Lógica) con incremento N hacer

Acción

Fin_desde

Valor_Inicial: especifica el primer valor asignado a la variable de control.

Esta inicialización se realiza solo la primera vez que se repite el bucle.

Expresión_Lógica: esta expresión debe ser verdadera para que se ejecute el

bucle. La expresión_Lógica se compara con la variable de control cada vez

que se repite el bucle.

Incremento N: indica el valor que va ha aumentar o disminuir a la variable de control.

Funcionamiento de Desde – Fin_desde

Cuando la sentencia Desde inicia su ejecución, se suceden los siguientes pasos:

Se asigna un Valor_Inicial a la variable de control, en nuestro caso i.

Si la variable de control cumple la expresión_Lógica, se ejecuta la acción

luego se incrementa (o disminuye) la variable de control. Si la variable de control no cumple la Condición se ejecuta la sentencia

siguiente a Fin_desde.

Ejemplo 27

Pseudocódigo que calcule la suma de los cuadrados y los cubos de los N

primeros números naturales.

Variables a utilizar en el pseudocódigo n cantidad de números naturales

nro cada número natural

cuad cuadrado del número

cubo cubo del número

raiz raíz cuadrada del número

Inicio

// Definir e inicializar variables

entero: n, nro, cuad, cubo, sumaCuad 0, sumaCubo 0

// Leer dato

Escribir (“Ingresar cantidad de números naturales”)

Leer (n) Desde (nro 1) hasta (nro <= n) con incremento 1 Hacer

cuad nro * nro

sumaCuad sumaCuad + cuad

cubo nro * nro * nro

sumaCubo sumaCubo + cubo

Fin_desde

Escribir(“La suma de los cuadrados es ”, sumaCuad)

Escribir(“La suma de los cubos es ”, sumaCubo)

Fin

Explicación

Page 80: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Para realizar el ejercicio planteado se definen las variables enteras n, nro, cuad,

cubo y se define e inicializa en cero las variables sumaCuad, sumaCubo:

entero: n, nro, cuad, cubo, sumaCuad 0, sumaCubo 0

Se ingresa la cantidad de números que se desea sumar mediante la variable n:

Escribir (“Ingresar cantidad de números naturales”)

Leer (n)

Enseguida se ejecuta la sentencia Desde, en el que se asigna a la variable nro el

valor de 1 y se evalúa la expresión lógica (nro<=n), si es verdadera se ejecuta

las cuatro sentencias que tiene esta estructura, luego se incrementa en una

unidad el valor de la variable nro, en ese momento la sentencia Desde vuelve a

verificar la expresión logica (nro<=n) si es verdadero continua el bucle: Desde (nro 1) hasta (nro <= n) con incremento 1 Hacer

cuad nro * nro

sumaCuad sumaCuad + cuad

cubo nro * nro * nro

sumaCubo sumaCubo + cubo

Fin_desde

Cuando la expresión lógica (nro<=n) llega a ser falso el bucle termina y se

ejecuta la sentencia escribir y finaliza el pseudocódigo: Escribir(“La suma de los cuadrados es ”, sumaCuad)

Escribir(“La suma de los cubos es ”, sumaCubo)

Ejemplo 28 Pseudocódigo que calcula el numero PI, de acuerdo a la siguiente fórmula:

PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...

El número de términos debe ser ingresado.

Variables a utilizar en el pseudocódigo

n cantidad de números

num numerador

den denminador

con contador suma suma

pi valor de PI

Inicio

// Definir e inicializar variables

entero : n, con

real : pi, suma 0, num 1, den 1

// Leer dato

Escribir (“Ingresar cantidad de términos”)

Leer (n)

Desde (con 1) hasta (con <= n) con incremento 1 Hacer

suma suma + (num / den)

num num * -1

den den + 2

Fin_desde

pi suma * 4

Escribir (“El valor de PI es ”, pi)

Fin

Ejemplo 29

Page 81: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Pseudocódigo para encontrar todos los divisores de un número ingresado. Un

número a es divisor de otro número b, cuando el residuo de la división de b

entre a es cero, en otras palabras cuando el residuo es exacto.

Así pues, decimos que 5 es divisor de 20, porque 20 Mod 5 nos da residuo cero.

Por ejemplo, los divisores de 24 son: 1, 2, 3, 4, 6, 8, 12, 24, para hallar estos

valores es necesario dividir al número 24 con valores comprendidos entre 1 y

24, los cuales se trabajarán mediante la variable i, si el residuo de la división

del número 24 entre i es cero entonces i es uno de los divisores de 24.

Nro Mod i

24 Mod 1 = 0 entonces 1 es divisor de 24

24 Mod 2 = 0 entonces 2 es divisor de 24

24 Mod 3 = 0 entonces 3 es divisor de 24

24 Mod 4 = 0 entonces 4 es divisor de 24

24 Mod 5 <> 0 entonces 5 no es divisor de 24 y así sucesivamente

Variables a utilizar en el pseudocódigo

nro número al cual calculamos sus divisores

i divisor del numero

Inicio

// Definir e inicializar variables entero: nro, i 1

// Leer datos

Escribir (“Ingresar número”)

Leer (nro) Desde (i 1) hasta (i <= nro) con incremento 1 hacer

Si (nro Mod i = 0) entonces Escribir (i)

Fin

Fin_si

Fin_desde

Ejemplo 30 Pseudocódigo que calcule el factorial de un número entero. El factorial de un

número n se representa por n! y su fórmula es:

n ! = 1 * 2 * 3 * 4 * … * (n-2) * (n-1) * n

Así por ejemplo:

1 ! = 1

2 ! = 1 * 2 = 2

3 ! = 1 * 2 * 3 = 6

4 ! = 1 * 2 * 3 * 4 = 24

4 ! = 3 ! * 4 = 24

Se observa que el factorial de 4 es el factorial de 3 multiplicado por 4, quiere

decir que el factorial de n es el factorial de (n -1) multiplicado por n.

n! = (n-1)! * n

Esto nos sirve para implementar la lógica del programa empleando:

fact fact * i

Page 82: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Variables a utilizar en el pseudocódigo

i controla el bucle desde fact calcula el factorial

nro numero al cual se va a calcular el factorial

Inicio

// Definir e inicializar variables entero i, nro, fact 1

// Leer Datos

Escribir (“Ingresar número:”)

Leer (nro)

// Calcula el factorial

Desde (i 1) hasta (i <= nro) con incremento 1 hacer

fact fact * i

Fin_desde

Escribir (“El factorial es: ”, fact)

Fin

La siguiente tabla muestra los resultados de la corrida del algoritmo para 5!

Iteración Nro

i

Expresión

lógica

i<=5

Valor de la

Expresión

lógica

Resultados

del cuerpo

del bucle

Incremento

i = i + 1 fact = fact * i 1 1<= 5 true 1 2 2 2<= 5 true 2 3 3 3 <=5 true 6 4 4 4 <=5 true 24 5 5 5<= 5 true 120 6 6 6<= 5 false Finaliza la sentencia desde

Ejemplo 31

Pseudocódigo que obtenga el cuadrado de un número entero utilizando la

formula:

n2

= 1 + 3 + 5 + . . . + 2n-1.

Para obtener cada termino de la serie emplearemos la fórmula 2 * n – 1.

Si n = 1 2 * 1 – 1 = 1

Si n = 2 2 * 2 - 1 = 3

Si n = 3 2 * 3 – 1 = 5

Posteriormente es necesario sumar cada uno de los términos empleando la operación suma suma + termino.

1 0 + 1

4 1 + 3

9 4 + 5

Variables a utilizar en el pseudocódigo

i controla el bucle desde suma cuadrado de un número

termino cada termino de la serie

nro número al cual se va a calcular su cuadrado

Inicio

Page 83: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

// Definir e inicializar variables

entero: nro, i, termino, suma 0

// Leer Datos

Escribir (“Ingresar número:”)

Leer (nro) Desde (i 1) hasta (i <= nro) con incremento 1 hacer

termino 2 * i - 1

Escribir (termino)

suma suma + termino

Fin-desde

Escribir (“El número al cuadrado es : ”, suma)

Ejemplo 32

Pseudocódigo para determinar si un año es bisiesto en un rango dado. Un año es bisiesto si es múltiplo de 4 pero no múltiplo de 100 excepto los múltiplos de

400.

Como tenemos que hallar los años bisiestos en un rango, empleamos un bucle

repetitivo que permita recorrer los años determinados en el rango añoinicio y

añotermino que definen el año de inicio y término respectivamente, de esta

manera usamos un contador año que empieza en añoinicio y termina en

añotermino que se irá incrmentando en 1, el mismo que definirá cada año que se evalúa como bisiesto. De esta manera, dentro del bucle realizamos los

cálculos correspondientes

Variables a utilizar en el pseudocódigo añoinicio año el cual vamos a empezar la búsqueda

añotermino año el cual vamos a terminar la búsqueda

a cada uno de los años comprendidos en un rango

Inicio

// Definir variables

entero: añoinicio, añotermino, a

// Leer dato

Escribir (“Ingresar año inicial y año final”)

Leer (añoinicio, añotermino) Desde (a añoinicio) hasta (a <= añotermino) con incremento 1 Hacer

Si ((a Mod 4 = 0) and (a Mod 100 <> 0) or (a Mod 400 = 0)) entonces Escribir (“El año ”, a, “es bisiesto”)

Fin

Fin_si

Fin_desde

Ejemplo 33

Pseudocódigo que muestra y calcula el promedio de todos los números pares

comprendidos entre a y b. Indistintamente a puede ser menor que b o b menor

que a.

Variables a utilizar en el pseudocódigo

a, b límites

n1, n2 auxiliares

nro número evaluado como par entre los límites a y b

suma suma de números pares

con contador de números pares prom promedio

Page 84: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Inicio

// Definir e inicializar variables entero: a, b, nro, suma 0, con 0

real: prom

// Leer Datos Escribir (“Ingresar límites:”)

Leer (a, b)

Si (a > b) entonces

n1 a

n2 b

Sino n1 b

n2 a

Fin_si

Desde (nro n1) hasta (nro <= n2) con incremento 1 hacer

Si (nro Mod 2 = 0) entonces

Escribir (nro)

suma suma + nro con con +1

Fin

Fin_si

Fin-desde

prom suma / con

Escribir (“El promedio es ”, prom)

Ejemplo 34

Pseudocódigo que lee dos números, el primero representa el número a ser

transformado, y el segundo el transformador, se debe hacer girar hacia la

derecha el número a transformarse, tantas veces lo indique el transformador, e ir desplegando el número después de cada transformación.

Ejemplo: Primer número: 35241, Segundo número: 4 Girado a la derecha se tiene

Número de giros Transformaciones

1

2

3

4

13524

41352

24135

52413

Variables a utilizar en el Pseudocódigo

n1 número a transformar

n2 número transformador

aux auxiliar

dig dígito

cd cantidad de dígitos

con contador

Inicio

// Definir e inicializar variables

entero: n1, n2, aux, dig, cd 0, con

// Leer dato

Escribir (“Ingresar dos números”)

Leer (n1, n2) aux n1

Mientras (aux > 0) hacer dig aux Mod 10

Page 85: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

cd cd + 1

aux aux Div 10

Fin_mientras

cd cd - 1

Desde (con 0) hasta (con < n2) con incremento 1 Hacer dig n1 Mod 10

n1 n1 Div 10

dig dig * 10 ^ cd

n1 dig + n1

Fin_desde

Escribir(“El número transformado es ”, n1)

Ejemplo 35

Pseudocódigo para averiguar si un número ingresado es primo. Un número es

primo, si solo tiene como divisores al mismo número y a la unidad.

Variables a utilizar en el pseudocódigo

d posibles divisores del número ingresado

con contador de divisores del número

nro numero ingresado

Inicio // Declarar e inicializar variables

entero: nro, d, con 0

// Leer Datos

Escribir (“Ingresar número:”)

Leer (nro)

Desde (d 1) hasta (d <= nro) con incremento 1 hacer

Si (nro Mod d = 0) entonces con con + 1

Fin

Fin_si

Fin-desde

Si (con <= 2)

Escribir (“El número es primo”)

Sino

Escribir (“El número no es primo”)

Fin_si

Ejemplo 36

Una empresa almacena los datos de N empleados, para esto, en un proceso

repetitivo se ingresa el sexo (masculino, femenino) y el salario de cada

empleado. Se pide calcular:

a) El mayor y el menor salario

b) El promedio de salarios.

c) La cantidad de mujeres y varones que trabajan en esa empresa

Variables a utilizar en el pseudocódigo

n cantidad de empleados

sexo sexo del empleado

sal salario

mayor mayor salario

menor menor salario

suma suma de salarios

conVar contador de empleados varones

conMuj contador de empleadas mujeres

Page 86: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

prom promedio de salarios

con contador de empleados

Inicio

// Definir e inicializar variables

entero: n, con, conVar 0, conMuj 0

real: sal, mayor 0, menor 99999, suma 0,

prom caracter: sexo

// Leer dato

Escribir (“Ingresar cantidad de empleados”)

Leer (n)

Desde (con 1) hasta (con <= n) con incremento 1 Hacer

Escribir (“Ingresar sexo”)

Leer (sexo)

Escribir (“Ingresar salario”)

Leer (sal)

Si (sal > mayor) entonces

mayor sal

Fin_si

Si (sal < menor) entonces

menor sal

Fin

Fin_si

suma suma + sal

Según sea (sexo) hacer

„M‟ : conVar conVar + 1

„F‟ : conMuj conMuj + 1

Fin_según

Fin_desde

prom suma / n

Escribir (“El mayor salario es ”, mayor)

Escribir (“El menor salario es ”, menor)

Escribir (“El promedio de salarios es ”, prom) Escribir (“La cantidad de varones que trabajan en la empresa es ”, conVar) Escribir (“La cantidad de mujeres que trabajan en la empresa es ”, conMuj)

Ejemplo 37

Pseudocódigo que indica mediante un mensaje si dos números son amigos o no.

Se dice que dos números son amigos si la suma de los divisores del primer

número (excepto él mismo) coincide con el segundo número y viceversa.

Por ejemplo 220 y 284 son amigos, porque:

La suma de los divisores de 220 es:

1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284

Y la suma de los divisores de 284 es:

1 + 2 + 4 + 71 + 142 = 220

Variables a utilizar en el pseudocódigo nro1 primer número ingresado

nro2 segundo número ingresado

d posibles divisores de los números ingresados sin incluir el

mismo número

suma1 suma de los divisores del primer número ingresado

suma2 suma de los divisores del segundo número ingresado

Page 87: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Inicio

// Definir e inicializar variables

entero: nro1, nro2, d, suma1 0, suma2 0

// Leer Datos

Escribir (“Ingresar primer número:”)

Leer (nro1) Escribir (“Ingresar segundo número:”)

Leer (nro2)

Desde (d 1) hasta (d <= (nro1 Div 2)) con incremento 1 hacer

Si (nro1 Mod d = 0) entonces

suma1 suma1 + d

Fin_si

Fin-desde

Desde (d 1) hasta (d <= (nro2 Div 2)) con incremento 1 hacer

Si (nro2 Mod d = 0) entonces

suma2 suma2 + d

Fin

Fin_si

Fin-desde

Si (suma1 = nro2 and suma2 = nro1)

Escribir (“Los números ”, nro1, “y ”, nro2, “son amigos”)

Sino

Escribir (“Los números ”, nro1, “y ”, nro2, “no son amigos”)

Fin_si

Ejemplo 38

Se ha seleccionado n números de personas para realizar una encuesta, en un

proceso repetitivo se ingresa el grado de instrucción y la edad de cada persona.

Se desea saber el promedio de edades, la mayor edad y el porcentaje de

personas con instrucción Primaria, Secundaria y Superior (P, S, R).

Variables a utilizar en el pseudocódigo

n cantidad de personas encuestadas

edad edad de cada persona

grad grado de instrucción de cada persona

suma suma de edades

prom promedio de edades

mayor mayor edad

conp cantidad de personas con instrucción primaria

cons cantidad de personas con instrucción secundaria

conr cantidad de personas con instrucción superior

p1 porcentaje de personas con instrcucción primaria

p2 porcentaje de personas con instrcucción secundaria

p3 porcentaje de personas con instrcucción superior

con contador

Inicio

// Definir e inicializar variables entero: n, con, edad, suma 0, mayor 0, conp 0, cons 0, conr

0 real: prom, p1, p2, p3

caracter: grad

// Leer Datos

Escribir (“Ingresar cantidad de personas:”)

Leer (n)

Desde (con 1) hasta (con <= n) con incremento 1 hacer

Escribir (“Ingrese grado de instrucción (P)rimaria, (S)ecunadaria, supe(R)ior:”) Leer (grad)

Page 88: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Escribir (“Ingrese edad:”)

Leer (edad)

suma suma + edad

Si (edad > mayor) entonces mayor edad

Fin

Fin_si

Según sea (grad) hacer

„P‟: conp conp + 1

„S‟: cons cons + 1

„R‟: conr conr + 1

Fin_según

Fin-desde

prom suma / n

p1 (conp * 100) / n p2 (cons * 100) / n

p3 (conr * 100) / n

Escribir (“El promedio de edades es ”, prom)

Escribir (“La mayor edad es ”, mayor)

Escribir (“El porcentaje de personas con instrucción primaria es ”, p1) Escribir (“El porcentaje de personas con instrucción secundaria es ”, p2)

Escribir (“El porcentaje de personas con instrucción superior es ”, p3)

4.5.Variantes de las estructuras repetitivas

4.5.1. Bucles anidados Los bucles anidados, son bucles incluidos dentro de otro bucle. Se pueden

tener los siguientes tipos de anidamiento:

a) Un bucle Mientras dentro de un bucle Mientras, Repetir – Hasta_que o

Desde.

b) Un bucle Repetir – Hasta_que dentro de un bucle Repetir – Hasta_que,

Mientras o Desde.

c) Un bucle Desde dentro de un bucle Desde, Mientras o Repetir –

Hasta_que.

Consideraciones a tener en cuenta al trabajar con bucles

Un bucle interno debe de estar completamente dentro del bucle externo que lo contiene de lo contrario si los bucles se cruzan se obtendrían

resultados no previstos.

Cuando se construyan los bucles anidados considere cada bucle como

una sentencia y siga la sintaxis ya definida para ellas.

Ejemplo 39 Bucle anidado Desde dentro de otro Desde, para hallar la tabla de multiplicar

del 1 y del 2. Se pide la siguiente salida:

Tabla de multiplicar del 1

1 * 1 = 1

1 * 2 = 2

…….

1 * 12 = 12

Tabla de multiplicar del 2

2 * 1 = 2

2 * 2 = 4

Page 89: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

……

2 * 12 = 24

Observamos que en la tabla del 1, el primer número aparece fijo mientras

que el segundo número varia de 1 a 12, incrementándose cada número en

1, lo mismo sucede en la tabla del 2.

Para calcular el producto emplearemos la operación:

m = i * j

Tenemos bucles anidados donde el bucle externo varía de 1 a 2, y el bucle interno de 1 a 12

Variables a utilizar en el pseudocódigo

i controla el bucle externo

j controla el bucle interno

m producto de los números i, j

Inicio

//Definir variables entero: i, j, m Desde (i 1) hasta (i <= 2) con incremento 1 Hacer

Escribir (“Tabla de multiplicar del” , i) Desde (j 1) hasta (j <= 12) con incremento 1 Hacer

m i * j

Escribir (i , “ * ”, j, “ = ” , m )

Fin_desde Fin-desde

Fin

Ejemplo 40 Un centro de estudios desea saber cuál ha sido el promedio más alto, de un

conjunto de 120 alumnos, sabiendo que cada alumno a llevado 5

asignaturas.

Variables a utilizar en el pseudocódigo

nota nota de cada una de las 5 asignaturas suma suma de las 5 notas

prom promedio de cada alumno

mayor mayor promedio

con1 contador, que cuenta cada alumno con2 contador, que cuenta cada nota

Inicio

// Definir e inicializar variables

entero: nota, suma 0, prom, mayor 0, con1 1, con2 1

// Calculo

Mientras (con1 <= 120) Hacer

Mientras (con2 <= 5) Hacer

Escribir (“Ingresar nota de asignatura”, con, “:”)

Leer (nota) suma suma + nota

Fin_mientras prom suma / 5

Si (prom > mayor) entonces

mayor prom

Fin_si

Fin_mientras Escribir (“El mayor promedio es: ”, mayor)

Fin

Page 90: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Ejemplo 41

Pesudocódigo que reduce una fracción a su mínima expresión. Por ejemplo:

Si se ingresa 36 / 48

num den

36 48 2

18 24 2

9 12 3 3 4

En su mínima expresión es 3 / 4

Variables a utilizar en el pseudocódigo

num numerador

den denominador

d divisor

Inicio

// Definir e inicializar variables

entero: num, den, d 2

// Leer Datos

Escribir (“Ingresar fracción:”) Leer (num, den)

// Calcula serie y multiplica

Mientras ((d < num) and (d < den)) Hacer

Mientras ((num mod d = 0) and (den mod d = 0)) Hacer

num num Div d

den den Div d

Fin_mientras

d d + 1

Fin_mientras

Escribir (“La fracción en su mínima expresión es: ”, num, “/”, den)

Fin

Ejemplo 42

Pseudocódigo que lea N notas de un estudiante y calcule su promedio, sabiendo que se elimina la nota mas baja. Se debe validar el ingreso de

notas, que debe estar comprendido entre 0 y 20.

Variables a utilizar en el pseudocódigo

n cantidad de notas

nota nota

suma suma de notas menor nota mas baja

prom promedio

con contador

Inicio // Definir e inicializar variables

entero: n, con, nota, menor 21

real: suma 0, prom

Escribir (“Ingresar cantidad de notas”)

Leer (n) // Calculo

con 1

Page 91: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

Mientas (con <= n)

Repetir Escribir (“Ingresar nota”)

Leer (nota)

Hasta_que(nota >= 0 and nota <= 20)

suma suma + nota con con + 1

Si (nota < menor)

menor nota

Fin_si

Fin_mientras

prom (suma – menor) / (n – 1)

Escribir (“El promedio es ”, prom)

Ejemplo 43

Pseudocódigo para encontrar todos los números que sean capicúas en un rango dado. Un número es capicúa o poliandro, si al invertir el número nos

da el mismo número.

Por ejemplo, los siguientes números son capicúas.

44 44 373 373 18481 18481

Así, para determinar si el número 44 es capicúa, emplearemos la variable

inver que guardará el resultado de invertir el número 44, de esta manera, si inver es igual a 44 entonces es número capicúa.

Es necesario guardar el número 44 en otra variable por que al calcular el

número invertido perderá su valor original, que es indispensable para

realizar la comparación final.

Se pide que hallar los capicúas de un rango determinado, para esto

utilizamos las variable vi y vf que representan los valores inicial y final

respectivamente, el contador i que indica cada uno de los números que

existe dentro del rango dado, este contador empieza en vi y termina en vf incrementándose en una unidad. Dentro del bucle guardamos i en nro, para

no perder el valor original del número que se esta evaluando.

El bucle interno se encarga de invertir nro, y guardarlo en la variable inver

cuando acaba este bucle incrementamos i para empezar nuevamente el ciclo

externo.

Variables a utilizar en el pseudocódigo

digito cada digito del número

vi número inicial

vf número final

nro variable auxiliar donde guardamos cada número a invertir

inver número invertido

Inicio

// Definir e inicializar variables

entero: vi, vf, nro, digito, inver 0, i

// Leer datos

Escrbir (“Ingresar el valor inicial y final de un rango de números”) Leer (vi, vf)

Page 92: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

// Calcula número capicúa

Desde (i vi) hasta (i<= vf) com incremento 1 Hacer nro i

inver 0

Mientras (nro >0) Hacer digito nro Mod 10

inver 10 * inver + digito

nro nro Div 10

Fin_ mientras

Si (inver = i) entonces

Escribir (inver)

Fin

Fin_si

Fin_desde

Ejemplo 44

Pseudocódigo para buscar el número del tarot de una persona; para hallar el

número del tarot, se tiene que sumar cada uno de los números de la fecha

de nacimiento de una persona y a continuación reducirlos hasta obtener un

solo dígito.

Por ejemplo, para una fecha: 17/10/1970, se realiza:

17 + 10+ 1970 = 1997 1 + 9 + 9 + 7 = 26 2 + 6 = 8

El número del tarot calculado es 8

Para realizar este calculo, el algoritmo pide una fecha en el formato

dd/mm/aa, donde dd es el dia, mm es el mes y aa es el año.

La suma de cada una de estas variables que compone la fecha, se realiza

mediante la operación: nro dd + mm + aa, que en valores es:

nro 17 + 10 + 1970 = 1997

Luego, tenemos que descomponer nro, hallando cada dígito e ir sumándolo.

Para este caso emplearemos las operaciones:

digito nro Mod 10, para hallar cada dígito.

tarot tarot + digito, para sumar cada dígito

nro nro Div 10, para acortar el número

Al acabar la primera iteración del bucle, obtendremos el valor de 26 para la

variable tarot, pero como el enunciado nos pide que el número del tarot sea

de un solo digito, entonces es necesario repetir el mismo proceso, para lo

cual hacemos nro tarot utilizando otro bucle que sea externo.

Variables a utilizar en el pseudocódigo

digito cada digito del número d día de nacimiento

m mes de nacimiento

a año de nacimiento

nro número al cual vamos a calcular el tarot

tarot número de tarot

Inicio

// Definir e inicializar variables

Page 93: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

entero: d, m, a, nro 0, digito, tarot 0

// Leer datos

Escribir (“Ingresar fecha”) Leer (d, m, a)

nro d + m + a

Mientras (nro >9) Hacer tarot 0

Mientras (nro > 0) Hacer

digito nro Mod 10

tarot tarot + digito

nro nro Div 10

Fin_mientras

nro tarot

Fin_mientras

Escribir (“El número del tarot es ”, tarot)

Ejemplo 45

Pseudocódigo para hallar los números primos en un rango dado, un número es primo si es divisible por si mismo y por la unidad. Algunos números

primos son:

1 2 3 5 7 11 13

Por ejemplo, si queremos determinar si el número 11 es primo, primero

hallamos todos los divisores del número y mediante un contador calculamos

la cantidad de divisores que tiene el número, luego comparamos si la

cantidad de divisores es menor o igual que 2, entonces el número evaluado

es número primo.

Como tenemos que hallar los números primos en un rango determinado, es

necesario usar dos bucles repetitivos. Un primer bucle al que llamamos bucle

externo, que nos permite recorrer cada número (nro) definido en el rango vi

y vf. Un segundo bucle, llamado bucle interno que se encarga de calcular la

cantidad de divisores que tiene cada número del rango, mediante un

contador p. Finalmente, al acabar el bucle interno se pregunta si p <= 2 si

cumple es primo, luego se incrementa nro para ir nuevamente al bucle

externo.

Variables a utilizar en el pseudocódigo digito cada digito del número

vi número inicial

vf número final

nro variable auxiliar donde guardamos el nro

p contador de números primos

k contador que representa los posibles divisores

i controla el bucle mientras

Inicio

// Definir variables

entero: vi, vf, nro, k, p

// Leer datos

Escribir (“Ingresar valor inicial y final de un rango”)

Leer (vi, vf)

// Calcula los números primos

Desde (nro vi) hasta (nro <= vf) con incremento 1 hacer

p 0

Page 94: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Desde (k 1) hasta (k <= nro) con incremento 1 hacer

Si (nro Mod k = 0) entonces p p + 1

Fin_si

Fin_desde

Si (p <= 2 ) entonces

Escribir (nro)

Fin

Fin_si

Fin_desde

Ejemplo 46

Pseudocódigo que solicite un valor no negativo (si se ingresa un valor

negativo volverá a pedir el número hasta que se ingrese un número positivo), una vez ingresado el número mostrar los números naturales desde

el 1 hasta el número ingresado de forma consecutiva de manera que se vaya

mostrando un número menos hasta que se muestre solo la unidad.

Por ejemplo, si se ingreso n=6, se mostrará:

123456

12345

1234

123

12

1

Variables a utilizar en el pseudocódigo

nro número ingresado

aux guarda el valor original del número ingresado

con contador de líneas de impresión

n cada número impreso

Inicio // Definir variables

entero: nro, aux, con, n

// Leer Datos

Repetir

Escribir (“Ingresar número:”)

Leer (nro)

Hasta_que (nro>0)

aux nro

Desde (con 1) hasta (con <= aux) con incremento 1 hacer

Desde (n 1) hasta (n <= nro) con incremento 1 hacer

Escribir (n)

Fin_desde

nro nro -1

Fin-desde

Fin

Ejemplo 47

Pseudocódigo que permita ingresar números enteros, y calcule el factorial de

cada número ingresado. El algoritmo termina cuando se ingresa un número

negativo.

Variables a utilizar en el pseudocódigo

nro número ingresado

fact factorial

Page 95: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

con contador

Inicio

// Definir variables

entero: nro, fact, con

// Leer Datos

Repetir

Escribir (“Ingresar número:”)

Leer (nro) fact 1

Si (nro >= 0) entonces Desde (con 1) hasta (con <= nro) con incremento 1 hacer

fact fact * con

Fin_desde

Escribir (“El factorial de ”, nro, “es ”, fact)

Fin_si Hasta_que (nro < 0)

Fin

Ejemplo 48

Se desea calcular los sueldos semanales de N obreros; durante los 5 días de la semana se registran la cantidad de horas diarias y el turno en el que

trabajó el obrero. Un obrero puede alternar su trabajo en cualquiera de los

dos turnos. La tarifa de cada hora trabajada para el turno mañana es de

S/23.00 y para el turno tarde S/25.40. Además, si un obrero trabajó durante

una semana más de 40 horas, se le pagará S/.12.00 por cada hora adicional a las 40.

Variables a utilizar en el pseudocódigo

n cantidad de obreros

hor horas trabajadas

dia cada dia de la semana

totHor total de horas que trabaja un obrero durante una semana

con contador de obreros tur turno en el que trabaja un obrero

pagoDia pago del día

pagoSem pago de la semana

pagoExtra pago extra

Inicio

// Definir e inicializar variables entero: n, hor, dia, con 0, totHor

caracter: tur

real: pagoDia, pagoSem, pagoExtra

// Leer Datos

Escribir (“Ingresar cantidad de obreros:”)

Leer (n)

Repetir

pagoSem 0 totHor 0

Desde (dia 1) hasta (dia <= 5) con incremento 1 hacer

Escribir (“Ingresar turno (M)añana, (T)arde”)

Leer (tur)

Escribir (“Ingresar cantidad de horas trabajadas”) Leer (hor)

Según sea (tur) hacer

„M‟: pagoDia hor * 23.00

Page 96: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

„T‟ : pagoDia hor * 25.40

Fin_según pagoSem pagoSem + pagoDia totHor totHor + hor

Fin_desde

Si (totHor >40) entonces

pagoExtra (hor – 40) * 12.00

Fin_si

pagoSem pagoSem + pagoExtra

Escribir (“El pago semanal es ”, pagoSem)

con con + 1

Hasta_que (con = n)

4.5.2. Bucles infinitos

Son bucles que nunca terminan (no tienen fin). Pueden implementarse

fácilmente utilizando las sentencias Mientras o Repetir – Hasta_que.

Generalmente son condiciones no deseadas y el programador las utiliza

según su criterio, colocando en su interior una instrucción que fuerza la

terminación del bucle, para nuestro caso se utiliza la palabra Salir (break).

Para este caso, reemplazamos en la expresión_lógica por verdadero (true)

Mientras (verdadero) Hacer

instrucciones

Si (condición) entonces

Acción

Salir //termina el bucle infinito

Fin_si

Acción

Fin_Mientras

Repetir

instrucciones

Si (condición) entonces

Acción

Salir //termina el bucle infinito

Fin_si

Acción

Hasta_que (verdadero)

Ejemplo 49

Pseudocódigo que genera una secuencia de números utilizando el siguiente

algoritmo:

Empezamos por cualquier número entero positivo

Si es par, Lo dividimos por dos, si es impar lo multiplicamos por tres y le

sumamos 1

Repetimos el segundo paso con el número resultante, la secuencia se

puede repetir indefinidamente, detenerlo hasta que aparezca el primer número 1

Por ejemplo si ingresemos el número 20, la secuencia generada seria:

10 5 16 8 4 2 1 4 2 1….

Observar que la serie comienza a repetir la serie 4 2 1 indefinidamente, el

algoritmo debe de leer el número inicial, imprimir el número de valores

encontrados hasta la aparición de un valor 1 en la secuencia.

Variables a utilizar en el pseudocódigo

nro cada número de la serie

Inicio

// Definir variable

entero: nro

Page 97: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

// Leer Datos

Escribir (“Ingresar número que inicia la serie:”) Leer (nro)

Mientras (verdadero) hacer // bucle infinito

Si (nro Mod 2 = 0)

nro nro / 2

Sino

Fin_si

nro 3*nro + 1

Escribir (nro)

Si (nro = 1) entonces // cuando nro es igual a 1

Salir // termina el bucle infinito

Fin

Fin_si

Fin_mientras

Ejemplo 50

Pseudocódigo que muestra el mensaje “BUCLE INFINITO” infinitas veces.

Variables a utilizar en el pseudocódigo

No es necesario el uso de ninguna variable

Inicio

Mientras (verdadero)

Escribir (“BUCLE INFINITO”)

Fin_mientras

Fin

Ejemplo 51

Pseudocódigo que imprima el mensaje es par o impar, en caso se ingrese un

número entre 3 y 13, sino está en el intervalo, imprimir el mensaje “fuera de

rango”.

Variables a utilizar en el pseudocódigo

nro número que se evalúa como par o impar

Inicio

// Definir e inicializar variable lógico: r falso

Repetir

Escribir (“Ingresar número”) Leer (nro)

Si (nro >= 3 and nro <= 13) entonces

Si ( nro Mod 2 = 0 ) entonces Escribir (“Es par”) // es par

Sino

Fin_si

Escribir (“Es impar”) // es impar

r verdadero // r se hace verdadero para que

// salga del bucle infinito

Sino

Fin_si

Hasta_que (r)

Escribir (“No esta entre 3 y 13”) r falso // r se hace falso para que siga en

el bucle infinito

Page 98: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Fin

4.6.Ejercicios propuestos

1. Determinar el factorial de los N primero números pares

Número Factorial 2

4

6

8

2

24

720

40320 2. Escribir un pseudocódigo muestre todos los números de tres cifras tales que

la suma de los cuadrados de sus dígitos sea igual al cociente de la división

entera del número entre 3.

3. Los números amigos son aquellos en los que la suma de los divisores de uno es el otro.

220 = 1+2+4+5+10+11+20+22+44+55+110 = 284

284 = 1+2+4+71+142 = 220

Este par de números amigos era conocido por los griegos (220, 284). El

siguiente par de números amigos fue descubierto en el siglo XIII y

redescubierto por Fermat en 1636 (los números 17296 y 18416). Descartes

descubrió el siguiente par: 9363584 y 9437056. Todos estos grandes matemáticos se saltaron el par 1184-1210 que fue descubierto por un niño

italiano de 16 años Niccolò Paganini. Elaborar un pseudocódigo que

encuentre todos estos números amigos.

4. El horóscopo de la alquimia, basado en la numerología y las

correspondencias planetarias, te permitirá conocer qué poderosas energías,

llegadas del cielo en forma de metales, rigen tu vida. Las civilizaciones

antiguas consideraban los metales como la carne de los dioses, y eran

conscientes de sus poderes mágicos. Crearon el horóscopo de los metales, gracias al cuál no sólo conocerás qué

metal te corresponde por tu fecha de nacimiento, sino también el que te rige

cada año. Ponerte joyas con el metal que te pertenezca o llevarlo

simplemente en el bolsillo aumentará los dones que te concede éste y te

aportará protección y suerte.

Elaborar un pseudocódigo que averigüe a qué metal pertenece una persona,

para esto sume los números de tu fecha de nacimiento y a continuación

reducirlos a un sólo dígito. Una vez que tengas el número busca en la tabla

siguiente el metal correspondiente.

Por ejemplo, alguien nacido el 12 de marzo de 1973 estaría bajo la

influencia de: Metal de nacimiento: 1+2+3+1+9+7+3= 26 (2+6) = 8= Níquel

Número Metal Virtudes 1 Plata Seductores y volubles 2 Hierro Dinámicos y combativos 3 Mercurio Locuaces y simpáticos 4 Zinc Impulsivos y serviciales 5 Estaño Inconstantes y sociables 6 Plomo Pesimistas y tímidos 7 Platino Intelectuales y apasionados 8 Niquel Vagabundos y poetas 9 Oro Altruistas y encantadores 0 Cobre Afectuosos y detallistas

Sólo en el caso de que la suma resultante sea 10, 20, 30, 40, 50, 60, 70, 80

ó 90, no se reducirá y se tomará el 0 como número y el Cobre como metal

correspondiente.

Page 99: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

Producto Precio Descuento (%) A

B

C

15.20

12.47

10.50

5. Escribir un pseudocódigo que encuentre el siguiente primo dado un número

ingresado por el usuario. Por ejemplo: si el número ingresado es 20, el

siguiente primo seria 23. 6. Escribir un pseudocódigo que lea un número y lo despliegue como sumas

sucesivas de números. Por ejemplo:

numero = 15245

10000 + 5000 + 200 + 40 + 5

7. Escribir un pseudocódigo para buscar un número cuyo cuadrado sea igual o

más cercano a un número ingresado.

Por ejemplo:

Si se ingresa 14 el cuadrado más cercano es 3.

Si se ingresa 16 el cuadrado más cercano es 4.

8. Escribir un pseudocódigo que lea 100 números positivos de forma aleatoria y consecutiva, calcular y mostrar el mayor número por cada 10 números

ingresados. Además mostrar el mayor número ingresado y diga en que

decena se ingresó.

9. Construir un algoritmo que permita ingresar números enteros, calcular la

suma de los dígitos pares y la suma de sus dígitos impares de cada número

positivo ingresado. El algoritmo termina cuando se ingresa el cero.

10. Se registran las N aulas de la sección secundaria de un centro educativo, y por cada sección se registran los promedios finales de sus M alumnos.

Elaborar un algoritmo que muestre el nombre del mejor alumno de cada

aula y el mejor alumno de toda la sección secundaria, así mismo calcular el

promedio general del aula. 11. Un número perfecto es aquel cuya suma de sus divisores excluyendo el

mismo número da como resultado el número. Por ejemplo 6 es un número

perfecto, porque 1 + 2 + 3 = 6. Se pide elaborar un algoritmo que muestre

los 5 primeros números perfectos.

12. Los números Amstrong o cubos perfectos, son aquellos que sumados sus dígitos al cubo nos da el mismo número. Por ejemplo 153 es un número

Amstrong pues 13 + 53 + 33 = 153. Elaborar un algoritmo que encuentre los 3 primeros números Amstrong.

13. Un centro comercial ofrece tres tipos de productos, como se muestra en el

siguiente cuadro.

El centro comercial vende dichos productos a N número de clientes. Un

cliente cualquiera puede comprar M productos de cada tipo. Se pide elaborar

un algoritmo que calcule el total que paga cada cliente y el total que recauda

el centro comercial.

14. Escribir un pseudocódigo en el que se ingrese un número entre el 1 y el 9

(se pedirá el ingreso de dicho número hasta que cumpla la condición), una vez ingresado el número correcto mostrar la tabla de multiplicar de ese

número, después de mostrar la tabla, el pseudocódigo debe preguntar:

¿Desea ingresar otro número? S/N, si la respuesta es S, se volverá a

ingresar otro número y si la respuesta es N finalizará el pesudocódigo. Las

tablas de multiplicar debe tener el siguiente formato:

5 X 1 = 5

5 X 2 = 10

5 X 9 = 45

15. Un almacén 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

Page 100: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

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%

Se pide elaborar un algoritmo que calcule el monto total que recauda el

almacén, así como, el monto final que paga un cliente. El algoritmo termina

cuando se ingresa una compra negativa.

16. El un proceso repetitivo se ingresa números enteros, se pide elaborar un

algoritmo que calcule el promedio de números negativos. El pseudocódigo

termina cuando se ingresa el número cero.

17. Hacer un algoritmo que lea N consumos de un restaurante. Si el consumo

ingresado excede los 70 soles, el descuento será de 5%. Se pide mostrar el

monto que paga cada cliente.

18. Construir un algoritmo que muestre el mayor y el menor dígito de un

número ingresado.

19. Determinar la suma de los términos que ocupan las posiciones pares y la

suma de los términos que ocupan las posiciones impares, de la siguiente serie, considerando los n primeros términos:

1/3 + 2/5 + 3/7 + 4/9 + 5/11 + ...

20. Un almacén se encuentra de aniversario y ha programado una serie de ofertas. Estas ofertas se basan específicamente en un porcentaje de

descuento sobre el total de compra, de esta manera:

Por una compra mayor o igual a S/.350.00 se hará un descuento del

30%.

Por una compra menor de S/.350.00 pero mayor o igual a S/.200.00 se

hará un descuento del 20%.

Por un monto menor de S/.200.00 pero mayor o igual a S/.100.00 se

hará un descuento del 10%.

Se pide elaborar un algoritmo que calcule el monto total que recauda el almacén por las 25 primeras compras realizadas, así como, el monto final

que paga cada cliente.

21. Una compañía de seguros está preparando un estudio concerniente de todos

sus asegurados. Por cada asegurado se registra los siguientes datos: año de

nacimiento y sexo („M‟ o „F‟), se pide calcular:

El porcentaje de asegurados menores de 30 años

El porcentaje de asegurados de sexo femenino y masculino

La mayor y la menor edad de los asegurados

El registro de asegurados finaliza cuando se ingresa un año negativo. 22. El Ministerio de transportes desea saber, de los N autos que entran a

nuestro país, cuántos entran con calcomanía de cada color. Conociendo el

último dígito de la placa de cada automóvil se puede determinar el color de

la calcomanía, como se muestra en el siguiente cuadro:

Dígito Color 1 o 2

3 o 4

5 o 6

7 o 8

9 o 0

amarilla

negro

rojo

verde

azul 23. Ingresar números enteros y mostrar la cantidad de dígitos que tiene cada

número ingresado. El pseudocódigo termina cuando se ingresa el número

100.

24. Construir un pseudocódigo que calcule y muestre el sueldo de los N empleados de un empresa que trabajan por horas, la tarifa por cada hora

trabajada es única (igual) para todos los empleados, asimismo, calcular la

Page 101: Programación estructurada - …files.clusterportable.webnode.es/200000042-b8ae3b9a8c/parte dos.pdf · plantea una operación como un todo ... Pseudocódigo para sumar dos tiempos

cantidad de empleados que reciben un sueldo menor a S/.500.00, la

cantidad de empleados que reciben un sueldo entre S/.500.00 y S/.1200.00

y la cantidad de empleados que reciben un sueldo mayor a S/.1200.00. 25. La oficina de bienestar social del ministerio de vivienda, realiza un muestreo

en 10 departamentos de nuestro país, de esta manera por cada

departamento se registran los datos de N personas, como edades y pesos.

Se pide elaborar un algoritmo que determine la cantidad de los niños,

jóvenes, adultos y adultos mayores registrados en cada departamento, el

mayor y el menor peso en cada departamento. Se sabe que:

De 0 a 12 años, es niño

De 13 a 29 años, es joven

De 30 a 59 años, es adulto

De 60 a más años, es adulto mayor.