Vous êtes sur la page 1sur 177

© Fundamentos de Programación – Grupo IDAT

Desarrollo y Edición a cargo del Programa de Computación e Informática.

Director Ejecutivo : Ing. Rolando Rojas Gallo


Coordinador Académico : Ing. José García La Riva
Coordinador Administrativo : Sr. Julio Cabrera Calle
Diseño y Diagramación : Srta. Bettina Chávez Huamán
Srta. Flor Alicia Vega Collazos
Elaborado por : Ing. Rolando Rojas Gallo
Ing. José García La Riva
Ing. Alberto Moreno Cueva
Producción : Departamento de Impresiones del Grupo IDAT

Los derechos de edición, distribución y contenidos de este texto son de exclusividad del
GRUPO IDAT.
Fundamentos de Programación

PRESENTACIÓN

Esta guía didáctica es un material de ayuda institucional, perteneciente a las


especialidades de Computación, Informática & Sistemas, Redes &
Comunicaciones, Soporte y Seguridad Informática e Ingeniería de Software;
tiene por finalidad proporcionar los conocimientos de Fundamentos de
Programación, orientado a los estudiantes del primer ciclo de estudios.

El Grupo IDAT, líder en la enseñanza tecnológica a nivel superior, promueve la


elaboración de materiales educativos, en concordancia a las exigencias de las
tecnologías de estos tiempos, que permiten la creación de nuevas herramientas
de aprendizaje con el objetivo de facilitar el acceso de los estudiantes a la
educación en el marco del desarrollo tecnológico de la Informática y de las
Telecomunicaciones.

El texto se divide en dos unidades y quince capítulos. Permite conocer las


herramientas indispensables para la elaboración de un algoritmo. Se inicia con el
reconocimiento
nto de las herramientas básicas que se necesitarán para dar
solución a una determinada proposición o problema. En este proceso el alumno
aprenderá instrucciones que le permitirá evaluar expresiones para luego
procesar un conjunto de sentencias. También aprenderá enderá el uso de las
estructuras de control (Selectivas y Repetitivas), de la misma forma el uso de
estructuras de datos tales como los arreglos (Vectores y Matrices).

La implementación y uso de Sub – Programas (Procedimientos y Funciones).


Todas estas herramientas
erramientas darán un soporte sólido al alumno para que aprenda a
programar en cualquier Lenguaje de Programación Estructurado, además de los
Lenguajes de Programación Orientados a Objetos (POO): Java, C++, C#, Delphi,
Perl, Phyton, PHP (Versión 5), Ruby, Smalltalk,
Smalltalk, Turbo Pascal, ActionScript.

Esperamos que este material en su primera edición, sirva de gran ayuda a los
estudiantes Idatinos y contribuya en el proceso de su formación profesional.
Fundamentos de Programación
Fundamentos de Programación

ÍNDICE
Nro. Pág.

UNIDAD I……………………………………………………………………………
………………………………………………………………………… 09
…………………………………………………………………………..

CAPÍTULO I.- Introducción a la Algorítmica……….……………….…………..


Algor tmica……….……………….………….. 11

CAPÍTULO II.- Datos y Tipos de Datos………………….……………………….


……………….………………………. 17

CAPÍTULO III.- Variables y Constantes…………………………………


……………………………………..… 23

CAPÍTULO IV.- Estructuras Básicas …………………………………………….. 27

CAPÍTULO V.- Estructuras Secuenciales …………………………………..…


…………………………… 31

CAPÍTULO VI.- Estructuras Condicionales


Condicionales y Simples …………………………. 51

CAPÍTULO VII.- Estructuras Condicionales Dobles ….…………………………


… ………………………… 59

CAPÍTULO VIII.- Estructuras Condicionales Múltiples………………………….


………………………. 69

UNIDAD II…………………………………………………………………………….
…………………………………………………………………………. 79

CAPÍTULO IX.- Estructuras Condicionales


Condicionales Anidadas ………………………….. 81

CAPÍTULO X.- Estructuras Selectivas


Selectivas ……………………………….………….. 89

CAPÍTULO XI.- Estructuras Repetitivas


Repeti Para – Hacer ………………………… 97

CAPÍTULO XII.- Estructuras Repetitivas


Repetiti Mientras – Hacer …………………… 107

CAPÍTULO XIII.- Estructuras Repetitivas Repetir – Hasta…………………….


…………………. 115

CAPÍTULO XIV.- Subprogramas – Uso de Procedimientos…………………..


……………….. 123

CAPÍTULO XV.- Uso de Funciones ……………………………………………… 135

CAPÍTULO XVI.- Uso de Vectores y Matrices…………………………………… 143

APÉNDICES………………………………………………………………………….
………………………………………………………………………. 165

BIBLIOGRAFÍA……………………………………………………………………..
…………………………………………………………………….. 177
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación

CAPÍTULO I

INTRODUCCIÓN A LA ALGORÍTMICA
ALGORÍTMICA

OBJETIVOS ESPECÍFICOS

1. Introducción a la Algorítmica.
2. Conceptualizar el Algoritmo y definir las características
3. Como elaboramos un Algoritmo

CONTENIDOS

 Algorítmica: Resolución y pasos para resolver un problemas.


 Definición de un Algoritmo
 Característica del Algoritmo
 Pasos para realizar un Algoritmo
 Ejercicios Prácticos

ALGORITMOS

Un algoritmo es un procedimiento a seguir, para resolver un problema en términos de:

1.. Las acciones por ejecutar.


2. El orden en que dichas
ichas acciones deben ejecutarse.

Un algoritmo nace en respuesta a la aparición de un determinado problema. Un


algoritmo está compuesto de una serie finita de pasos que convergen en la solución de
un problema, pero además estos pasos
pa tienen un orden específico.

Entenderemos como problema a cualquier acción o evento que necesite cierto grado de
análisis, desde la simpleza de cepillarse los dientes hasta la complejidad del
ensamblado de un automóvil. En general, cualquier problema puede ser solucionado
soluc
utilizando un algoritmo, en este sentido podemos utilizar los algoritmos para resolver
problemas de cómputo.

Un algoritmo para un programador es una herramienta que le permite resaltar los


aspectos más importantes de una situación y descartar los menos
menos relevantes. Todo
problema de cómputo se puede resolver ejecutando una serie de acciones en un orden
específico.

Por ejemplo considere el algoritmo que se elaboraría para el problema o situación de


levantarse todas las mañanas para ir al trabajo:

Computación, Informática & Sistemas 11


Fundamentos de Programación

1. Salir de la cama
2. Quitarse el pijama
3. Ducharse
4. Vestirse
5. Desayunar
6. Arrancar el automóvil para ir al trabajo o tomar transporte.

Nótese que en el algoritmo anterior se ha llegado a la solución del problema en 6 pasos,


y no se resaltan aspectos como: colocarse los zapatos después de salir de la cama, o
abrir la llave de la regadera antes de ducharse. Estos aspectos han sido descartados,
pues no tienen mayor trascendencia, en otras palabras los estamos suponiendo, en
cambio existen aspectos que no podemos
podemos obviarlos o suponerlos, de lo contrario nuestro
algoritmo perdería lógica, un buen programador deberá reconocer esos aspectos
importantes y tratar de simplificar al mínimo su problema.

Es importante recalcar que los pasos de un algoritmo no son conmutativos


conmutat pues, no daría
solución al mismo problema a tratar.

ROBUSTEZ DE UN ALGORITMO
ALGOR

Quiere decir que un algoritmo debe contemplar todas las posibles facetas del problema
que queremos resolver, al elaborar un algoritmo no se nos debe escapar ningún detalle
quee provoque un funcionamiento malo nuestro algoritmo. Si logramos construir un
algoritmo robusto, cualquier giro inesperado del problema será controlado por el
algoritmo, es decir, debe ser flexible a cambios.

EFICIENCIA Y EFICACIA
EFICACI DE UN ALGORITMO

Un algoritmo es eficiente cuando logra llegar a sus objetivos planteados utilizando la


menor cantidad de recursos posibles, es decir, minimizando el uso memoria, de pasos y
de esfuerzo humano.

Un algoritmo es eficaz cuando alcanza el objetivo primordial, el análisis de resolución del


problema se lo realiza prioritariamente.

Puede darse el caso de que exista un algoritmo eficaz pero no eficiente, en lo posible
debemos de manejar estos dos conceptos conjuntamente.

METODOLOGÍA
A PARA LA SOLUCIÓN
SOLUCIÓN DE PROBLEMAS POR MEDIO DE
COMPUTADORA

Para lograr resolver cualquier problema se deben seguir básicamente los siguientes
pasos:

DEFINICIÓN DEL PROBLEMA

Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y
precisa. Es importante que se conozca lo que se desea que realice la computadora;
mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente
etapa.

Computación, Informática & Sistemas 12


Fundamentos de Programación

ANÁLISIS DEL PROBLEMA

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

 Los datos de entrada.


 Cuál es la información que se desea producir (salida)
 Los métodos y fórmulas que se necesitan para procesar los datos.

Una recomendación muy pr práctica


áctica es el de colocarse en el lugar de la computadora y
analizar qué es lo que se necesita que se ordene y en qué secuencia para producir los
resultados esperados.

DISEÑO DEL ALGORITMO

Las características de un buen algoritmo son:

 Debe tener un punto particular de inicio.


 Debe ser definido, no debe permitir dobles interpretaciones.
 Debe ser general, es decir, soportar la mayoría de las variantes que se puedan
presentar en la definición del problema.
 Debe ser finito en tamaño y tiempo de ejecución.
 Diseño del Algoritmo
 Prueba de escritorio o Depuración

Se denomina prueba de escritorio a la comprobación que se hace de un algoritmo para


saber si está bien hecho. Esta prueba consiste en tomar datos específicos como entrada
y seguir la secuencia indicada en el algoritmo hasta obtener un resultado, el análisis de
estos resultados indicará si el algoritmo está correcto o si por el contrario hay necesidad
de corregirlo o hacerle ajustes.

DEFINICIÓN
N DE UN ALGORITMO

El Algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea
específica, como la solución de un problema.

En cada problema el algoritmo se puede expresar en un lenguaje diferente de


programación y ejecutarse en una computadora distinta; sin embargo el algoritmo será
siempre el mismo.

Computación, Informática & Sistemas 13


Fundamentos de Programación

CARACTERÍSTICAS
STICAS DE UN ALGORITMO

Las características del algoritmo son:


 Debe ser preciso e indicar el orden de realización de cada paso.

 Estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo


resultado cada vez.

 Ser finito. Se debe terminar en algún momento; o sea debe de tener un número
finito de pasos.

ESTRUCTURA DE UN ALGORITMO

Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes
para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas.

Los pasos en esta primera descripción pueden requerir


