You are on page 1of 54

Lic. Juan Mario Eguívar G.

Lógica computacional Programación 1

Índice

1. Introducción
2. Estructura secuencial
2.1. Definición
2.2. Figuras
2.3. Ejemplos
2.4. Ejercicios propuestos
3. Estructuras selectivas
3.1. Simple
3.1.1. Definición
3.1.2. Figuras y pseudocódigo
3.1.3. Ejemplos
3.1.4. Ejercicios propuestos
3.2. Doble
3.2.1. Definición
3.2.2. Figuras y pseudocódigo
3.2.3. Ejemplos
3.2.4. Ejercicios propuestos
3.3. Múltiple
3.3.1. Definición
3.3.2. Figuras y pseudocódigo
3.3.3. Ejemplos
3.3.4. Ejercicios propuestos
4. Estructuras iterativas
4.1. Mientras
4.1.1. Definición
4.1.2. Figuras y pseudocódigo
4.1.3. Ejemplos
4.1.4. Ejercicios propuestos
4.2. Hasta
4.2.1. Definición
4.2.2. Figuras y pseudocódigo
4.2.3. Ejemplos
4.2.4. Ejercicios propuestos
4.3. Para
4.3.1. Definición
4.3.2. Figuras y pseudocódigo
4.3.3. Ejemplos
4.3.4. Ejercicios propuestos
4.4. Ejercicios misceláneos

UTB Página 1
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

5. Funciones
5.1. Definición
5.2. Figuras y pseudocódigo
5.3. Ejemplos
5.4. Ejercicios propuestos
6. Procedimientos
6.1. Definición
6.2. Figuras y pseudocódigo
6.3. Ejemplos
6.4. Ejercicios propuestos
7. Arreglos
7.1. Vectores
7.1.1. Definición
7.1.2. Figuras y pseudocódigo
7.1.3. Ejemplos
7.1.4. Ejercicios propuestos
7.2. Matrices
7.2.1. Definición
7.2.2. Figuras y pseudocódigo
7.2.3. Ejemplos
7.2.4. Ejercicios propuestos
7.3. Arreglos multidimensionales
7.3.1. Definición
7.3.2. Figuras y pseudocódigo
7.3.3. Ejemplos
7.3.4. Ejercicios propuestos
8. Ordenamiento
8.1. Definición
8.2. Ejemplo
8.3. Ejercicios propuestos
9. Búsqueda
9.1. Definición
9.2. Ejemplo
9.3. Ejercicios propuestos
10. Recursividad
10.1. Definición
10.2. Ejemplo
10.3. Ejercicios propuestos
11. Archivos
11.1. Definición
11.2. Figuras y pseudocódigo

UTB Página 2
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

11.3. Ejemplo
11.4. Ejercicios propuestos

Bibliografía

UTB Página 3
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 1

INTRODUCCIÓN

Los diagramas de flujo y la programación son la base de la formación y concreción


del conocimiento tanto en ingeniería de sistemas como electrónica y su trato indica
la lógica base de la solución de problemas diversos, considerando que los
diagramas utilizados en otras áreas como por ejemplo administración, son
similares mas no iguales.

Por otra parte, cuando se desea resolver un problema se debe seguir los
siguientes pasos:

i) Planteamiento del problema.


Por lo general, será realizado, en primera instancia, por el docente que dicta la
materia y conforme el estudiante avance en la curricula deberá ir adquiriendo
la habilidad de formular el problema en función a un fenómeno que se
presente.

ii) Análisis de variables.


En programas simples se definirán como de entrada (E), proceso (P) o salida
(S) y posteriormente se añadirá las opciones de recepción (R) y devolución
(D). Además, se deberá realizar una breve descripción de la variable y asociar
un acrónimo o una abreviación que se relacione directamente con la
descripción del problema. Finalmente se deberá considerar si las variables son
de tipo numérico o cadena y en tal caso agregar al principio el símbolo $. Por
otra parte, también se puede definir constantes.

iii) Algoritmo.
Es una descripción que se implementará directamente en pseudocódigo, bajo
las reglas específicas de programación, para luego poder trasladarse al
diagrama de flujo correspondiente y que alternativamente también permitirá
realizar la prueba de escritorio.

iv) Diagrama de flujo.


Es la representación gráfica del algoritmo utilizando figuras de programación y
aplicando variables definidas en el análisis.

UTB Página 4
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

v) Prueba de escritorio.
Permite analizar y demostrar la funcionalidad del diagrama de flujo o del
algoritmo en base al planteamiento del problema en base a las variables
definidas en el análisis, lo que más adelante se definirá como proceso de caja
blanca.

vi) Codificación, compilación, depuración, ejecución.


Codificación, consiste en traducir las figuras del diagrama de flujo por
instrucciones en un lenguaje de programación.

Compilación, éste paso lo realiza íntegramente la computadora y consiste en


buscar errores de codificación.

Depuración, lo realiza el programador y consiste en corregir todos los errores


que pueda presentar el programa, la mayoría de ellos serán ubicados por el
compilador.

Ejecución, consiste en hacer funcionar o correr el programa y observar como


realiza la tarea para la cual fue diseñado.

vii) Documentación interna.


Son elementos que permiten aclarar o definir las variables o los procesos,
también, son parte de las notas del analista y/o el programador para
posteriores revisiones o mejoras.

viii) Documentación externa.


También se lo define como manual de usuario que permite a cualquier
persona utilizar el programa.

ix) Mantenimiento.
Consiste en realizar mejoras y actualizaciones al programa para su mejor
desempeño.

UTB Página 5
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 2

ESTRUCTURA SECUENCIAL

2.1. Definición
Implica que seguirá una línea de continuidad con la entrada de datos,
procesos y salida o resultados; además, se requiere aprender los siguientes
conceptos y definiciones:
i) Constante, es un espacio de memoria cuyo dato es fijo, es decir no
cambia durante la ejecución del programa.
ii) Variable, es un espacio de memoria cuyo dato puede tomar distintos
valores cada vez que se ejecuta un programa.
iii) Identificador, es la forma de representar al dato o al espacio de
memoria, utilizando para ello palabras, letras o letras con números. Un
identificador siempre comienza con una letra.
iv) Asignación, consiste en colocar unta dato en el espacio de memoria
utilizando para ello el signo , como por ejemplo:
A1978
SA+B
C$’J’
N$”HOLA”
v) Tipos de datos, para los diagramas de flujo existen varios tipos de datos
pero los más utilizados son:
Tipo Identificador Dato
Entero 123
Número entero E -35
N1 19
Real 12.36
Número real R -1.21
R1 456.09
Carácter$ ‘a’
Carácter C$ ‘;’
C1$ ‘&’
Cadena$ “Hola”
Cadena Cad$ “Dos amigos”
Cad1$ “3 años”
Lógico True
Booleano o lógico L False
L1 True

UTB Página 6
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

2.2. Figuras
Entrada/Salida de datos.

Lectura de datos (Leer).

Proceso de datos ().

Salida de datos por pantalla (Escribir).

Salida de datos por impresora (Mostrar).

Líneas de flujo.

Comentarios.

Conectores internos de página.

Conectores externos de página.

Operadores aritméticos
Operador Símbolo Ejemplo
Suma o adición + A+B
Resta o sustracción - A-B
Multiplicación o producto * A*B
División o cociente / A/B
División entera Div A Div B
Módulo o residuo Mod A Mod B
Potencia ^ A^B

Funciones especiales
Función Símbolo Ejemplo
Valor absoluto || |A|
Parte entera [] [A]
Raíz cuadrada sqrt() sqrt(A)

UTB Página 7
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Prioridad de los operadores


Operador Símbolo Prioridad
Agrupación () Primera
Potencia ^ Segunda
Multiplicación y división *, / Cuarta
División entera y módulo div, mod Tercera
Suma y resta +, - Quinta

2.3. Ejemplos
1) Elaborar un programa que permita sumar dos números enteros y
despliegue el resultado por pantalla.
Análisis
2 números enteros a, b (E)
Suma s (P/S)

Algoritmo
Inicio Programa_suma_2_números
Entero a, b, s
Leer: a, b
sa+b
Escribir: s
Fin

Diagrama de flujo
Inicio

a, b

sa+b

Fin

Prueba de escritorio
a 5 s=7
b 2
s 7

2) Elaborar un programa que permita leer los datos personales de una sola
persona y se los despliegue por pantalla e impresora.
UTB Página 8
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

3) Sumar y multiplicar tres números reales.