requerir una revisión adicional antes de
que podamos obtener un algoritmo claro, preciso y completo.

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los
de detalle, se conoce como método descendente (TOP-down).
(TOP

En un algoritmo se deben de considerar tres partes:

- Entrada: Información dada al algoritmo.


- Proceso: Operaciones o cálculos necesarios para encontrar la solución del
problema.
- Salida: Respuestas dadas por el algoritmo o resultados finales de los procesos
realizados.

Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie
de un rectángulo proporcionándole su base y altura. Lo primero que debemos hacer es
plantearnos las siguientes preguntas:
Especificaciones de entrada
- ¿Qué datos son on de entrada?
- ¿Cuántos datos se introducirán?
- ¿Cuántos son datos de entrada válidos?

Especificaciones de salida
- ¿Cuáles son los datos de salida?
- ¿Cuántos datos de salida se producirán?
- ¿Qué formato y precisión tendrán los resultados?

Computación, Informática & Sistemas 14


Fundamentos de Programación

EJERCICIOS RESUELTOS
1. Defina un algoritmo para realizar una llamada

INICIO
1. Acercarse al Teléfono
2. Levantar el Auricular
3. Recordar el Número telefónico
4. Discar el Número
5. Esperar que respondan
6. Conversar
7. Colgar el Auricular
FIN
2. Defina un algoritmo para cambiar bombilla

INICIO
1. Colocar una escalera debajo de la bombilla
2. Subir la escalera
3. Desenroscar la bombilla
4. Bajar la escalera
5. Coger la bombilla nueva
6. Subir la escalera
7. Enroscar la bombilla
8. Bajar la escalera
9. Retirar
etirar la escalera
FIN
3. Defina un Algoritmo para cambiar una Llanta

INICIO
1. Bajarse del Auto
2. Abrir la cajuela, sacar la gata y la llave
3. Colocar la gata y levantar el auto
4. Destornillar los pernos
5. Sacar la llanta
6. Sacar la llanta de repuesto
7. Colocar la llanta de repuesto
8. Enroscar los pernos
9. Bajar el auto
10. Guardar la llanta, la gata y la llave
FIN

4. Defina un Algoritmo para escuchar música en un CD

INICIO
1. Encender la Radio
2. Seleccionar la opción TAPE
3. Insertar el CD
4. Esperar que cargue el CD
5. Graduar el volumen
6. Escuchar el CD
FIN

Computación, Informática & Sistemas 15


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Defina un Algoritmo donde permita encender una computadora para Chatear

2. Defina un Algoritmo donde permita ir al Cine y regresar a casa.

3. Defina un Algoritmo donde permita realizar una Matricula en la institución.

4. Defina un Algoritmo que permita ver un determinado programa de televisión y al


terminar apagar la TV.

5. Defina un Algoritmo que permita Elaborar el


el Arroz con pollo, Sugerencia: Conversar
C
con la Mamá.

6. Defina un Algoritmo que permita Pintar las paredes de tu habitación.

7. Defina un Algoritmo que permita realizar una compra al crédito en una empresa
comercial.

8. Defina un Algoritmo que permita tener una Consulta Médica de un consultorio


consultori
particular.

9. Defina un Algoritmo que permita Ir a un Fiesta de fin de año y regresar a casa.

Computación, Informática & Sistemas 16


Fundamentos de Programación

CAPÍTULO II

DATOS Y TIPOS DE DATOS

OBJETIVOS ESPECÍFICOS

1. Conocer los Tipos de Datos que se utilizan en la algorítmica


2. Definir las expresiones

CONTENIDOS

 Datos, definición
 Tipos de datos: Numérico, de cadena, lógicos
 Manejo de Operadores
 Expresiones
 Ejercicios Prácticos

DEFINICIÓN DE DATOS
1. Un dato es la expresión general que describe los objetos con los cuales opera una
computadora.
2. Existen dos tipos de datos: simples (sin estructuras) y compuestos (estructurados),
los datos compuestos son conjuntos de partidas de datos simples con relaciones
definidas entre ellos.
3. Los datos simpless son: numéricos, lógicos y caracter.

DATOS NUMÉRICOS
1. Es el conjunto de los valores numéricos y puede ser expresado como
numéricoentero y numéricoreal.
numé

2. Los enteros no tienen componentes fraccionarias o decimales y pueden ser


negativos o positivos. Los reales siempre tienen un punto decimal.

DATOS LÓGICOS

1. También llamados booleanos, es aquel que solo puede tomar uno de dos
valores: verdadero (true) o falso (false).

2. Se utiliza para representar las alternativas (si/no) a determinadas condiciones.

Computación, Informática & Sistemas 17


Fundamentos de Programación

DATOS CARACTER
1. Este tipo de dato contiene un solo carácter.

2. Los caracteres son: alfabéticos (A-Z),


(A numéricos (0-9)
9) y especiales (¡ @ # $ % ^
& *…).

3. Una cadena de caracteres o string es una sucesión de caracteres que se


encuentran delimitados por una o dobles comillas.

EJERCICIOS PRÁCTICOS
CTICOS

En cada
da uno de los datos, defina su Tipo de dato.

Datos Tipo
“Hola”
123
¿Quién eres?
Verdadero
“El Sabio”
Falso
12.56
12/15
Trae
“EL Quijote”
56.8999999
¡Alo!
Persona
“Juan”

MANEJO DE OPERADORES

Definición

 Un operador es un carácter o grupo de caracteres que actúa sobre una, dos o


más variables para realizar una determinada operación con un determinado
resultado. Ejemplos típicos de operadores son la suma (+), la diferencia (-),
( el
producto (*), etc.
 Un operador
rador sirve para manipular datos.
 Los operadores pueden ser unarios, binarios y ternarios, según actúen sobre
uno, dos o tres operandos, respectivamente.

Computación, Informática & Sistemas 18


Fundamentos de Programación

TIPOS DE OPERADORES
 Aritméticos
 De relación,
 Lógicos,
 De asignación,

OPERADORES ARITMÉ
ÉTICOS
 Los operadores aritméticos son los más sencillos de entender y de utilizar.
Todos ellos son operadores binarios.
 Se utilizan los operadores siguientes:
siguientes

OPERADOR SIGNIFICADO

+ SUMAR
- RESTAR
* MULTIPLICAR
\, DIV DIVISION ENTERA
/ DIVISION REAL
MOD, % RESTO ARTIMETICO
↑ POTENCIACION

OPERADORES RELACIONALES
 Una característica imprescindible de cualquier lenguaje de programación es la
de considerar alternativas, esto es, la de proceder de un modo u otro según se
cumplan o no ciertas condiciones.
 Los operadores relacionales permiten estudiar si se cumplen o no esas
condiciones.
 En un programa si una condición se cumple, el resultado es cierto; en caso
contrario, el resultado es falso.
 Los operadores relacionales son los siguientes

OPERADOR SIGNIFICADO
> MAYOR

< MENOR
>= MAYOR o IGUAL

<= MENOR o IGUAL

= IGUAL

<> DIFERENTE

Computación, Informática & Sistemas 19


Fundamentos de Programación

OPERADORES LÓGICOS
GICOS
 Los operadores lógicos son operadores binarios que permiten combinar los
resultados de los operadores relacionales, comprobando que se cumplen las
condiciones necesarias.

OPERADOR SIGNIFICADO

Y CONJUNCION

O DISYUNCION

NO NEGACION

Observe la tabla

OPERADORES DE ASIGNACIÓN
ASIGNACIÓ
 Los operadores de asignación atribuyen a una variable, es decir, depositan en su
zona de memoria correspondiente, el resultado de una expresión o el valor de la
variable (en realidad, una variable es un caso particular de una expresión).
 El operador de asignación más utilizado es el operador es  . Su forma general
es:
 nombre_variable  expresión;
 Primero se evalúa expresión y el resultado se pone en nombre_variable,
sustituyendo cualquier otro valor que hubiera en esa posición de memoria
anteriormente.

OPERADOR SIGNIFICADO

← ASIGNAR

() AGRUPAR

Computación, Informática & Sistemas 20


Fundamentos de Programación

PRIORIDAD DE LOS OPERADORES

OPERADOR PRIORIDAD
() [] Signos de Agrupación
↑ Potencia
*, /, % Producto y División
+, - Suma y Resta
Y Operador lógico y
O Operador lógico O
NO Operador lógico de negación
>,>=,<,<=,=,<> Operador de relación

EXPRESIONES

Definición
 Es una combinación de distintas variables, constantes, operadores y paréntesis.
 Tiene un valor concreto que es el resultado de evaluarla de izquierda a derecha.
 El valor devuelto tras la evaluación de una expresión determina el tipo de la
expresión (entera, lógica …)

Ejemplo

Sentencias
 Las expresiones son ítems elementales de unas entidades que son las
sentencias. Si nos fijamos en la expresión anterior, la variable que está a la
izquierda del signo (=), el operador de asignación, la expresión aritmética y el
carácter (;) constituyen una sentencia.
 Las sentencias son unidades completas,
completas, ejecutables en sí mismas. Ya se verá
que muchos tipos de sentencias incorporan expresiones aritméticas, lógicas o
generales como componentes de dichas sentencias.

Computación, Informática & Sistemas 21


Fundamentos de Programación

EJERCICIOS PROPUESTOS

DESARROLLE LAS SIGUIENTES EXPRESIONES RETORNANDO SU VALOR

1. (15 + ( 12 * 2 ) / 4 ) + ( 30 MOD 7) * 5

2. (12 < 15) OR (15>= ( 3 * 5 ) )

3. (15 > 12) Y (65 MOD 3 <=1) OR (10<>2 * 5)

4. 21 + ( 15 + 20 MOD 9 ) DIV 3

5. Sea: a = 10 b = 12 c = 13 d =10

Desarrolle los siguientes Ejercicios

(( a > b ) OR (a < c)) AND (( a = c ) OR (a >= b ))

(( a > b ) OR (a < d)) AND (( a >= d ) AND (c > d ))

NOT ( a = c ) AND ( c > b )

(( c > d ) OR ( b < c) AND ( a >= d )) AND ( a = c )

6. ( 12 + ( 21 MOD 8 ) * (70 DIV 12) ) * ( 60 MOD 11 )

7. ( ( 12 > 6) AND NOT ( 6<>9 MOD 2) ) AND (3 <> 7 MOD 4)

8. ( 12 < 9 MOD 6 ) AND ( 9 = 3 * 3 ) OR ( 6 > 15 MOD 4 )

Computación, Informática & Sistemas 22


Fundamentos de Programación

CAPÍTULO III

VARIABLES Y CONSTANTES

OBJETIVOS ESPECIFICOS

1. Conocer el manejo de Variables y Constantes para ser aplicados dentro de una


Algorítmica
2. Definir las expresiones

CONTENIDOS

 Variables, definición
 Identificación de una Variable
 Declaración de una Variable
 Constantes
 Ejercicios Prácticos

VARIABLES

Definición

 Es un espacio en la memoria de la computadora que permite almacenar


temporalmente un dato durante la ejecución de un proceso, su contenido puede
cambiar durante la ejecución del programa.
 Para poder reconocer una variable en la memoria de la computadora, es
necesario darle un nombre con el cual podamos identificarla dentro de un
algoritmo.
 Su valor puede ser modificado, pero en un instante dado sólo contiene un valor
determinado.

Declaración

 Las variables pueden asumir valores numéricos,, carácter y lógicos.


 Existen 2 tipos de duración o ámbito de las variables, estas son (GLOBAL Y
LOCAL).
 Las variables globales se pueden utilizar en cualquier parte del Algoritmo.
 Las variables locales son dentro de un sub-programa
sub programa (Procedimiento o
Función).

Computación, Informática & Sistemas 23


Fundamentos de Programación

Ejemplos
DECLARACION

ABC VALIDO

A123 VALIDO

1A2B NO VALIDO

_MiVariable VALIDO

Mi_Variable VALIDO

Mi_123456 VALIDO

_1_2_3 VALIDO

Mi@Variable NO VALIDO

Clasificación de las Variables

Declaración

 Para declarar variables en un algoritmo se hace uso de la siguiente sintaxis :


Tipo_Dato: Lista_Variables

Ejemplos:

ENTERO: A, B, C
REAL: X, Y, Z
CARÁCTER: Car1, Car2
CADENA : Texto1, Texto2
LOGICO: Estado, Ok, Done

En visual Basic las analogías son:

Para declaración de variables emplear


DIM VAR1, VAR2 AS TIPO
Seudocodigo Visual
entero integer
Enetro largo long
real double
caracter char
cadenas string

Computación, Informática & Sistemas 24


Fundamentos de Programación

CONSTANTES

Definición

 Objeto de datos que contiene un valor invariable conocido por su identificador.


 Es necesario inicializar las constantes al principio del algoritmo. Esto determina
el tipo de la constante

Ejemplos
PI=3.14
SALUDO=“Hola mundo”
MAXIMO=500
RESPUESTA=‘S’

Equivalencias en Visual Basic que se va utilizar para realizar las pruebas de los
seudocódigos:

CONST PI=3.14

Computación, Informática & Sistemas 25


Fundamentos de Programación

Computación, Informática & Sistemas 26


Fundamentos de Programación

CAPÍTULO IV

ESTRUCTURAS BÁSICAS

OBJETIVOS ESPECÍFICOS

 Reconoce la estructura del algoritmo.


 Manejo de las instrucciones para la entrada, proceso y salida de datos.
 Comprende el manejo de las estructuras secuenciales en los procesos algorítmicos.

CONTENIDOS

 Estructura del algoritmo


 Instrucciones para la entrada, proceso y salida de datos
 Estructura de control, tipos

ALGORITMO

 La palabra algoritmo se deriva de la traducción al latín de la palabra árabe


alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado
sobre manipulación de números y ecuaciones en el siglo IX.
 Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solución a un problema específico.
 Un algoritmo también se le puede definir como:
 Una "fórmula" para resolver un problema.
 Un conjunto finito de acciones o secuencia de operaciones que ejecutadas
En un determinado orden resuelven el problema.
 También puede definirse como un método para resolver un problema
Mediante una serie finita de pasos precisos y bien definidos.

Tipos de Algoritmos

 Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
 Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los
pasos del proceso.

Estructura del Algoritmo


 Acciones de entrada: recogen los datos para el trabajo.
 Acciones de proceso: ejecutan los cálculos.
 Acciones de salida: ofrecen los resultados.

Computación, Informática & Sistemas 27


Fundamentos de Programación

Lenguajes Algorítmicos

Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un
proceso. De los cuales se encuentran los siguientes tipos de
Lenguajes Algorítmicos:

 Gráficos:: Es la representación gráfica de las operaciones que realiza un


algoritmo
mo (diagrama de flujo).
 No Gráficos:: Representa en forma descriptiva las operaciones que debe realizar
un algoritmo (pseudocódigo
pseudocódigo).

Diagrama de Flujo

 Un diagrama de flujo es la representación gráfica de un


algoritmo.
 También se puede decir que es la representación
detallada en forma gráfica de cómo deben realizarse los
pasos en la computadora para producir resultados.
 Esta representación gráfica se da cuando varios
símbolos (que indican diferentes procesos en la
computadora),
utadora), se relacionan entre sí mediante líneas
que indican el orden en que se deben ejecutar los
procesos.
 Los símbolos utilizados han sido normalizados por el
instituto norteamericano de normalización (ANSI).

Recomendaciones para el diseño de Diagramas de Flujo

 Se deben se usar solamente líneas de flujos horizontales y/o verticales.


 Se debe evitar el cruce de líneas utilizando los conectores.
 Se deben usar conectores solo cuando sea necesario.
 No deben quedar líneas de flujo son conectar.
 Se deben trazar los símbolos de manera que se puedan leer de arriba hacia
abajo y de izquierda a derecha.
 Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando
el uso de muchas palabras.
palab

Computación, Informática & Sistemas 28


Fundamentos de Programación

Pseudo Código

 Mezcla de lenguaje de programación y español (o inglés o cualquier otro idioma)


que se emplea, dentro de la programación estructurada, para realizar el diseño
de un programa.
 En esencial, el pseudo código se puede definir como un lenguaje de
especificaciones de algoritmos. Es la
la representación narrativa de los pasos que
debe seguir un algoritmo para dar solución a un problema determinado. El
pseudo código utiliza palabras que indican el proceso a realizar.

INICIO
Edad: Entero
ESCRIBA “cual es tu edad?”
Lea Edad
SI Edad >=18 entonces
ESCRIBA “Eres mayor de Edad”
FIN SI
ESCRIBA “fin del algoritmo”

Ventajas de utilizar un Pseudo Código a un Diagrama de Flujo

 Ocupa menos espacio en una hoja de papel


 Permite representar en forma fácil operaciones repetitivas complejas
 Es muy fácil pasar de pseudo código a un programa en algún lenguaje de
programación.
 Si se siguen las reglas se puede observar claramente los niveles que tiene cada
operación.

Estructuras Algorítmicas

Las estructuras de operación de programas son un grupo de formas de trabajo, que


permiten, mediante la manipulación de variables, realizar
realizar ciertos procesos específicos
que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con
su complejidad en:

Computación, Informática & Sistemas 29


Fundamentos de Programación

Estructura de un Algoritmo en Pseudocódigo


En pseudocódigo el algoritmo tiene tres partes: la cabecera, la zona de declaración de
constantes y variables y el cuerpo.

1. La cabecera contiene el nombre del algoritmo.


2. La zona de declaraciones de variables y constantes establece qué variables y
constantes vamos a usar, indicando junto al nombre el tipo de d las mismas y el
valor en el caso de las constantes.
3. El cuerpo del algoritmo es el que contiene las instrucciones que indican las
acciones a realizar por el programa.
a. Comienza con la palabra Inicio y termina con la palabra Fin (o palabras
similares).

Estructura

ALGORITMO Nombre_Descriptivo
Variables: …
INICIO
Instrucciones
y/o
Sentencias
FIN

Estructura Sintáctica de un Algoritmo

Sentencias Declarativas
Algoritmo CalculaArea
Cabecera del Proog
grama
VARIABLE
Declaración de Variables
Real: Radio, A

Sentencias Ejecutables

Entrada de Datos INICIO


Leer Radio
O p e r a c i on e s y C á l c u l os A  3.14* Radio ↑2
Escribir A
Salida de Resultados
FIN

Computación, Informática & Sistemas 30


Fundamentos de Programación

CAPITULO V

ESTRUCTURAS SECUENCIALES

OBJETIVOS ESPECÍFICOS

 Reconoce la estructura Secuencial


 Comprende el manejo de las estructuras secuenciales en los procesos algorítmicos.

CONTENIDOS

 Estructura Secuencial
 Definición
 Estructura
 Desarrollo Práctico
ctico

DEFINICIÓN

 La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en


secuencia.
 Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente
y así sucesivamente hasta el fin del proceso.

Una Estructura Secuencial se representa de la siguiente forma:

DIAGRAMA DE FLUJO

Computación, Informática & Sistemas 31


Fundamentos de Programación

PSEUDOCÓDIGO

Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos


representados en Pseudocódigo y en diagramas de flujos:

COMPONENTES DE UNA ESTRUCTURA SECUENCIAL

La Asignación

Consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será
reconocida con el nombre de la variable que recibe el valor.
La asignación se puede clasificar de la siguiente forma:

 Simples: Consiste en pasar un valor constante a una variable


(a  15)
 Contador: Consiste en usarla como un verificador del número de veces que se
realiza un proceso
(a  a + 1)
 Acumulador: Consiste en usarla como un sumador en un proceso
(a  a + b)

Computación, Informática & Sistemas 32


Fundamentos de Programación

 De trabajo: Donde puede recibir el resultado de una operación matemática que


involucre muchas variables
(a  c + b*2/4).

En general el formato a utilizar es el siguiente:

< Variable >  <valor o expresión >

El símbolo  debe leerse “asigne”.

Escritura o Salida de Datos

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o


mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el
contenido de la variable. Este proceso se representa así como sigue:

ESCRIBIR (VALOR)

ESCRIBIR (“MENSAJE”)

Lectura o Entrada de Datos

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el


teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a
continuación de la instrucción. Esta operación se representa así:

LEER VARIABLE

LEER VARIABLE1, VARIABLE 2

DECLARACIÓN
N DE VARIABLES Y CONSTANTES

La declaración de variables es un proceso que consiste en listar al principio del algoritmo


todas las variables que se usarán, además de colocar el nombre de la variable se debe
decir qué tipo de variable es.

ENTERO: Contador, Edad, I


CADENA: Dirección
REAL: Salario _ básico
CARÁCTER: Opción

En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero;


Salario _ básico es una variable de tipo real, Opción es de tipo carácter y la variable
Dirección está declarada como una variable
variable alfanumérica de cadena de caracteres.

Computación, Informática & Sistemas 33


Fundamentos de Programación

EJERCICIOS RESUELTOS 1
1. Ingrese un número entero, luego súmele 2 unidades y visualícelo.

ALGORITMO Ejemplo1
VARIABLES
ENTERO: A
INICIO
LEER (A)
A← A + 2
ESCRIBIR (A)
FIN

2. Ingrese 2 números enteros y luego calcule y visualice la suma y producto de los 2


números ingresados

ALGORITMO Ejemplo2
VARIABLES
ENTERO: A, B, Suma, Producto
INICIO
LEER ( A, B )
Suma ← A + B
Producto ← A * B
ESCRIBIR (Suma, Resta, Producto)
FIN

3. Ingresar un número entero y luego calcular y visualizar su 5%.

ALGORITMO Ejemplo3
VARIABLES
ENTERO: N
REAL: Porcentaje
INICIO
LEER (N)
Porcentaje ← N * (5 / 100)
ESCRIBIR (Porcentaje)
FIN

4. Una empresa decide otorgar una bonificación del 5% del haber básico por cada hijo
a todos sus trabajadores. Calcule el total a pagar a un trabajador.

ALGORITMO Ejemplo4
VARIABLES
ENTERO NroHijos
REAL Hbasico, Bonificación, Total
INICIO
LEER (Hbasico, NroHijos)
Bonificación ← (Hbasico * 0.05) * NroHijos
Total ← Hbasico + Bonificación
ESCRIBIR (Total)
FIN

Computación, Informática & Sistemas 34


Fundamentos de Programación

5. Ingrese por teclado un número de dos cifras, visualice su número invertido.


invertido

ALGORITMO Ejemplo5
VARIABLES
ENTERO Número, Inverso, Unidad, Decena
INICIO
LEER (Número)
(
Unidad ← Número MOD 10
Decenal ← Número DIV 10
Inverso ← 10 * Unidad + Decena
ESCRIBIR (Inverso)
FIN

6. Ingrese por teclado el nombre del cliente y el costo de una PC; por estar de
promoción la empresa, se aplicará un descuento del 15% del costo, donde el neto
es la diferencia del costo menos el descuento. Aplique el 19% del neto donde el
monto a pagar es la suma del neto mas IGV.. Visualice el descuento, neto, IGV y el
monto a pagar.

ALGORITMO Ejemplo6
VARIABLES
REAL Costo, Descuento, Neto, IGV, Monto, Pago
CADENA Nombre
INICIO
LEER (Nombre, Costo)
Descuento ← 0.15 * Costo
Neto  Costo – Descuento
IGV  0.19 * Neto
Pagar ← Neto + IGV
ESCRIBIR (Descuento, Neto, IGV, Pagar)
FIN

7. En este verano un instituto educativo ha ingresado una cantidad de “N” alumnos


matriculados en el programa de Computación e Informática, si los alumnos son
agrupadas en aulas de 40 alumnos cada aula, Hallar:
Hal

Número de aulas completas


Cantidad de alumnos que faltan para completar otra aula

ALGORITMO Ejemplo7
VARIABLES
ENTERO Matriculas, Aulas, Falta
INICIO
LEER (matriculas)
Aula ← Matriculas DIV 40
Falta  Matricula MOD 40
ESCRIBIR (Aula, Matricula)
FIN

Computación, Informática & Sistemas 35


Fundamentos de Programación

8. Ingrese por teclado un Número de 3 cifras, visualice la suma de las cifras del número
ingresado.

ALGORITMO Ejemplo8
VARIABLES
ENTERO Número, Unidad, Decena, Suma
INICIO
LEER (Número)
(
Unidad ← Número MOD 10
Decena  (Número DIV 10) MOD 10
Centena  NÚMERO DIV 100
Suma ← Unidad + Decena + Centena
ESCRIBIR (Suma)
FIN

9. Ingrese por teclado la cantidad de metros cúbicos de agua que se consume en una
casa. Calcula y visualice cada uno de los gastos sabiendo que el costo por metros
cubico es 0.35 nuevos soles y el monto del consumo es el producto de la cantidad de
metros cúbicos por el precio.

Mantenimiento 0.25% del monto


Parques y Jardines 0.15% del monto
Exploración 0.05% del monto
Limpieza de Alcantarillas 0.07% del monto

Del total a pagar deberá pagar el impuesto a las Ventas que representa el 19% del
Monto Total, calcule y visualice el Monto Total a Pagar.

ALGORITMO Ejemplo9
VARIABLES
REAL Cúbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar
INICIO
LEER (Cúbicos)
Monto  0.35 * Cubicos
Mant ← Monto * 0.25 /100
PJ  Monto * 0.15 / 100
Explor  Monto * 0.05 / 100
Limp ← Monto * 0.07 / 100
Monto  Monto + Mant + PJ + Explor + Limp
IGV  Monto * 0.19
Pagar  Monto + IGV
ESCRIBIR (“Mantenimiento:”, Mant)
ESCRIBIR (“Parques y Jardines:”, PJ)
ESCRIBIR (“Exploración:”, Explor)
ESCRIBIR (“Limpieza:”, Limp)
ESCRIBIR (“Monto:”, Monto)
ESCRIBIR (“IGV:”, IGV)
ESCRIBIR (“A Pagar:”, Pagar)
FIN

Computación, Informática & Sistemas 36


Fundamentos de Programación

10. Una Empresa dedicada a la Venta de Electrodomésticos, realiza una promoción del
20% + 15% de descuento. Ingrese el precio de un electrodoméstico, calcule y
visualice su descuento y el neto a pagar.

ALGORITMO Ejemplo10

VARIABLES

REAL Precio, Descuento1, Descuento2, Neto

INICIO
LEER (Precio)
Descuento1 ← (Precio * 0.20)
Descuento2  (Precio – Descuento1) * 0.15
Neto  Precio – (Descuento1 + Descuento2)
ESCRIBIR ((Descuento1+Descuento2), Neto)
FIN

Computación, Informática & Sistemas 37


Fundamentos de Programación

EJERCICIOS RESUELTOS 2

Nota.- crear el algoritmo y código en visual Net, aplicación de consola

Iniciar la codificación
odificación en Visual Net 2005 (software
( donde se comprueban
n los algoritmos
desarrollados)

En inicio ejecutar colocar DEVENV

EN FILE NEW PROYECT

Por defecto se tiene el modulo:

En esta sección dentro del main se


va codificar el algoritmo

Computación, Informática & Sistemas 38


Fundamentos de Programación

1. Obtener la edad de una persona en meses, si se ingresa su edad en años y meses.


Ejm: Ingresado 3 años 4 meses debe ESCRIBIR 40 meses.

ALGORITMO EDAD

INICIO
// Declaración de las variables M : almacena cantidad de meses
Entero: M , A , AM A : almacena cantidad de años
AM : almacena cantidad total de meses
// Muestra en pantalla e Ingresa Datos
ESCRIBIR “Ingrese Anyos: “
LEER A
ESCRIBIR “Ingrese Meses: “
LEER M

// Factor: 1 año = 12 meses


//Proceso:
Proceso: consideramos que 1 año tiene 12 meses
AM = A * 12 + M

// Muestra Resultados en pantalla


ESCRIBIR "Edad en meses = ", AM
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports system.console
Imports System.Math

Module Module1

Sub main()

Dim an,mes,res As Integer


Write("ingresar
"ingresar años..:")
años..:"
an = ReadLine()
Write("ingrese
"ingrese meses..:")
meses..:"
mes = ReadLine()
res=an*12+mes
"años en meses ..:" & res)
WriteLine("años
ReadLine()

End Sub

End Module

Computación, Informática & Sistemas 39


Fundamentos de Programación

2. Ingresar por teclado las dimensiones de un terreno, largo, ancho, precio por metro
cuadrado, se pide calcular y ESCRIBIR:

- El área total
- El precio del Terreno
- La cuota inicial que es 13% del precio
- Cuota mensual a pagar si el pago es en dos años

INICIO
// Declaración de las variables
Real: larg,anch ,pxm, prect , cuotaini,saldo, cutamensu

// Muestra en pantalla e Ingresa Datos


ESCRIBIR “Ingrese largo: “
LEER larg
ESCRIBIR “Ingrese ancho: “
LEER anch
ESCRIBIR “Ingrese precio x metro cuadrado: “
LEER pxm

area <= (larg * anch)


prect <= (area * pxm)
cuotini <=
= (prect * 0.13)
sald <= (prect - cuotini)
cuotmensu <= (sald / 24)

// Muestra Resultados en pantalla


ESCRIBIR("el
"el area es..:" , area)
ESCRIBIR("precio
"precio total..:" , prect)
ESCRIBIR("cuota
"cuota inicial..:" , cuotini)
ESCRIBIR("el
"el saldo es ..:" , sald)
ESCRIBIR("la
"la cuota mensual es ..:" , cuotmensu)
FIN

Computación, Informática & Sistemas 40


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports system.console
Imports System.Math

Module Module2

Sub main()
Dim larg, anch, pxm, area, prect, cuotini, sald, cuotmensu As Double
Write("ingresar
"ingresar largo..:")
largo..:"
larg = ReadLine()
Write("ingresar
"ingresar ancho..:")
ancho..:"
anch = ReadLine()
"ingresar precio por metros ..:")
Write("ingresar ..:"
pxm = ReadLine()
area = (larg * anch)
prect = (area * pxm)
cuotini = (prect * 0.13)
sald = (prect - cuotini)
cuotmensu = (sald / 24)
WriteLine("el
"el area es..:" & area)
WriteLine("precio
"precio total..:" & prect)
WriteLine("cuota
"cuota inicial..:" & cuotini)
WriteLine("el
"el saldo es ..:" & sald)
WriteLine("la
"la cuota mensual es ..:" & cuotmensu)
ReadLine()
End Sub

End Module

Computación, Informática & Sistemas 41


Fundamentos de Programación

3. Se deposita una cierta de dinero en un banco , se desea saber los intereses ganados
y el valor futuro del dinero

INICIO
// Declaración de las variables variables
meses :Entero
ints, monto, vfut :real

// Muestra en pantalla e Ingresa Datos


ESCRIBIR “Ingrese monto : “
LEER monto
ESCRIBIR “Ingrese meses : “
LEER meses

ints <= monto * 0.02 * meses


vfut <= monto + meses

/// Muestra Resultados en pantalla


ESCRIBIR("el
"el valor final es..:" , vfut)

FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.Math

Module Module3
Sub main()

Dim meses As Integer


Dim ints, monto, vfut As Double

Write("ingresa
"ingresa monto..:")
monto..:"
monto = ReadLine()
Write("ingresa
"ingresa meses..:")
meses..:"
meses = ReadLine()
ints = monto * 0.02 * meses
vfut = monto + meses
WriteLine()
WriteLine("el
"el valor final es..:" & vfut)
ReadLine()

End Sub
End Module

Computación, Informática & Sistemas 42


Fundamentos de Programación

4. Escriba un algoritmo que permita convertir un valor ingresado en pies a metros. Si


1pie=30.48 cm.

INICIO
// Declaración de las variables
Real : Vp , Vm, Vc
Vp Valor en Pies almacena un valor en pies
Vm Valor en metros almacena un valor en metros
Vc Valor en centimetros almacena un valor en centimetros
Factor : 1 pie = 30.48 cm 1 m = 100 cm

// Muestra en pantalla e Ingresa Datos


ESCRIBIR “ Ingrese valor en pies : “
LEER Vp

// Proceso : Calcula Vm
Vc = Vp * 30.48 // Valor en cm
Vm = Vc /100 // Valor en m

// Salida en pantalla
ESCRIBIR Vm
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.Math

Module Module 4
Sub main()

Dim Vp , Vm, Vc as double


Write("ingrese
"ingrese valor en pies..:")
pies..:"
vp = ReadLine()
‘ Valor en pies
‘Proceso : Calcula Vm
Vc = Vp * 30.48 ‘ Valor en cm
Vm = Vc /100 ‘ Valor en m

// Salida en pantalla
WriteLine("velocidad
"velocidad en metros.:" & vm)
ReadLine()

End Sub
End Module

Computación, Informática & Sistemas 43


Fundamentos de Programación

5. Calcular el área y perímetro de un triángulo, conocidos sus lados.

INICIO
//Declaración de las variables
Real: A, B, C, P, sp, Area
Lados del triángulo: A , B y C
P : Perímetro
metro del Triángulo (suma de sus lados)
sp : SemiPerímetro
SemiPer del Triángulo = P/2
Area : SQRT ( sp * (sp – A) * (sp - B) * (sp - C))

// Ingreso de Datos
LEER A, B, C

// Proceso: Calculo de P Perimetro y SP SemiPerimetro


P A+B+C
sp = P/2
Area = sqrt ( sp * (sp – A) * (sp - B) * (sp - C))

// Salida de Resultados
ESCRIBIR P, Area
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math
Module Module 5
Sub Main()
Dim l1, l2, l3 As Integer
Dim area, p As Double
Write("Ingresa
"Ingresa lado 1..:")
1..:"
l1 = ReadLine()
Write("ingresa
"ingresa lado 2..:")
2..:"
l2 = ReadLine()
Write("ingresa
"ingresa lado 3 ..:")
..:"
l3 = ReadLine()
p = (l1 + l2 + l3) / 2
area = Sqrt(p * (p - l1) * (p - l2) * (p - l3))
WriteLine()
"ESCRIBIR area..:" & area)
WriteLine("ESCRIBIR
ReadLine()
End Sub
End Module

Computación, Informática & Sistemas 44


Fundamentos de Programación

6. Ingrese por teclado un número de dos cifras, visualice su número invertido

VARIABLES
ENTERO: Número, Inverso, Unidad, Decena
INICIO
Número)
LEER (Número
Unidad ← Número MOD 10
Decenal ← Número DIV 10
Inverso ← 10 * Unidad + Decena
ESCRIBIR (Inverso)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module6
Sub Main()
Dim Número, Inverso, Unidad, Decena As Integer
Write("Ingresa
"Ingresa un número de 2 cifras..:")
número =ReadLine()
Unidad = Número MOD 10
Decenal = Número \10
Inverso = 10 * Unidad + Decena
WriteLine("número
número invertido.:" & inverso)
ReadLine()
End Sub
End Module

7. En este verano un instituto educativo ha ingresado una cantidad de “N” alumnos


matriculados en el programa de Computación e Informática, si los alumnos son
agrupadas en aulas de 40 alumnos cada aula, hallar:
h

• Número de aulas completas


• Cantidad de alumnos que
q faltan para completar otra aula

VARIABLES
ENTERO: Matriculas, Aulas, Falta
INICIO
LEER (matriculas)
Aula ← Matriculas DIV 40
Falta  Matricula MOD 40
ESCRIBIR (Aula, Matricula)
FIN

Computación, Informática & Sistemas 45


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module7
Sub Main()

Dim Número Matriculas, Aulas, Falta As Integer

Write("Ingrese número de matriculas.:")


matriculas = CInt(ReadLine())
CInt

Aula=Matriculas \40
Falta =Matricula MOD 40

WriteLine("número
número de aulas.:" & aula)
ReadLine()

End Sub
End Module

PASAR A VISUAL LOS SIGUIENTES SEUDOCODIGOS:


SEUDOCODIGOS

8. Ingrese por teclado un Número de 3 cifras, visualice la suma de las cifras del número
ingresado.

VARIABLES
ENTERO Número Unidad, Decena, Suma
Número,

INICIO

LEER (Número
Número)
Unidad ← Número MOD 10
Decena  (Número
Número DIV 10) MOD 10
Centena  NÚMERO DIV 100
Suma ← Unidad + Decena + Centena
ESCRIBIR (Suma)

FIN

Computación, Informática & Sistemas 46


Fundamentos de Programación

9. Ingrese por teclado la cantidad de metros cúbicos de agua que se consume en una
casa. Calcula y visualice cada uno de los gastos sabiendo que el costo por metros
cubico es 0.35 nuevos soles y el monto del consumo es el producto de la cantidad de
metros cúbicos por el precio.

• Mantenimiento 0.25% del monto


• Parques y Jardines 0.15% del monto
• Exploración 0.05% del monto
• Limpieza de Alcantarillas 0.07% del monto

Del total a pagar deberá pagar el impuesto a las ventas


entas que representa el 19% del
Monto Total, calcule y visualice el Monto Total a Pagar.

VARIABLES
REAL: Cúbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar

INICIO
LEER (Cúbicos)
Monto  0.35 * Cubicos
Mant ← Monto * 0.25 /100
PJ  Monto * 0.15 / 100
Explor  Monto * 0.05 / 100
Limp ← Monto * 0.07 / 100
Monto  Monto + Mant + PJ + Explor + Limp
IGV  Monto * 0.19
Pagar  Monto + IGV
ESCRIBIR (“Mantenimiento:”, Mant)
ESCRIBIR (“Parques y Jardines:”, PJ)
ESCRIBIR (“Exploración:”, Explor)
ESCRIBIR (“Limpieza:”, Limp)
ESCRIBIR (“Monto:”, Monto)
ESCRIBIR (“IGV:”, IGV)
ESCRIBIR (“A Pagar:”, Pagar)
FIN

Computación, Informática & Sistemas 47


Fundamentos de Programación

10. Una Empresa dedicada a la Venta de Electrodomésticos, realiza una promoción del
20% + 15% de descuento. Ingrese el precio de un electrodoméstico, calcule y
visualice su descuento y el neto a pagar.

VARIABLES

REAL Precio, Descuento1, Descuento2, Neto

INICIO
LEER (Precio)
Descuento1 ← (Precio * 0.20)
Descuento2  (Precio – Descuento1) * 0.15
Neto  Precio – (Descuento1 + Descuento2)
ESCRIBIR ((Descuento1+Descuento2), Neto)
FIN

Computación, Informática & Sistemas 48


Fundamentos de Programación

EJERCICIOS PROPUESTOS
1. Ingrese por teclado un número, calcule y visualice:
a) El doble del número ingresado
b) La tercera parte del número ingresado
c) El cubo del número ingresado

2. Ingrese por teclado la cantidad de metros de un telar. Transformar los metros a


centímetros y pulgadas, sabiendo que una pulgada es el equivalente a 2.54
centímetros.

3. Ingrese por teclado la descripción y precio de un producto, actualizar el precio de la


siguiente manera:

a) Incremente el precio al 35% del precio ingresado.


b) El nuevo precio es la suma del precio inicial mas el incremento

4. Ingrese por teclado el nombre del producto, el precio unitario y la cantidad vendida,
calcule y visualice:

a) El importe de la compra que es el producto del precio por la cantidad vendida.