4) Halle el cuadrado y cubo de un número.
5) Leer desde el teclado cuatro valores, luego:
a) Imprima la suma de A, B, C, D.
b) Imprima la resta de A menos D.
c) Imprima el cuadrado de B.
d) Imprima el número D elevado a C.
6) Halle el perímetro y área de un cuadrado.
7) Se ingresa por teclado un monto en bolivianos, hallar su equivalente en
dólares, según el cambio actual.
8) Elaborar un programa que solicite por teclado el ingreso de una cantidad
en metros y despliegue por pantalla las equivalencias en centímetros,
milímetros y kilómetros.
9) Se ingresa por teclado dos números enteros, elaborar un programa que
intercambie dichos valores.
10) Calcular el perímetro y área de un rectángulo, habiendo ingresado por
teclado la base y la altura.
11) Se lee un número entero por teclado, calcular el número de dígitos que
tiene dicho número.
12) Se leen dos números enteros por teclado, determinar el mayor y el menor.

2.4. Ejercicios propuestos


1) Elaborar un programa que permita multiplicar tres números enteros.
2) Realizar un programa que solicite el año de nacimiento de una persona y
calcule su edad aproximada.
3) Se ingresa por teclado un monto en euros, hallar su equivalencia en
dólares y euros.
4) Halle las siguientes potencias: n0, n1, n2, n3, n4, n5.
5) Se ingresa por teclado dos números enteros, intercambiar dichos valores
sin utilizar variables auxiliares.
6) Se ingresa el precio de venta de un producto, averiguar cuánto es el
descuento del 16% y el precio con el descuento.
7) Se tiene los siguientes datos de un obrero: Nombre, sueldo base, bono de
antigüedad y descuento. Diseñe un programa que muestre el sueldo
líquido a pagar y el nombre del trabajador.
8) Se ingresa el sueldo básico de un trabajador, hallar el aumento del 12%,
un descuento del 8% y el sueldo líquido.
9) Elabore un programa que permita introducir por teclado los datos de una
persona que trabaja en una institución así como su sueldo básico, luego
despliegue los datos por pantalla y calcule su sueldo líquido realizando los
descuentos correspondientes por ley.

UTB Página 9
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

10) Un trabajador tiene como datos el nombre, el sueldo básico, cantidad de


hijos, cantidad de horas extras. Hallar el bono de producción del 8%,
descuento IVA 13%, aumento del 12%, descuento del seguro del 5%,
bono por cada hijo del 2%, el 0.5% por cada hora extra y el sueldo líquido.
11) Elabore un programa que convierta grados en radianes.
12) Si usted tiene un capital C de unidades monetarias, ganando un interés
del i% por periodo; al cabo de n periodos, ¿a cuánto asciende el capital?.
Sugerencia, utilice la fórmula del interés compuesto: C*(1+i)^n
13) Elabore un programa que permita calcular la edad de una persona en días
ingresando la fecha de nacimiento y la fecha actual. Sugerencia: Utilice la
fórmula [365.25*a]+[30.6*m]+d; donde: a=año, m=mes, d=día.
14) Aplique las leyes de Morgan para demostrar una de las siguientes
demostraciones: ¬(pvq)<=>¬p^¬q; ¬(p^q)<=>¬pv¬q; elaborando la
secuencia correcta de órdenes.
15) Utilizando los números de Catalán, divida un polígono convexo de n+2
lados en triángulos dibujando n-1 diagonales que no se intersectan.
Sugerencia: Aplique la fórmula: cat(n)=4^n/`[(n+1)*sqrt(π*n)].
16) Elaborar un programa que solicite por teclado el ingreso de una cantidad
en minutos y despliegue por pantalla las equivalencias en segundos,
horas, días, meses, años.
17) Elaborar un programa que solicite por teclado el ingreso de una cantidad
en litros y despliegue por pantalla las equivalencias en mililitros, galones.
18) Ingresamos una cantidad en kilos, determine su equivalencia en
toneladas, quintales, arrobas, libras, onzas y gramos.
19) Hallar el 10%, 25%, 50% de un número.
20) Calcular el perímetro y área de un triángulo rectángulo.
21) Calcular el perímetro y área de un círculo.
22) Calcular el volumen de una esfera.
23) Calcular el volumen de un cilindro.
24) Calcular el volumen de un tetraedro.
25) Calcular el volumen de un cono de revolución.
26) Se leen tres números enteros por teclado ordenarlos de forma
descendente.
27) Mostrar el último dígito de un número entero.
28) Se ingresa un número entero por teclado, mostrar por pantalla el número
pero sin su último dígito.
29) Se lee un número entero que tiene tres dígitos, mostrar por pantalla y por
separado los dígitos del número.
30) De un número entero que tiene cuatro dígitos, sumar los cuatro dígitos del
número.

UTB Página 10
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

31) Se lee un número real por teclado, mostrar su parte entera y su parte
decimal.
32) De un número real con dos dígitos en la parte entera y dos dígitos en la
parte decimal, intercambiar las partes.
33) Se tienen dos notas que se evalúan sobre 100 puntos, de un estudiante
de la materia de programación, hallar la tercera nota para que pueda
aprobar con un promedio de 71.
34) Hallar el dígito mayor y el menor de un número entero de tres dígitos.

UTB Página 11
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 3

ESTRUCTURAS SELECTIVAS

3.1. Estructura selectiva simple

3.1.1. Definición

Permite la toma de decisiones en base a la idea de la lógica positiva,


es decir que el resultado se visualizará cuando la condición sea
verdadera.

Operadores lógicos
Operador Símbolo(s) Ejemplo
Mayor que > A>B
Mayor o igual que >= A >= B
Menor que < A<b
Menor o igual que <= A <= B
Igual que = A=B
Diferente que <> A <> B

Operadores relacionales
Operador Símbolo Ejemplo
Y and p1 and p2
O or p1 or p2
No not not (p1)

3.1.2. Figuras y pseudocódigo.

Falso Verdad
Condición(es)

Proceso(s) Verdad

Si (Condición(es))
Entonces: Proceso(s) Verdad
Fin Si

UTB Página 12
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

3.1.3. Ejemplos
1) Se lee tres números por teclado, hallar el mayor de los 3.
Análisis
3 números enteros a, b, c (E)
Mayor may (P/S)

Algoritmo
Inicio Programa_mayor_de_3_números_estr_selec_simple
Entero a, b, c, may
Leer: a, b, c
Si (b > may)
Entonces: may  b
Fin Si
Si (c > may)
Entonces: may  c
Fin Si
Escribir: may
Fin

Diagrama de flujo
Inicio

a, b, c

may  a

Falso Verdad
b > may

may  b

Falso Verdad
c > may

may  c

UTB Página 13
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

may

Fin
Prueba de escritorio
a 5 may=7
b 7
c -1
may 7

2) Se pregunta a quién ejecuta el programa si está habilitado(a) para


votar, si la respuesta es afirmativa (‘S’), entonces se pregunta si
puede elegir votar o no, y si la respuesta es nuevamente
afirmativa, entonces se deberá mostrar el mensaje por pantalla que
diga: “Usted es de la tercera edad”.
Nota: Utilice la lógica positiva y anidamiento (Anidamiento = Una
estructura dentro de la misma estructura) de “Si”.

Condición(es) 1

Condición(es) 2

Proceso(s) Verdad

Si (Condición(es))
Entonces: Si (Condición(es))
Entonces: Proceso(s) Verdad
Fin Si
Fin Si

3.1.4. Ejercicios propuestos


1) Se lee un número entero, si dicho valor está entre 0 y 1 que se
visualice el mensaje: “proporción correcta”.

UTB Página 14

α
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

2) Se lee por teclado un número, si es igual a la constante 12345,


entonces mostrar por pantalla: “Password correcto”.
3) Se pregunta a quién ejecuta el programa si estudió más de 12
años, entonces es bachiller; si estudió más de 15 años, entonces
es técnico superior; si estudió más de 16 años, entonces es
licenciado; más de 18 años, entonces es master; si estudió más de
20 años, entonces es doctor y si estudió más de 22 años es Phd.

3.2. Estructura selectiva doble


3.2.1. Definición
Permite elegir mediante una condición simple o compuesta el tipo de
respuesta o proceso a realizar.

3.2.2. Figuras y pseudocódigo

Falso Verdad
Condición(es)

Proceso(s) Falso Proceso(s) Verdad

Si (Condición(es))
Entonces: Proceso(s) Verdad
Sino: Proceso(s) Falso
Fin Si

3.2.3. Ejemplos
1) Mostrar en pantalla el mayor de dos números.
Análisis
2 números enteros a, b (E/S)

Algoritmo
Inicio Programa_mayor_de_2_números_estr_selec_doble
Entero a, b
Leer: a, b
Si (a > b)
Entonces: Escribir: “El mayor es: “, a
Sino: Escribir: “El mayor es: “, b
Fin Si

UTB Página 15
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Diagrama de flujo
Inicio

a, b

Falso Verdad
a>b

El mayor es: b El mayor es: a

Fin

Prueba de escritorio
a 5 El mayor es: 7
b 7

2) Se lee un número por teclado, si es par, hallar el cubo de dicho


número y si es impar su cuadrado.
3) Se tiene como datos tres notas y el nombre del estudiante, muestre
el promedio y si aprobó o reprobó.
4) Hallar si un número es positivo, negativo o neutro.
5) Si un número es positivo averiguar si es par o impar, si es negativo
sumar tres números y si es neutro multiplicar dos números.
6) Hallar la división de dos números.

3.2.4. Ejercicios propuestos


1) Ordene tres números leídos por teclado en forma ascendente.
2) Encontrar el mayor de tres números.
3) Encontrar el menor de tres números.
4) Encontrar el mayor de cuatro números.
5) Encontrar el menor de cuatro números.
6) Encontrar el mayor de cinco números.
7) Encontrar el menor de cinco números.
8) Encontrar el mayor y menor de tres números.
9) Dados tres números enteros positivos, mostrar el número impar
más grande.
10) Verificar si un número es múltiplo de tres y de cinco.
11) Dados tres números se desea:
a) Hallar la diferencia del mayor con el menor.

UTB Página 16
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

b) Hallar la diferencia del intermedio con el menor.


c) Si los tres números son iguales desplegar un mensaje y no se
debe efectuar ninguna de las operaciones anteriores.
d) Si dos números son iguales, entonces se deberá efectuar el
producto del número igual con el diferente y no se deberá
realizar ninguno de los dos anteriores incisos.
12) Introducir las notas de un estudiante: pp, sp, ef y er (primer parcial,
segundo parcial, examen final y examen de recuperación). Se
desea calcular:
a) La nota final, reemplazando por la peor de las dos notas
anteriores. Se debe tomar en cuenta que la primera y la
segunda nota son por 30 puntos y la final por cuarenta puntos.
b) Si la nota final es mayor o igual a 51 mostrar por pantalla el
mensaje de aprobado, caso contrario de reprobado.
13) Se introduce un número entero de uno, dos o tres dígitos e imprima
el penúltimo dígito, si no lo tuviere que se imprima: “No tiene
penúltimo dígito”.
14) Elabore un programa que lea un número entero n y deduzca si está
comprendido entre -100 y 100.
15) Leer tres números por teclado y deducir si se han introducido en
orden creciente.
16) Se desea elaborar un programa que lea un año por teclado y
determine si es bisiesto.
17) Elabore un programa que resuelva la ecuación de segundo grado
para todas sus posibles soluciones.
18) Introducir dos números enteros y positivos, luego restar el menor
del mayor.
19) Introducir tres números enteros y negativos, luego encontrar el
menor de estos tres números.
20) Introducir dos números entero s, a y b, con parte decimal; luego
mostrar la parte entera que contenga la mayor parte decimal.
21) Leer un número n entero positivo, luego verificar si es par o impar.
Si es par, dividirlo por dos y si es impar, multiplicarlo por dos.
22) Se introduce por teclado la fecha de nacimiento; día, mes, año;
Determinar la fecha del día siguiente.
23) Leer dos números m y n, verificar si uno de ellos es múltiplo del
otro.
24) Elaborar un programa que resuelva un sistema de ecuaciones con
dos incógnitas.
a1x+b1y+c1=0
a2x+b2y+c2=0

UTB Página 17
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

25) Introducir tres números enteros positivos; a, b y c; distintos entre sí;


luego mostrarlos de tal manera que el menor de ellos se encuentre
entre los mayores (los mayores que se encuentran en los extremos
deben estar ordenados ascendentemente).
Si: a=2, b=5, c=12 => Se deberá mostrar: 5, 2, 12

3.3. Estructura selectiva múltiple


3.3.1. Definición
A diferencia de los dos anteriores modelos se realiza una selección
por igualación con múltiples opciones que es muy útil para la creación
de menús.

3.3.2. Figuras y pseudocódigo

Opción
1 2 3 ……. No

Proceso(s) 1 Proceso(s) 2 Proceso(s) 3 …………. Proceso No

Según (Opción)
Opción 1: Proceso(s) 1
Fin opción 1
Opción 2: Proceso(s) 2
Fin opción 2
Opción 3: Proceso(s) 3
Fin opción 3
………….
Defecto: Proceso No
Fin Según

3.3.3. Ejemplos
1) Se lee un número que representa a un día de la semana, muestre
por pantalla a qué día de la semana representa.
Análisis
Opción op (E)

Algoritmo
Inicio Programa_día_de_la_semana_estr_selec_múltiple

UTB Página 18
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Entero op
Leer: op
Según (op)
Opción 1: Escribir: “Lunes”
Fin Opción 1
Opción 2: Escribir: “Martes”
Fin Opción 2
Opción 3: Escribir: “Miércoles”
Fin Opción 3
Opción 4: Escribir: “Jueves”
Fin Opción 4
Opción 5: Escribir: “Viernes”
Fin Opción 5
Opción 6: Escribir: “Sábado”
Fin Opción 6
Opción 7: Escribir: “Domingo”
Fin Opción 7
Defecto: Escribir: “Error”
Fin Según
Fin

Diagrama de flujo
Inicio

op

Opción
1 2 3 4 5 6 7 No

Lunes Martes Miércoles Jueves Viernes Sábado Domingo Error

Fin

Prueba de escritorio
op 5 Viernes

UTB Página 19
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

2) Elabore un menú que permita seleccionar entre altas, medias y


bajas.

3.3.4. Ejercicios propuestos


1) Con la estructura selectiva múltiple realizar las operaciones
aritméticas básicas más la división entera, el módulo o residuo y la
potencia.
2) Con una estructura selectiva múltiple realizar lo siguiente:
a) Promedio de tres notas
b) Perímetro y área de un rectángulo.
c) Mayor de tres números.
d) Averigüe si un número es múltiplo de tres.
e) Averigüe si un número es par o impar.
3) Se lee un número que representa a un mes del año, muestre por
pantalla a qué día de la semana representa.
4) Convertir las calificaciones numéricas: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 a
calificaciones alfabéticas A, B, C, D, E, F, G, H, I, J;
respectivamente.

UTB Página 20
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 4

ESTRUCTURAS ITERATIVAS

4.1. Estructura mientras


4.1.1. Definición
Permite repetir uno o más procesos siempre y cuando se cumpla una
o más condiciones, caso contrario saltará dichos procesos. Además,
se requiere utilizar las siguientes definiciones:
 Contador manual, es una variable de la cual se conoce tanto el
inicio como el valor final; dicha variable altera su valor de una forma
fija hasta llegar a su valor final y se clasifica en:
 Contador, es un contador manual que altera su dato en función
a un valor fijo.
var  valor inicial c1
var  var + valor fijo cc+2
 Acumulador, es un contador manual que altera su valor con
valores diferentes (en función a otra variable).
var  valor inicial a1
var  var + valor diferente aa+x

4.1.2. Figuras y pseudocódigo


Falso
Condición(es)
Verdad
Proceso(s)

Mientras (Condición(es))
Proceso(s)
Fin Mientras

4.1.3. Ejemplos
1) Genere los primeros números impares.
Análisis
Límite lim (E)
Contador c (P)
Número par p (P/S)

UTB Página 21
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Algoritmo
Inicio Programa_ números_pares_estr_mientras
Entero lim, c, p
Leer: lim
c1
p2
Mientras (c <= lim)
Escribir: p
pp+2
cc+1
Fin Mientras
Fin Si

Diagrama de flujo
Inicio

lim

c1
p2

Falso
c <= lim
Verdad
p

cc+1
pp+2

Fin

Prueba de escritorio
lim 5 2 4 6 8 10
c 123456
p 2 4 6 8 10 12

2) Genere los múltiplos de siete.


3) Muestre y halle la suma de los múltiplos del ocho.
4) Muestre y halle la suma y el promedio de los múltiplos del cinco.

UTB Página 22
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

4.1.4. Ejercicios propuestos


1) Generar los primeros números pares.
2) Muestre y halle la suma y promedio de los múltiplos del seis.
3) Muestre y halle la suma y promedio de los múltiplos del cuatro.
4) Genere la serie Fibonacci.
5) Se leen n números, contar cuantos son pares.
6) Se leen n números, contar cuantos están en el rango de 20 a 50.
7) Se leen n números, hallar la suma de los números si es que son
múltiplos de tres.
8) Genere los múltiplos del nueve.
9) Muestre y halle la suma, producto y promedio de los múltiplos del
tres.
10) Genere los primeros números negativos.
11) Genere la siguiente serie de números: 0, 1, 3, 6, 10,15, 21, 28, 36,
45, 55,…
12) Halle la multiplicación en base a sumas sucesivas.
13) Muestre la tabla de multiplicar de cualquier número.
14) Halle el factorial de un número entero.
15) Muestre los factores de un número entero.
16) Halle la suma de los factores de un número.
17) Averigüe cuántos factores tiene un número.
18) Averigüe si un número es primo.
19) Averigüe si un número es perfecto.
20) Averigüe cuántos dígitos contiene un número.
21) Hallar la suma de los dígitos de un número.
22) Encontrar el invertido de un número entero.
23) Averigüe si un número es capicúa.
24) Generar la serie: A, B, A, B, A, B,…
25) Generar la serie: A, B, C, A, B, C, A, B, C,…
26) Generar la serie: 1, 0, 0, 1, 0, 0, 1, 0, 0, 1,…
27) Generar la serie: 1, 0, 0, 2, 0, 0, 3, 0, 0, 4,…
28) Generar la serie: 1, 0, 2, 0, 0, 3, 0, 0, 0, 4,…
29) Generar la serie: 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1,…
30) Determinar si dos números enteros positivos son amigos.

4.2. Estructura hasta


4.2.1. Definición
Permite repetir uno o más procesos al igual que la estructura anterior
con la diferencia de que dichos proceso, se ejecutara siempre una vez
y luego se define si cumple la o las condiciones. Por lo general, ésta

UTB Página 23
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

estructura está diseñada para validar la entrada de datos previamente


descritos en el capítulo 2.

4.2.2. Figuras y pseudocódigo

Proceso(s)

Verdad
Condición(es)
Falso
Repetir
Proceso(s)
Hasta (Proceso(s))

4.2.3. Ejemplos
1. Genere los primeros números impares.
Análisis
Límite lim (E)
Contador c (P)
Número par p (P/S)

Algoritmo
Inicio Programa_ números_pares_estr_hasta
Entero lim, c, p
Repetir
Leer: lim
Hasta (lim <= 0)
c1
p2
Repetir
Escribir: p
pp+2
cc+1
Hasta (c<=lim)
Fin Si

Diagrama de flujo
Inicio

β
α

UTB Página 24
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

α
β

lim

c <= 0

c1
p2

cc+1
pp+1

Verdad
c <= lim
Falso
Inicio

Prueba de escritorio
lim 5 2 4 6 8 10
c 123456
p 2 4 6 8 10 12

2. Genere los múltiplos de siete.


3. Muestre y halle la suma de los múltiplos del ocho.
4. Muestre y halle la suma y el promedio de los múltiplos del cinco.

4.2.4. Ejercicios propuestos


Misceláneo
1) Generar los primeros números pares.
2) Muestre y halle la suma y promedio de los múltiplos del seis.
3) Muestre y halle la suma y promedio de los múltiplos del cuatro.
4) Genere la serie Fibonacci.
5) Se leen n números, contar cuantos son pares.
6) Se leen n números, contar cuantos están en el rango de 20 a 50.
7) Se leen n números, hallar la suma de los números si es que son
múltiplos de tres.

UTB Página 25
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

8) Genere los múltiplos del nueve.


9) Muestre y halle la suma, producto y promedio de los múltiplos del
tres.
10) Genere los primeros números negativos.
11) Genere la siguiente serie de números: 0, 1, 3, 6, 10,15, 21, 28, 36,
45, 55,…
12) Halle la multiplicación en base a sumas sucesivas.
13) Muestre la tabla de multiplicar de cualquier número.
14) Halle el factorial de un número entero.
15) Muestre los factores de un número entero.
16) Halle la suma de los factores de un número.
17) Averigüe cuántos factores tiene un número.
18) Averigüe si un número es primo.
19) Averigüe si un número es perfecto.
20) Averigüe cuántos dígitos contiene un número.
21) Hallar la suma de los dígitos de un número.
22) Encontrar el invertido de un número entero.
23) Averigüe si un número es capicúa.
24) Generar la serie: A, B, A, B, A, B,…
25) Generar la serie: A, B, C, A, B, C, A, B, C,…
26) Generar la serie: 1, 0, 0, 1, 0, 0, 1, 0, 0, 1,…
27) Generar la serie: 1, 0, 0, 2, 0, 0, 3, 0, 0, 4,…
28) Generar la serie: 1, 0, 2, 0, 0, 3, 0, 0, 0, 4,…
29) Generar la serie: 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1,…
30) Determinar si dos números enteros positivos son amigos.

4.3. Estructura para


4.3.1. Definición
Permite repetir uno o más procesos al igual que las estructuras
anteriores en base a la condición que se dé dentro del contador
automático.
 Contador automático, es una variable en la que se indica su inicio y
fin; dicha variable altera su valor de forma fija hasta que llega al
valor final. La forma en que se altera el valor de la variable
(incremento, decremento) es por defecto en una unidad.
var  valor inicial  valor final; incremento
i  n  1; -1
i  0  (n-1); 2
i  (j+1)  k Acá el incremento es por defecto de 1 en 1

UTB Página 26
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

4.3.2. Figuras y pseudocódigo

v  vi  vf

Proceso(s)

Falso
i
Verdad
Para ( i vi  vf)
Proceso(s)
Fin Para

4.3.3. Ejemplos
1) Genere los primeros números impares.
Análisis
Límite lim (E)
Contador automático i (P)
Número par p (P/S)

Algoritmo
Inicio Programa_ números_impares_estr_para
Entero lim, i, p
Repetir
Leer: lim
Hasta (lim <= 0)
p1
Para (i  1  lim)
Escribir: p
pp+2
Fin Para
Fin Si

Diagrama de flujo
Inicio

lim

β
α
UTB Página 27
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

α
β

lim <= 0

p2

i  1  lim

pp+2

Falso
i
Verdad
Fin

Prueba de escritorio
lim 5 2 4 6 8 10
i 1 5||1 2 3 4 5
p 2 4 6 8 10 12

2) Genere los múltiplos de siete.


3) Muestre y halle la suma de los múltiplos del ocho.
4) Muestre y halle la suma y el promedio de los múltiplos del cinco.

4.3.4. Ejercicios propuestos


1) Generar los primeros números pares.
2) Muestre y halle la suma y promedio de los múltiplos del seis.
3) Muestre y halle la suma y promedio de los múltiplos del cuatro.
4) Genere la serie Fibonacci.
5) Se leen n números, contar cuantos son pares.
6) Se leen n números, contar cuantos están en el rango de 20 a 50.
7) Se leen n números, hallar la suma de los números si es que son
múltiplos de tres.
8) Genere los múltiplos del nueve.
9) Muestre y halle la suma, producto y promedio de los múltiplos del
tres.

UTB Página 28
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

10) Genere los primeros números negativos.


11) Genere la siguiente serie de números: 0, 1, 3, 6, 10,15, 21, 28, 36,
45, 55,…
12) Halle la multiplicación en base a sumas sucesivas.
13) Muestre la tabla de multiplicar de cualquier número.
14) Halle el factorial de un número entero.
15) Muestre los factores de un número entero.
16) Halle la suma de los factores de un número.
17) Averigüe cuántos factores tiene un número.
18) Averigüe si un número es primo.
19) Averigüe si un número es perfecto.
20) Averigüe cuántos dígitos contiene un número.
21) Hallar la suma de los dígitos de un número.
22) Encontrar el invertido de un número entero.
23) Averigüe si un número es capicúa.
24) Generar la serie: A, B, A, B, A, B,…
25) Generar la serie: A, B, C, A, B, C, A, B, C,…
26) Generar la serie: 1, 0, 0, 1, 0, 0, 1, 0, 0, 1,…
27) Generar la serie: 1, 0, 0, 2, 0, 0, 3, 0, 0, 4,…
28) Generar la serie: 1, 0, 2, 0, 0, 3, 0, 0, 0, 4,…
29) Generar la serie: 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1,…
30) Determinar si dos números enteros positivos son amigos.

4.4. Ejercicios misceláneos


Estándar
1) Hallar el máximo común divisor y el mínimo común múltiplo de dos
números enteros positivos.
2) Se desea calcular independientemente la suma de los números pares e
impares comprendidos entre 1 y 200.
3) Calcular y visualizar la suma y el producto de los números pares
comprendidos entre 200 y 4000, ambos inclusive.
4) Construir la tabla de la suma.
5) Construir la tabla de la resta.
6) Construir la tabla de multiplicar.
7) Construir la tabla de la división.
8) Desplegar los primeros 25 números primos.
9) Dado un número real n, se desea encontrar su parte entera.
10) Dado un número n entero positivo, mostrar todos los números no primos
anteriores a n.
11) Calcular el cociente y resto de dos números enteros positivos a y b
mediante restas sucesivas.

UTB Página 29
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

12) Hallar la raíz cuadrada aproximada de un número n mayor o igual a


cero.
13) Hallar la raíz cúbica aproximada de un número n mayor o igual a cero.
14) Hallar la raíz cuarta aproximada de un número n mayor o igual a cero.
15) Hallar el producto de tres números enteros positivos a, b y c, mediante
sumas sucesivas.
16) Dado un número n entero positivo, verificar si éste es primo; si es así
hallar el factorial de n; caso contrario realizar la sumatoria de 0 hasta n.
17) Introducir un número entero positivo n, mostrar en pantalla todos los
múltiplos positivos de 3 y 9 anteriores a n.
18) Introducir tres números enteros positivos n, li (límite inferior), ls (límite
superior), donde li < ls; mostrar la tabla de multiplicar de n, desde li
hasta ls.
19) Convertir un número entero positivo n menor a 4000 en su equivalente
de número romano.
20) Convertir un número romano r en su número equivalente decimal.
21) Hallar el cuadrado de un número entero positivo n en base a la suma de
sus impares.
Si: n = 4 => 42 = 1 + 3 + 5 + 7 = 16
n = 3 => 32 = 1 + 3 + 5 = 9
22) Hallar el cubo de un número entero positivo n en base a la suma de
impares.
Si: n = 2 => 23 = 3 + 5 = 8
n = 3 => 33 = 7 + 9 + 11 = 27
n = 4 => 43 = 13 + 15 + 17 + 19 =64
23) Dados dos números x e y, hallar la potencia xy en base a sumas
sucesivas.
24) Dado un número n entero positivo mayor a 1, mostrar todos los números
primos anteriores a n.
25) Dado un número real positivo n, convertir la parte decimal en entera.
Si: n = 123.456 => m=0.123456
26) Dado un número entero positivo n, encontrar la raíz cuadrada, sin utilizar
el operador de exponenciación, ni la función raíz cuadrada. La raíz
cuadrada debe ser el entero más cercano menor o igual a n.
27) Representar cualquier número entero positivo n mediante sumas de
potencias de dos.
Si: n = 15 => 15 = 23 + 22 + 21 + 20
n = 7 => 7 = 22 + 21 + 20
28) Representar cualquier número entero positivo n mediante sumas y
restas de potencias de tres.
Si: n = 12 => 12 = 32 + 21

UTB Página 30
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

n = 15 => 15 = 33 - 32 - 31
29) Introducir dos números enteros positivos n y k, luego hallar el menor
múltiplo de k respecto a n.
Si: n = 7 y k = 3 => El menor múltiplo de 3 respecto a 7 es 6.
n = 12 y k = 5 => El menor múltiplo de 5 respecto a 12 es 10.
30) Introducir dos números enteros positivos n y k, luego hallar el múltiplo de
k que esté más cerca de n.
Si: n = 7 y k = 3 => El múltiplo más cercano de 3 respecto a 7 es 6.
n = 14 y k = 5 => El múltiplo más cercano de 5 respecto a 14 es 15.
n = 10 y k = 4 => El múltiplo más cercano de 5 respecto a 10 es 8 ó
12.
31) Dados dos números enteros positivos m y n, se desea obtener la
división de los mismos, en el formato de fracción mixta simplificándolo al
máximo.
18 1
Si: m = 18 y n = 4 => = 4 2 (Cuatro enteros y un medio).
4
Lote de números
1) Leer n números y mostrar cuántos números negativos se han leído.
2) Dado un lote de n números, determinar cuántas veces un número
positivo está seguido de un cero.
3) Dado un lote de n números determinar cuántos son primos, pares e
impares.
4) Dado un conjunto de n números determinar el promedio de los pares y
los impares.
5) Dado un conjunto de n números, mostrar la suma de todos aquellos que
no son primos y su promedio.
6) Encontrar el menor de n números.
7) Encontrar el mayor de n números.
8) Encontrar el menor y mayor de n números.
9) Dado un conjunto de n números, se desea saber:
a) El promedio de los números pares.
b) El promedio de los números impares.
c) La suma de los n números y el promedio.
10) Dado un lote de n grupos de datos, cada grupo contiene tres datos que
son los lados de un triángulo, se pide calcular el área, luego desplegar el
área y los lados.
11) De un lote de n números se pide determinar:
a) ¿Cuántas veces un número par está seguido por dos impares?
b) ¿Cuántas veces un número positivo está seguido por un negativo y
cero?
12) Dado un lote de z números se pide:

UTB Página 31
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

a) Determinar la cantidad de números primos y su suma.


b) Determinar la cantidad de números perfectos y su suma.
c) Determinar la cantidad de números no primos y su suma.
d) El promedio total de los números.
13) Dado un conjunto de n números se pide mostrar el promedio de cada
tres números:
Si: n = 5 => 4
3
2 => (4 + 3 + 2) / 3 = 3
7 => (3 + 2 + 7) / 3 = 4
9 => (2 + 7 + 9) / 3 = 6
14) Se tienen n números que representan el sueldo de n personas, se pide
mostrar la suma total de sueldos, el sueldo promedio, el sueldo mínimo
y el sueldo máximo.
15) Introducir números enteros positivos, finalizar cuando introduzca el -999
y para cada número introducido se pide:
a) Si el número es par, calcular su factorial.
b) Si el número es impar, verificar si es primo.
c) Si el número es impar y además es múltiplo de tres mostrar la suma
de sus divisores.
Manejo de dígitos
1) Dado un número n entero positivo mostrar la cantidad de dígitos pares
que éste contiene.
2) Dado un número n entero positivo mostrar la cantidad de dígitos impares
que éste contiene.
3) Dado un número n entero positivo mostrar la cantidad de dígitos cero
que éste contiene.
4) Dado un número n entero positivo mostrar la cantidad de dígitos
diferentes de cero que éste contiene.
5) Dado un número entero positivo n se desea saber:
a) ¿Cuántos de sus dígitos son pares?
b) ¿Cuántos de sus dígitos son múltiplos de tres?
c) La suma de todos sus dígitos.
6) Dado un número entero positivo n, contar cuántos de sus dígitos son
múltiplos 2, 3 y 5.
7) Dado un número entero positivo n, invertirlo y almacenarlo en m; luego
mostrar ambos números.
8) Dado un número entero positivo n y defina lo siguiente:
Si: n = 18953647, número válido, tiene los dígitos diferentes.
n = 23452, número no válido, tiene dígitos repetidos.

UTB Página 32
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

9) Dado un número entero positivo n con los dígitos diferentes entre sí,
determinar el mayor dígito que éste contiene y la posición que ocupa
contando de derecha a izquierda.
Si: n = 3264510 => El dígito mayor es 6 y se encuentra en la posición 5.
10) Dado un número entero positivo n con los dígitos diferentes entre sí,
determinar el menor dígito que éste contiene y la posición que ocupa
contando de derecha a izquierda.
Si: n = 3172645 => El dígito menor es 1 y se encuentra en la posición 6.
11) Dado un número entero positivo n con los dígitos diferentes entre sí, se
pide intercambiar el dígito mayor con el dígito menor.
12) Dados dos números enteros positivos a y b, dado a mayor que b.
determinar cuántas veces el número b se encuentra en a.
Si: a = 32432 y b = 32 => 32 se encuentra en 32432, 2 veces.
a = 77777 y b = 77 => 77 se encuentra en 77777, 4 veces.
13) Dado un número entero positivo n ordenar sus dígitos en forma
ascendente.
14) Dado un número entero positivo n ordenar sus dígitos en forma
descendente.
15) Dado un número real positivo r, se pide invertir los dígitos del número,
manteniendo la cantidad de dígitos en la parte entera como en la parte
decimal.
Si: r = 123.45 => s = 543.21
16) Dado un número entero positivo n con los dígitos diferentes entre sí
mostrar el dígito mayor y la posición que éste ocupa; se debe tomar en
cuenta las posiciones de izquierda a derecha.
17) Dado un número real positivo r contar la cantidad de dígitos enteros y
decimales que contenga.
18) Dado un número entero positivo n hallar la suma de los factoriales de los
dígitos.
19) Leer un número n entero positivo de más de cuatro dígitos e
intercambiar los dígitos de las posiciones pares con los dígitos de las
posiciones impares (de derecha a izquierda).
20) Leer un número real positivo r, luego intercambiar el primer dígito de la
parte entera con el primer dígito de la parte decimal.
Si: r = 987.321 => s = 187.329
21) Mostrar todos los números de tres dígitos que cumplan las siguientes
condiciones:
a) Todos sus dígitos deben ser distintos entre sí.
b) El primer dígito de la derecha debe ser par.
c) El dígito central debe ser primo.

UTB Página 33
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

22) Dado un número n entero positivo de más de seis dígitos construir otros
dos números a y b, donde a está formado por los dígitos pares de n y b
está formado por los dígitos impares de n.
23) Dado un número n entero positivo, eliminar todos los dígitos pares de
éste contenga.
24) Dado un número n entero positivo, eliminar todos los dígitos cero de
éste contenga.
25) Dado un número n entero positivo, eliminar todos aquellos dígitos que
se encuentran más de una vez en n (debe permanecer únicamente uno
de ellos).
26) Dado un número entero positivo n, se pide sumar 1 a los dígitos pares y
restar 1 a los dígitos impares.
27) Dado un número real positivo r, cambiar la parte entera con la parte
decimal y con el orden de los dígitos invertidos.
28) Dado un número entero positivo n de más de tres dígitos, hacer rotar los
dígitos de n, a la derecha k veces (k entero positivo mayor a 0); además,
mostrar cada rotación.
29) Dado un número x entero positivo generar y desplegar el número
capicúa que le corresponde de la siguiente manera:
Si: x = 123 => El número capicúa correspondiente es 12321.
30) Dado un número entero positivo n de más de tres dígitos, hacer rotar los
dígitos de n a la izquierda k veces (k entero positivo mayor a 0);
además, mostrar cada rotación.
31) Dado un número n entero positivo de más de seis cifras y otro k también
entero positivo de una sola cifra, insertar éste elemento en la posición p
(p es entero positivo y menor o igual al número de dígitos que tiene n.
considerar las posiciones del número n de derecha a izquierda del
número n.
Si: n = 12608567, k = 9 y p = 4; entonces: n = 126089567
32) Dado un número n entero positivo y otro k también entero positivo, se
pide insertar el número k en la posición p (p es entero positivo y menor o
igual al número de dígitos que tiene n. Considerar las posiciones del
número n de derecha a izquierda) del número n.
Si: n = 123, k = 5467 y p = 2; entonces: n = 1254673
n = 6, k = 54321 y p = 1; entonces: n = 654321
33) Generar un número n de k dígitos que cumpla las siguientes
condiciones:
a) Si la posición es múltiplo de dos asignar el dígito 0.
b) Si la posición es múltiplo de tres pero no de dos asignar el 1.
c) Si la posición es múltiplo de cinco pero no de dos ni de tres asignar
el 2.

UTB Página 34
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

d) Si no se cumple ninguna de las anteriores condiciones asignar el 3.


Si: k = 10, entonces: n = 3 0 1 0 2 0 3 0 1 0
(Considerar las posiciones de izquierda a derecha).
34) Introducir n números enteros positivos por teclado, desplegar aquellos
números tales que la diferencia entre el número y el invertido den como
resultado 54.
35) Dado un conjunto de n números enteros positivos mayores a cien,
generar un número a con los dígitos centena de los números
introducidos.
Si: n = 5 => 123, 7645, 6534, 126273, 123343
Entonces: a = 16523
36) Dado un número n entero positivo, hacer lo siguiente:
a) Si la cantidad de dígitos de n es impar, verificar si el elemento central
del número es un punto silla (es un número que se encuentra situado
entre dos números mayores).
b) Si la cantidad de dígitos de n es par, dividir el número en otros dos
números, a y b; mostrar el mayor y el menor, además de sus
posiciones (considerar las posiciones de derecha a izquierda) de los
dígitos que se encuentran en la primera parte (a) y hallar la suma de
todos los dígitos no primos que se encuentran en la segunda parte
(b).
Si: n = 1763542 => La cantidad de dígitos es impar y el elemento
central es 3, es punto silla.
Si: n = 60514718 => La cantidad de dígitos es par, entonces se debe
dividir en otros dos números.
a = 6051 => El dígito mayor es 6 y la posición que ocupa es 4.
b = 4718 => La suma de los dígitos no primos es: s = 4+1+8=13
37) Introducir un número n entero positivo, luego mostrar cada dígito par de
n, generando un nuevo número con dígitos impares en sentido
decreciente.
Si: n = 5634528; entonces se deberá obtener lo siguiente:
5 6 3 4 5 2 8 => Mostrar: 7531
Mostrar: 1
Mostrar: 31
Mostrar: 531
38) Introducir n números, finalizar cuando se introduzca -999, mostrar todos
aquellos números que el primer y último dígito igual.
39) Introducir por teclado un conjunto de n números, los cuales representan
los datos de una encuesta realizada a n estudiantes de la carrera de
ingeniería respecto a su edad y sexo. Cada número está formado por
tres dígitos que representan la edad y el sexo del estudiante

UTB Página 35
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

encuestado, los datos se deben leer de la siguiente manera: Los dos


primeros dígitos representan la edad del estudiante y el tercer dígito el
sexo (1 – Varón, 0 – Mujer), los dígitos se cuentan de izquierda a
derecha. Se pide mostrar en pantalla:
a) El número total de mujeres.
b) El número total de varones.
c) El promedio de edad de los varones.
d) El promedio de edad de las mujeres.
e) El promedio total de todos los estudiantes encuestados.
40) Generar la tabla Booleana para n entradas.
Si: n = 2; entonces se tiene:
A B
0 0
0 1
1 0
1 1
41) Dado un número n entero positivo, mostrar todos los dígitos que son
puntos silla.
42) Dado un número n entero positivo, generar el triángulo de Pascal de
grado n.
43) Introducir un número entero positivo n, formar otro número real m a
partir de los dígitos de n. la parte entera de estar formada por los dígitos
pares y la parte decimal por los dígitos impares.
Si: n = 6524381 => r = 6248.531
44) Introducir un número r entero positivo, llevar a la parte derecha los
dígitos impares y a la izquierda los pares, ordenándolos
ascendentemente.
Si: r = 54532767 => r = 24635577
45) Dado un número n entero positivo en base 10, hallar su equivalente m
en base x (con x, entero positivo, en el rango 1 < x < 10).
Si: n = 143(10) y x = 5 => m = 1033(5)
46) Dado un número real positivo r en base 10, menor a 1, hallar su
equivalente m en base x, con x entero positivo mayor a 1 y menor a 10,
y que sea máximo de cinco dígitos.
Si: r = 0.53(10) y x = 7 => m = 0.34653(7)
47) Dado un número real positivo r en base 10, hallar su equivalente m en
base x, donde x es un número entero positivo mayor a 1 y menor a 10
(luego del punto decimal máximo cinco dígitos).
Si: r = 32.15(10) y x = 5 => m = 112.03333(5)

UTB Página 36
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

48) Dado un número n entero positivo en base x ( x es un número entero


positivo mayor a 1 y menor a 10), se desea obtener su equivalente en
base 10.
Si: n = 1202 y x = 3 => m = 47(10)
49) Dado un número real positivo r menor a 1 en base x (x es un número
entero positivo mayor a 1 y menor a 10), se desea obtener su
equivalente (luego del punto decimal máximo cinco dígitos).
Si: r = 0.102 y x = 3 => m = 0.407(10)
50) Dado un número real positivo r en base x (x es un número entero
positivo mayor a 1 y menor a 10), obtener su equivalente en base 10.
Si: r = 121.11 y x = 4 => m = 25.3125(10)
51) Dado un número n entero positivo en base x, hallar su complemento
auténtico (el complemento auténtico de un número N con K dígitos en
una base B se define como: CA(N(B)) - BK - N.
Si: n = 12345 y x = 7 => CA(12345(7)) = 54322(7)
52) Dado un número n entero positivo en base x, hallar su complemento
restringido (el complemento restringido de un número N con K dígitos en
una base B se define como: CR(N(B)) - (BK – 1).- N
Si: n = 12345 y x = 7 => CR(12345(7)) = 54321(7)
53) Dados dos números enteros positivos, a y b, en base x (x es un número
entero positivo mayor a 1 y menor a 10), hallar la suma de n respecto a
m en base x.
Si: m = 1207, n = 7640 y x = 8 => s = 1207(8) + 7640(8) = 11047(8)
54) Dados dos números enteros positivos, a y b, en base x (x es un número
entero positivo mayor a 1 y menor a 10), hallar la diferencia de n
respecto a m en base x.
Si: m = 4233, n = 1234 y x = 6 => r = 4233(6) - 1234(6) = 2555(6)
55) Dados dos números enteros positivos, a y b, en base x (x es un número
entero positivo mayor a 1 y menor a 10), hallar el producto de n respecto
m en base x.
Si: m = 123, n = 12 y x = 5 => p = 123(5) * 12(5) = 2031(5)
56) Dados dos números enteros positivos, a y b, en base x (x es un número
entero positivo mayor a 1 y menor a 10), hallar la división entera de n
respecto a m en base x.
Si: m = 2031, n = 12 y x = 5 => d = 2031(5) / 12(5) = 123(5)

Sucesiones y series
1) Generar la siguiente sucesión para n términos: 0, 1, 2, 3, 4, 5,…
2) Generar la siguiente sucesión para n términos: 0, 2, 3, 5, 8, 12, 19, 31,…
3) Generar la siguiente sucesión para n términos: 0, 0, 0, 1, 1, 1, 0, 0, 0, 1,
1,1,…

UTB Página 37
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

4) Generar la siguiente sucesión para n términos: 0, 2, 3, 8, 15, 30, 56,


104,…
5) Generar la siguiente sucesión para n términos: 1, 3, 2, 4, 5, 7, 6, 9, 11,
10, 12,…
6) Generar la siguiente sucesión para n términos: 1, 1, 1, 3, 5, 9, 17, 31,…
7) Generar la siguiente sucesión para n términos: 1, 3, 7, 13, 21, 31, 43,…
8) Generar la siguiente sucesión para n términos: 1, 3, 7, 15, 31, 63, 127,…
9) Generar la siguiente sucesión para n términos: 1, 4, 13, 40, 121, 364,…
10) Generar la siguiente sucesión para n términos: 2, 12, 30, 56, 90,…
11) Generar la siguiente sucesión para n términos: 7, 6, 5, 7, 6, 5, 7, 6, 5,…
12) Generar la siguiente sucesión para n términos: 5, 3, 1, 5, 3, 1, 5, 3, 1,…
13) Generar la siguiente sucesión para n términos: 1, -3, 5, -7, 9, -11, 13,…
14) Generar la siguiente sucesión para n términos: 1, 2, 3, 2, 3, 4, 3, 4, 5, 4,
5, 6,…
15) Generar la siguiente sucesión para n términos: -1, 1, -1, 1, -1, 1, -1, 1,…
16) Generar la siguiente sucesión para n términos: 0, 1, 3, 7, 14, 26,…
17) Generar la siguiente sucesión para n términos: -1, 0, 3, 8, 15, 24,…
18) Generar la siguiente sucesión para n términos: 0, 1, 1, 2, 4, 7, 13, 24,…
19) Generar la siguiente sucesión para n términos: 0, 1, 0, 0, 1 ,1, 0, 0, 0, 1,
1, 1,…
20) Generar la siguiente sucesión para n términos: 1, 0, 1, 1, 0, 0, 1, 1, 1, 0,
0, 0,…
21) Generar la siguiente sucesión para n términos: 0, 1, 2, 3, 4, 5, 6, 8, 10,
7, 9, 11,…
22) Generar la siguiente sucesión para n términos: 1, 2, 2, 3, 3, 3, 4, 4, 4,
4,…
23) Generar la siguiente sucesión para n términos: 0, 1, 2, 0, 1, 2, 3, 4, 0, 1,
2, 3, 4, 5, 6,…
24) Generar la siguiente sucesión para n términos: -1, 0, -2, 1, -3, 2, -4, 3,…
25) Generar la siguiente sucesión para n términos: 1, 0, 3, 2, 5, 4, 7, 6,…
26) Generar la siguiente sucesión para n términos: -7, -7, 6, -3, 5, 26, 81,
255,…
27) Generar la siguiente sucesión para n términos: 4, 6, 8, 11, 15, 21, 30,
44, 66,…
28) Generar la siguiente sucesión para n términos: 1, 2, 4, 3, 5, 7, 6, 8, 10,
12, 9, 11, 13, 15, 17,…
29) Generar la siguiente sucesión para n términos: 1, 1, 3, 0, 5, -1, 7, -2, 9,
-3,…
30) Generar la siguiente sucesión para n términos: 1, 1, 3, 0, 5, -1, 7, -2, 9,
-3,…

UTB Página 38
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

31) Generar la siguiente sucesión para n términos: 2, 1, 0, 6, 5, 4, 12, 11,


10, 20, 19, 18,…
32) Generar la siguiente sucesión para n términos: 0*1, 1*2, 3*5, 8*13,…
33) Generar la siguiente sucesión para n términos: -1, 0, 1, -1, 0, 1, -1, 0,
1…
34) Generar la siguiente sucesión para n términos: 1, 2, 3, 2, 1, 2, 3, 2, 1,…
35) Generar la siguiente sucesión para n términos: -1, 2, 3!, 4, -5, 6!, -7, 8,
9!, 10, -11,…
36) Introducir un número n entero positivo, luego mostrar el siguiente
triángulo numérico para n filas:
Si: n = 4, entonces se tiene: 1, 3, 5, 7
1, 3, 5
1, 3
1
37) Introducir un número n entero positivo, luego mostrar el siguiente
triángulo numérico para 2n filas:
Si: n = 3, entonces se tiene: 1, 3, 5
5, 3, 1
1, 3
3, 1
1
1
38) Introducir un número n entero positivo, luego mostrar el siguiente
triángulo numérico para n filas:
Si: n = 4, entonces se tiene: 1
2, 4
3, 6, 9
4, 8, 12, 16
Sumatorias
1) Hallar la suma de los n primeros términos de la siguiente serie:
1+2+3+4+5+6+7+…
2) Hallar la suma de los n primeros términos de la siguiente serie:
1+3+6+10+…
3) Hallar la suma de los n primeros términos de la siguiente serie:
1!+2!+3!+4!+5!+6!+…
4) Hallar la suma de los n primeros términos de la siguiente serie:
0!+1!+1!+2!+3!+5!+8!+13!+…
5) Hallar la suma de los n primeros términos de la siguiente serie: (x+1)!+
(x+2)!+ (x+3)!+ (x+4)!+… (Con x entero positivo).

UTB Página 39
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

1
6) Hallar la suma de los n primeros términos de la siguiente serie: 1 + 2 +
1 1 1 1 1 1 1
+4+5+⋯ 1+2+3+4+5+⋯
3
1 1
7) Hallar la suma de los n primeros términos de la siguiente serie: +4+
2
1 1 1
+ 8 + 10 + ⋯
6
1 1
8) Hallar la suma de los n primeros términos de la siguiente serie: + 21 +
20
1 1 1
+ 23 + 24 + ⋯
22
1
9) Hallar la suma de los n primeros términos de la siguiente serie: − 1! +
3 5 7 9
− + − +⋯
2! 3! 4! 5!
1∗2
10) Hallar la suma de los n primeros términos de la siguiente serie: −
3!
3∗4 5∗6 7∗8 9∗10
+ 11! − + −⋯
7 15 19!
11) Dado un número n entero positivo, hallar el valor de la siguiente
𝑦
sumatoria: ∑𝑛𝑥=1 ∑𝑛𝑦=1 𝑥!
12) Dado un número n entero positivo, hallar el valor de la siguiente
(2𝑖)
sumatoria: ∑𝑛𝑖=1(−1)𝑖+1 (2𝑖+1)!
13) Dados los números m y n enteros positivos, hallar el valor de la
𝑖∗𝑗∗𝑘
siguiente sumatoria: ∑𝑚 𝑛 𝑚+𝑛
𝑖=1 ∑𝑗=1 ∑𝑘=𝑖+𝑗 𝑚+𝑛
14) Dado un número n entero positivo, hallar el valor de la siguiente
productoria: ∏𝑛𝑖=1 𝑖 2
15) Dados tres números enteros positivos m, n y p, encontrar el valor de la
𝑝
siguiente expresión: ∑𝑚 𝑛
𝑖=1 ∑𝑗=1 ∏𝑘=1(𝑖 + 𝑗) ∗ (𝑗 + 𝑘)
16) Dado un número n entero positivo, hallar el valor de la siguiente
1! 2! 3! 4!
sumatoria: ∑1 𝑘
− ∑2 𝑘
+ ∑3 𝑘
− ∑4 𝑘

𝑘=1 𝑥! 𝑘=1 𝑥! 𝑘=1 𝑥! 𝑘=1 𝑥!
17) Calcular el valor de ex mediante aproximaciones sucesivas con un error
1 1 1
menor o igual a 10-5: 1 + 𝑥 + 2! 𝑥 2 + 3! 𝑥 3 + 4! 𝑥 4 + ⋯
18) Calcular el valor de sen(x) mediante aproximaciones sucesivas con un
1 1 1
error menor o igual a 10-5: sin(𝑥) = 1 − 3! 𝑥 3 + 5! 𝑥 5 − 7! 𝑥 7 + ⋯
19) Calcular el valor de cos(x) mediante aproximaciones sucesivas con un
1 1 1
error menor o igual a 10-5: cos(𝑥) = 1 − 2! 𝑥 2 + 4! 𝑥 4 − 6! 𝑥 6 + ⋯
20) Calcular el valor de tg(x) mediante aproximaciones sucesivas utilizando
para esto los resultados obtenidos anteriormente.

UTB Página 40
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 5

FUNCIONES
5.1. Definición
Son una forma de dividir un programa para que sea más simple su solución,
utilizan la metodología Top-Down y se caracterizan porque siempre
devuelven una respuesta al programa que las invoca. Además, el número de
argumentos en el parámetro debe ser la misma cantidad y en el mismo orden
para la invocación de una función. Finalmente, los parámetros pueden ser de
recepción (R) o devolución (D).

5.2. Figuras y pseudocódigo


Se divide en dos partes que son:
i) Llamada a una función

var NomFum(Parámetros)

var  NomFun(Parámetros)

ii) Retorno de una función

NomFun

Parámetros

Proceso(s)
Return(var)

Fin NomFun

Inicio Variable_Retorno Función NomFun (Parámetros)


Declaración de variables locales
Proceso(s)
Return(var)
Fin NomFun

5.3. Ejemplos
1) Hallar el producto de dos números enteros en base a sumas sucesivas.
Análisis
Programa principal
Un número a, b (E)

UTB Página 41
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Suma s (P/S)

Función leer
Un número x (E/D)

Función suma
Dos números a, b (R)
Suma s (P/D)

Algoritmo
Inicio Programa_principal_suma_en_base_función
Entero a, b, s
a  leer(_leer
b  leer()
s  suma(a, b)
Escribir: s
Fin

Inicio Entero Función leer()


Entero x
Repetir
Leer: x
Hasta (x < 0)
Return(x)
Fin leer

Inicio Entero Función suma(Entero a, Entero b)


Entero s
sa+b
Return(s)
Fin suma

Diagrama de flujo
Inicio

a leer()
Se pasa a la función leer
b leer()

UTB Página 42
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

s suma(a, b)

Fin

Función leer Función suma

a, b

Sa+b
x Return (x)
Verdad
x <= 0
Fin suma
Falso
Return (x)

Fin leer

Prueba de escritorio
Programa principal
a 3
s=7
b 4
s 7

Función leer
x 3 4

Función suma
a 3
b 4
s 7

2) Genere los primeros números pares.


3) Genere los múltiplos del siete.
4) Muestre y halle la suma de los múltiplos del ocho.

UTB Página 43
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

5) Muestre y halle la suma y promedio de los múltiplos del cinco.

5.4. Ejercicios propuestos


1) Halle el cuadrado de un número entero sumando números impares.
2) Hallar la altura de un tanque esférico. Suponga que el tanque esférico
tiene radio R, conteniendo agua con un altura H; entonces su volumen es:
𝐻
𝑉 = 𝜋(𝑅 − )𝐻 3
3
Asumiendo Hi como el valor calculado para H en la i-ésima iteración y W i
como el i-ésimo valor calculado para W, se tiene:
𝑉
𝑊𝑖 =
𝑅−𝐻
𝜋( 3 𝑖 )
𝐻𝑖 = √𝑊𝑖
El proceso iterativo concluye cuando se cumple:
|𝐻𝑖−1 − 𝐻𝑖 | ≤ 𝜀
3) Hallar el coeficiente binomial de n tomados de m formas, aplicando la
𝑛!
fórmula: 𝐶(𝑛, 𝑚) = 𝑚!(𝑛−𝑚)!
4) Hallar la potencia de un número entero dado por xy.
5) Introduzca un valor entero positivo correspondiente a una posición de la
serie Fibonacci y despliegue dicho valor. Sugerencia: Aplique la fórmula:
𝑐 1+𝑐 𝑛 1−𝑐 𝑛
𝐹𝑛 = 5 [( ) −( ) ], dado: c=√5
2 2
6) Calcular la función exponencial de un número real x en base a la serie de
Taylor considerando un margen de error del 0.0005. Nota: Aplique la
fórmula:

UTB Página 44
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 6

PROCEDIMIENTOS

6.1 Definición
Son una forma de dividir un programa para que sea más simple su solución,
utilizan la metodología Top-Down y se caracterizan porque pueden devolver:
Ninguna, una, dos o más respuestas al programa que las invoca. Además, el
número de argumentos en el parámetro debe ser la misma cantidad y en el
mismo orden para la invocación de un procedimiento. Finalmente, los
parámetros pueden ser de recepción (R) o devolución (D).

6.2. Figuras y pseudocódigo


Se divide en dos partes que son:
i) Llamada a una función

NomProc(Parámetros)

NomProc(Parámetros)

ii) Retorno de una función

NomProc

Parámetros

Proceso(s)

Fin NomProc

Inicio Procedimiento NomProc (Parámetros)


Declaración de variables locales
Proceso(s)
Fin NomProc

6.3. Ejemplos
1) Hallar el producto de dos números enteros en base a sumas sucesivas.
Análisis
Programa principal
Un número a, b (E)

UTB Página 45
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Función leer
Un número x (E/D)

Procedimiento suma
Dos números a, b (R)
Suma s (P/S)

Algoritmo
Inicio Programa_principal_suma_en_base_procedimiento
Entero a, b
a  leer()
b  leer()
suma(a, b)
Fin

Inicio Entero Función leer()


Entero x
Repetir
Leer: x
Hasta (x < 0)
Return(x)
Fin leer

Inicio Procedimiento suma(Entero a, Entero b)


Entero s
sa+b
Escribir: s
Fin suma

Diagrama de flujo
Inicio

a leer()
Se pasa a la función leer
b leer()

suma(a, b)

Fin

UTB Página 46
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Función leer Procedimiento suma

a, b

sa+b
x
Verdad s
x <= 0
Falso
Fin suma
Return (x)

Fin leer

Prueba de escritorio
Programa principal
a 3
b 4

Función leer
x 3 4
s=7
Procedimiento suma
a 3
b 4
s 7

2) Genere los primeros números pares.


3) Genere los múltiplos del siete.
4) Muestre y halle la suma de los múltiplos del ocho.
5) Muestre y halle la suma y promedio de los múltiplos del cinco.

6.4. Ejercicios propuestos


1) Halle el cuadrado de un número entero sumando números impares.
2) Hallar la altura de un tanque esférico. Suponga que el tanque esférico
tiene radio R, conteniendo agua con un altura H; entonces su volumen
es:
𝐻
𝑉 = 𝜋(𝑅 − )𝐻 3
3

UTB Página 47
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Asumiendo Hi como el valor calculado para H en la i-ésima iteración y W i


como el i-ésimo valor calculado para W, se tiene:
𝑉
𝑊𝑖 =
𝑅 − 𝐻𝑖
𝜋( 3 )
𝐻𝑖 = √𝑊𝑖
El proceso iterativo concluye cuando se cumple:
|𝐻𝑖−1 − 𝐻𝑖 | ≤ 𝜀
3) Hallar el coeficiente binomial de n tomados de m formas, aplicando la
𝑛!
fórmula: 𝐶(𝑛, 𝑚) = 𝑚!(𝑛−𝑚)!
4) Hallar la potencia de un número entero dado por xy.
5) Introduzca un valor entero positivo correspondiente a una posición de la
serie Fibonacci y despliegue dicho valor. Sugerencia: Aplique la fórmula:
𝑐 1+𝑐 𝑛 1−𝑐 𝑛
𝐹𝑛 = 5 [( ) −( ) ], dado: c=√5
2 2
6) Calcular la función exponencial de un número real x en base a la serie de
Taylor considerando un margen de error del 0.0005. Nota: Aplique la
fórmula:

UTB Página 48
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 6

ARREGLOS

7.1. Vectores
7.1.1. Definición
Un vector es un arreglo unidimensional, también denominado
registro, que permite almacenar dos o más datos (información) a
diferencia de una variable pero que en similitud tiene un nombre,
ocupa un espacio de memoria y define posiciones de memoria.
V
……. null

0 1 2 n-1 n

7.1.2. Figuras y pseudocódigo

7.1.3. Ejemplos
7.1.4. Ejercicios propuestos
7.2. Matrices
7.2.1. Definición
7.2.2. Figuras y pseudocódigo
7.2.3. Ejemplos
7.2.4. Ejercicios propuestos
7.3. Arreglos multidimensionales
7.3.1. Definición
7.3.2. Figuras y pseudocódigo
7.3.3. Ejemplos
7.3.4. Ejercicios propuestos

UTB Página 49
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 8

ORDENAMIENTO

8.1. Definición
8.2. Ejemplo
8.3. Ejercicios propuestos

UTB Página 50
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 9

BÚSQUEDA

9.1. Definición
9.2. Ejemplo
9.3. Ejercicios propuestos

UTB Página 51
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 10

RECURSIVIDAD

10.1. Definición
10.2. Ejemplo
10.3. Ejercicios propuestos

UTB Página 52
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

CAPÍTULO 11

ARCHIVOS

11.1. Definición
11.2. Figuras y pseudocódigo
11.3. Ejemplo
11.4. Ejercicios propuestos

UTB Página 53
Lic. Juan Mario Eguívar G. Lógica computacional Programación 1

Bibliografía

UTB Página 54

You might also like