b) El IGV que representa el 19% del importe de la compra
c) El importe final que es la suma del importe de la compra mas el IGV

5. Ingrese por teclado un número de tres cifras, calcule y visualice:

a) Suma de sus cifras


b) Promedio de las cifras

6. Ingrese
ngrese por teclado un número de dos cifras, mostrar el número pero en sentido
inverso.

7. Se desea repartir cierto monto de dinero entre tres personas que conforman una
empresa; obtener el monto que le corresponde a cada persona si la repartición se
basa en la cantidad de acciones que posee cada socio:

Socio % Acciones
A 35%
B 45%
C 20%

Ingrese por teclado el monto de dinero, visualice el importe que recibirá cada uno de
los accionistas.

8. Desarrolle un algoritmo para la compañía telefónica que permite mostrar el pago por
consumo telefónico, para esto se ingresará el código del usuario, el número
telefónico y la cantidad de minutos utilizados.
Mostrar el código del usuario, el importe de las llamadas realizadas, el IGV y el pago
total, considerando que la empresa cobra 0.30 céntimos de nuevo sol por cada
minuto, la renta básica cobra 48 nuevos soles y el IGV es el 19% del Monto.

Computación, Informática & Sistemas 49


Fundamentos de Programación

9. Ingrese por teclado el nombre y tres notas de un alumno, calcular


calcul y mostrar el
promedio de las tres notas.

10. Ingrese por teclado la cantidad de soles, transformarlo en dólares; considere el tipo
de cambio del día.

11. Ingrese por teclado la cantidad de postulantes a la Universidad, calcule y visualice:

a) Cantidad de aulas completas


b) Cantidad de alumnos para completas la ultima aula
Considerar que un aula completa es de 20 alumnos.

12. Ingrese por teclado una cantidad de segundos, calcular y mostrar:

a) Cantidad de horas
b) Cantidad de minutos
c) Cantidad de segundos restantes

13. Ingrese por teclado un número,, incrementar el 2.4% de su valor, mostrar el valor del
incremento y el nuevo número.

14. Ingrese por teclado un número de 4 cifras, mostrar los números formados por las
cifras de los extremos y los medios.

15. Ingrese porr teclado el sueldo de un trabajador, asumiendo que éste es un valor
entero, visualizar la mejor distribución de billetes y monedas que se utilizarán para
pagar un sueldo.
Considere billetes de 100, 50, 20 ,10.
Monedas de 5, 2 ,1

16. En un instituto se planteo los siguientes pesos para cada una de las evaluaciones
que tendrá en el curso.

Examen Parcial 30%


Examen Final 40%
Promedio de Practicas 20%
Promedio de Trabajos 10%

Para tal caso ingrese el nombre del alumno y las 4 evaluaciones, mostrar el nombre
del alumno y su promedio.

Computación, Informática & Sistemas 50


Fundamentos de Programación

CAPITULO VI

ESTRUCTURAS CONDICIONALES Y SIMPLES

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las estructuras condicionales

 Realiza la solución de diversos casos prácticos aplicando estructuras condicionales

CONTENIDOS

 Definición de estructuras condicionales

 Clasificación

 Estructura condicional simple

 Definición

 Sintaxis

 Desarrollo Practico

ESTRUCTURAS CONDICIONALES

Definición

Las Estructuras Condicionales también reciben el nombre de “estructuras de selección”,


permite elegir entre diferentes cursos de acción en función de condiciones.

Las estructuras condicionales comparan una variable contra otro(s) valor (es), para que
en base al resultado de esta comparación, se siga un curso de acción dentro del
programa. Cabe mencionar que la comparación se puede hacer contra otra variable o
contra una constante, según se necesite.

En una Estructura Condicional se evalúa una expresión lógica y dependiendo del


resultado se ejecutan unas sentencias u otras.

Pongamos un pequeño ejemplo. Imagine que tenemos nuestro robot subiendo las
escaleras de la Torre Eiffel y le indicamos lo siguiente: si está en el escalón 200 entonces
no continúe subiendo, sino continua su ascensión. Como puede ver aquí se nos presenta
una
na condición y, según en el punto de la escalera en la que se encuentre, nuestro robot
se parará o continuará subiendo.

Si la condición es verdadera, entonces se ejecuta la sentencia mostrar, y luego el


programa continuaría; si la condición es falsa, la sentencia
sentencia mostrar se ignora y el
programa continúa.

Computación, Informática & Sistemas 51


Fundamentos de Programación

¿Qué es una Condición?

Una condición o expresión booleana puede ser:

• Una variable booleana


TEST  Verdadero

• Una expresión aritmética seguida de un operador relacional, seguido de otra


expresión aritmética
TEST  3 < 5

• Una expresión booleana, seguida de un operador booleano, seguido de una


expresión booleana
TEST  A AND NOT B OR C

Se pueden utilizar condiciones tan complejas como se quiera siempre que estén bien
formadas

Clasificación

Las estructuras condicionales o selectivas se clasifican en:


1. Condicional Simple (SI / FIN-SI)
FIN
2. Condicional Doble (SI / SINO / FIN-SI)
FIN
3. Condicional Anidada (Similar a Condicional Doble)
4. Condicional Múltiple (EN_CASO / FIN-EN_CASO)
FIN

ESTRUCTURA CONDICIONAL SIMPLE

Definición

Es aquella estructura de control que evalúa una condición:


• Si la condición se cumple se ejecutan determinadas acciones.
• Si la condición no se cumple, no se ejecutan esas acciones.

Computación, Informática & Sistemas 52


Fundamentos de Programación

SINTAXIS

DIAGRAMA DE FLUJO

PSEUDOCÓDIGO

Computación, Informática & Sistemas 53


Fundamentos de Programación

EJERCICIOS RESUELTOS
1. Ingrese por teclado 2 números enteros y visualice el mayor de los 2 números
ingresados.

ALGORITMO Ejemplo1
VARIABLES
ENTERO: A, B, Mayor
INICIO
LEER ( A, B )
Mayor  A
SI ( B > A )ENTONCES
Mayor  B
FIN
FIN-SI
ESCRIBIR ( Mayor )
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module1
Sub Main()

Dim A, B, Mayor33 As Integer


Write("Ingresa
"Ingresa valor 1..:")
1..:"
A = ReadLine()
Write("ingresa
"ingresa VALOR 2..:")
2..:"
B = ReadLine()
MAYOR=A
IF B > A THEN
Mayor = B
END IF
WriteLine("EL
"EL MAYOR ES..:" & MAYOR)
ReadLine()

End Sub
End Module

Computación, Informática & Sistemas 54


Fundamentos de Programación

2. Ingrese por teclado un número entero, si mayor a 10 súmele 10 unidades y visualice


el nuevo valor.

ALGORITMO Ejemplo2
VARIABLES
ENTERO: N
INICIO
LEER ( N )
SI ( N > 10) ENTONCES
N  N + 10
FIN
FIN-SI
ESCRIBIR ( N )
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module1
Sub Main()
Dim N As Integer
Write("Ingresa
"Ingresa valor 1..:")
1..:"
N = ReadLine()
IF N>10 THEN
N=N+10
END IF
WriteLine("EL
"EL NUEVO VALOR..:" & N)
ReadLine()
End Sub
End Module

3. Ingrese por teclado la edad de una persona; si su edad es mayor a 17, visualice un
mensaje “Es mayor de edad”.
ALGORITMO Ejemplo3
VARIABLES
ENTERO: edad

INICIO
LEER (edad)
SI (edad > 17) ENTONCES
ESCRIBIR “Es mayor de edad”
FIN
FIN-SI
FIN

Computación, Informática & Sistemas 55


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math
Module Module1
Sub Main()

Dim edad As Integer


Write("Ingresa
"Ingresa su edad..:")
edad..:"
edad = ReadLine()
IF edad>17 THEN
WriteLine("eres
"eres mayor de edad" )
END IF
ReadLine()

End Sub
End Module

4. Ingrese por teclado la talla de una persona; visualice un mensaje “Servicio


Obligatorio”, si tiene una talla mínima de 1.70 metros

ALGORITMO Ejemplo4
VARIABLES
REAL: talla
INICIO
LEER (talla)
SI (talla>=1.70) ENTONCES
ESCRIBIR “Servicio Obligatorio”
FIN
FIN-SI
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math
Module Module1
Sub Main()

Dim talla As double


Write("Ingresa
"Ingresa su edad..:")
edad..:"
talla = ReadLine()
IF talla>1.70 THEN
WriteLine(
WriteLine("eres Servicio Obligatorio " )
END IF
ReadLine()

End Sub
End Module

Computación, Informática & Sistemas 56


Fundamentos de Programación

5. Una empresa otorga un bonificación del 5% del haber básico solo a sus trabajadores
que tienen hijos, calcular el total a pagar a un trabajador.

ALGORITMO Ejemplo5
VARIABLES
ENTERO: NroHijos
REAL: Hbasico, Bonificación, Total
INICIO
LEER (Hbasico, NroHijos)
Bonificación  0
SI ( NroHijos > 0 ) ENTONCES
Bonificación ← Hbasico * 0.05 * NroHijos
FIN
FIN-SI
Total  Hbasico + Bonificación
ESCRIBIR (Total)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math
Module Module1
Sub Main()

Dim Hbasico, Bonificación, Total As double


Dim NroHijos AsA integer
Write("Ingresa
"Ingresa su haber basico.:")
basico.:"
hbasico = ReadLine()
Write("Ingresa número de hijos.:")
nrohijos = ReadLine()
IF ( NroHijos > 0 ) THEN
Bonificación =Hbasico * 0.05 * NroHijos
END IF
Total =Hbasico + Bonificación
WRITELINE(“SU PAGO TOTAL ES :” &Total)
ReadLine()

End Sub
End Module

Computación, Informática & Sistemas 57


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Ingrese por teclado 2 números enteros y visualice el menor de los 2 números


ingresados.

2. Ingrese por teclado un número entero visualice el cuadrado del nú


número, si el número
es mayor a 10 y menor a 50.

3. Ingrese por teclado la edad y talla de una dama, visualice un mensaje “Postulante a la
Escuela de Oficiales”, si su edad mínima es 17 y su talla mínima es 1.65 metros.

4. Ingrese por teclado el puntaje de un alumno que ha postulado a la Universidad,


visualice
e un mensaje “Alumno Ingresado” si el puntaje obtenido es mayor a 500.

5. Ingrese por teclado el sueldo de un empleado, si el sueldo es mayor a 1800, se le


aplicará un descuento del 15% del excedente de su sueldo respecto a 1800, visualice
el descuento.

6. Ingrese
rese por teclado la descripción y precio de un accesorio de computadora; se le
aplicará un descuento del 5% al precio si el accesorio es Monitor o Teclado. Visualice
el descuento y el nuevo precio.
precio

7. Ingrese por teclado un número, si es número


nú par, duplique el valor del número;

mostrar el nuevo valor.

8. Ingrese por teclado un número,


número, si es de 3 cifras, visualice la suma de las cifras del
número.

9. Ingrese por teclado el nombre del curso y su precio; si el nombre del curso es
Networking, se le aplicará un descuento del 15% al precio, visualice el descuento y el
nuevo precio.

10. Ingrese por teclado el año de nacimiento de una persona, visualice un mensaje “Es
mayor de edad”, si su edad es mayor o igual a 18.

11. Ingrese por teclado dos notas, calcule su promedio sabiendo que la segunda nota es
peso doble; visualice un mensaje “Aprobado”, si su promedio es mayor o igual a 11

12. Ingrese por teclado un número, si el número es impar y de tres cifras, visualice el
número incrementado por su número invertido.

13. Ingrese por teclado el nombre, precio y la cantidad de productos a vender, calcule el
monto de la venta. Se aplicará un descuento del 35% de su precio por la compra de
20 unidades. Visualice el descuento y el neto.

Computación, Informática & Sistemas 58


Fundamentos de Programación

CAPÍTULO VII

ESTRUCTURAS CONDICIONALES DOBLES

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las estructuras condicionales dobles.


dobles

 Realiza la solución de diversos casos prácticos aplicando estructuras condicionales.


condicionales

CONTENIDOS

 Estructura condicional doble

 Definición

 Sintaxis

 Desarrollo Practico

ESTRUCTURA CONDICIONAL DOBLE

Definición

La estructura condicional de selección doble ejecuta un bloque de instrucciones (A)


cuando la proposición (condición) es verdadera y un bloque diferente (B) cuando esta es
falsa.

SINTAXIS

DIAGRAMA DE FLUJO

Computación, Informática & Sistemas 59


Fundamentos de Programación

PSEUDOCÓDIGO

True
False

Donde:

si : Indica el comando de comparación


condición : Indica la condición a evaluar
entonces : Precede a las acciones a realizar cuando se cumple la condición
Instrucción : Son las acciones a realizar cuando se cumple o no la condición
si no : Precede a las acciones a realizar cuando no se cumple la
Condición

Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más


acciones.

Computación, Informática & Sistemas 60


Fundamentos de Programación

EJERCICIOS RESUELTOS

1. Ingrese por teclado 2 números,


números visualice el mayor de los dos números ingresados.

ALGORITMO Ejemplo1
VARIABLES
ENTERO: A, B
INICIO
LEER(A, B)
SI ( A > B )ENTONCES
ESCRIBIR (A)
SINO
ESCRIBIR (B)
FIN-SI
FIN

2. Ingrese por teclado un número, si el número es par visualice su doble pero si el


número es impar visualice su cuadrado.

ALGORITMO Ejemplo2
VARIABLES
ENTERO: A
INICIO
LEER(A)
SI ( A MOD 2 = 0) ENTONCES
ESCRIBIR (2*A)
SINO
ESCRIBIR (A^2)
FIN-SI
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim A As Integer
Write("Ingresa
"Ingresa valor 1..:")
1..:"
A = ReadLine()
IF A MOD 2=0 THEN
WriteLine("EL
"EL DOBLE ES..:" & 2*A)
ELSE
WriteLine("SU
"SU CUADRADO ..:" & A^2)

END IF
ReadLine()
End Sub
End Module

Computación, Informática & Sistemas 61


Fundamentos de Programación

3. Ingrese por teclado la edad de un postulante a las fuerzas armadas, visualice un


mensaje “Apto” si su edad es mayor a 17; sino visualice un mensaje “No apto”.

ALGORITMO Ejemplo3
VARIABLES
ENTERO: edad
INICIO
LEER (edad)
SI (edad>17) ENTONCES
ESCRIBIR (“APTO”)
SINO
ESCRIBIR (“NO APTO”)
FIN-SI
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim EDAD As Integer


Write("Ingresa
"Ingresa EDAD..:")
EDAD..:"
EDAD = ReadLine()
IF EDAD>17
>17 THEN
WriteLine("ESTA
"ESTA APTO”)
APTO”
ELSE
"NO APTO”)
WriteLine("NO APTO”

END IF
ReadLine()

End Sub
End Module

4. Ingrese por teclado el total de ahorros de una persona, si ahorró más de 1000,
visualice “PUEDE COMPRAR SU TV”, sino “SIGA AHORRANDO”.

ALGORITMO Ejemplo3
VARIABLES
REAL: ahorros
INICIO
LEER (ahorros)
SI (ahorros>1000) ENTONCES
ESCRIBIR (“PUEDE COMPRAR SU TV”)
SINO
ESCRIBIR (“SIGA AHORRANDO”)
FIN-SI
FIN

Computación, Informática & Sistemas 62


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim AHORROS As DOUBLE
Write("Ingrese
"Ingrese ahorros”)
ahorros = ReadLine()
IF ahorros>1000 THEN
WriteLine("puede
"puede comprar su tv”)
tv”
ELSE
WriteLine("siga
"siga ahorrando”)
ahorrando”

END IF
ReadLine()
End Sub
End Module

5. Ingrese por teclado el tiempo que demora en recorrer 1500 metros un atleta,
visualice un mensaje “ATLETA A COMPETIR EN LA OLIMPIADA” si la marca
mínima es 3 minutos, sino visualice un mensaje “PREPARARSE MAS”

ALGORÍTMICA Ejemplo5
VARIABLES
REAL: tiempo
INICIO
LEER (tiempo)
SI (tiempo<=3.00) ENTONCES
ESCRIBIR (“ATLETA
(“ATLETA A COMPETIR EN LA OLIMPIADA”)
SINO
ESCRIBIR (“PREPARARSE
(“ MAS”)
FIN-SI
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim tiempo As double
Write("Ingresa
"Ingresa EDAD..:")
EDAD..:"
tiempo = ReadLine()
IF tiempo<=3.00 THEN
WriteLine (“ATLETA
ATLETA A COMPETIR EN LA OLIMPIADA”))
OLIMPIADA”)
ELSE
WriteLine("PREPARARSE
PREPARARSE MAS”)
MAS

END IF
ReadLine()
End Sub
End Module

Computación, Informática & Sistemas 63


Fundamentos de Programación

6. Una tienda comercial ofrece un descuento del 3% del valor de compra si el pago se
efectúa al contado, en caso el pago sea con tarjeta se le recarga un 5% del valor de
compra. Calcular el total a pagar.

ALGORITMO Ejemplo6
VARIABLES
REAL: Vcompra, Descuento, Recargo, Total
CARÁCTER: TipoPago
INICIO
LEER (Vcompra, TipoPago)
Descuento  0 : Recargo  0
SI (TipoPago = ‘C’ ) ENTONCES
Descuento  Vcompra * 0.03
SINO
Recargo  Vcompra * 0.05
FIN-SI
Total  Vcompra – Descuento + Recargo
ESCRIBIR (Total)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim Vcompra, Descuento, Recargo, Total As double
Dim TipoPago as char
Write("Ingresa
"Ingresa valor de la compra..:")
compra..:"
vcompra = ReadLine()
Write("Ingrese
"Ingrese tipo de compra c/r..:")
c/r..:"
tipopago = ReadLine()
If (TipoPago = “C” ) then
Descuento = Vcompra * 0.03
Else
Recargo =Vcompra * 0.05
End if
Total = Vcompra – Descuento + Recargo
WriteLine("total
"total a pagar:” & totAL)
totAL
ReadLine()
End Sub
End Module

Computación, Informática & Sistemas 64


Fundamentos de Programación

7. Ingrese un número entero de 3 cifras y luego visualice un mensaje indicando si el


número ingresado es “CAPICUA” o “NO ES CAPICUA”.

ALGORÍTMICA Ejemplo7
VARIABLES
ENTERO: N, A, C
INICIO
LEER( N )
SI ( N >= 100) Y ( N <= 999 ) ENTONCES
A  N DIV 100
C  ( N MOD 100) MOD 10
SI ( A = C ) ENTONCES
ESCRIBIR (“CAPICUA”)
SINO
ESCRIBIR(“NO ES CAPICUA”)
FIN
FIN-SI
FIN-SI
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N, A, C As INTEGER
Write("Ingrese
"Ingrese UN NÚMERO DE 3 CIFRAS”)
N = ReadLine()
IF ( N >= 100) AND ( N <=< 999 ) THEN
A = N \ 100
C = ( N MOD 100) MOD 10
IF ( A = C ) THEN
WRITELINE (“CAPICUA”)
ELSE
WRITELINE (“NO
( ES CAPICUA”)
END IF
END IF
ReadLine()

End Sub
End Module

Computación, Informática & Sistemas 65


Fundamentos de Programación

8. Una tienda comercial por campaña publicitaria está ofreciendo descuentos por sus
diversos artículos, donde lo artículos que cuestan mínimo 1000 nuevos soles se le
aplicará un descuento del 10% y aquellos que son menores a dicho monto se le
aplicará un descuento del 3% del precio. Visualice el descuento y el neto

ALGORITMO Ejemplo8

VARIABLES
REAL: Precio, Descuento, Neto
INICIO
LEER (Precio)
Descuento  0
SI (Precio>=1000) ENTONCES
Descuento  Precio * 0.10
SINO
Descuento  Precio * 0.03
FIN-SI
Neto  Precio – Descuento
ESCRIBIR (Descuento, Neto)
FIN

9. Se están solicitando a la población postular a la Escuela de la Fuerzas Armadas, una


persona que postula a la Escuela
Escu la deberá ingresar su Nombre, edad, talla y estudios
realizados. Si su edad es mayor a 17, tiene una talla mínima
mínima de 1.70 y estudios
superiores, podrá ingresar, sino ingresará a la Escuela de Suboficiales.

ALGORÍTMICA Ejemplo9

VARIABLES
ENTERO: edad
REAL: talla
CADENA: nombre, estudios
INICIO
LEER (nombre, talla, edad, estudios)
SI ( edad>17
edad> Y talla>=1.70 Y estudios=”SUPERIOR”) ENTONCES
ESCRIBIR (“APTO PARA ESCUELA DE OFICIALES”)
SINO
ESCRIBIR (“APTO PARA ESCUELA DE SUB OFICIALES”)
FIN-SI
FIN

Computación, Informática & Sistemas 66


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Ingrese por teclado 2 notas, visualice el mayor de las dos notas y si esa nota es
aprobatoria o no (notas de 0-20).
0

2. Ingrese por teclado la edad de una persona, visualice un mensaje:


a. “Mayor de Edad”, si la edad es mínimo 18
b. “Menor de Edad”, si la edad es menor a 18

3. Ingrese por teclado un número de dos cifras, visualice un mensaje si es número es o


no capicúa.

4. Ingrese por teclado dos números, visualice el menor de los dos números ingresados.

5. Ingrese por teclado tres números diferentes, visualize:


a) Mayor de los tres números
b) Menor de los tres números

6. Ingrese por teclado tres números enteros diferentes, visualice el segundo mayor
número.

7. Ingrese por teclado el precio de un articulo y el tipo de pago, si el tipo de pago es


“CONTADO” se le aplicará un descuento del 5%, sino no se le aplicará descuento;
visualice
isualice el descuento y el nuevo precio.

8. Ingrese por teclado el nombre de un alumno y sus tres notas, calcule y visualice su
promedio; si el promedio es menor a 11, deberá ingresar la nota sustitutoria que
reemplazara a la nota más baja; calcule y visualice su promedio.

9. Ingrese por teclado el precio de un artículo, si el precio es menor a 100, se le aplicará


un descuento del 3% sobre el precio, sino, se le aplicará un descuento del 10% sobre
el precio. Visualice el descuento y el nuevo precio

10. Ingrese porr teclado el nombre de un obrero y sus horas trabajadas, el pago que
recibe por cada hora es de 15 nuevos soles. Su jornal es el producto del pago por
hora y las horas trabajadas; si trabaja más de 40 horas, por cada hora extra
trabajada, se le pagará 25 nuevos
nuevos soles. Visualice el jornal que recibió.

Computación, Informática & Sistemas 67


Fundamentos de Programación

Computación, Informática & Sistemas 68


Fundamentos de Programación

CAPÍTULO VIII

ESTRUCTURAS CONDICIONALES MULTIPLES

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las estructuras condicionales múltiples.


múltiples

 Realiza la solución de diversos casos prácticos aplicando estructuras condicionales.


condicionales

CONTENIDOS

 Estructura condicional múltiple

 Definición

 Sintaxis

 Desarrollo Practico

ESTRUCTURA CONDICIONAL MULTIPLE

Definición

Las estructuras de comparación múltiples, son tomas de decisión especializada que


permiten comparar una variable con posibles resultados diferentes, ejecutando para cada
caso una serie de instrucciones específicas.
Cabe resaltar que este tipo de estructura evalúa el valor de una variable con los posibles
valores que se pueden comparar para obtener un resultado,
resultado, por ejemplo:
Si el mes es 1, escribir “Enero”; sino si el mes es 2, escribir “Febrero”, etc.

SINTAXIS

DIAGRAMA DE FLUJO

Computación, Informática & Sistemas 69


Fundamentos de Programación

PSEUDOCÓDIGO

Computación, Informática & Sistemas 70


Fundamentos de Programación

EJERCICIOS RESUELTOS
1. Ingrese 3 números enteros y visualice el mayor de los 3 números ingresados.

ALGORITMO Ejemplo1
VARIABLES
ENTERO: A, B, C, Mayor
INICIO
LEER( A, B, C)
SI( A>B AND A>C ) ENTONCES
Mayor ← A
SINO SI( B>A AND B>C ) ENTONCES
Mayor ← B
SINO
Mayor ← C
FIN-SI
ESCRIBIR ( Mayor )
FIN
CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim A, B, C, Mayor As INTEGER
Write("Ingrese
"Ingrese UN PRIMER VALOR:”)
A = ReadLine()
Write("Ingrese
"Ingrese UN SEGUNDO VALOR:”)
B = ReadLine()
Write("Ingrese
"Ingrese UN TERCER VALOR:”)
IF ( A>B AND A>C ) THEN
Mayor = A
ELSEIF ( B>A AND B>C ) THEN
Mayor = B
ELSE
Mayor= C
END IF
WRITELINE (“EL MAYOR VALOR ES :” & Mayor )
ReadLine()
End Sub
End Module

Computación, Informática & Sistemas 71


Fundamentos de Programación

11. Ingrese un número entero, si es menor a 10 súmele 10 unidades, si está entre 11 a


20 multiplique por dos, si es mayor a 20 elevar a potencia par. Visualice el nuevo
valor.
ALGORITMO Ejemplo2
VARIABLES
ENTERO: N
INICIO
LEER( N )
SI ( N < 10) ENTONCES
N ← N + 10
SINO SI ( N <= 20) ENTONCES
N ← N *20
SINO
N←N*N
FIN
FIN-SI
ESCRIBIR ( N )
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA


Imports System.Console
Module Module1
Sub Main()
Dim N As INTEGER
Write("Ingrese
"Ingrese UN NÚMERO DE 3 CIFRAS”)
N = ReadLine()
IF ( N <10) THEN
N=N+10
ELSEIF ( N<20 ) THEN
N=N*20
ELSE
N=N*N
END IF
Writeline(“Valor nuevo de N:” & N)
ReadLine()
End Sub
End Module

12. Una empresa otorga bonificaciones de su haber básico según la categoría del
trabajador; categoría A: 250; categoría B: 200; categoría C: 120; otras categorías 50.
ALGORITMO Ejemplo3
VARIABLES
CADENA: Categoría
REAL: Bonificación
INICIO
LEER (Categoría)
SI (Categoría = “A”) ENTONCES
Bonificación ← 250
SINO SI (Categoría = “B”) ENTONCES
Bonificación ← 200
SINO SI (Categoría = “C”) ENTONCES
Bonificación ← 120
SINO
Bonificación ← 50
FIN
FIN-SI
ESCRIBIR (Bonificación)
FIN

Computación, Informática & Sistemas 72


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim Bonificación As double
Dim categoria as string
Write("Ingrese
"Ingrese una categoría
categorí :”)
categoria = ReadLine()
IF (categoria = “A”) THEN
Bonificación=250
ELSEIF (categoria
categoria = “B”) THEN
Bonificación=200
ELSEIF (categoria
categoria = “C”) THEN
Bonificación= 120
ELSE
Bonificación =50
END IF
Writeline(“Valor DE Bonificación :” & Bonificación )
ReadLine()
End Sub
End Module

13. Se van a publicar la nota de un alumno, dependiendo de su nota se ubicará en una de


las siguientes categorías:

PROMEDIO CATEGORÍA
18 – 20 Excelente
15 – 17 Bueno
11 – 14 Regular
0 -10 Malo

ALGORITMO Ejemplo4
VARIABLES
CADENA: Categoría
ENTERO: nota

INICIO
LEER (nota)
SI (nota<=10) ENTONCES
Categoría ← “Malo”
SINO SI (nota<=14) ENTONCES
Categoría ← “Regular”
SINO SI (nota<=17) ENTONCES
Categoría ← “Bueno”
SINO
Categoría ← “Excelente”
FIN
FIN-SI
ESCRIBIR (Categoría)
FIN

Computación, Informática & Sistemas 73


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim nota As integer
Dim categoria as string
Write("Ingrese
"Ingrese nota :”)
nota = ReadLine()
Iff (nota<=10) then
Categoría=“Malo”
Else if (nota<=14) then
Categoría = “Regular”
Else if (nota<=17) then
Categoría = “Bueno”
Else
Categoría = “Excelente”
End if
Writeline(“observacion:” & categoria)
ReadLine()
End Sub
End Module

14. Una persona está a punto de ver televisión, mostrar si según su edad está apto para
ver el programa televisivo.

EDAD CATEGORÍA
18 -más Contenido para adultos
14 -17 Mayores de 14
0 –13
– apt

ALGORITMO Ejemplo4
VARIABLES
ENTERO: edad

INICIO
LEER (edad
SI (nota<=13) ENTONCES
ESCRIBIR (“apt”)
SINO SI (nota<=17) ENTONCES
ESCRIBIR (“Mayores de 14”)
SINO
ESCRIBIR (“Contenido para Adultos”)
FIN
FIN-SI
FIN

Computación, Informática & Sistemas 74


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim edad As integer
Write("Ingrese
"Ingrese edad :”)
If (nota<=13)
nota<=13) then
Writeline (“apta para todos”)
Else if (nota<=17)
ota<=17) then
Writeline (“Mayores de 14”)
Else
Writeline (“Contenido para Adultos”)
End if
ReadLine ()
End Sub
End Module

Computación, Informática & Sistemas 75


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. En una oficina de empleos categorizar a los postulantes en función al sexo y la edad


de acuerdo a lo siguiente:
• Si la persona es de sexo femenino: categoría FA si tiene menos de 20 años y FB
caso contrario.
• Si la persona es de sexo masculino: categoría MA si tiene menos de 30 años y
MB caso contrario

2. Diseñe un programa que ingrese el sueldo de un trabajador y calcule


calcule el aumento que
obtendrá de la siguiente tabla
SUELDO AUMENTO
Menos 2000 20%
2000<=sueldo<=3000 13%
Sueldo>3000 9%

3. Diseñe un programa que lea la temperatura de un día e imprima el tipo de clima de


acuerdo a la siguiente tabla

Temperatura Promedio (TP) Tipo de Clima


TP<=10 Frió
10<TP<=20 Nublado
20<TP<=30 Caluroso
TP30 Trópico

4. Ingrese un número de 4 cifras, visualizar un mensaje si el número es o no capicúa.

5. Ingrese el nombre de un alumno y sus tres notas, calcule y visualice su promedio; si el


promedio es menor a 11, deberá ingresar la nota sustitutoria que reemplazara a la
nota más baja; calcule y visualice su promedio

6. Escriba un programa que lea un número desde el teclado entre 1 y 12 e imprima el


nombre del mes del año correspondiente. (Enero, Febrero,...etc).

7. Ingrese un número de hasta tres cifras, visualizar el número en romanos

8. La Universidad UTP ha categorizado las matriculas de acuerdo


acuerdo a la facultad que va a
estudiar

Facultad Importe de Mensualidad


Matricula
Ing. de Sistemas 350 590
Derecho 300 550
Ing. Naviera 300 500
Ing. Pesquera 310 550
Contabilidad 280 490

Computación, Informática & Sistemas 76


Fundamentos de Programación

Ingrese por teclado el nombre del Postulando y la facultad que va a estudiar, visualice:
• El importe de la matricula
• El monto de la mensualidad
• El monto total, que es la suma de la matricula y la mensualidad

9. Un cliente, por campaña navideña, desea comprar panteones, donde según su marca
tiene un precio

Marca del Panteón Precio Unitario


D’onofrio 20
Motta 19
Todinno 18
Naval 9
Santa Claus 11
Doña Pepa 10

Si el cliente desea comprar más de 20 panetones de una misma marca, se le aplicará


un descuento del 10% sobre el monto de la compra, obteniendo así el neto, que es la
diferencia entre el monto y el descuento.

Ingrese por teclado el nombre del cliente, la marca del panteón y la cantidad de
panetones a comprar; visualice el precio unitario del panteón, el monto de la compra,
el descuento y el neto a pagar.
pagar

10. Ingrese por teclado la distancia que recorrió un atleta, de acuerdo a la distancia, el
atleta está clasificado:

Distancia en metros Clasificación


100 Corta
1500 Milla
3000 3000 metros
20 kms Semi Fondo
40 kms Fondista

Computación, Informática & Sistemas 77


Fundamentos de Programación

Computación, Informática & Sistemas 78


Fundamentos de Programación

Computación, Informática & Sistemas 79


Fundamentos de Programación

Computación, Informática & Sistemas 80


Fundamentos de Programación

CAPÍTULO IX

ESTRUCTURAS CONDICIONALES ANIDADAS

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las estructuras condicionales anidadas


 Realiza la solución de diversos casos prácticos aplicando estructuras condicionales

CONTENIDOS

 Estructura condicional anidada


 Definición
 Sintaxis
 Desarrollo Practico

ESTRUCTURA CONDICIONAL ANIDADA

Definición

Esta estructura se emplea cuando se requiere condicionar dentro de otra


condicional, es decir, cuando dentro de una condicional simple o doble existe otra
condicional simple o doble.

SINTAXIS
PSEUCODIGO

Donde:

 Si la condición 1 es verdadera, se evaluará la condición 2.


 Si la condición 2 es verdadera, ejecuta la sentencia 1; si no es verdadera,
Ejecuta la sentencia 2.
 Si la condición 1 no es verdadera, evaluará la condición 3.
 Si la condición 3 es verdadera, ejecuta la sentencia 3; si no es verdadera,
Ejecuta la sentencia 4.

Computación, Informática & Sistemas 81


Fundamentos de Programación

EJERCICIOS RESUELTOS
1. Ingrese un número entre 1 y 3, luego visualice su equivalente en letras.

ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
LEER( N )
SI( N = 1 )ENTONCES
ESCRIBIR (“UNO”)
(
SINO
SI( N = 2 )ENTONCES
ESCRIBIR (“DOS”)
SINO
SI( N = 3 )ENTONCES
ESCRIBIR (“TRES”)
SINO
ESCRIBIR (“NÚMERO NO VALIDO”)
FIN-SI
FIN
FIN-SI
FIN-SI
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N As INTEGER
Write("Ingrese
"Ingrese UN NÚMERO entre 1- 3 :”)
N = ReadLine()
IF ( N =1) THEN
Writeline(“uno:”)
ELSE
IF N=2 THEN
Writeline(“DOS:”)
ELSE
IF N=3 THEN
WRITELINE(“TRES”)
ELSE
Writeline(“NÚMERO NO VALIDO:”)
END IF
END IF
END IF
ReadLine()

End Sub
End Module

Computación, Informática & Sistemas 82


Fundamentos de Programación

2. Ingrese el puntaje obtenido por un postulante y luego visualice a que carrera ingreso,
según la siguiente tabla:

ALGORITMO Ejemplo2
VARIABLES
ENTERO Puntaje
INICIO
LEER ( Puntaje )
SI (Puntaje >= 70) Y (Puntaje < 90) ENTONCES
ESCRIBIR (“Contabilidad”)
(
SINO
SI (Puntaje >= 90) Y (Puntaje < 100) ENTONCES
ESCRIBIR (“Administración”)
SINO
SI (Puntaje >= 100) Y (Puntaje < 120) ENTONCES
ESCRIBIR (“Derecho”)
SINO
SI (Puntaje >= 120) Y (Puntaje <= 150) ENTONCES
ESCRIBIR (“INGENIERIA”)
“INGENIERIA”)
SINO
ESCRIBIR (“LE
“LE FALTO:”, 70-Puntaje)
70
FIN-SI
FIN-SI
FIN
FIN-SI
FIN-SI
FIN

Computación, Informática & Sistemas 83


Fundamentos de Programación

3. Ingrese el ciclo y turno a estudiar, luego calcule el total a pagar según la siguiente
tabla:

CICLO TURNO PENSION


1 M 850
1 N 800
2 M 750
2 N 700
3 - 10 M 650
3 - 10 N 600

ALGORITMO Ejemplo3
VARIABLES
REAL Pensión
ENTERO Ciclo
CARÁCTER Turno
INICIO
LEER( Ciclo, Turno )
SI (Ciclo = 1) ENTONCES
SI (Turno = ‘M’) ENTONCES
Pensión ← 850
SINO
Pensión ← 800
FIN
FIN-SI
SINO
SI (Ciclo = 2) ENTONCES
SI (Turno = ‘M’) ENTONCES
Pensión ← 750
SINO
Pensión ← 700
FIN-SI
SINO
SI (Turno = ‘M’) ENTONCES
Pensión ← 650
SINO
Pensión ← 600
FIN-SI/
FIN
FIN-SI
FIN-SI
FIN

Computación, Informática & Sistemas 84


Fundamentos de Programación

4. Ingrese el consumo de agua de un mes y calcule el visualice el total a pagar, según la


siguiente tabla:

Consumo Tarifa

[ 1 – 50 > 0.8

[ 50 – 100 > 1.5

[ 100 – 150 > 1.8

[ 150 a mas… 2.0

ALGORITMO Ejemplo4
VARIABLES
REAL: Consumo, Tarifa, Monto
INICIO
LEER (Consumo)
SI (Consumo<50) ENTONCES
Tarifa  0.8
SINO
SI (Consumo >= 50) Y (Consumo < 100) ENTONCES
Tarifa  1.5
SINO
SI (Consumo >= 100) Y (Consumo < 150) ENTONCES
Tarifa  1.8
SINO
Tarifa  2.0
FIN-SI
FIN
FIN-SI
FIN-SI
Monto  Tarifa * Consumo
ESCRIBIR (Tarifa, Monto)
FIN

5. Ingrese por teclado el nombre de un Empleado y su categoría. Según su categoría


obtendrá su básico y bonificación:

Categoría Básico Bonificación


Empleado 600 150
Obrero 550 190
Ejecutivo 1500 500
Auxiliar 200 50

Calcule y visualice su remuneración que es la suma del básico y bonificación.

Computación, Informática & Sistemas 85


Fundamentos de Programación

ALGORITMO Ejemplo5

VARIABLES
REAL: básico, bonificación, monto
CADENA: Categoría
INICIO
LEER (Categoría)
SI (Categoría =”Empleado”) ENTONCES
básico  600
bonificación  600
SINO
SI (Categoría = ”Obrero”) ENTONCES
básico  550
bonificación  190
SINO
SI (Categoría “Ejecutivo”) ENTONCES
básico  1500
bonificación  500
SINO
básico  200
bonificación  50
FIN-SI
FIN
FIN-SI
FIN-SI
monto  básico + bonificación
ESCRIBIR (básico, bonificación, monto)
FIN

Computación, Informática & Sistemas 86


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Ingrese el estado civil y número de hijos, luego calcule la bonificación a pagar a un


trabajador según la siguiente tabla :

Estado Hijos Bonificación


Civil (% Haber Básico)

S 0 2.50 %
S >0 2.75 %
C 0 2.80 %

C >0 3.00 %
V 0 2.50 %
V >0 2.75 %

D 0 2.50 %
D >0 3.00 %

2. Ingrese número entre 1 y 99, luego visualice su equivalente en romanos.

3. Calcular el total a pagar por una compra, sabiendo que existe un recargo según tipo
de tarjeta de crédito con la que se paga la compra.

Tipo de Tarjeta Recargo

Visa Electrón ( E ) 0%
VISA ( V ) 5%
MasterCard ( M ) 7%

4. Calcular el total a pagar por su consumo telefónico, sabiendo que su renta básica es
de S/. 50 (60 minutos libres), y que el cobro por minutos adicionales se factura según
la siguiente tabla.

Minutos Consumidos Costo x Minuto

< 60 – 100 ] 0.007


<100 – 200 ] 0.005

<200 – 400 ] 0.004


<400 – 500 ] 0.003

<500 – Más… 0.002

Computación, Informática & Sistemas 87


Fundamentos de Programación

5. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de interés
según la siguiente tabla :

Plan de Tasa de Monto


Cuenta Interés Mínimo

Plan “A” 0.07 % 1000

Plan “B” 0.08 % 1500

Plan “C” 0.09 % 2000

Plan “X” 0.10 % 2500

Elabore un algoritmo donde ingrese el Monto de apertura, luego calcule y visualice el


interés generado, el plan al cual pertenece y el nuevo saldo.

6. Ingrese por teclado un números del 1 al 999, exprese el número en letras, por
ejemplo 125  un ciento veinticinco

7. Un instituto ofrece cursos de programación, el costo de los cursos es de la siguiente


manera:

Básico Intermedio Avanzado


Profesor 50 100
Alumno 40 80
Externo 70 120

Se pide elaborar un programa para emitir el recibo por dicho curso, los datos que se
mostraran en el recibo son: nombre del participante, costo del curso y nivel del curso.

8. Se desea calcular el total a pagar por consumo de energía eléctrica, el pago se


realiza
ealiza según la siguiente tabla:

Consumo (Kw) Costo por Kw

[ 100 – 150 > 0.65


[ 150 – 250 > 0.85
[ 250 – 350 > 1.05
[ 350 – Más… > 1.25

NOTA: El pago de consumo mínimo es de S/. 10 Soles.

Computación, Informática & Sistemas 88


Fundamentos de Programación

CAPÍTULO X

ESTRUCTURAS SELECTIVAS

OBJETIVOS ESPECÍFICOS

• Defina el propósito de las estructuras selectivas.


selectivas

• Realiza la solución de diversos casos prácticos aplicando estructuras


selectivas.

CONTENIDOS

• Estructura Selectiva

• Definición

• Sintaxis

• Desarrollo Practico

ESTRUCTURA SELECTIVA

Definición

Cuando existen más de dos elecciones (alternativas) posibles, es cuando se presenta el


caso de alternativas múltiples.

Si el número de alternativas es grande puede plantear serios problemas de escritura del


algoritmo y naturalmente de legibilidad.

La estructura
structura condicional selectiva evaluará una expresión que podrá tomar n valores
distintos 1, 2, 3, 4,..n.

Según que elija uno de estos valores en la condición, se realizará una de las “n
acciones”, o lo que es igual, el flujo del algoritmo seguirá un determinado
determinado camino entre
los “n” posibles.

Computación, Informática & Sistemas 89


Fundamentos de Programación

SINTAXIS

DIAGRAMA DE FLUJO

PSEUDOCÓDIGO

Computación, Informática & Sistemas 90


Fundamentos de Programación

EJERCICIOS RESUELTOS
1. Ingresar un número entre 1 y 5, y luego visualizar su equivalente en letras.

ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
LEER( N )
CASO ( N ) SEA
1: ESCRIBIR (“UNO”)
2: ESCRIBIR (“DOS”)
3: ESCRIBIR (“TRES”)
4: ESCRIBIR (“CUATRO”)
5: ESCRIBIR (“CINCO”)
OTRO CASO: ESCRIBIR (“FUERA DE RANGO”)
FIN-CASO
CASO
FIN

2. Una empresa otorga bonificaciones de su haber básico según la categoría del


trabajador; categoría A: 250; categoría B: 200; categoría C: 120; otras categorías 50.

ALGORITMO Ejemplo2
VARIABLES
CADENA: Categoría
REAL: Bonificación
INICIO
LEER (Categoría)
CASO (Categoría) SEA
“A”: Bonificación ← 250
“B”: Bonificación ← 200
“C”: Bonificación ← 120
OTRO CASO: Bonificación ← 50
FIN
FIN-CASO
ESCRIBIR (Bonificación)
FIN

Computación, Informática & Sistemas 91


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim categoria As Integer
Dim bonificacion as double
Write("Ingresa
"Ingresa categoria..:")
categoria..:"
categoria = ReadLine()
select case categoria
case “A”:bonificacion=250
case “B”:bonificacion=200
case “C”:bonificacion=120
case else
bonificacion=50
End select
Writeline(“la bonificacion es:” & bonificacion)
ReadLine()
End Sub
End Module

3. Ingrese 2 números y una operación matemática realizar (+,-,*,/,


(+, ,*,/, DIV, EXP), luego
muestre el resultado de operar los 2 números.
ALGORITMO Ejemplo2
VARIABLES
ENTERO: A, B, Resultado
CADENA: Operador
INICIO
LEER (A, B, Operador)
CASO (Operador) SEA
‘+’ : Resultado ← A + B
‘-’ : Resultado ← A – B
‘*’ : Resultado ← A * B
‘DIV’: Resultado ← A \ B
‘EXP’: Resultado ← EXP(A,B)
‘/’ : SI( B <> 0 )ENTONCES
Resultado ← A DIV B
SINO
Resultado ← 0
FIN-SI
FIN
FIN-CASO
ESCRIBIR (Resultado)

FIN

Computación, Informática & Sistemas 92


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim a, b,, resultado As Integer


Dim operador as string
Write("Ingresa
"Ingresa valor entero..:")
entero..:"
n = ReadLine()
select case operador
case “+”:resultado=a+b
case “-”:resultado=a
”:resultado=a-b
case “*”:resultado=a*b
case “div”:resultado=a\b
“div”:resultado=a
case “exp”:resultado=Exp(a,b)
case “/”:
if b<>0 then
resultado=a/b
else
resultado=0
end if
End select
Writeline(“la respuesta es:” & resultado)
ReadLine()

End Sub
End Module

4. Escriba un programa que lea un número desde el teclado entre 1 y 7 e imprima el


nombre del día de semana correspondiente. (Lunes, martes,...etc.).

ALGORITMO Ejemplo4
VARIABLES
CADENA: Semana
ENTERO: día
INICIO
LEER (día)
CASO (día) SEA
1: Semana ← “Lunes”
2: Semana ← “Martes”
3: Semana ← “Miércoles”
4: Semana ← “Jueves”
5: Semana ← “Viernes”
6: Semana ← “Sábado”
7: Semana ← “Domingo”
OTRO CASO:
Semana ← “Error”
FIN -CASO
ESCRIBIR (Semana)
FIN

Computación, Informática & Sistemas 93


Fundamentos de Programación

5. Calcular el total a pagar por una compra, sabiendo que existe un recargo según tipo de
tarjeta de crédito con la que se paga la compra.

Tipo de Tarjeta Recargo


Visa Electrón ( E ) 0%

VISA ( V ) 5%
MasterCard ( M ) 7%

ALGORITMO Ejemplo5
VARIABLES
REAL: monto. Recargo, total
CADENA: tarjeta
INICIO
LEER (tarjeta, monto)
CASO (tarjeta) SEA
“E”: recargo ← 0
“V”: recargo ← 0.05*monto
“M”: recargo ← 0.07* monto
FIN –CASO
Total  monto + recargo
ESCRIBIR (total)
FIN

6. Diseñe un programa que calcule el costo de un paciente, el costo depende del tipo de
enfermedad. De acuerdo a la siguiente tabla:

TIPO ENFERMEDAD COSTO


1 122
2 150
3 200

ALGORITMO Ejemplo6
VARIABLES
REAL: costo
CARACTER: tipo
INICIO
LEER (tipo)
CASO (tipo) SEA
“1”: costo ← 122
“2”: costo ← 150
“3”: costo ← 200
FIN –CASO
ESCRIBIR (costo)
FIN

Computación, Informática & Sistemas 94


Fundamentos de Programación

EJERCICIOS PROPUESTOS
1. Escriba un programa que lea un número desde el teclado entre 1 y 12 e imprima el
nombre del mes del año correspondiente. (Enero, Febrero,...etc.).

2. Ingrese un número de hasta tres cifras, visualizar el número en romanos, por


ejemplo: 255  CCLV

3. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de interés
según la siguiente tabla:

Plan de Tasa de Monto Mínimo


Cuenta Interés

Plan “A” 0.07 % 1000


Plan “B” 0.08 % 1500
Plan “C” 0.09 % 2000

Plan “X” 0.10 % 2500

Elabore un algoritmo donde ingrese el Monto de apertura, luego calcule y visualice el


interés generado, el plan al cual pertenece y el nuevo saldo.

4. Ingrese el estado civil y número de hijos, luego calcule la bonificación a pagar a un


trabajador según la siguiente tabla:

Estado Civil Hijos Bonificación


(% Haber Básico)
S 0 2.50 %
S >0 2.75 %
C 0 2.80 %
C >0 3.00 %
V 0 2.50 %
V >0 2.75 %
D 0 2.50 %
D >0 3.00 %

5. Un instituto ofrece cursos de programación, el costo de los cursos es de la siguiente


manera:
Básico Intermedio Avanzado
Profesor 50 70 100
Alumno 40 50 80
Externo 70 100 120

Se pide elaborar un programa para emitir el recibo por dicho curso, los datos que se
mostraran en el recibo son: nombre del participante, costo del curso y nivel del curso.

6. Ingresar una fecha y calcular: el número de días de ese mes e identificar si el año es
bisiesto.

Computación, Informática & Sistemas 95


Fundamentos de Programación

7. Ingrese por teclado el nombre


nombre de un Empleado y su categoría. Según su categoría
obtendrá su básico y bonificación:

Categoría Básico Bonificación


Empleado 600 150
Obrero 550 190
Ejecutivo 1500 500
Auxiliar 200 50

Calcule y visualice su remuneración que es la suma del básico y bonificación.

Computación, Informática & Sistemas 96


Fundamentos de Programación

CAPÍTULO XI

ESTRUCTURAS REPETITIVAS PARA - HACER

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las estructuras repetitivas.

 Implementar desarrollos prácticos utilizando contadores y acumuladores

 Realiza la solución de diversos casos prácticos aplicando estructuras repetitivas

CONTENIDOS

 Estructura iterativa

 Definición

 Tipos de estructuras

 Estructura repetitiva Para – Fin Para

 Contadores y acumuladores

 Desarrollo de ejercicios de aplicación

ESTRUCTURA REPETITIVA

Definición

 Son operaciones que se deben ejecutar un número repetido de veces.


 El conjunto de instrucciones que se ejecuta repetidamente cierto número de
Veces, se llama Ciclo, Bucle o Lazo, establecido por la condición que se
Evalúa en cada
ada una de ellas.
 Cada una de las repeticiones se conoce como iteración.
 También se les llaman problemas repetitivos o cíclicos porque en la
Solución es necesario utilizar un mismo conjunto de acciones que se puedan
ejecutar una cantidad específica de veces. Esta cantidad puede ser fija
(previamente determinada por el programador) o puede ser variable (estar en
función de algún dato dentro del programa).
programa

¿Qué es una Iteración?

Es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones


contenidas en el bucle.

Computación, Informática & Sistemas 97


Fundamentos de Programación

Fases de un Programa Cíclico o Repetitivo

Todo problema que trabaja con procesos repetitivos o cíclicos debe tomar en cuenta las
siguientes fases:

1. Entrada de datos e instrucciones previas


2. Lazo o bucle
3. Instrucciones finales o resto del proceso
4. Salida de resultado

Ejemplo de un Bucle Finito

En este ejemplo, el bucle finalizará


cuando se cumple la condición que “N”
sea cero.

Ejemplo de un Bucle Infinito

En este flujograma, el bucle se estará repitiendo


indefinidamente ya que no existe ninguna
condición que nos permita finalizar en algún
momento.

Computación, Informática & Sistemas 98


Fundamentos de Programación

Clasificación de las Estructuras Repetitivas

Las estructuras repetitivas se clasifican en:

a) Estructuras cíclicas que ejecutan un número determinado de Iteraciones: Son


aquellas en que el número de iteraciones se conoce antes de ejecutarse el ciclo.

 Estructura Para – Fin Para

b) estructuras cíclicas que ejecutan un número indeterminado de Iteraciones:


Iteraciones
Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que
esta dado en función de un dato dentro del programa.

 Estructura Mientras – Fin Mientras


 Estructura Repetir – Hasta_Que

ESTRUCTURA REPETITIVA PARA - HACER

Definición

 Si tenemos que repetir el bucle un número exacto de veces (que


conocemos antes de empezar el bucle), debemos utilizar el bucle para-
para
hacer.
 Al bucle foror debemos asociarle una variable. Esta variable la crea
automáticamente cuando comienza a ejecutar el bucle y la utiliza para
llevar la cuenta de cuantas veces ha hecho el bucle.
 A la estructura Para - Hacer se le conoce como Repetitiva. Para utilizar
estaa estructura en algoritmos, debemos hacer uso de contadores y
algunas veces de acumuladores.

SINTAXIS

DIAGRAMA DE FLUJO

Computación, Informática & Sistemas 99


Fundamentos de Programación

PSEUDOCÓDIGO

PARA Variable←V.Inicial
←V.Inicial HASTA V.Final DE Inc
Instrucciones y/o

Sentencias
FIN-PARA
Donde:

– V.Inicial = Valor Inicial


– V.Final = Valor Final
– Inc = Valor de Incremento (Opcional)

CONTADORES

 Un contador es una variable cuyo valor se incrementa o decrementa en una


cantidad constante cada vez que se produce un determinado suceso o acción.
 Los contadores se utilizan con la finalidad de contar sucesos o acciones internas
de un bucle; deben realizar una operación de inicialización y posteriormente las
sucesivas de incremento o decremento del mismo.
 La inicialización consiste en asignarle al contador
contador un valor. Se situará antes y
fuera del bucle.

Representación:

<contador>  <contador> + <valor constante>

Si en vez de incremento es decremento se coloca un menos en lugar del más.

Ejemplo:
ii+1

ACUMULADORES

 Es una variable que suma sobre sí misma un conjunto de valores para de esta
manera tener la suma de todos ellos en una sola variable.
 La diferencia entre un contador y un acumulador es que mientras el primero va
aumentando de uno en uno, el acumulador va aumentando en una cantidad
variable.

Representación:
<variable>  <variable> + <valor variable>

Ejemplo:
S  S + variable

Computación, Informática & Sistemas 100


Fundamentos de Programación

EJERCICIOS RESUELTOS

1. Imprimir los 10 primeros números naturales.

ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
PARA N←1
N HASTA 10
ESCRIBIR (N)
FIN-PARA
PARA
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
For n=1 to 10
Writeline(“ valor:” & N)
End for
ReadLine()
End Sub
End Module

2. Imprimir los 10 primeros números naturales pero en forma descendente.

ALGORITMO Ejemplo2
VARIABLES
ENTERO N
INICIO
PARA N ← 10 HASTA 1 DE -1
ESCRIBIR (N)
FIN-PARA
PARA
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
For n=10 to 1 step -1
Writeline(“ valor:” & N)
End for
ReadLine()
End Sub
End Module

Computación, Informática & Sistemas 101


Fundamentos de Programación

3. Visualizar todos los números de 2 cifras compuestos por cifras iguales.

ALGORITMO Ejemplo3
VARIABLES
ENTERO N, A, B
INICIO
PARA N ← 10 HASTA 99
A ← N DIV 10
B ← N MOD 10
SI ( A = B ) ENTONCES
ESCRIBIR (N)
FIN
FIN-SI
FIN-PARA
PARA
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N,A,B As Integer


For n=10 to 99
A=N\10
B=N MOD 10
IF A=B THEN
Writeline(“ valor:” & N)
END IF
End for
ReadLine()

End Sub
End Module

4. Ingrese un número y luego visualice todos sus divisores.

ALGORITMO Ejemplo4
VARIABLES
ENTERO N, Divisor
INICIO
LEER (N)
PARA Divisor ← 1 HASTA N
SI N MOD Divisor = 0 Entonces
ESCRIBIR (Divisor)
FIN-SI
FIN-PARA
FIN

Computación, Informática & Sistemas 102


Fundamentos de Programación

5. Diseñe un programa que imprima una tabla de cuadrados y de cubos para los
números del 1 hasta N, donde N se ingresa.

ALGORITMO Ejemplo5
VARIABLES
ENTERO N, i, CUADRADO, CUBO
INICIO
LEER (N)
PARA i ← 1 HASTA N
CUADRADO  i * i
CUBO  i * i * i
ESCRIBIR (N, CUADRADO, CUBO)
FIN-PARA
PARA
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim N,I,CUADRADO, CUBO As Integer
WRITE(“Ingrese unn valor”)
N=readline
For I=1 to N
CUADRADO=I*I
CUABO=I*I*I
Writeline(I,” “& CUADRADO &” “ & CUBO)
End for
ReadLine()
End Sub
End Module

6. Elabore un programa donde ingrese 30 números,, visualizar el mayor y el menor de los


números ingresados.

ALGORITMO Ejemplo6
VARIABLES
ENTERO N, MAYOR, MENOR, i
INICIO
MENOR  0
MAYOR  0
PARA i ← 1 HASTA 30
LEER (N)
SI N > MAYOR ENTONCES
MAYOR  N
FIN SI
SI N < MENOR ENTONCES
MENOR  N
FIN SI
FIN-PARA
PARA
ESCRIBIR (MAYOR, MENOR)
FIN

Computación, Informática & Sistemas 103


Fundamentos de Programación

7. Elabore un programa para calcular el factorial de un número entero positivo

ALGORITMO Ejemplo7
VARIABLES
ENTERO N, FACTORIAL, i
INICIO
FACTORIAL  1
LEER (N)
PARA i ← 1 HASTA N
FACTORIAL  FACTORIAL * i
FIN-PARA
PARA
ESCRIBIR (FACTORIAL)
FIN

8. Elabore un programa donde ingrese las notas de 30 alumnos: nombre del alumno, el
curso, nota1 y nota2. Por cada ingreso calcule y visualice su promedio; al finalizar
visualice la cantidad de alumnos aprobados y la cantidad de alumnos desaprobados

ALGORITMO Ejemplo8
VARIABLES
ENTERO N, NOTA1, NOTA2, i, CAPROB, CDESAPROB
REAL PROMEDIO
CADENA NO
NOMBRE, CURSO
INICIO
CAPROB  0
CDESAPROB  0

PARA i ← 1 HASTA 30
LEER (NOMBRE, CURSO, NOTA1, NOTA2)
PROMEDIO  (NOTA1 + NOTA2) /2
ESCRIBIR (PROMEDIO)

SI (PROMEDIO>=11) ENTONCES
CAPROB  CAPROB + 1
SINO
CDESAPROB  CDESAPROB + 1
FIN SI
FIN-PARA
PARA
ESCRIBIR (CAPROB, CDESAPROB)
FIN

Computación, Informática & Sistemas 104


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Visualizar los números de 2 cifras pares.

2. Ingrese un número entero y luego calcule el factorial del número ingresado.

3. Ingrese un número entero y luego visualice un mensaje indicando si es “primo” o “no


primo”.

4. Ingrese un número entero y luego visualice un mensaje indicando si es


“PERFECTO” o “NO ES PERFECTO”.

5. Ingrese un número entero y luego calcule la suma de todos los números impares
menores al número ingresado.

6. Visualizar la siguiente serie de números: +1-2+3-4+5-6+7-8+…+N


NOTA: “N” será el valor límite de la serie.

7. Calcular la suma de todos los números de 3 cifras compuestos por cifras diferentes
impares.

8. Diseñe un programa que ingrese las edades de 10 alumnos y que calcule lo siguiente:
• Suma de todas las edades
• Promedio de edades
• Promedio de edades pares
• Edad máxima
• Edad mínima

9. Escribe un algoritmo que lea un número natural N y un carácter. La salida


sa debe ser un
rombo compuesto del carácter y de la anchura que especifica el número N. Por
ejemplo, si N es 5 y el carácter es *, el rombo sería:

*
**
***
****
*****
****
***
**
*

10. Elabore un programa que permita convertir un número de base 10 a un número de otra
base, para ello ingrese el número y la base. Ejemplo: Suponga que el número en
decimal que se desea transformar a su equivalente en binario es el 11:

Por lo tanto, (11)10 = (1011)2

11. Elabore un programa donde ingrese un número,, visualizar los divisores del número
ingresado.

Computación, Informática & Sistemas 105


Fundamentos de Programación

12. Escribe un algoritmo que imprima una pirámide de dígitos como la de la figura,
tomando como entrada el número de filas de la misma.

1
121
12321
1234321
123454321

13. Escriba un Algoritmo que permita formar


forma la siguiente serie, donde N es ingresado por
teclado:

1, 4, 9, 16,… N2

14. Diseñe un programa que imprima N términos de la siguiente serie:

3, 8, 15, 24………

15. Diseñe un programa que halle los 3 primeros números perfectos

16. Diseñe un programa para hallar la suma de N términos de la siguiente serie:

1 + 1/32 + 1/52 + 1/72 + 1/92+............................

17. Diseñe un programa para hallar la suma de N términos de la siguiente serie:

1 + 1/2 + 2/3 + 3/4 + 4/5+............................


4/5+..............

18. Diseñe un programa donde visualice los números primos comprendidos entre el 1 al
100.

Computación, Informática & Sistemas 106


Fundamentos de Programación

CAPÍTULO XII

ESTRUCTURAS REPETITIVAS MIENTRAS - HACER

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las estructuras repetitivas.

 Implementar desarrollos prácticos utilizando contadores y acumuladores.


acumuladores

 Realiza la solución de diversos casos prácticos aplicando estructuras repetitivas.


repetitivas

CONTENIDOS

 Estructura Mientras - hacer

 Definición

 Sintaxis

 Desarrollo de ejercicios de aplicación

ESTRUCTURA MIENTRAS-HACER
MIENTRAS

Definición

 Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede
ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que
debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple,
entonces ya no se ejecuta el proceso.

Característica

 Se llama Mientras a la estructura algorítmica que se ejecuta mientras la condición


evaluada resulte verdadera.

 Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada,


llamada el cuerpo del bucle.

 Este proceso de evaluación de la expresión booleana y ejecución del cuerpo se


repite mientras la expresión sea cierta.

 La estructura MIENTRAS se conoce como Iterativa.

 Se usan cuando no se conoce con


con anticipación el número de veces que se ejecutará
la acción.

Computación, Informática & Sistemas 107


Fundamentos de Programación

SINTAXIS

DIAGRAMA DE FLUJO

PSEUDOCÓDIGO

MIENTRAS (Expresión<es>) HACER

VERDAD
:
:
FIN-MIENTRAS
MIENTRAS Instrucciones y/o
Sentencias

Computación, Informática & Sistemas 108


Fundamentos de Programación

EJERCICIOS RESUELTOS
1. Imprimir los 3 primeros números naturales.
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
N←1
MIENTRAS( N <= 3 ) HACER
ESCRIBIR( N )
N←N+1
FIN-MIENTRAS
MIENTRAS
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N As Integer
WHILE N<=3
Writeline(N)
N=N+1
End WHILE
ReadLine()

End Sub
End Module

2. Imprimir los 10 primeros números naturales, calcule y visualice la suma de los 10


números.
ALGORITMO Ejemplo2
VARIABLES
ENTERO N, SUMA
INICIO
N←1
SUMA ← 0
MIENTRAS (N <= 10) HACER
SUMA ← SUMA + N Acumulador
N←N+1
FIN-MIENTRAS
MIENTRAS Contador
ESCRIBIR (“LA SUMA ES:”, SUMA)
FIN

Computación, Informática & Sistemas 109


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N, SUMA As Integer


N=1
SUMA=0
WHILE N<=10
SUMA=SUMA+N
N=N+1
End WHILE
WRITELINE(“ La suma es :” & suma)
ReadLine()

End Sub
End Module

3. Calcule y visualice la suma de todos los números de 2 cifras positivos.

ALGORITMO Ejemplo3
VARIABLES
ENTERO N, SUMA
INICIO
N ← 10
SUMA ← 0
MIENTRAS (N <= 99) HACER
SUMA ← SUMA + N
N←N+1
FIN-MIENTRAS
MIENTRAS
ESCRIBIR (“LA SUMA ES:”, SUMA)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim N, SUMA As Integer
N=10
SUMA=0
WHILE N<=99
SUMA=SUMA+N
N=N+1
End WHILE
WRITELINE(“ La suma es :” & suma)
ReadLine()
End Sub
End Module

Computación, Informática & Sistemas 110


Fundamentos de Programación

4. Calcule y visualice los divisores de un número entero.


ALGORITMO Ejemplo4
VARIABLES
ENTERO N, D, Resto
INICIO
LEER (N)
D←1
MIENTRAS (D <= N) HACER
Resto ← N MOD D
SI (Resto = 0) ENTONCES
ESCRIBIR (D)
FIN
FIN-SI
D←D+1
FIN-MIENTRAS
MIENTRAS
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N, D, RESTO As Integer


WRITE(“INGRESE N:”);
N=READLINE
D=1
WHILE D<=N
RESTO=N MOD D
IF RESTO=0 THEN
WRITELINE(“ su divisor :” & D)
End if
d=d+1
End WHILE
ReadLine()

End Sub
End Module

5. Calcular y visualizar la suma de los elementos de la siguiente serie:


S ← 1 + 4 + 9 + 16 + 25 + … + 100
ALGORITMO Ejemplo5
VARIABLES
ENTERO N, SUMA
INICIO
N ←1
MIENTRAS ( N <= 10 ) HACER
SUMA ← SUMA + ( N ↑ 2 )
N←N+1
FIN-MIENTRAS
MIENTRAS
ESCRIBIR (“LA SUMA ES:”, SUMA)
FIN

Computación, Informática & Sistemas 111


Fundamentos de Programación

6. Ingrese un número entero y luego visualice el número de cifras que lo componen.

ALGORITMO Ejemplo6
VARIABLES
ENTERO N, Cifras
INICIO
LEER (N)
Cifras ← 0
MIENTRAS (N <> 0) HACER
Cifras ← Cifras + 1
N ← N DIV 10
FIN-MIENTRAS
MIENTRAS
ESCRIBIR (“Número
(“ Cifras:”, Cifras)
FIN

7. Diseñe un programa que reciba un 5 números enteros de 2 cifras y muestra la suma


de ellos y cantidad de pares e impares

ALGORITMO Ejemplo7
VARIABLES
ENTERO N, SUMA, CPARES, CIMPARES, i
INICIO
CPARES  0
CIMPARES  0
SUMA 0

I1
MIENTRAS (i <=5) HACER

LEER (N)

SI (N>=10 Y N<=99) ENTONCES


SUMA  SUMA + N
SI (N MOD 2 = 0) ENTONCES
CPARES  CPARES + 1
SINO
CIMPARES  CIMPARES + 1
FIN SI
FIN SI
ii+1
FIN MIENTRAS
ESCRIBIR (SUMA, CPARES, CIMPARES)
FIN

Computación, Informática & Sistemas 112


Fundamentos de Programación

8. Diseñe un programa donde ingrese un número,, visualizar la suma de sus cifras

ALGORITMO Ejemplo8
VARIABLES

ENTERO N, SUMA, RESTO


INICIO
SUMA 0

LEER (N)

MIENTRAS (N <>0) HACER

RESTO  N MOD 10
SUMA  SUMA + RESTO
N  N DIV 10

FIN MIENTRAS
ESCRIBIR (SUMA)
FIN

9. Diseñe un programa donde ingrese un número,, visualizar un mensaje si es número


primo o compuesto.

ALGORITMO Ejemplo9
VARIABLES
ENTERO N, CONTADOR, i
INICIO
CONTADOR 0
LEER (N)
i2
MIENTRAS (i < N) HACER

SI (N MOD N = 0) ENTONCES
CONTADOR  CONTADOR + 1
FIN SI
ii+1

FIN MIENTRAS
SI (i = 0) ENTONCES
ESCRIBIR (“NÚMERO
(“ PRIMO”)
SINO
ESCRIBIR (“NÚMERO
(“ COMPUESTO”)
FIN SI

FIN

Computación, Informática & Sistemas 113


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Calcule y visualice la suma de los todos los números impares de 3 cifras.


2. Calcular y visualizar el valor de la siguiente serie:

S ← 2 + 4 + 6 + 8 + … + 98
3. Generar y visualizar la siguiente serie:

S ← 1+2+3/2+4/3+5/4+…+10/9
4. Ingrese un número entero y calcule la suma de las cifras del número.
5. Ingrese un número entero y luego calcule la suma de cifras pares e impares que
están contenidas en el número ingresado.
6. Ingrese un número entero y calcule la mayor y menor cifra contenidas en el número
ingresado.
7. Ingrese un número entero y luego forme un 2do número con las cifras del número
núm
ingresado en forma inversa.
8. Ingrese un número entero y luego obtenga su equivalente en base 5.
9. Diseñe un programa que lea Nombre y edad de 5 alumnos y calcule la edad
promedio así como también la mayor edad, considere que la edad debe encontrarse
entre 18 a 70 años.
10. Diseñe un programa que imprima lo siguiente:
%
%%
%%%
%%%%
%%%%%
%%%%%%
%%%%%%%
11. Escribe un algoritmo que lea un número natural N y dibuje un triángulo de asteriscos
con base y altura N. Por ejemplo si N=5 debería dibujarse:
*
**
***
****
*****
12. Diseñe un programa para hallar la suma de N términos de la siguiente serie:
1 + 1/32 + 1/52 + 1/72 + 1/92+............................
13. Calcular la suma de todos los números primos existentes entre 1 y 1000.
14. Calcular la
a suma de todos los números de 3 cifras compuestos por cifras diferentes
impares.
15. Visualizar la siguiente serie de números: +1-2+3-4+5-6+7-8+…+N

Computación, Informática & Sistemas 114


Fundamentos de Programación

CAPÍTULO XIII

ESTRUCTURAS REPETITIVAS REPETIR – HASTA

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las estructuras repetitivas.

 Implementar desarrollos prácticos utilizando contadores y acumuladores.


acumuladores

 Realiza la solución de diversos casos prácticos aplicando estructuras repetitivas.


repetitivas

CONTENIDOS

 Estructura REPETIR - HASTA

 Definición

 Sintaxis

 Desarrollo de ejercicios de aplicación

ESTRUCTURA REPETIR - HASTA

Definición

 Se llama Repetir a la estructura algorítmica que se ejecuta un número definido de


veces hasta que la condición se torna verdadera.
verdadera

Característica

 Esta es una estructura similar en algunas características, a la anterior.

 Repite un proceso una cantidad de veces, pero a diferencia del Mientras Que, el
Repita-Hasta
Hasta lo hace hasta que la condición se cumple y no mientras, como en el
Mientras Que. Por otra
otra parte, esta estructura permite realizar el proceso cuando
menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el
Mientras Que puede ser que nunca llegue a entrar si la condición no se cumple
desde un principio.

Computación, Informática & Sistemas 115


Fundamentos de Programación

SINTAXIS

DIAGRAMA DE FLUJO

Se cumple hasta que


condición sea
Verdadera, sino
repite el ciclo

PSEUDOCÓDIGO

REPETIR
Instrucciones y/o
FALSO : Sentencias

:
HASTA (Expresión<es>)

Computación, Informática & Sistemas 116


Fundamentos de Programación

EJERCICIOS RESUELTOS

1. Visualizar los 5 primeros números naturales.

ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
N ←1
REPETIR
ESCRIBIR (N)
N←N+1
HASTA (N > 5)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
N=1
Do
Writeline (“ valor “ & N)
N=N+1
Loop Until N>5
End Sub
END MODULE

2. Visualizar todos los números pares de 2 cifras.

ALGORITMO Ejemplo2
VARIABLES
ENTERO N
INICIO
N ← 10
REPETIR
ESCRIBIR (N)
N←N+2
HASTA (N > 98)
FIN

Computación, Informática & Sistemas 117


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
N=10
Do
Writeline (“valor “ & N)
N=N+2
Loop Until N>98
End Sub
END MODULE

2. Generar la siguiente serie:


serie 1, 4, 9, 16, 25,…, 100

ALGORITMO Ejemplo3
VARIABLES
INICIO
N ←1
REPETIR
ESCRIBIR ( N ↑ 2 )
N←N+1
HASTA (N > 10)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim N As Integer
N=1
Do
Writeline(“ valor “ & N^2)
N=N+1
Loop Until N>10
End Sub
END MODULE

Computación, Informática & Sistemas 118


Fundamentos de Programación

4. Ingrese un número entero y luego visualice todos sus divisores.

ALGORITMO Ejemplo4
VARIABLES
ENTERO N, Divisor, Resto
INICIO
LEER (N)
Divisor ← 1
REPETIR
Resto ← N MOD Divisor
SI (Resto = 0) ENTONCES
ESCRIBIR (Divisor)
FIN-SI
Divisor ← Divisor + 1
HASTA (Divisor > N)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N,DIVISOR, RESTO As Integer


WRITE(“INGRESE UN VALOR N:”):
N=READLINE
DIVISOR=1
Do
RESTO=N MOD DIVISOR
IF RESTO=0 THEN
WRITELINE (“DIVISOR
( :!” & DIVISOR)
END IF
DIVISOR=DIVISOR+1
Loop Until DIVISOR>N

End Sub
END MODULE

Computación, Informática & Sistemas 119


Fundamentos de Programación

5. Ingrese un número y luego visualice un mensaje indicando si el número “ES CAPICUA”


o “NO ES CAPICUA”.

ALGORITMO Ejemplo5
VARIABLES
ENTERO N, M, INV, Cifra
INICIO
LEER (N)
M ←N
INV ← 0
REPETIR
Cifra ← M MOD 10
INV ← (INV * 10) + Cifra
M ← M DIV 10
HASTA (M = 0)
SI (N = INV) ENTONCES
ESCRIBIR (“ES CAPICUA”)
SINO
ESCRIBIR (“NO ES CAPICUA”)
FIN-SI
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N,M , INV, CIFRA As Integer


WRITE (““ INGRESE UN NÚMERO
NÚ ENTERO:”)
N=READLINE
M=N
INV=0
Do
CIFRA=N MOD 10
INV= INV*10 +CIFRA
M=M \10
Loop Until M=0
IF N=INV THEN
Writeline(“ES CAPICUA“)
ELSE
Writeline(“NO ES CAPICUA“)
END IF

End Sub
END MODULE

Computación, Informática & Sistemas 120


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Diseñe un programa que imprima lo siguiente:


%
%%
%%%
%%%%
%%%%%
%%%%%%
%%%%%%%
2. Diseñe un programa que lea Nombre y edad de 5 alumnos y calcule la edad
promedio así como también la mayor edad, considere que la edad debe encontrarse
entre 18 a 70 años.

3. Diseñe un programa que permita calcular la Serie Fibonacci:


0, 1, 1, 2, 3, 5, 8,….
8

4. Diseñe un programa que imprima N términos de la siguiente serie:


3, 8, 15, 24………

5. Diseñe un programa que halle los 3 primeros números perfectos

6. Diseñe un programa para hallar la suma de N términos de la siguiente serie:


1 + 1/32 + 1/52 + 1/72 + 1/92+............................

7. Diseñe un programa donde visualice los números primos comprendidos entre el 1 al


100.

8. Diseñe un programa donde ingrese un NÚMERO,, visualice la cantidad de cifras


ceros, pares e impares que tiene el NÚMERO ingresado.

9. Escriba un pequeño programa para imprimir los primeros cien números naturales
haciendo una pausa cada vez que se llene la pantalla e indicando con un mensaje
adecuado que al oprimir una tecla la lista continuará.

10. Escriba un programa que imprima los primeros n números naturales pares. Valide el
valor de n y emita un mensaje de error si no es natural.

11. Escribe un algoritmo que lea un número natural N y dibuje un triángulo de asteriscos
con base y altura N. Por ejemplo si N=5 debería dibujarse:

*
**
***
****
*****

Computación, Informática & Sistemas 121


Fundamentos de Programación

12. Escriba un programa para calcular e imprimir todos los números enteros
comprendidos entre 100 y 999 tales que sean iguales a la suma de los cubos de sus
dígitos, es decir, los números de la forma abc, con:

abc = a3 + b3 + c3

13. Ingrese un número entero y luego calcule la suma de cifras pares e impares que
están contenidas en el número ingresado.

14. Ingrese un número entero y calcule la mayor y menor cifra contenidas en el número
ingresado.

15. Ingrese un número entero y luego obtenga su equivalente en base 5.

Computación, Informática & Sistemas 122


Fundamentos de Programación

CAPÍTULO XIV

SUBPROGRAMAS USO DE PROCEDIMIENTOS

OBJETIVOS ESPECÍFICOS

 Defina el propósito de los subprogramas.

 Realice operaciones que permita implementar subprogramas.


subprogramas

CONTENIDOS

 Programación estructurada, subprogramas.


subprogramas

 Tipos de subprogramas, funciones y procedimientos.


procedimientos

 Procedimientos, declaración, invocar un procedimientos, paso de parámetros.


parámetros

SUBPROGRAMAS

Introducción

 La programación modular es una de las técnicas fundamentales de la programación.

 Se apoya en el diseño descendente y en la filosofía de “divide y vencerás”, es decir


se trata de dividir el problema dado, en problemas más simples en que cada uno de
los cuales
ales lo implementaremos en un módulo independiente.

 La programación estructurada permite la escritura de programas fáciles de leer y


modificar.

 En esta programación, el flujo lógico se gobierna por las estructuras de control


básicas vista hasta hoy: secuenciales,
secue repetitivas y de selección.

 Cada subprograma tiene asociado un pseudocódigo de alto nivel compuesto por


acciones no primitivas.

 Cuando una de estas acciones no primitivas se repite en varios puntos del algoritmo
es interesante darle un nombre y reutilizarla.
re

 Estas acciones con nombre se denominan subprogramas, pudiendo ser, a su vez,


funciones y subrutinas.

Computación, Informática & Sistemas 123


Fundamentos de Programación

Definición

 Los subprogramas permiten descomponer un problema en un conjunto de


problemas independientes entre sí, más sencillos de resolver y que pueden ser
tratados separadamente unos de otros.
 Además se pueden probar los subprogramas de manera independiente,
depurándose
epurándose sus errores antes de su inclusión en el programa principal y
almacenarse para su posterior utilización cuantas veces se precise.

Características de los Subprogramas

1. DIVISION EN MODULOS

 Funcionalidad clara y bien definida.


definida
 Aislados. Sin dependencias con otros módulos.
 Entrada/Salida simple y bien definida.
definida

2. ABSTRACCION

 Nos centramos en la FUNCIONALIDAD de los módulos.


módulos
 Qué problema resuelve.
resuelve
 Que datos necesita.
necesita
 Que datos produce.
produce
 Bajo qué condiciones se ejecuta.
ejecuta
 NO importa cómo se resuelve el problema.

3. ENCAPSULAMIENTO

 Si el método para solucionar una tarea cambia, el aislamiento evita que


dicho cambio influya en las otras tareas.
 El aislamiento de los módulos no puede ser total. Para que pueda
colaborar con otros
otro módulos, es necesario conocer.
 Qué problema resuelve.
resuelve
 El intercambio de información.
información
 Bajo qué condiciones se produce.
produce

Ventajas de los Subprogramas

 Independientes, el desarrollo de un programa se puede efectuar con mayor


facilidad.
 Se podrá modificar un módulo sin afectar a los demás
 Los subprogramas sólo se escribirán una vez, aunque se necesiten en distintas
ocasiones a lo largo del algoritmo.
 Permite buscar los errores en un programa ya que éstos se pueden aislar
fácilmente.

Computación, Informática & Sistemas 124


Fundamentos de Programación

Alcance De Las Variables: Declaraciones Locales Y Globales

 Variables locales son aquellas cuyo ámbito de visibilidad coincide


exclusivamente con el cuerpo del algoritmo en el que han sido declaradas.
 Variables globales son aquellas cuyo ámbito de visibilidad se extiende al cuerpo
de varios algoritmos.
 Se denomina efecto lateral al intercambio de información entre dos algoritmos
realizado a través de variables globales (es decir, sin utilizar el interfaz).
 En nuestra metodología de programación, la utilización de variables globales y
efectos laterales está prohibida.

Clasificación de los Subprogramas

Los subprogramas se clasifican en:

 Procedimientos o Rutinas
 Funciones

PROCEDIMIENTOS

Definición

 Un procedimiento es un subprograma o un subalgoritmo que ejecuta una


determinada tarea, pero que tras ejecutar esa tarea no tienen ningún valor
asociado a su nombre como en las funciones, sino que si devuelve información,
lo hace a través de parámetros.
 All llamar a un procedimiento, se le cede el control, comienza a ejecutarse y
cuando termina devuelve el control a la siguiente instrucción a la de llamada
 Un procedimiento puede tener sus propias variables que se declaran en la
sección var del propio procedimiento.
procedimiento. Estas se llaman variables locales.
 Así, las variables locales para un procedimiento sólo se pueden usar en el
cuerpo del procedimiento y no en el cuerpo principal del programa.

Invocar un Procedimiento

 Para llamar a un procedimiento se hace uso del nombre del mismo,


opcionalmente se puede pasar valores si es que el procedimiento implementa
parámetros.

Computación, Informática & Sistemas 125


Fundamentos de Programación

Ejemplo: Implemente un procedimiento que permita visualizar la suma de 2 números


enteros.

ALGORITMO Ejemplo
Definición de
VARIABLES
variables publicas
ENTERO A, B
PROCEDIMIENTO SUMA ( )
INICIO
Definición del
de
ESCRIBIR(A + B)
procedimiento
FIN-PROCEDIMIENTO
Suma ( )

INICIO
LEER(A, B) Ejecutar el
SUMA ( ) procedimiento
FIN Suma ( )

 Para ejecutar un procedimiento se le puede incluir parámetros.


 El paso de valores a los parámetros de un procedimiento se puede hacer por valor y/o
referencia.

Ejemplo: Implemente un procedimiento que permita visualizar la suma de 2 números


enteros (utilice parámetros)

ALGORITMO Ejemplo
Definición de
VARIABLES
variables publicas
ENTERO A, B
PROCEDIMIENTO SUMA ( ENTERO: M, N)
INICIO
Definición de l
ESCRIBIR ( M +N )
procedimiento Suma( )
FIN-PROCEDIMIENTO
donde se definen sus
parámetros M y N
INICIO
LEER (A, B)
SUMA (A, B)
FIN Ejecutar el
procedimiento
Suma enviando
como parámetros el
valor de A y B.

Computación, Informática & Sistemas 126


Fundamentos de Programación

Parámetros

Es un tipo especial de variables en un procedimiento a los que se pueden pasar valores


desde el exterior del procedimiento. Se declaran en la cabecera del procedimiento.

Los parámetros se clasifican en:


 Por Valor
 Por Referencia

Parámetros por Valor


 Son los parámetros que pueden recibir valores pero que no pueden devolverlos.
 Es una variable global que se conecta con una variable
variable local mediante el envío de
su valor, después de lo cual ya no hay relación.
 Lo que le sucede a la variable local no afectará a la global.

Parámetros por Referencia


 Son los que pueden recibir y devolver valores.
 Son variables globales que se conectan con una local a través de su contenido; al
establecerse dicha conexión las variables se convierten en sinónimos, lo que
afecte a la variable local le sucederá a la variable global.

ESTRUCTURA DE UN PROCEDIMIENTO

Opcional

PROCEDIMIENTO Nombre (Lista_Parametros)

VAR
: <variables_locales>
INICIO Instrucciones
y/o
: Sentencias
:
FIN- PROCEDIMIENTO

Computación, Informática & Sistemas 127


Fundamentos de Programación

EJERCICIOS RESUELTOS

1. Implementar un procedimiento que permita visualizar un texto un número determinado de


veces.
N, variable Global

ALGORITMO Ejemplo1
VARIABLES
ENTERO N
PROCEDIMIENTO Imprime (CADENA Texto, ENTERO NÚMERO)
VARIABLES
ENTERO I Procedimiento imprime,
INICIO
con la declaración de
PARA I ← 1 HASTA NÚMERO
ESCRIBIR (Texto) parámetros
FIN-PARA
FIN-PROCEDIMIENTO

INICIO
LEER (N)
Imprime (“HOLA”, N)
Imprime (“IDAT”, 20)
Imprime (“COMPUTACION”, 50)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim N As Integer
SUB IMPRIME(TEXTO
TEXTO AS STRING, NÚMERO AS INTEGER)
DIM I AS INTEGER
For I=1 to NÚMERO
Writeline (Texto)
End for
END SUB

Sub Main()

WRITE (““ INGRESE UN VALOR :”)


N=READLINE
Imprime (“HOLA”, N)
Imprime (“CETIS”, 20)
Imprime (“UTP”, 50)

End Sub
End Module

Computación, Informática & Sistemas 128


Fundamentos de Programación

2. Implementar un procedimiento que imprima el mayor valor de 2 números enteros.

ALGORITMO Ejemplo2
VARIABLES
ENTERO A, B
PROCEDIMIENTO ImprimeMayor (ENTERO M, ENTERO N)
INICIO
SI ( M > N )ENTONCES
ESCRIBIR (M)
SINO
ESCRIBIR (N)
FIN-SI
FIN-PROCEDIMIENTO
PROCEDIMIENTO

INICIO
LEER (A, B)
ImprimeMayor (A, B)
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim A,B As Integer


SUB IMPRIMEMAYOR( M AS INTEGER, N AS INTEGER)
IF M>N THEN
WRITELINE(“MAYOR ES “ & M)
ELSE
WRITELINE(“MAYOR ES “ & N)
END IF
END SUB

Sub Main()
WRITE (“ INGRESE UN VALOR A :”)
A=READLINE
WRITE (“ INGRESE UN VALOR B :”)
B=READLINE
ImprimeMayor (A,, B)
B

End Sub
End Module

Computación, Informática & Sistemas 129


Fundamentos de Programación

3. Implementar un procedimiento que visualice los divisores de un número entero.

ALGORITMO Ejemplo3
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeDivisores (ENTERO N)
VARIABLES
ENTERO I
INICIO
PARA I ← 1 HASTA N
SI (N MOD I = 0) ENTONCES
ESCRIBIR (I)
FIN
FIN-SI
FIN-PARA
PARA
FIN-PROCEDIMIENTO
PROCEDIMIENTO

INICIO
LEER (M)
ImprimeDivisores (M)
FIN

4. Implementar un procedimiento que permita calcular y visualizar la suma de todos los


números menores a un número entero

ALGORITMO Ejemplo4
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeSumaMenores (ENTERO N)
VARIABLES
ENTERO SUMA, I
INICIO
SUMA ← 0
PARA I ← 1 HASTA N-1
SUMA ← SUMA + I
FIN-PARA
PARA
ESCRIBIR (SUMA)
FIN-PROCEDIMIENTO
PROCEDIMIENTO

INICIO
LEER (M)
ImprimeSumaMenores (M)
FIN

Computación, Informática & Sistemas 130


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim M As Integer
SUB ImprimeSumaMenores (N AS INTEGER)
Dim I , SUMA as Integer
SUMA=0
FOR I=1 TO N--1
SUMA=SUMA+I
END FOR
END SUB

Sub Main()
WRITE(“ INGRESE UN VALOR ENTERO :”)
M=READLINE
ImprimeSumaMenores (M)
End Sub
End Module

5. Implemente un procedimiento que permita calcula la suma


suma de las de las cifras de un
número ingresado.

ALGORITMO Ejemplo5
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeSumaCifras (ENTERO N)
VARIABLES
ENTERO SUMA, CIFRA
INICIO
SUMA ← 0
MIENTRAS (N<>0) HACER
CIFRA  N MOD 10
SUMA ← SUMA + CIFRA
N  N DIV 10
FIN-MIENTRAS
MIENTRAS
ESCRIBIR (SUMA)
FIN-PROCEDIMIENTO
PROCEDIMIENTO

INICIO
LEER (M)
ImprimeSumaCifras (M)
FIN

Computación, Informática & Sistemas 131


Fundamentos de Programación

6. Implementar un procedimiento que permita calcular y visualizar el menor de tres números


ingresados

ALGORITMO Ejemplo6
VARIABLES
ENTERO N1, N2, N3
PROCEDIMIENTO ImprimeMenor (ENTERO A, ENTERO B, ENTERO C)
VARIABLES
ENTERO MENOR
INICIO
MENOR A
SI (B < MENOR) ENTONCES
MENOR ← B
FIN-SI
SI (C < MENOR) ENTONCES
MENOR  C
FIN-SI
ESCRIBIR (MENOR)
FIN-PROCEDIMIENTO
PROCEDIMIENTO

INICIO
LEER (N1, N2, N3)
ImprimeMenor (N1, N2, N3)
FIN

7. Implemente un procedimiento que permita calcular y visualizar el número invertidos de un


número ingresado.

ALGORITMO Ejemplo7
VARIABLES
ENTERO M
PROCEDIMIENTO ImprimeInverso (ENTERO N)
VARIABLES
ENTERO INVERSO, CIFRA
INICIO
INVERSO ← 0
MIENTRAS (N<>0) HACER
CIFRA  N MOD 10
INVERSO ← 10 * INVERSO + CIFRA
N  N DIV 10
FIN-MIENTRAS
MIENTRAS
ESCRIBIR (INVERSO)
FIN-PROCEDIMIENTO
PROCEDIMIENTO

INICIO
LEER (M)
ImprimeInverso (M)
FIN

Computación, Informática & Sistemas 132


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Diseñe un procedimiento que imprima lo siguiente


%
%%
%%%
%%%%
%%%%%
%%%%%%
%%%%%%%

2. Diseñe un procedimiento que permita calcular la Serie Fibonacci:


0, 1, 1, 2, 3, 5, 8, ….

3. Diseñe un procedimiento que imprima N términos de la siguiente serie:


3, 8, 15, 24………

4. Diseñe un procedimiento para hallar la suma de N términos de la siguiente serie:


1 + 1/32 + 1/52 + 1/72 + 1/92+............................

5. Diseñe un procedimiento donde visualice los números primos comprendidos entre el


1 al 100.

6. Diseñe un procedimiento donde ingrese un número,, visualice la cantidad de cifras


ceros, pares e impares que tiene el número ingresado.

7. Escriba un procedimiento que imprima los primeros n números naturales pares.


Valide el valor de n y emita un mensaje de error si no es natural.

8. Escribe un procedimiento que lea un número natural N y dibuje un triángulo de


asteriscos con base y altura N. Por ejemplo si N=5 debería dibujarse:

*
**
***
****
*****

9. Escriba un procedimiento para calcular e imprimir todos los números enteros


comprendidos entre 100 y 999 tales que sean iguales a la suma de los cubos de sus
dígitos, es decir, los números de la forma abc, con:

abc = a3 + b3 + c3

10. Ingrese un número entero y luego desarrolle un procedimiento que permita calcular
la suma de cifras pares e impares que están contenidas en el número ingresado.

Computación, Informática & Sistemas 133


Fundamentos de Programación

Computación, Informática & Sistemas 134


Fundamentos de Programación

CAPÍTULO XV

USO DE FUNCIONES

OBJETIVOS ESPECÍFICOS

 Defina el propósito de las funciones

 Realice operaciones que permita implementar funciones

CONTENIDOS

 Funciones

 Declaración

 Invocar una función, paso de parámetros

 Desarrollo práctico.

FUNCIONES

Definición

 Una función es un sub-programa


sub programa que procesa un grupo de instrucciones y/o
sentencias para luego devolver un único valor.

 Las funciones pueden contener opcionalmente parámetros.

 Las funciones se invocan por su nombre seguido de los valores que se pasaran a
sus respectivos parámetros formales.

 Una función puede llamar a otra función inclusive puede llamarse a si misma
(recursividad).

ESTRUCTURA DE UNA FUNCIÓN

FUNCIÓN Nombre (Parámetros): Tipo_Dato


VARIABLES
: Lista de parámetros
INICIO
Variables locales a
: nivel función.
: Instrucciones o
Sentencias
RETORNAR (Valor)
FIN-FUNCIÓN

Computación, Informática & Sistemas 135


Fundamentos de Programación

EJERCICIOS RESUELTOS
1. Crear una función que retorne el cuadrado de un número entero.

ALGORITMO Ejemplo1
VARIABLES
ENTERO M
FUNCIÓN Cuadrado (ENTERO N): ENTERO
INICIO
RETORNAR (N * N)
FIN-FUNCIÓN
INICIO
LEER (M)
ESCRIBIR (Cuadrado (M) )
FIN

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim M As Integer
Function Cuadrado (N
N AS INTEGER) as Integer
Return n*n
END FUNCTION

Sub Main()
WRITE(“ INGRESE UN VALOR ENTERO :”)
M=READLINE
Writeline(“ Llama a la function “ & Cuadrado (M))
End Sub
End Module
2. Crear una función que retorne el mayor valor de 2 números enteros.

ALGORITMO Ejemplo2
VARIABLES
ENTERO A, B
FUNCIÓN Mayor (ENTERO M, ENTERO N): ENTERO
INICIO
SI (M > N) ENTONCES
RETORNAR (M)
SINO
RETORNAR (N)
FIN-SI
FIN-FUNCIÓN

INICIO
LEER (A, B)
ESCRIBIR (Mayor (A, B) )
FIN

Computación, Informática & Sistemas 136


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim a,b As Integer


Function Mayor (m as integer, N AS INTEGER) as Integer
IF M>N THEN
RETURN M
ELSE
RETURN N
END IF
END FUNCTION

Sub Main()
WRITE(“ INGRESE UN VALOR ENTERO :”)
A=READLINE
WRITE(“ INGRESE UN SEGUNDO ENTERO :”)
B=READLINE
Writeline(“ Llama a la function “ & MAYOR (A,B))

End Sub
End Module

3. Crear una función que retorne la suma de la cifras de un número entero.

ALGORITMO Ejemplo3
VARIABLES
ENTERO M
FUNCIÓN SumaCifras (ENTERO N): ENTERO
VARIABLES
ENTERO SUMA, Cifra
INICIO
SUMA ← 0
MIENTRAS (N <> 0) HACER
Cifra ← N MOD 10
SUMA ← SUMA + Cifra
N ← N DIV 10
FIN-MIENTRAS
MIENTRAS
RETORNAR (Suma)
FIN-FUNCIÓN
INICIO
LEER (M)
ESCRIBIR (SumaCifras (M) )
FIN

Computación, Informática & Sistemas 137


Fundamentos de Programación

Computación, Informática & Sistemas 138


Fundamentos de Programación

CODIFICACIÓN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim M As Integer
Function SumaCifras ( N AS INTEGER) as Integer
Dim suma, cifra as Integer
Suma=0
Do while n<>0
Cifra= n mod 10
Suma=suma+cifra
N=n \10
Loop
Return suma
End Function

Sub Main()
WRITE(“ INGRESE UN VALOR ENTERO :”)
m=READLINE
Writeline(“ Llama a la function “ & SumaCifras (M))

End Sub
End Module

4. Crear una función que retorne el factorial de un número entero.

ALGORITMO Ejemplo4
VARIABLES
ENTERO M
FUNCIÓN Factorial (ENTERO N ) : ENTERO
VARIABLES
ENTERO Facto, I
INICIO
Facto ← 1
PARA I ← 1 HASTA N
Facto ← Facto * I
FIN-PARA
PARA
RETORNAR ( Facto )
FIN-FUNCIÓN

INICIO
PARA M ← 1 HASTA 5
ESCRIBIR (Factorial ( M ) )
FIN-PARA
PARA
FIN

Computación, Informática & Sistemas 139


Fundamentos de Programación

5. Implementar una función que retorne la suma de la mayor y menor cifras contenidas en
un número entero.

ALGORITMO Ejemplo5
VARIABLES
ENTERO M
FUNCIÓN SumaMaxMin (ENTERO N): ENTERO
VARIABLES
ENTERO Cifra, MayorCifra, MenorCifra
INICIO
MayorCifra ← 0 : MenorCifra ← 9
MIENTRAS (N <> 0) HACER
Cifra ← N MOD 10
SI (Cifra > MayorCifra) ENTONCES
MayorCifra ← Cifra
FIN
FIN-SI
SI (Cifra < MenorCifra) ENTONCES
MenorCifra ← Cifra
FIN
FIN-SI
N ← N DIV 10
FIN-MIENTRAS
MIENTRAS
RETORNAR (MayorCifra + MenorCifra)
FIN-FUNCIÓN
INICIO
LEER (M)
ESCRIBIR (SumaMaxMin (M))
FIN

6. Implementar una función que retorne la suma de todos los números de 2 cifras
compuestos por cifras diferentes pares.

ALGORITMO Ejemplo6
VARIABLES
ENTERO M
FUNCIÓN SumaPares (ENTERO N): ENTERO
VARIABLES
ENTERO SUMA, A, B
INICIO
SUMA ← 0
PARA N ← 10 HASTA 99
A ← N DIV 10
B ← N MOD 10
SI ( A <> B ) Y (A MOD 2=0) Y (B MOD 2=0) ENTONCES
SUMA ← SUMA + N
FIN
FIN-SI
FIN-PARA
PARA
RETORNAR SUMA
FIN-FUNCIÓN

INICIO
LEER (M)
ESCRIBIR (SumaPares (M) )
FIN

Computación, Informática & Sistemas 140


Fundamentos de Programación

7. Implementar una función que retorne la suma de los elementos de la siguiente serie:

1+8+27+64+…+1000

ALGORITMO Ejercicio7

FUNCIÓN SumaSerie (): ENTERO


VARIABLES
ENTERO SUMA
INICIO
PARA N ← 1 HASTA 10
SUMA ← SUMA + (N ↑ 3)
FIN-PARA
PARA
RETORNAR SUMA
FIN-FUNCIÓN

INICIO
ESCRIBIR (SumaSerie ())
FIN

Computación, Informática & Sistemas 141


Fundamentos de Programación

EJERCICIOS PROPUESTOS

1. Implemente una función que permita calcular el factorial del número ingresado.

2. Implemente una función que retorne un mensaje indicando si es “primo” o “no primo”
de un número ingresado.

3. Implemente una función que retorne un mensaje indicando si es “PERFECTO” o “NO


ES PERFECTO” de un número ingresado por teclado.

4. Implemente una función que retorne la suma de todos los números de 3 cifras
compuestos por cifras
as diferentes impares.

5. Elabore una función que permita convertir un número de base 10 a un número de


otra base, para ello ingrese el número y la base. Ejemplo: Suponga que el número en
decimal que se desea transformar a su equivalente en binario es el 11:

Por lo tanto, (11)10 = (1011)2

6. Elabore una función que permita retornar la suma de la serie, donde N es ingresado
por teclado:
1, 4, 9, 16,…
16 N2

7. Elabore una función que retorne la suma de N términos de la siguiente serie:


1 + 1/32 + 1/52 + 1/72 + 1/92+............................

8. Elabore una función que retorne la suma de los N términos de la siguiente serie:
1 + 1/2 + 2/3 + 3/4 + 4/5+............................
4/5+

Computación, Informática & Sistemas 142


Fundamentos de Programación

CAPITULO XVI

USO DE VECTORES Y MATRICES

OBJETIVOS ESPECÍFICOS

 Defina el propósito de los arreglos o vectores su importancia

 Realice operaciones que permita implementar procesos estadísticos

CONTENIDOS

 Sintaxis , la forma como emplear los vectores

 Tipos de arreglos, de acuerdo a su contenido

Objetivo:
Indicarle al alumno el uso correcto de los Arreglos para determinar el
manejo de los elementos (items) que puede almacenar un programa en forma
volátil por medio de una posición la cual es manejada por un índice que empieza
desde 0 hasta el número de elementos -1
1 del tamaño original del vector para
realizar un proceso o n procesos cuando son llamados.

Cabe resaltar cada punto será afianzada por dada clase que se tratara hasta que
el alumno identifique los temas y sus ideas queden más claras.

Arreglos

• Definición tipos.
o Arreglos Unidimensionales (Vectores).
• Declaración.
• Algoritmos básicos.
• Ejercicios.

Computación, Informática & Sistemas 143


Fundamentos de Programación

QUE ES UN ARREGLO

Un arreglo es una colección de elementos homogéneos que se encuentra


compartiendo una misma zona de memoria en áreas contiguas (consecutivas).

Los arreglos se clasifican en unidimensionales y multidimensionales.

Los elementos de un arreglo pueden ser de cualquier tipo (enteros, reales,


caracteres, cadenas, etc.)

Los elementos de un arreglo se enumeran a partir del índice CERO y van en


aumento de 1 en 1.

Para acceder a los elementos de un arreglo se hace uso del nombre del arreglo
seguido de un índice cerrado entre paréntesis, este índice representa la posición
posic del
elemento en el arreglo.

Sintaxis de declaración para un arreglo unidimensional

Sintaxis:

VARIABLES
Tipo_Dato Nombre_
Nombre_Arreglo (Número_Elementos)

Computación, Informática & Sistemas 144


Fundamentos de Programación

EJERCICIOS RESUELTOS

1. Elabore
labore un algoritmo para ingresar y visualizar los elementos de un arreglo
unidimensional de tipo entero

ALGORITMO Ejemplo1
CONSTANTES
MAX = 10
VARIABLES
ENTERO A (MAX),
MAX), I
INICIO
PARA I ← 0 HASTA MAX-1
MAX
LEER ( I ) )
LEER(A
FIN-PARA
PARA I ← 0 HASTA MAX-1
MAX
ESCRIBIR( A( I ) )
FIN-PARA
FIN

2. Calcular la suma de los elementos contenidos en un arreglo de tipo entero.


ALGORITMO Ejemplo2
CONSTANTES
MAX = 10
VARIABLES
ENTERO M(MAX), I, SUMA
INICIO
SUMA ← 0
PARA I ← 0 HASTA MAX-1
LEER( M(I) )
SUMA ← SUMA + M( I )
FIN-PARA
PARA
ESCRIBIR( SUMA )

FIN
3. Calcular el promedio de los elementos contenidos en un arreglo de tipo entero.

ALGORITMO Ejemplo3
CONSTANTES
MAX = 10
VARIABLES
ENTERO M(MAX), I, SUMA, PROMEDIO
INICIO
SUMA ← 0
PARA I ← 0 HASTA MAX-1
LEER( M(I) )
SUMA ← SUMA + M( I )
FIN-PARA
PARA
PROMEDIO ← SUMA DIV MAX
ESCRIBIR( PROMEDIO )
FIN

Computación, Informática & Sistemas 145


Fundamentos de Programación

4. Calcular el mayor y menor valor de los elementos contenidos en un arreglo de tipo entero

ALGORITMO Ejemplo4
CONSTANTES
MAX = 10
VARIABLES
ENTERO M(MAX), I, MAYOR, MENOR
INICIO
PARA I ← 0 HASTA MAX-1
LEER( M(I) )
FIN-PARA
PARA
MAYOR ← M(0) : MENOR ← M(0)
PARA I ← 1 HASTA MAX-1
SI( M(I) > MAYOR)ENTONCES
MAYOR ← M(I)
FIN
FIN-SI
SI( M(I) < MENOR)ENTONCES
MENOR ← M(I)
FIN
FIN-SI
FIN-PARA
PARA
ESCRIBIR(“MAYOR=“,MAYOR,” MENOR=“, MENOR)
FIN

5. Realice el proceso de búsqueda de un valor entre los elementos contenidos en un arreglo de


tipo entero

ALGORITMO Ejemplo5
CONSTANTES
MAX = 10
VARIABLES
ENTERO M(MAX), I, DATO, POSICION
INICIO
PARA I ← 0 HASTA MAX-1
LEER( M(I) )
FIN-PARA
PARA
LEER( DATO )
POSICION ← -1
PARA I ← 0 HASTA MAX-1
SI( M(I) = DATO )ENTONCES
POSICION ← I : I ← MAX-1
FIN
FIN-SI
FIN-PARA
PARA
SI( POSICION <> - 1 )ENTONCES
ESCRIBIR(“DATO ENCONTRADO”)
SINO
ESCRIBIR(“DATO NO ENCONTRADO”)
FIN-SI
FIN

Computación, Informática & Sistemas 146


Fundamentos de Programación

EN VISUAL BASIC:
Ejemplo realizar una aplicación para ingresar un número de elementos a un array de tamaño
10 luego visualizar su contenido con la posición de memoria correspondiente.

Ps Pro
Algoritmo array1 Imports System.Console
Variables Module array1
i,n : entero Sub main()
a(10) : real Dim i, n As Integer
Inicio Dim a(10) As Decimal
Leer Write("ing
"ing # de elementos al array..:")
array..:"
"ing # de elementos.:",n-1
elementos.:",n n = CInt(ReadLine()) - 1
si (n>10) entones If (n > 10) Then
imprimir WriteLine("error
"error desbordamiento de
" error desbordamiento de division..:")
division..:" Else
si no 'ingresar elementos al array
para i=0 hasta n For i = 0 To n
Leer Write("ing
"ing elementos al array..:")
array..:"
"ing elementos al a(i) = CDec(ReadLine())
(ReadLine())
array",a(i) Next
fin para WriteLine("")
' imprimir
para i=0 hasta n For i = 0 To n
imprimir WriteLine("" indice #.: " & i & " valor
" índice #: ",i," valor es: es..: " & a(i))
", a(i) Next
fin para End If
fin si ReadLine()
Fin. End Sub
End Module

Computación, Informática & Sistemas 147


Fundamentos de Programación

Realizar el ps correspondiente al programa para sumar dos vectores

Ps Pro
Imports System.Console
Module suma
Sub main()
Dim i, n As Integer
Dim a1(12), b1(12), S(12) As Decimal
Write("ING NÚMERO DE ELEMENTOS..:")
ELEMENTOS..:"
n = CInt(ReadLine()) - 1
If (n > 12) Then
WriteLine("error desbordamiento de division.:")
division.:"
Else
' primer array
For i = 0 To n
Write("ing elementos al array a1.:")
a1(i) = CDec(ReadLine())
Next
WriteLine("")
' segundo array
For i = 0 To n
Write("ing elementos al array b1.:")
b1(i) = CDec(ReadLine())
Next
WriteLine("")
' calculo de la suma
For i = 0 To n
S(i) = a1(i) + b1(i)
Next
' imprimir la suma
For i = 0 To n
WriteLine("indice #.: " & i & " valor es.:" & S(i))
Next
End If
ReadLine()
End Sub
End Module

La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo.


Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado
(clave).

Computación, Informática & Sistemas 148


Fundamentos de Programación

La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo


ordenado.
nado. El proceso comienza comparando el elemento central del arreglo con el valor
buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado
será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado
busc es
mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado
es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al
segmento que está a la izquierda de tal sitio central.
central

Aquí su formato.

Ps Pro
bandera=0 bandera = 0
Leer WriteLine("ing
"ing elemento a buscar..:")
buscar..:"
“ing elemento a buscar”,bu bu = CDec(ReadLine())
Para i=0 hasta n For i = 0 To n
Si(array(i)=bu) entonces If (a(i) = bu) Then
Imprimir WriteLine("item:" & array(i) &
“item”, array(i), “encontrado en.:”, i "encontrado en" & i)
Bandera=1 bandera = 1
Fin si End If
Fin para Next
Si (bandera=0) entonces If (bandera = 0) Then
Imprimir WriteLine("No
"No se encontro elemento")
elemento"
“no se encontró.:” End If
Fin si

Realizar ejemplos propuestos por el profesor.

Anular elementos en un array.

Consiste en anteponer el valor 0 encima del valor original del array


Se debe emplear el método de búsqueda y preguntar si desea anularlo o no al momento de
imprimirlo debe preguntar si este es mayor que 0 para q no muestre la anulación respectiva.

Computación, Informática & Sistemas 149


Fundamentos de Programación

Ps Pro
Desarrollar el ps. bandera = 0
WriteLine(
WriteLine("ingresar elemento a buscar..:")
bu = CDec(ReadLine())
CDec
For i = 0 To n
If (a(i) = bu) Then
WriteLine(
WriteLine("Elemento.: " & a(i) & " fue encontrado ")
bandera = 1
WriteLine( Desea anular el item " & a(i) & " (s/n) ")
WriteLine("
s = CChar(ReadLine())
CChar
If (s = "s")
"s" Then
WriteLine( El item " & a(i) & " fue anulado en pos.:" & i)
WriteLine("
a(i) = 0
WriteLine(
WriteLine("")
WriteLine(
WriteLine("los nuevos elementos son.:")
WriteLine(
WriteLine("")
For si = 0 To n
If a(si) > 0 Then
WriteLine(a(si))
End If
Next si
End If
End If
Next i
If (bandera = 0) Then
WriteLine(
WriteLine("No se encontro elemento")
End If

Ordenamiento de datos:

Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la


clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar
un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un método
métod
de ordenación, hay que determinar cuántas comparaciones e intercambios se realizan para
el caso más favorable, para el caso medio y para el caso más desfavorable.

Intercambio:

El método de intercambio se basa en comparar los elementos del arreglo e intercambiarlos


i
si su posición actual o inicial es contraria inversa a la deseada.
Ejemplo:

Computación, Informática & Sistemas 150


Fundamentos de Programación

Computación, Informática & Sistemas 151


Fundamentos de Programación

Formato del método por burbuja.


Variables a trabajar.

Índice secun = si y debe ser entero


Temp= temporal q almacena el valor del array y debe ser del mismo tipo que este.

Ps Pro
Para i=0 hasta n For i = 0 To n
Para índice secun=1 +1 hasta n For si = i + 1 To n
Si (array(i) > array(índice secun)) If (a(i) > a(si)) Then
entonces temp = a(si)
Temp=array (índice secun) a(si) = a(i)
Array(índice secun)=array(i) a(i) = temp
Array(i)=temp End If
Fin si Next si
Fin para índice secun Next i
Fin para i For i = 0 To n
WriteLine(a(i))
Para i=0 hasta n Next
Imprimir
Array(i)
Fin para i

Problemas propuestos

1) Calcular el promedio de 50 valores almacenados en un vector. Determinar además


cuantos son mayores que el promedio, imprimir el promedio, el número de datos
mayores que el promedio y una lista de valores mayores que el promedio.

2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector
A con el elemento uno del vector B y así sucesivamente hasta 45, almacenar el
resultado en un vector C, e imprimir el vector resultante.

3) Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor


almacenado en el vector. Suponga que todos los elementos del vector son diferentes.

4) Almacenar 500 números en un vector, elevar al cuadrado cada valor almacenado en el


vector, almacenar el resultado en otro vector. Imprimir el vector
vector original y el vector
resultante.

5) Almacenar 300 números en un vector, imprimir cuantos son ceros, cuántos son
negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los
positivos.

6) Almacenar 150 números en un vector, almacenarlos


almacenarlos en otro vector en orden inverso al
vector original e imprimir el vector resultante.

Computación, Informática & Sistemas 152


Fundamentos de Programación

7) Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno.


Hacer un algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y
“Diferentes” si no lo son.
Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo
valor para todos los elementos.

8) Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba
“SI” si el vector esta ordenado ascendentemente o “NO” si el vector no está ordenado

9) Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector X, el cual


tiene almacenados 80 elementos. Escribir la posición donde se encuentra almacenado el
número en el vector o el mensaje
mensaje “NO” si no lo encuentra. Búsqueda secuencial.

10) Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique
el primer elemento de A con el último elemento de B y luego el segundo elemento de A
por él diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo
elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo
en un vector C.

11) Diseñe un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros
números de la serie fibonacci.
nacci.

Computación, Informática & Sistemas 153


Fundamentos de Programación

MATRICES

OBJETIVO:

 Indicarle al alumno el uso correcto de los arreglos bidimensionales para determinar el


manejo de los elementos que tiene un programa para realizar un proceso o n
procesos cuando son llamados.
 En estos procesos tenemos que tener en cuenta el número de filas y columnas
atrabajar.

Cabe resaltar cada punto será afianzada por dada clase que se tratara hasta que el alumno
identifique los temas y sus ideas queden más claras.

TEMAS:

ARREGLOS
o Arreglos bidimensionales (Vectores).

• Declaración inicialización y asignación.


• Ejemplos de arreglos bidimensionales
• Ejercicios.

Las variables utilizar son.


Nf ._ número de filas
Nc ._ número de columnas
Fi ._ fila índice
Ci ._ columna índice

Todas de tipo entero.


Cabe resaltar que la fila prevalece sobre la columna para todo tipo de operación.

Aquí su formato para declarar.

Ps Pro
Nf,nc,fi,ci : entero Dim Nf,nc,fi,ci as integer
X(5,5), y(5,5), s(5,5) : real Dim x(5, 5), y(5, 5), s(5, 5) As double
Dim a3(,,) As Integer
Dim c3(,,) As Integer = {{1, 2}, {3, 4}, {5, 6},{7,
8}, {9, 10}, {11, 12},{{13, 14}, {15, 16}, {17,
18},{{19, 20}, {21, 22}, {23, 24}}

Computación, Informática & Sistemas 154


Fundamentos de Programación

Arrays Bidimensionales

Todos los arrays vistos hasta el momento han sido de tipo unidimensional, es decir, estaban
compuestos de una lista de valores única.

.NET Framework nos provee también de la capacidad de crear arrays formados por más de
una lista de valores, o lo que es igual, arrays multidimensionales. Un array de este tipo, se
caracteriza por estar compuesto de varias dimensiones o listas anidadas al estilo de filas y
columnas.

Si declaramos un array del modo que muestra


Dim iDatos(2, 4) As Integer

Crearíamos un array multidimensional formado por tres filas y cinco columnas. En este caso,
el número correspondiente a la primera dimensión denota las filas, mientras que el número
de la segunda dimensión hace lo propio para las columnas. La Figura 209 muestra un
diagrama con la estructura de este array.

Crear array multidimensional


al y rellenar de valores

Dim iDatos(2, 4) As Integer


iDatos(0, 0) = 1000
iDatos(0, 1) = 2000
iDatos(0, 2) = 3000
iDatos(0, 3) = 4000
iDatos(0, 4) = 5000
iDatos(1, 0) = 25
iDatos(1, 1) = 35
iDatos(1, 2) = 45
iDatos(1, 3) = 55
iDatos(1, 4) = 65
iDatos(2, 0) = 111
iDatos(2, 1) = 222
iDatos(2, 2) = 333
iDatos(2, 3) = 444
iDatos(2, 4) = 555

Para recorrer arrays multidimensionales, la clase Array dispone de varios miembros, algunos
de los cuales,, describimos seguidamente.

Rank.. Devuelve el número de dimensiones del array.


GetLength(Dimension).. Devuelve el número de elementos de la dimensión de array
pasada como parámetro.

n).. Devuelve el número de índice inferior de la dimensión


GetLowerBound(Dimensión)
pasada como parámetro.

Computación, Informática & Sistemas 155


Fundamentos de Programación

GetUpperBound(Dimension) Devuelve el número de índice superior de la dimensión


GetUpperBound(Dimension).
pasada como parámetro.

Es un array en que el acceso de sus elementos lo hace con más de in índice, trabajando así
con uno principal para las filas y otro secundario para el número de columnas.
• Sintaxis.
• Para leer

Para índice de fila= 0 hasta número de elementos de filas


Para índice de columna= 0 hasta número de elementos de columnas
Leer
“ingresar elementos al array :”, arreglo(indicefila, índice columna)
Fin para índice de la columna
Fin para indice de la fila
Para imprimir
(“ indice - elemento”)

Para indice de fila= 0 hasta número de elementos de filas


Para indice de columna= 0 hasta número de elementos de columnas
Leer
“(”,
(”, ind ice fila, ind ice columna,”)”, arreglo(indicefila, indice columna)
Fin para indice de la columna
Fin para indice de la fila

Computación, Informática & Sistemas 156


Fundamentos de Programación

EJEMPLOS

Ejemplo 1 : Realizar una matriz de nf =5 nc =5, para ingresar las marcar de 5 atletas al final
visualizar los intentos de cada atleta, el número de atletas que pasaron la marca y el atleta
que tiene mayor marca.
Algoritmo Matriz1
Variables
a(5, 4) : real
i, x : entero
t, sm, prom : real
INICIO
para i = 1 hasta 5
Para x = 1 hasta 4
Imprimir "Ingrese intentos {0} del atleta {1}", x, i), a(i, x)
Fin para x
Fin para i
Para i = 1 hasta 5
Imprimir "atleta {0}", i
Para x = 1 hasta 4
Imprimir "intentos {0} {1}", i, a(i, x)
Fin para x
Fin para i
t←0
Para i = 1 hasta 5
Si (a(i, 1) < a(i, 2)) o (a(i, 1) < a(i, 3)) o (a(i, 1) < a(i, 4)) entonces
t←t+1
Fin si
Fin para
Imprimir "Número de atletas que pasaron la primera marca ", t
Para i = 1 hasta 5
sm ← 0
Para x = 1 hasta 4
sm ← sm + a(i, x)
Fin para
prom ← sm / 4
Imprimir " el promedio del atleta {0} es {1}", i, prom
Fin para
sm ← 0
para i = 1 hasta 5
Para x = 1 hasta 4
Si (a(i, x) > sm) entonces
sm ← a(i, x)
Fin si
Fin para x
Fin para i
Imprimir " La marca más alta entre los atletas es {0}", sm
Fin.

Computación, Informática & Sistemas 157


Fundamentos de Programación

Ejemplo 2 : Realizar una matriz de 5 filas y 5 columnas ingresar los elementos y determinar
cuáles son pares.

Algoritmo Matriz2
Variables
n(5, 5) : entero
fi, ci, cp : entero
INICIO
Para fi = 1 hasta 5
Para ci = 1 hasta 5
Imprimir "Ingrese elementos a la matriz n(" , fi , "," , ci , ")", n(fi, ci)
Fin para ci
Fin para fi
cp ← 0
Para fi = 1 hasta 5
Para ci = 1 hasta 5
Si (n(fi, ci) Mod 2 = 0) entonces
cp ← cp + 1
Fin si
Fin para ci
Fin para fi
Imprimir "pares d la matriz {0}", cp
Fin.

Computación, Informática & Sistemas 158


Fundamentos de Programación

Ejemplo 3 : Realizar una aplicación para ingresar elementos a una matriz de nf = 8, nc = 7,


realizar lass siguientes operaciones matemáticas.

Algoritmo Matriz3
Variables
z(9, 9) : real
a, b, c, fi, ci, nf, nc : entero
INICIO
Leer
"Ing. número de filas ..:", nf - 1
"Ing. número de columnas ..:", nc - 1
Si (nf > 8) y (nc > 8) entonces
"Horror"
Sino
Imprimir "matrix de " , (nf * nc) , "--> " elementos"
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir "(" , fi , "," , ci ")->"")
Leer
"ing valor de A :", a
"ing valor de B :", b
"ing valor de C :", c
Calcular
z(fi, ci) ← Pow(a, 2) + Pow(b, 2) + Pow(c, 2)
Fin para ci
Fin para fi
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir
"(" , fi , "," , ci , ")--->",
") z(fi, ci)
Fin para ci
Fin para fi
fin si
Fin.

Computación, Informática & Sistemas 159


Fundamentos de Programación

Ejemplo 4. Realizar una aplicación para ingresar elementos a dos matrices: nf = 9, nc = 9,


realizar las siguientes operaciones matemáticas.

Algoritmo Matriz4
Variables
x(9, 9), y(9, 9) : real
a, b, c, fi, ci, nf, nc : entero
INICIO
Leer
"Ing. número de filas ..:", nf - 1
"Ing. número de columnas ..:", nc - 1
Si (nf > 8) y (nc > 8) entonces
"Error“
Sino
"matrix de " , (nf * nc) , "--> > elementos"
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir
"(" , fi , "," , ci , ")->"
")
Leer
"ing valor de A :", a
"ing valor de B :", b
"ing valor de C :", c
Calcular
x(fi, ci) ← (b + Pow(b, 2) - 4 * a * c) / 2
y(fi, ci) ← (c + 1 * a + 1) + ((c - 2) + (b + 2))
Fin para ci
Fin para fi
"indice valor x(i)", "indice valor y(i)“
Para fi = 1 hasta nf
Para ci = 1 hasta nc
Imprimir
"(" , fi , "," , ci , ")--->"
") , x(fi, ci) , "(" , fi , "," , ci , ")--->"
>" , y(fi, ci)
Fin para ci
Fin para fi
Fin si
Fin.

Computación, Informática & Sistemas 160


Fundamentos de Programación

Ejercicio 5 Realizar una aplicación para ingresar elementos a una matriz nf = 20, nc = 15
acumularlos, luego visualizar la matriz.

Algoritmo Matriz5
Variables
m(20, 15), am : real
fi, ci, nf, nc, cm : entero
INICIO
Leer
"Ing. número de filas ..:", nf - 1
"Ing. número de columnas ..:", nc - 1
Si (nf > 8) y (nc > 8) entonces
"Error“
Sino
am ← 0
Imprimir
"matrix de " , (nf * nc) , "elementos"
Para fi = 1 hasta nf
Para ci = 1 hasta nc
"Ing. Items matrix m (" , fi , ", " , ci , ")-->",
") m(fi, ci)
am ← am + m(fi, ci)
Fin para ci
Fin para fi
Para fi = 1 hasta nf
Para ci = 1 hasta nc
"(" , fi , " , " , ci , ")" , m(fi, ci)
Fin para ci
Fin para fi
Imprimir
"suma de elementos .: ", am
Fin si
Fin.

Computación, Informática & Sistemas 161


Fundamentos de Programación

APLICACIONES CON ARREGLOS BIDIMENSIONALES I


(o Matrices)

OBJETIVOS:

 Desarrollar aplicaciones que utilicen la estructura de datos array


bidimensional, con las principales operaciones sobre el:: recorrido, suma
por filas, suma por columnas, operaciones basicas con matrices

Problema 1. Dada una matriz A de orden NxM hallar su matriz transpuesta


Problema 2.. Dada dos matrices A y B de orden NxM calcular la suma
Problema 3. Escribir un programa que genere dos matrices de dimensiones NxM y MxP a partir
de los valores leídos por teclado, y realice el producto de las dos matrices, mostrando la matriz
resultante.
Problema 3. Introducir
troducir un valor del 1 al 20 en un arreglo bidimensional de 5 filas y 4 columnas, el
número que se introduzca, digamos 3 debe almacenarse en la casilla correspondiente; y los
demás valores valdrán 0; si se ingresa el 15; si se ingresa el 8 y así sucesivamente, se tendría
esta matriz:

0 0 3 0 Los valores solo van a ser validos del 1 al 20; si yo pongo otro fuera de ese
parámetro me debe de rechazar el valor y pedir otra vez el valor. También
0 0 0 8
debe pedir si se quiere introducir más datos, y mostrar la tabla; si se introduce
0 0 0 0 un valor ya repetido que debe marcar que el dato ya existe, mostrar el mensaje
para introducir nuevamente.

Problema 4. Un comercio utiliza para la atención a sus clientes 5 cajeros (1,2,3,4,5) por cada
transacción se ingresa el número de cajero e importe de la transacción, que puede ser retiro,
deposito y otros. El proceso finaliza cuando en número de caja se ingresa cero. Determinar: a)
total de ingresos, retiros y otros en cada caja b) cual fue el cajero con menos ingresos y con
mayores
res retiros c) visualizar el total por cada caja.

Problema 5.

Computación, Informática & Sistemas 162


Fundamentos de Programación

En un arreglo se almacenan las X calificaciones finales en el primer ciclo de Y alumnos.


Escriba un programa que calcule e imprima:
a) El promedio ponderado en el ciclo de cada alumno, si paralelo a las calificaciones por curso
se tiene los créditos de cada curso del primer ciclo.
b) Número de cursos aprobados y desaprobados de cada alumno
c) Porcentaje de alumnos con promedio ponderado aprobado en el ciclo.
d) Número de alumnos con promedio mayor o igual a 8.

Problema 6.
Se desea desarrollar un programa que relacione la información de los síntomas que padece un
paciente con la información de los síntomas de las diferentes enfermedades. El nombre de los
pacientes debe colocarse en un vector, el nombre de las
las enfermedades debe colocarse en otro
vector, la información sobre los síntomas de cada paciente está codificada en una matriz en
donde las filas representa cada paciente y las columnas los diferentes síntomas que padece y la
información de los síntomas de
de cada enfermedad debe colocarse en una matriz en donde las
filas representan las diferentes enfermedades y las columnas los síntomas de cada
enfermedad. Las matrices de síntomas tendrán solamente los valores verdadero o falso, en
donde verdadero representa
a que el síntoma está presente en la enfermedad o en el paciente,
según sea el caso, y falso lo contrario.
El programa debe:
Generar un reporte de los pacientes con la enfermedad que padecen
Generar un reporte con la enfermedad más común, el número de pacientes
pacientes que la tienen y el
porcentaje.
Generar un reporte con la enfermedad menos común, el número de pacientes que la tienen y el
porcentaje.

Problema 7. Escribir un programa que determine si un matriz A de NxN es simétrica o no.


La matriz es simétrica
a si se cumple que A[i][j]=A[j][i].

Problema 8. Escribir un programa que lea los elementos de una matriz A de NxN y retorne
la transpuesta de A en otra matriz B de NXN, tal que B[i][j]=A[j][i].

Problema 9. Hacer un algoritmo que permita obtener el productos de dos matrices A[i][j] y
B[j][k].

Problema 10. Hacer un algoritmo que permita rotar los elementos del contorno de una
matriz NxM en sentido horario (Los elementos internos serán ceros)

Computación, Informática & Sistemas 163


Fundamentos de Programación

Problema 11 Obtener
tener la transpuesta de una matriz

a) Cuadrada
b) No
o cuadrada (teniendo en cuenta de que tamaño deberá ser la nueva matriz)

Problema 12. Se tiene una matriz, intercambiar los elementos de 2 renglones seleccionados
por el usuario.

Problema 13. Obtener en un arreglo la suma de los elementos de cada columna par de una
matriz y el producto de los elementos de cada columna impar de la misma matriz.

Computación, Informática & Sistemas 164


Fundamentos de Programación

Computación, Informática & Sistemas 165


Fundamentos de Programación

Computación, Informática & Sistemas 166


Fundamentos de Programación

Ejemplo Nro. 1: Ingresar 2 números enteros y luego visualizar el mayor valor de estos
números.

1.1 Código en Visual Basic .NET

Resultado en Consola Visual Basic .Net

Computación, Informática & Sistemas 167


Fundamentos de Programación

1.2 Código en Java

Resultado en Consola de Java JCreator

Computación, Informática & Sistemas 168


Fundamentos de Programación

Ejemplo Nro. 2: Una tienda comercial ofrece a sus clientes un descuento del 3% del
total de compra si el número de productos adquiridos es mayor a 5. Calcular el total a
pagar por una compra.

2.1 Código en Visual Basic .NET

Resultado en Consola Visual Basic .Net

Computación, Informática & Sistemas 169


Fundamentos de Programación

2.2 Código en Java

Resultado en Consola de Java JCreator

Computación, Informática & Sistemas 170


Fundamentos de Programación

Ejemplo Nro. 3: Una empresa otorga a sus trabajadores una bonificación equivalente al
5% del salario por cada hijo que tenga el trabajador. Calcular la bonificación y el total a
pagar a un trabajador.

3.1 Código en Visual Basic .NET

Resultado en Consola Visual Basic .Net

Computación, Informática & Sistemas 171


Fundamentos de Programación

3.2 Código en Java

Resultado en Consola en Java JCreator

Computación, Informática & Sistemas 172


Fundamentos de Programación

Ejemplo 4: Ingrese un número entre 1 y 999 y visualice el número de cifras que lo


componen.

4.1 Código en Visual Basic .NET

Resultado en Consola Visual .Net

Computación, Informática & Sistemas 173


Fundamentos de Programación

4.2 Código en Java

Resultado en Consola en Java JCreator

Computación, Informática & Sistemas 174


Fundamentos de Programación

Ejemplo 5:: Ingresar un número entre 1 y 5, luego visualizar su equivalente en letras.

5.1 Código en Visual Basic .NET

Resultado en Consola en Visual Basic .Net

Computación, Informática & Sistemas 175


Fundamentos de Programación

5.2 Código en Java

Resultado en Consola en Java JCreator

Computación, Informática & Sistemas 176


Fundamentos de Programación

BIBLIOGRAFIA

 Fundamentos de Programación : Luis Joyanes Aguilar

 Fundamentos de Programación : Manuel Santos

Ismael Patiño
o

 Fundamentos de Programación : Jesús Carretero

Felix García

José Manuel Pérez

Alejandro Calderón

Javier Fernandez

Direcciones Internet
 http://www.ulpgc.es/otros/tutoriales/mtutor/indice.html

 http://www.programacion.com/java/tutorial/jap_data_alg/

 http://pjsml.50megs.com/java/algoritmos.html

 http://www.csgabriel.edu.ec/java/

Computación, Informática & Sistemas 177

Vous aimerez peut-être aussi