Sei sulla pagina 1di 177

Fundamentos de Programacin Grupo IDAT

Desarrollo y Edicin a cargo del Programa de Computacin e Informtica.

Director Ejecutivo : Ing. Rolando Rojas Gallo


Coordinador Acadmico : Ing. Jos Garca La Riva
Coordinador Administrativo : Sr. Julio Cabrera Calle
Diseo y Diagramacin : Srta. Bettina Chvez Huamn
Srta. Flor Alicia Vega Collazos
Elaborado por : Ing. Rolando Rojas Gallo
Ing. Jos Garca La Riva
Ing. Alberto Moreno Cueva
Produccin : Departamento de Impresiones del Grupo IDAT

Los derechos de edicin, distribucin y contenidos de este texto son de exclusividad del
GRUPO IDAT.
Fundamentos de Programacin

PRESENTACIN

Esta gua didctica es un material de ayuda institucional, perteneciente a las


especialidades de Computacin, Informtica & Sistemas, Redes &
Comunicaciones, Soporte y Seguridad Informtica e Ingeniera de Software;
tiene por finalidad proporcionar los conocimientos de Fundamentos de
Programacin, orientado a los estudiantes del primer ciclo de estudios.

El Grupo IDAT, lder en la enseanza tecnolgica a nivel superior, promueve la


elaboracin de materiales educativos, en concordancia a las exigencias de las
tecnologas de estos tiempos, que permiten la creacin de nuevas herramientas
de aprendizaje con el objetivo de facilitar el acceso de los estudiantes a la
educacin en el marco del desarrollo tecnolgico de la Informtica y de las
Telecomunicaciones.

El texto se divide en dos unidades y quince captulos. Permite conocer las


herramientas indispensables para la elaboracin de un algoritmo. Se inicia con el
reconocimiento de las herramientas bsicas que se necesitarn para dar
solucin a una determinada proposicin o problema. En este proceso el alumno
aprender instrucciones que le permitir evaluar expresiones para luego
procesar un conjunto de sentencias. Tambin aprender 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 implementacin y uso de Sub Programas (Procedimientos y Funciones).


Todas estas herramientas darn un soporte slido al alumno para que aprenda a
programar en cualquier Lenguaje de Programacin Estructurado, adems de los
Lenguajes de Programacin Orientados a Objetos (POO): Java, C++, C#, Delphi,
Perl, Phyton, PHP (Versin 5), Ruby, Smalltalk, Turbo Pascal, ActionScript.

Esperamos que este material en su primera edicin, sirva de gran ayuda a los
estudiantes Idatinos y contribuya en el proceso de su formacin profesional.
Fundamentos de Programacin
Fundamentos de Programacin

NDICE
Nro. Pg.

UNIDAD I.. 09

CAPTULO I.- Introduccin a la Algortmica.... 11

CAPTULO II.- Datos y Tipos de Datos.. 17

CAPTULO III.- Variables y Constantes.. 23

CAPTULO IV.- Estructuras Bsicas .. 27

CAPTULO V.- Estructuras Secuenciales .. 31

CAPTULO VI.- Estructuras Condicionales y Simples . 51

CAPTULO VII.- Estructuras Condicionales Dobles . 59

CAPTULO VIII.- Estructuras Condicionales Mltiples. 69

UNIDAD II. 79

CAPTULO IX.- Estructuras Condicionales Anidadas .. 81

CAPTULO X.- Estructuras Selectivas ... 89

CAPTULO XI.- Estructuras Repetitivas Para Hacer 97

CAPTULO XII.- Estructuras Repetitivas Mientras Hacer 107

CAPTULO XIII.- Estructuras Repetitivas Repetir Hasta. 115

CAPTULO XIV.- Subprogramas Uso de Procedimientos.. 123

CAPTULO XV.- Uso de Funciones 135

CAPTULO XVI.- Uso de Vectores y Matrices 143

APNDICES. 165

BIBLIOGRAFA.. 177
Fundamentos de Programacin
Fundamentos de Programacin
Fundamentos de Programacin
Fundamentos de Programacin

CAPTULO I

INTRODUCCIN A LA ALGORTMICA

OBJETIVOS ESPECFICOS

1. Introduccin a la Algortmica.
2. Conceptualizar el Algoritmo y definir las caractersticas
3. Como elaboramos un Algoritmo

CONTENIDOS

 Algortmica: Resolucin y pasos para resolver un problemas.


 Definicin de un Algoritmo
 Caracterstica del Algoritmo
 Pasos para realizar un Algoritmo
 Ejercicios Prcticos

ALGORITMOS

Un algoritmo es un procedimiento a seguir, para resolver un problema en trminos de:

1. Las acciones por ejecutar.


2. El orden en que dichas acciones deben ejecutarse.

Un algoritmo nace en respuesta a la aparicin de un determinado problema. Un


algoritmo est compuesto de una serie finita de pasos que convergen en la solucin de
un problema, pero adems estos pasos tienen un orden especfico.

Entenderemos como problema a cualquier accin o evento que necesite cierto grado de
anlisis, desde la simpleza de cepillarse los dientes hasta la complejidad del
ensamblado de un automvil. En general, cualquier problema puede ser solucionado
utilizando un algoritmo, en este sentido podemos utilizar los algoritmos para resolver
problemas de cmputo.

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


aspectos ms importantes de una situacin y descartar los menos relevantes. Todo
problema de cmputo se puede resolver ejecutando una serie de acciones en un orden
especfico.

Por ejemplo considere el algoritmo que se elaborara para el problema o situacin de


levantarse todas las maanas para ir al trabajo:

Computacin, Informtica & Sistemas 11


Fundamentos de Programacin

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

Ntese que en el algoritmo anterior se ha llegado a la solucin del problema en 6 pasos,


y no se resaltan aspectos como: colocarse los zapatos despus 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 obviarlos o suponerlos, de lo contrario nuestro
algoritmo perdera lgica, un buen programador deber reconocer esos aspectos
importantes y tratar de simplificar al mnimo su problema.

Es importante recalcar que los pasos de un algoritmo no son conmutativos pues, no dara
solucin al mismo problema a tratar.

ROBUSTEZ DE UN ALGORITMO

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 ningn detalle
que 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 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 anlisis de resolucin 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.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR MEDIO DE


COMPUTADORA

Para lograr resolver cualquier problema se deben seguir bsicamente los siguientes
pasos:

DEFINICIN DEL PROBLEMA

Esta fase est dada por el enunciado del problema, el cual requiere una definicin 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.

Computacin, Informtica & Sistemas 12


Fundamentos de Programacin

ANLISIS DEL PROBLEMA

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

 Los datos de entrada.


 Cul es la informacin que se desea producir (salida)
 Los mtodos y frmulas que se necesitan para procesar los datos.

Una recomendacin muy prctica 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.

DISEO DEL ALGORITMO

Las caractersticas 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 mayora de las variantes que se puedan
presentar en la definicin del problema.
 Debe ser finito en tamao y tiempo de ejecucin.
 Diseo del Algoritmo
 Prueba de escritorio o Depuracin

Se denomina prueba de escritorio a la comprobacin que se hace de un algoritmo para


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

DEFINICIN DE UN ALGORITMO

El Algoritmo es una secuencia de pasos lgicos necesarios para llevar a cabo una tarea
especfica, como la solucin de un problema.

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


programacin y ejecutarse en una computadora distinta; sin embargo el algoritmo ser
siempre el mismo.

Computacin, Informtica & Sistemas 13


Fundamentos de Programacin

CARACTERSTICAS DE UN ALGORITMO

Las caractersticas del algoritmo son:


 Debe ser preciso e indicar el orden de realizacin 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 algn momento; o sea debe de tener un nmero
finito de pasos.

ESTRUCTURA DE UN ALGORITMO

Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes
para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas.

Los pasos en esta primera descripcin pueden requerir una revisin adicional antes de
que podamos obtener un algoritmo claro, preciso y completo.

Este mtodo de diseo de algoritmos en etapas, yendo de los conceptos generales a los
de detalle, se conoce como mtodo descendente (TOP-down).

En un algoritmo se deben de considerar tres partes:

- Entrada: Informacin dada al algoritmo.


- Proceso: Operaciones o clculos necesarios para encontrar la solucin 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 rectngulo proporcionndole su base y altura. Lo primero que debemos hacer es
plantearnos las siguientes preguntas:
Especificaciones de entrada
- Qu datos son de entrada?
- Cuntos datos se introducirn?
- Cuntos son datos de entrada vlidos?

Especificaciones de salida
- Cules son los datos de salida?
- Cuntos datos de salida se producirn?
- Qu formato y precisin tendrn los resultados?

Computacin, Informtica & Sistemas 14


Fundamentos de Programacin

EJERCICIOS RESUELTOS
1. Defina un algoritmo para realizar una llamada

INICIO
1. Acercarse al Telfono
2. Levantar el Auricular
3. Recordar el Nmero telefnico
4. Discar el Nmero
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 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 msica en un CD

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

Computacin, Informtica & Sistemas 15


Fundamentos de Programacin

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 institucin.

4. Defina un Algoritmo que permita ver un determinado programa de televisin y al


terminar apagar la TV.

5. Defina un Algoritmo que permita Elaborar el Arroz con pollo, Sugerencia: Conversar
con la Mam.

6. Defina un Algoritmo que permita Pintar las paredes de tu habitacin.

7. Defina un Algoritmo que permita realizar una compra al crdito en una empresa
comercial.

8. Defina un Algoritmo que permita tener una Consulta Mdica de un consultorio


particular.

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

Computacin, Informtica & Sistemas 16


Fundamentos de Programacin

CAPTULO II

DATOS Y TIPOS DE DATOS

OBJETIVOS ESPECFICOS

1. Conocer los Tipos de Datos que se utilizan en la algortmica


2. Definir las expresiones

CONTENIDOS

 Datos, definicin
 Tipos de datos: Numrico, de cadena, lgicos
 Manejo de Operadores
 Expresiones
 Ejercicios Prcticos

DEFINICIN DE DATOS
1. Un dato es la expresin 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 simples son: numricos, lgicos y caracter.

DATOS NUMRICOS
1. Es el conjunto de los valores numricos y puede ser expresado como
numricoentero y numricoreal.

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


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

DATOS LGICOS

1. Tambin 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.

Computacin, Informtica & Sistemas 17


Fundamentos de Programacin

DATOS CARACTER
1. Este tipo de dato contiene un solo carcter.

2. Los caracteres son: alfabticos (A-Z), numricos (0-9) y especiales ( @ # $ % ^


& *).

3. Una cadena de caracteres o string es una sucesin de caracteres que se


encuentran delimitados por una o dobles comillas.

EJERCICIOS PRCTICOS

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

Datos Tipo
Hola
123
Quin eres?
Verdadero
El Sabio
Falso
12.56
12/15
Trae
EL Quijote
56.8999999
Alo!
Persona
Juan

MANEJO DE OPERADORES

Definicin

 Un operador es un carcter o grupo de caracteres que acta sobre una, dos o


ms variables para realizar una determinada operacin con un determinado
resultado. Ejemplos tpicos de operadores son la suma (+), la diferencia (-), el
producto (*), etc.
 Un operador sirve para manipular datos.
 Los operadores pueden ser unarios, binarios y ternarios, segn acten sobre
uno, dos o tres operandos, respectivamente.

Computacin, Informtica & Sistemas 18


Fundamentos de Programacin

TIPOS DE OPERADORES
 Aritmticos
 De relacin,
 Lgicos,
 De asignacin,

OPERADORES ARITMTICOS
 Los operadores aritmticos son los ms sencillos de entender y de utilizar.
Todos ellos son operadores binarios.
 Se utilizan los operadores siguientes:

OPERADOR SIGNIFICADO

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

OPERADORES RELACIONALES
 Una caracterstica imprescindible de cualquier lenguaje de programacin es la
de considerar alternativas, esto es, la de proceder de un modo u otro segn se
cumplan o no ciertas condiciones.
 Los operadores relacionales permiten estudiar si se cumplen o no esas
condiciones.
 En un programa si una condicin 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

Computacin, Informtica & Sistemas 19


Fundamentos de Programacin

Computacin, Informtica & Sistemas 20


Fundamentos de Programacin

PRIORIDAD DE LOS OPERADORES

OPERADOR PRIORIDAD
() [] Signos de Agrupacin
Potencia
*, /, % Producto y Divisin
+, - Suma y Resta
Y Operador lgico y
O Operador lgico O
NO Operador lgico de negacin
>,>=,<,<=,=,<> Operador de relacin

EXPRESIONES

Definicin
 Es una combinacin de distintas variables, constantes, operadores y parntesis.
 Tiene un valor concreto que es el resultado de evaluarla de izquierda a derecha.
 El valor devuelto tras la evaluacin de una expresin determina el tipo de la
expresin (entera, lgica )

Ejemplo

Sentencias
 Las expresiones son tems elementales de unas entidades que son las
sentencias. Si nos fijamos en la expresin anterior, la variable que est a la
izquierda del signo (=), el operador de asignacin, la expresin aritmtica y el
carcter (;) constituyen una sentencia.
 Las sentencias son unidades completas, ejecutables en s mismas. Ya se ver
que muchos tipos de sentencias incorporan expresiones aritmticas, lgicas o
generales como componentes de dichas sentencias.

Computacin, Informtica & Sistemas 21


Fundamentos de Programacin

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 )

Computacin, Informtica & Sistemas 22


Fundamentos de Programacin

CAPTULO III

VARIABLES Y CONSTANTES

OBJETIVOS ESPECIFICOS

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


Algortmica
2. Definir las expresiones

CONTENIDOS

 Variables, definicin
 Identificacin de una Variable
 Declaracin de una Variable
 Constantes
 Ejercicios Prcticos

VARIABLES

Definicin

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


temporalmente un dato durante la ejecucin de un proceso, su contenido puede
cambiar durante la ejecucin 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 slo contiene un valor
determinado.

Declaracin

 Las variables pueden asumir valores numricos, carcter y lgicos.


 Existen 2 tipos de duracin 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 (Procedimiento o
Funcin).

Computacin, Informtica & Sistemas 23


Fundamentos de Programacin

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

Clasificacin de las Variables

Declaracin

 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
CARCTER: Car1, Car2
CADENA : Texto1, Texto2
LOGICO: Estado, Ok, Done

En visual Basic las analogas son:

Para declaracin de variables emplear


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

Computacin, Informtica & Sistemas 24


Fundamentos de Programacin

CONSTANTES

Definicin

 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
seudocdigos:

CONST PI=3.14

Computacin, Informtica & Sistemas 25


Fundamentos de Programacin

Computacin, Informtica & Sistemas 26


Fundamentos de Programacin

CAPTULO IV

ESTRUCTURAS BSICAS

OBJETIVOS ESPECFICOS

 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 algortmicos.

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 traduccin al latn de la palabra rabe


alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado
sobre manipulacin de nmeros y ecuaciones en el siglo IX.
 Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solucin a un problema especfico.
 Un algoritmo tambin se le puede definir como:
 Una "frmula" para resolver un problema.
 Un conjunto finito de acciones o secuencia de operaciones que ejecutadas
En un determinado orden resuelven el problema.
 Tambin puede definirse como un mtodo 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 clculos numricos para definir los
pasos del proceso.

Estructura del Algoritmo


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

Computacin, Informtica & Sistemas 27


Fundamentos de Programacin

Lenguajes Algortmicos

Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un
proceso. De los cuales se encuentran los siguientes tipos de
Lenguajes Algortmicos:

 Grficos: Es la representacin grfica de las operaciones que realiza un


algoritmo (diagrama de flujo).
 No Grficos: Representa en forma descriptiva las operaciones que debe realizar
un algoritmo (pseudocdigo).

Diagrama de Flujo

 Un diagrama de flujo es la representacin grfica de un


algoritmo.
 Tambin se puede decir que es la representacin
detallada en forma grfica de cmo deben realizarse los
pasos en la computadora para producir resultados.
 Esta representacin grfica se da cuando varios
smbolos (que indican diferentes procesos en la
computadora), se relacionan entre s mediante lneas
que indican el orden en que se deben ejecutar los
procesos.
 Los smbolos utilizados han sido normalizados por el
instituto norteamericano de normalizacin (ANSI).

Recomendaciones para el diseo de Diagramas de Flujo

 Se deben se usar solamente lneas de flujos horizontales y/o verticales.


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

Computacin, Informtica & Sistemas 28


Fundamentos de Programacin

Pseudo Cdigo

 Mezcla de lenguaje de programacin y espaol (o ingls o cualquier otro idioma)


que se emplea, dentro de la programacin estructurada, para realizar el diseo
de un programa.
 En esencial, el pseudo cdigo se puede definir como un lenguaje de
especificaciones de algoritmos. Es la representacin narrativa de los pasos que
debe seguir un algoritmo para dar solucin a un problema determinado. El
pseudo cdigo 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 Cdigo a un Diagrama de Flujo

 Ocupa menos espacio en una hoja de papel


 Permite representar en forma fcil operaciones repetitivas complejas
 Es muy fcil pasar de pseudo cdigo a un programa en algn lenguaje de
programacin.
 Si se siguen las reglas se puede observar claramente los niveles que tiene cada
operacin.

Estructuras Algortmicas

Las estructuras de operacin de programas son un grupo de formas de trabajo, que


permiten, mediante la manipulacin de variables, realizar ciertos procesos especficos
que nos lleven a la solucin de problemas. Estas estructuras se clasifican de acuerdo con
su complejidad en:

Computacin, Informtica & Sistemas 29


Fundamentos de Programacin

Estructura de un Algoritmo en Pseudocdigo


En pseudocdigo el algoritmo tiene tres partes: la cabecera, la zona de declaracin 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 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 Sintctica de un Algoritmo

Sentencias Declarativas
Algoritmo CalculaArea
Cabecera del Programa
VARIABLE
Declaracin 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

Computacin, Informtica & Sistemas 30


Fundamentos de Programacin

CAPITULO V

ESTRUCTURAS SECUENCIALES

OBJETIVOS ESPECFICOS

 Reconoce la estructura Secuencial


 Comprende el manejo de las estructuras secuenciales en los procesos algortmicos.

CONTENIDOS

 Estructura Secuencial
 Definicin
 Estructura
 Desarrollo Prctico

DEFINICIN

 La estructura secuencial es aquella en la que una accin (instruccin) 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

Computacin, Informtica & Sistemas 31


Fundamentos de Programacin

PSEUDOCDIGO

Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos


representados en Pseudocdigo y en diagramas de flujos:

COMPONENTES DE UNA ESTRUCTURA SECUENCIAL

La Asignacin

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 asignacin 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 nmero de veces que se
realiza un proceso
(a  a + 1)
 Acumulador: Consiste en usarla como un sumador en un proceso
(a  a + b)

Computacin, Informtica & Sistemas 32


Fundamentos de Programacin

 De trabajo: Donde puede recibir el resultado de una operacin matemtica que


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

En general el formato a utilizar es el siguiente:

< Variable >  <valor o expresin >

El smbolo  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 instruccin 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
continuacin de la instruccin. Esta operacin se representa as:

LEER VARIABLE

LEER VARIABLE1, VARIABLE 2

DECLARACIN DE VARIABLES Y CONSTANTES

La declaracin de variables es un proceso que consiste en listar al principio del algoritmo


todas las variables que se usarn, adems de colocar el nombre de la variable se debe
decir qu tipo de variable es.

ENTERO: Contador, Edad, I


CADENA: Direccin
REAL: Salario _ bsico
CARCTER: Opcin

En la anterior declaracin de variables Contador, Edad e I son declaradas de tipo entero;


Salario _ bsico es una variable de tipo real, Opcin es de tipo carcter y la variable
Direccin est declarada como una variable alfanumrica de cadena de caracteres.

Computacin, Informtica & Sistemas 33


Fundamentos de Programacin

EJERCICIOS RESUELTOS 1

1. Ingrese un nmero entero, luego smele 2 unidades y visualcelo.

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

2. Ingrese 2 nmeros enteros y luego calcule y visualice la suma y producto de los 2


nmeros 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 nmero 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 bonificacin del 5% del haber bsico por cada hijo
a todos sus trabajadores. Calcule el total a pagar a un trabajador.

ALGORITMO Ejemplo4
VARIABLES
ENTERO NroHijos
REAL Hbasico, Bonificacin, Total
INICIO
LEER (Hbasico, NroHijos)
Bonificacin (Hbasico * 0.05) * NroHijos
Total Hbasico + Bonificacin
ESCRIBIR (Total)
FIN

Computacin, Informtica & Sistemas 34


Fundamentos de Programacin

5. Ingrese por teclado un nmero de dos cifras, visualice su nmero invertido.

ALGORITMO Ejemplo5
VARIABLES
ENTERO Nmero, Inverso, Unidad, Decena
INICIO
LEER (Nmero)
Unidad Nmero MOD 10
Decenal Nmero 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
promocin 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 Computacin e Informtica, si los alumnos son
agrupadas en aulas de 40 alumnos cada aula, Hallar:

Nmero 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

Computacin, Informtica & Sistemas 35


Fundamentos de Programacin

8. Ingrese por teclado un Nmero de 3 cifras, visualice la suma de las cifras del nmero
ingresado.

ALGORITMO Ejemplo8
VARIABLES
ENTERO Nmero, Unidad, Decena, Suma
INICIO
LEER (Nmero)
Unidad Nmero MOD 10
Decena  (Nmero DIV 10) MOD 10
Centena  NMERO DIV 100
Suma Unidad + Decena + Centena
ESCRIBIR (Suma)
FIN

9. Ingrese por teclado la cantidad de metros cbicos 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 cbicos por el precio.

Mantenimiento 0.25% del monto


Parques y Jardines 0.15% del monto
Exploracin 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 Cbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar
INICIO
LEER (Cbicos)
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 (Exploracin:, Explor)
ESCRIBIR (Limpieza:, Limp)
ESCRIBIR (Monto:, Monto)
ESCRIBIR (IGV:, IGV)
ESCRIBIR (A Pagar:, Pagar)
FIN

Computacin, Informtica & Sistemas 36


Fundamentos de Programacin

10. Una Empresa dedicada a la Venta de Electrodomsticos, realiza una promocin del
20% + 15% de descuento. Ingrese el precio de un electrodomstico, 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

Computacin, Informtica & Sistemas 37


Fundamentos de Programacin

EJERCICIOS RESUELTOS 2

Nota.- crear el algoritmo y cdigo en visual Net, aplicacin de consola

Iniciar la codificacin en Visual Net 2005 (software donde se comprueban los algoritmos
desarrollados)

En inicio ejecutar colocar DEVENV

EN FILE NEW PROYECT

Por defecto se tiene el modulo:

En esta seccin dentro del main se


va codificar el algoritmo

Computacin, Informtica & Sistemas 38


Fundamentos de Programacin

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


Ejm: Ingresado 3 aos 4 meses debe ESCRIBIR 40 meses.

ALGORITMO EDAD

INICIO
// Declaracin de las variables M : almacena cantidad de meses
Entero: M , A , AM A : almacena cantidad de aos
AM : almacena cantidad total de meses
// Muestra en pantalla e Ingresa Datos
ESCRIBIR Ingrese Anyos:
LEER A
ESCRIBIR Ingrese Meses:
LEER M

// Factor: 1 ao = 12 meses
//Proceso: consideramos que 1 ao tiene 12 meses
AM = A * 12 + M

// Muestra Resultados en pantalla


ESCRIBIR "Edad en meses = ", AM
FIN

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports system.console
Imports System.Math

Module Module1

Sub main()

Dim an,mes,res As Integer


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

End Sub

End Module

Computacin, Informtica & Sistemas 39


Fundamentos de Programacin

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 aos

INICIO
// Declaracin 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 area es..:" , area)
ESCRIBIR("precio total..:" , prect)
ESCRIBIR("cuota inicial..:" , cuotini)
ESCRIBIR("el saldo es ..:" , sald)
ESCRIBIR("la cuota mensual es ..:" , cuotmensu)
FIN

Computacin, Informtica & Sistemas 40


Fundamentos de Programacin

CODIFICACIN 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 largo..:")
larg = ReadLine()
Write("ingresar ancho..:")
anch = ReadLine()
Write("ingresar precio por metros ..:")
pxm = ReadLine()
area = (larg * anch)
prect = (area * pxm)
cuotini = (prect * 0.13)
sald = (prect - cuotini)
cuotmensu = (sald / 24)
WriteLine("el area es..:" & area)
WriteLine("precio total..:" & prect)
WriteLine("cuota inicial..:" & cuotini)
WriteLine("el saldo es ..:" & sald)
WriteLine("la cuota mensual es ..:" & cuotmensu)
ReadLine()
End Sub

End Module

Computacin, Informtica & Sistemas 41


Fundamentos de Programacin

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

INICIO
// Declaracin 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 valor final es..:" , vfut)

FIN

CODIFICACIN 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 monto..:")
monto = ReadLine()
Write("ingresa meses..:")
meses = ReadLine()
ints = monto * 0.02 * meses
vfut = monto + meses
WriteLine()
WriteLine("el valor final es..:" & vfut)
ReadLine()

End Sub
End Module

Computacin, Informtica & Sistemas 42


Fundamentos de Programacin

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


1pie=30.48 cm.

INICIO
// Declaracin 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

CODIFICACIN 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 valor en 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 en metros.:" & vm)
ReadLine()

End Sub
End Module

Computacin, Informtica & Sistemas 43


Fundamentos de Programacin

5. Calcular el rea y permetro de un tringulo, conocidos sus lados.

INICIO
//Declaracin de las variables
Real: A, B, C, P, sp, Area
Lados del tringulo: A , B y C
P : Permetro del Tringulo (suma de sus lados)
sp : SemiPermetro del Tringulo = 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

CODIFICACIN 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 lado 1..:")
l1 = ReadLine()
Write("ingresa lado 2..:")
l2 = ReadLine()
Write("ingresa lado 3 ..:")
l3 = ReadLine()
p = (l1 + l2 + l3) / 2
area = Sqrt(p * (p - l1) * (p - l2) * (p - l3))
WriteLine()
WriteLine("ESCRIBIR area..:" & area)
ReadLine()
End Sub
End Module

Computacin, Informtica & Sistemas 44


Fundamentos de Programacin

6. Ingrese por teclado un nmero de dos cifras, visualice su nmero invertido

VARIABLES
ENTERO: Nmero, Inverso, Unidad, Decena
INICIO
LEER (Nmero)
Unidad Nmero MOD 10
Decenal Nmero DIV 10
Inverso 10 * Unidad + Decena
ESCRIBIR (Inverso)
FIN

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module6
Sub Main()
Dim Nmero, Inverso, Unidad, Decena As Integer
Write("Ingresa un nmero de 2 cifras..:")
nmero =ReadLine()
Unidad = Nmero MOD 10
Decenal = Nmero \10
Inverso = 10 * Unidad + Decena
WriteLine("nmero 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 Computacin e Informtica, si los alumnos son
agrupadas en aulas de 40 alumnos cada aula, hallar:

Nmero de aulas completas


Cantidad de alumnos que 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

Computacin, Informtica & Sistemas 45


Fundamentos de Programacin

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module7
Sub Main()

Dim Nmero Matriculas, Aulas, Falta As Integer

Write("Ingrese nmero de matriculas.:")


matriculas = CInt(ReadLine())

Aula=Matriculas \40
Falta =Matricula MOD 40

WriteLine("nmero de aulas.:" & aula)


ReadLine()

End Sub
End Module

PASAR A VISUAL LOS SIGUIENTES SEUDOCODIGOS:

8. Ingrese por teclado un Nmero de 3 cifras, visualice la suma de las cifras del nmero
ingresado.

VARIABLES
ENTERO Nmero, Unidad, Decena, Suma

INICIO

LEER (Nmero)
Unidad Nmero MOD 10
Decena  (Nmero DIV 10) MOD 10
Centena  NMERO DIV 100
Suma Unidad + Decena + Centena
ESCRIBIR (Suma)

FIN

Computacin, Informtica & Sistemas 46


Fundamentos de Programacin

9. Ingrese por teclado la cantidad de metros cbicos 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 cbicos por el precio.

Mantenimiento 0.25% del monto


Parques y Jardines 0.15% del monto
Exploracin 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.

VARIABLES
REAL: Cbicos, Monto, Mant, PJ, Explor, Limp, IGV, Pagar

INICIO
LEER (Cbicos)
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 (Exploracin:, Explor)
ESCRIBIR (Limpieza:, Limp)
ESCRIBIR (Monto:, Monto)
ESCRIBIR (IGV:, IGV)
ESCRIBIR (A Pagar:, Pagar)
FIN

Computacin, Informtica & Sistemas 47


Fundamentos de Programacin

10. Una Empresa dedicada a la Venta de Electrodomsticos, realiza una promocin del
20% + 15% de descuento. Ingrese el precio de un electrodomstico, 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

Computacin, Informtica & Sistemas 48


Fundamentos de Programacin

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

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


centmetros y pulgadas, sabiendo que una pulgada es el equivalente a 2.54
centmetros.

3. Ingrese por teclado la descripcin 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 nmero de tres cifras, calcule y visualice:

a) Suma de sus cifras


b) Promedio de las cifras

6. Ingrese por teclado un nmero de dos cifras, mostrar el nmero 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 reparticin 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 compaa telefnica que permite mostrar el pago por
consumo telefnico, para esto se ingresar el cdigo del usuario, el nmero
telefnico y la cantidad de minutos utilizados.
Mostrar el cdigo del usuario, el importe de las llamadas realizadas, el IGV y el pago
total, considerando que la empresa cobra 0.30 cntimos de nuevo sol por cada
minuto, la renta bsica cobra 48 nuevos soles y el IGV es el 19% del Monto.

Computacin, Informtica & Sistemas 49


Fundamentos de Programacin

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


promedio de las tres notas.

10. Ingrese por teclado la cantidad de soles, transformarlo en dlares; considere el tipo
de cambio del da.

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 nmero, incrementar el 2.4% de su valor, mostrar el valor del
incremento y el nuevo nmero.

14. Ingrese por teclado un nmero de 4 cifras, mostrar los nmeros formados por las
cifras de los extremos y los medios.

15. Ingrese por teclado el sueldo de un trabajador, asumiendo que ste es un valor
entero, visualizar la mejor distribucin de billetes y monedas que se utilizarn 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.

Computacin, Informtica & Sistemas 50


Fundamentos de Programacin

CAPITULO VI

ESTRUCTURAS CONDICIONALES Y SIMPLES

OBJETIVOS ESPECFICOS

 Defina el propsito de las estructuras condicionales

 Realiza la solucin de diversos casos prcticos aplicando estructuras condicionales

CONTENIDOS

 Definicin de estructuras condicionales

 Clasificacin

 Estructura condicional simple

 Definicin

 Sintaxis

 Desarrollo Practico

ESTRUCTURAS CONDICIONALES

Definicin

Las Estructuras Condicionales tambin reciben el nombre de estructuras de seleccin,


permite elegir entre diferentes cursos de accin en funcin de condiciones.

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

En una Estructura Condicional se evala una expresin lgica y dependiendo del


resultado se ejecutan unas sentencias u otras.

Pongamos un pequeo ejemplo. Imagine que tenemos nuestro robot subiendo las
escaleras de la Torre Eiffel y le indicamos lo siguiente: si est en el escaln 200 entonces
no contine subiendo, sino continua su ascensin. Como puede ver aqu se nos presenta
una condicin y, segn en el punto de la escalera en la que se encuentre, nuestro robot
se parar o continuar subiendo.

Si la condicin es verdadera, entonces se ejecuta la sentencia mostrar, y luego el


programa continuara; si la condicin es falsa, la sentencia mostrar se ignora y el
programa contina.

Computacin, Informtica & Sistemas 51


Fundamentos de Programacin

Qu es una Condicin?

Una condicin o expresin booleana puede ser:

Una variable booleana


TEST  Verdadero

Una expresin aritmtica seguida de un operador relacional, seguido de otra


expresin aritmtica
TEST  3 < 5

Una expresin booleana, seguida de un operador booleano, seguido de una


expresin booleana
TEST  A AND NOT B OR C

Se pueden utilizar condiciones tan complejas como se quiera siempre que estn bien
formadas

Clasificacin

Las estructuras condicionales o selectivas se clasifican en:


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

ESTRUCTURA CONDICIONAL SIMPLE

Definicin

Es aquella estructura de control que evala una condicin:


Si la condicin se cumple se ejecutan determinadas acciones.
Si la condicin no se cumple, no se ejecutan esas acciones.

Computacin, Informtica & Sistemas 52


Fundamentos de Programacin

SINTAXIS

DIAGRAMA DE FLUJO

PSEUDOCDIGO

Computacin, Informtica & Sistemas 53


Fundamentos de Programacin

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

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module1
Sub Main()

Dim A, B, Mayor3 As Integer


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

End Sub
End Module

Computacin, Informtica & Sistemas 54


Fundamentos de Programacin

2. Ingrese por teclado un nmero entero, si mayor a 10 smele 10 unidades y visualice


el nuevo valor.

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Imports System.math

Module Module1
Sub Main()
Dim N As Integer
Write("Ingresa valor 1..:")
N = ReadLine()
IF N>10 THEN
N=N+10
END IF
WriteLine("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-SI
FIN

Computacin, Informtica & Sistemas 55


Fundamentos de Programacin

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

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

Dim edad As Integer


Write("Ingresa su edad..:")
edad = ReadLine()
IF edad>17 THEN
WriteLine("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 mnima de 1.70 metros

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

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

Dim talla As double


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

End Sub
End Module

Computacin, Informtica & Sistemas 56


Fundamentos de Programacin

5. Una empresa otorga un bonificacin del 5% del haber bsico solo a sus trabajadores
que tienen hijos, calcular el total a pagar a un trabajador.

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

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

Dim Hbasico, Bonificacin, Total As double


Dim NroHijos As integer
Write("Ingresa su haber basico.:")
hbasico = ReadLine()
Write("Ingresa nmero de hijos.:")
nrohijos = ReadLine()
IF ( NroHijos > 0 ) THEN
Bonificacin =Hbasico * 0.05 * NroHijos
END IF
Total =Hbasico + Bonificacin
WRITELINE(SU PAGO TOTAL ES : &Total)
ReadLine()

End Sub
End Module

Computacin, Informtica & Sistemas 57


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

1. Ingrese por teclado 2 nmeros enteros y visualice el menor de los 2 nmeros


ingresados.

2. Ingrese por teclado un nmero entero visualice el cuadrado del nmero, si el nmero
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 mnima es 17 y su talla mnima es 1.65 metros.

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


visualice 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 por teclado la descripcin 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.

7. Ingrese por teclado un nmero, si es nmero par, duplique el valor del nmero;
mostrar el nuevo valor.

8. Ingrese por teclado un nmero, si es de 3 cifras, visualice la suma de las cifras del
nmero.

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 ao 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 nmero, si el nmero es impar y de tres cifras, visualice el
nmero incrementado por su nmero 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.

Computacin, Informtica & Sistemas 58


Fundamentos de Programacin

CAPTULO VII

ESTRUCTURAS CONDICIONALES DOBLES

OBJETIVOS ESPECFICOS

 Defina el propsito de las estructuras condicionales dobles.

 Realiza la solucin de diversos casos prcticos aplicando estructuras condicionales.

CONTENIDOS

 Estructura condicional doble

 Definicin

 Sintaxis

 Desarrollo Practico

ESTRUCTURA CONDICIONAL DOBLE

Definicin

La estructura condicional de seleccin doble ejecuta un bloque de instrucciones (A)


cuando la proposicin (condicin) es verdadera y un bloque diferente (B) cuando esta es
falsa.

SINTAXIS

DIAGRAMA DE FLUJO

Computacin, Informtica & Sistemas 59


Fundamentos de Programacin

Computacin, Informtica & Sistemas 60


Fundamentos de Programacin

EJERCICIOS RESUELTOS

1. Ingrese por teclado 2 nmeros, visualice el mayor de los dos nmeros 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 nmero, si el nmero es par visualice su doble pero si el


nmero 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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

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

END IF
ReadLine()
End Sub
End Module

Computacin, Informtica & Sistemas 61


Fundamentos de Programacin

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim EDAD As Integer


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

END IF
ReadLine()

End Sub
End Module

4. Ingrese por teclado el total de ahorros de una persona, si ahorr ms 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

Computacin, Informtica & Sistemas 62


Fundamentos de Programacin

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim AHORROS As DOUBLE
Write("Ingrese ahorros)
ahorros = ReadLine()
IF ahorros>1000 THEN
WriteLine("puede comprar su tv)
ELSE
WriteLine("siga 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
mnima es 3 minutos, sino visualice un mensaje PREPARARSE MAS

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

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

END IF
ReadLine()
End Sub
End Module

Computacin, Informtica & Sistemas 63


Fundamentos de Programacin

6. Una tienda comercial ofrece un descuento del 3% del valor de compra si el pago se
efecta 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
CARCTER: 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

CODIFICACIN 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 valor de la compra..:")
vcompra = ReadLine()
Write("Ingrese tipo de compra 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 a pagar: & totAL)
ReadLine()
End Sub
End Module

Computacin, Informtica & Sistemas 64


Fundamentos de Programacin

7. Ingrese un nmero entero de 3 cifras y luego visualice un mensaje indicando si el


nmero ingresado es CAPICUA o NO ES CAPICUA.

ALGORTMICA 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-SI
FIN-SI
FIN

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N, A, C As INTEGER
Write("Ingrese UN NMERO 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

Computacin, Informtica & Sistemas 65


Fundamentos de Programacin

8. Una tienda comercial por campaa publicitaria est ofreciendo descuentos por sus
diversos artculos, donde lo artculos que cuestan mnimo 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 estn solicitando a la poblacin postular a la Escuela de la Fuerzas Armadas, una


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

ALGORTMICA Ejemplo9

VARIABLES
ENTERO: edad
REAL: talla
CADENA: nombre, estudios
INICIO
LEER (nombre, talla, edad, estudios)
SI ( edad>17 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

Computacin, Informtica & Sistemas 66


Fundamentos de Programacin

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).

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


a. Mayor de Edad, si la edad es mnimo 18
b. Menor de Edad, si la edad es menor a 18

3. Ingrese por teclado un nmero de dos cifras, visualice un mensaje si es nmero es o


no capica.

4. Ingrese por teclado dos nmeros, visualice el menor de los dos nmeros ingresados.

5. Ingrese por teclado tres nmeros diferentes, visualize:


a) Mayor de los tres nmeros
b) Menor de los tres nmeros

6. Ingrese por teclado tres nmeros enteros diferentes, visualice el segundo mayor
nmero.

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 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 ms baja; calcule y visualice su promedio.

9. Ingrese por teclado el precio de un artculo, 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 por 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 ms de 40 horas, por cada hora extra
trabajada, se le pagar 25 nuevos soles. Visualice el jornal que recibi.

Computacin, Informtica & Sistemas 67


Fundamentos de Programacin

Computacin, Informtica & Sistemas 68


Fundamentos de Programacin

CAPTULO VIII

ESTRUCTURAS CONDICIONALES MULTIPLES

OBJETIVOS ESPECFICOS

 Defina el propsito de las estructuras condicionales mltiples.

 Realiza la solucin de diversos casos prcticos aplicando estructuras condicionales.

CONTENIDOS

 Estructura condicional mltiple

 Definicin

 Sintaxis

 Desarrollo Practico

ESTRUCTURA CONDICIONAL MULTIPLE

Definicin

Las estructuras de comparacin mltiples, son tomas de decisin especializada que


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

SINTAXIS

DIAGRAMA DE FLUJO

Computacin, Informtica & Sistemas 69


Fundamentos de Programacin

PSEUDOCDIGO

Computacin, Informtica & Sistemas 70


Fundamentos de Programacin

EJERCICIOS RESUELTOS
1. Ingrese 3 nmeros enteros y visualice el mayor de los 3 nmeros 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
CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim A, B, C, Mayor As INTEGER
Write("Ingrese UN PRIMER VALOR:)
A = ReadLine()
Write("Ingrese UN SEGUNDO VALOR:)
B = ReadLine()
Write("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

Computacin, Informtica & Sistemas 71


Fundamentos de Programacin

11. Ingrese un nmero entero, si es menor a 10 smele 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
NN*N
FIN-SI
ESCRIBIR ( N )
FIN

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA


Imports System.Console
Module Module1
Sub Main()
Dim N As INTEGER
Write("Ingrese UN NMERO 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 bsico segn la categora del
trabajador; categora A: 250; categora B: 200; categora C: 120; otras categoras 50.
ALGORITMO Ejemplo3
VARIABLES
CADENA: Categora
REAL: Bonificacin
INICIO
LEER (Categora)
SI (Categora = A) ENTONCES
Bonificacin 250
SINO SI (Categora = B) ENTONCES
Bonificacin 200
SINO SI (Categora = C) ENTONCES
Bonificacin 120
SINO
Bonificacin 50
FIN-SI
ESCRIBIR (Bonificacin)
FIN

Computacin, Informtica & Sistemas 72


Fundamentos de Programacin

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim Bonificacin As double
Dim categoria as string
Write("Ingrese una categora :)
categoria = ReadLine()
IF (categoria = A) THEN
Bonificacin=250
ELSEIF (categoria = B) THEN
Bonificacin=200
ELSEIF (categoria = C) THEN
Bonificacin= 120
ELSE
Bonificacin =50
END IF
Writeline(Valor DE Bonificacin : & Bonificacin )
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 categoras:

PROMEDIO CATEGORA
18 20 Excelente
15 17 Bueno
11 14 Regular
0 -10 Malo

ALGORITMO Ejemplo4
VARIABLES
CADENA: Categora
ENTERO: nota

INICIO
LEER (nota)
SI (nota<=10) ENTONCES
Categora Malo
SINO SI (nota<=14) ENTONCES
Categora Regular
SINO SI (nota<=17) ENTONCES
Categora Bueno
SINO
Categora Excelente
FIN-SI
ESCRIBIR (Categora)
FIN

Computacin, Informtica & Sistemas 73


Fundamentos de Programacin

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

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

14. Una persona est a punto de ver televisin, mostrar si segn su edad est apto para
ver el programa televisivo.

EDAD CATEGORA
18 -ms 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-SI
FIN

Computacin, Informtica & Sistemas 74


Fundamentos de Programacin

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

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

Computacin, Informtica & Sistemas 75


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

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


de acuerdo a lo siguiente:
Si la persona es de sexo femenino: categora FA si tiene menos de 20 aos y FB
caso contrario.
Si la persona es de sexo masculino: categora MA si tiene menos de 30 aos y
MB caso contrario

2. Disee un programa que ingrese el sueldo de un trabajador y calcule el aumento que


obtendr de la siguiente tabla
SUELDO AUMENTO
Menos 2000 20%
2000<=sueldo<=3000 13%
Sueldo>3000 9%

3. Disee un programa que lea la temperatura de un da 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 Trpico

4. Ingrese un nmero de 4 cifras, visualizar un mensaje si el nmero es o no capica.

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 ms baja; calcule y visualice su promedio

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


nombre del mes del ao correspondiente. (Enero, Febrero,...etc).

7. Ingrese un nmero de hasta tres cifras, visualizar el nmero en romanos

8. La Universidad UTP ha categorizado las matriculas de 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

Computacin, Informtica & Sistemas 76


Fundamentos de Programacin

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 campaa navidea, desea comprar panteones, donde segn su marca
tiene un precio

Marca del Panten Precio Unitario


Donofrio 20
Motta 19
Todinno 18
Naval 9
Santa Claus 11
Doa Pepa 10

Si el cliente desea comprar ms 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 panten y la cantidad de
panetones a comprar; visualice el precio unitario del panten, el monto de la compra,
el descuento y el neto a pagar.

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

Distancia en metros Clasificacin


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

Computacin, Informtica & Sistemas 77


Fundamentos de Programacin

Computacin, Informtica & Sistemas 78


Fundamentos de Programacin

Computacin, Informtica & Sistemas 79


Fundamentos de Programacin

Computacin, Informtica & Sistemas 80


Fundamentos de Programacin

CAPTULO IX

ESTRUCTURAS CONDICIONALES ANIDADAS

OBJETIVOS ESPECFICOS

 Defina el propsito de las estructuras condicionales anidadas


 Realiza la solucin de diversos casos prcticos aplicando estructuras condicionales

CONTENIDOS

 Estructura condicional anidada


 Definicin
 Sintaxis
 Desarrollo Practico

ESTRUCTURA CONDICIONAL ANIDADA

Definicin

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 condicin 1 es verdadera, se evaluar la condicin 2.


 Si la condicin 2 es verdadera, ejecuta la sentencia 1; si no es verdadera,
Ejecuta la sentencia 2.
 Si la condicin 1 no es verdadera, evaluar la condicin 3.
 Si la condicin 3 es verdadera, ejecuta la sentencia 3; si no es verdadera,
Ejecuta la sentencia 4.

Computacin, Informtica & Sistemas 81


Fundamentos de Programacin

EJERCICIOS RESUELTOS
1. Ingrese un nmero 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 (NMERO NO VALIDO)
FIN-SI
FIN-SI
FIN-SI
FIN

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N As INTEGER
Write("Ingrese UN NMERO 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(NMERO NO VALIDO:)
END IF
END IF
END IF
ReadLine()

End Sub
End Module

Computacin, Informtica & Sistemas 82


Fundamentos de Programacin

2. Ingrese el puntaje obtenido por un postulante y luego visualice a que carrera ingreso,
segn 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 (Administracin)
SINO
SI (Puntaje >= 100) Y (Puntaje < 120) ENTONCES
ESCRIBIR (Derecho)
SINO
SI (Puntaje >= 120) Y (Puntaje <= 150) ENTONCES
ESCRIBIR (INGENIERIA)
SINO
ESCRIBIR (LE FALTO:, 70-Puntaje)
FIN-SI
FIN-SI
FIN-SI
FIN-SI
FIN

Computacin, Informtica & Sistemas 83


Fundamentos de Programacin

3. Ingrese el ciclo y turno a estudiar, luego calcule el total a pagar segn 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 Pensin
ENTERO Ciclo
CARCTER Turno
INICIO
LEER( Ciclo, Turno )
SI (Ciclo = 1) ENTONCES
SI (Turno = M) ENTONCES
Pensin 850
SINO
Pensin 800
FIN-SI
SINO
SI (Ciclo = 2) ENTONCES
SI (Turno = M) ENTONCES
Pensin 750
SINO
Pensin 700
FIN-SI
SINO
SI (Turno = M) ENTONCES
Pensin 650
SINO
Pensin 600
FIN-SI/
FIN-SI
FIN-SI
FIN

Computacin, Informtica & Sistemas 84


Fundamentos de Programacin

4. Ingrese el consumo de agua de un mes y calcule el visualice el total a pagar, segn 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-SI
FIN-SI
Monto  Tarifa * Consumo
ESCRIBIR (Tarifa, Monto)
FIN

5. Ingrese por teclado el nombre de un Empleado y su categora. Segn su categora


obtendr su bsico y bonificacin:

Categora Bsico Bonificacin


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

Calcule y visualice su remuneracin que es la suma del bsico y bonificacin.

Computacin, Informtica & Sistemas 85


Fundamentos de Programacin

ALGORITMO Ejemplo5

VARIABLES
REAL: bsico, bonificacin, monto
CADENA: Categora
INICIO
LEER (Categora)
SI (Categora =Empleado) ENTONCES
bsico  600
bonificacin  600
SINO
SI (Categora = Obrero) ENTONCES
bsico  550
bonificacin  190
SINO
SI (Categora Ejecutivo) ENTONCES
bsico  1500
bonificacin  500
SINO
bsico  200
bonificacin  50
FIN-SI
FIN-SI
FIN-SI
monto  bsico + bonificacin
ESCRIBIR (bsico, bonificacin, monto)
FIN

Computacin, Informtica & Sistemas 86


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

1. Ingrese el estado civil y nmero de hijos, luego calcule la bonificacin a pagar a un


trabajador segn la siguiente tabla :

Estado Hijos Bonificacin


Civil (% Haber Bsico)

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 nmero entre 1 y 99, luego visualice su equivalente en romanos.

3. Calcular el total a pagar por una compra, sabiendo que existe un recargo segn tipo
de tarjeta de crdito con la que se paga la compra.

Tipo de Tarjeta Recargo

Visa Electrn ( E ) 0%
VISA ( V ) 5%
MasterCard ( M ) 7%

4. Calcular el total a pagar por su consumo telefnico, sabiendo que su renta bsica es
de S/. 50 (60 minutos libres), y que el cobro por minutos adicionales se factura segn
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 Ms 0.002

Computacin, Informtica & Sistemas 87


Fundamentos de Programacin

5. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de inters
segn la siguiente tabla :

Plan de Tasa de Monto


Cuenta Inters Mnimo

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


inters generado, el plan al cual pertenece y el nuevo saldo.

6. Ingrese por teclado un nmeros del 1 al 999, exprese el nmero en letras, por
ejemplo 125  un ciento veinticinco

7. Un instituto ofrece cursos de programacin, el costo de los cursos es de la siguiente


manera:

Bsico 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 energa elctrica, el pago se


realiza segn la siguiente tabla:

Consumo (Kw) Costo por Kw

[ 100 150 > 0.65


[ 150 250 > 0.85
[ 250 350 > 1.05
[ 350 Ms > 1.25

NOTA: El pago de consumo mnimo es de S/. 10 Soles.

Computacin, Informtica & Sistemas 88


Fundamentos de Programacin

CAPTULO X

ESTRUCTURAS SELECTIVAS

OBJETIVOS ESPECFICOS

Defina el propsito de las estructuras selectivas.

Realiza la solucin de diversos casos prcticos aplicando estructuras


selectivas.

CONTENIDOS

Estructura Selectiva

Definicin

Sintaxis

Desarrollo Practico

ESTRUCTURA SELECTIVA

Definicin

Cuando existen ms de dos elecciones (alternativas) posibles, es cuando se presenta el


caso de alternativas mltiples.

Si el nmero de alternativas es grande puede plantear serios problemas de escritura del


algoritmo y naturalmente de legibilidad.

La estructura condicional selectiva evaluar una expresin que podr tomar n valores
distintos 1, 2, 3, 4,..n.

Segn que elija uno de estos valores en la condicin, se realizar una de las n
acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre
los n posibles.

Computacin, Informtica & Sistemas 89


Fundamentos de Programacin

SINTAXIS

DIAGRAMA DE FLUJO

PSEUDOCDIGO

Computacin, Informtica & Sistemas 90


Fundamentos de Programacin

EJERCICIOS RESUELTOS
1. Ingresar un nmero 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
FIN

2. Una empresa otorga bonificaciones de su haber bsico segn la categora del


trabajador; categora A: 250; categora B: 200; categora C: 120; otras categoras 50.

ALGORITMO Ejemplo2
VARIABLES
CADENA: Categora
REAL: Bonificacin
INICIO
LEER (Categora)
CASO (Categora) SEA
A: Bonificacin 250
B: Bonificacin 200
C: Bonificacin 120
OTRO CASO: Bonificacin 50
FIN-CASO
ESCRIBIR (Bonificacin)
FIN

Computacin, Informtica & Sistemas 91


Fundamentos de Programacin

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()
Dim categoria As Integer
Dim bonificacion as double
Write("Ingresa 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 nmeros y una operacin matemtica realizar (+,-,*,/, DIV, EXP), luego
muestre el resultado de operar los 2 nmeros.
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-CASO
ESCRIBIR (Resultado)

FIN

Computacin, Informtica & Sistemas 92


Fundamentos de Programacin

CODIFICACIN 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 valor entero..:")
n = ReadLine()
select case operador
case +:resultado=a+b
case -:resultado=a-b
case *:resultado=a*b
case div:resultado=a\b
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 nmero desde el teclado entre 1 y 7 e imprima el


nombre del da de semana correspondiente. (Lunes, martes,...etc.).

ALGORITMO Ejemplo4
VARIABLES
CADENA: Semana
ENTERO: da
INICIO
LEER (da)
CASO (da) SEA
1: Semana Lunes
2: Semana Martes
3: Semana Mircoles
4: Semana Jueves
5: Semana Viernes
6: Semana Sbado
7: Semana Domingo
OTRO CASO:
Semana Error
FIN -CASO
ESCRIBIR (Semana)
FIN

Computacin, Informtica & Sistemas 93


Fundamentos de Programacin

5. Calcular el total a pagar por una compra, sabiendo que existe un recargo segn tipo de
tarjeta de crdito con la que se paga la compra.

Tipo de Tarjeta Recargo


Visa Electrn ( 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. Disee 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

Computacin, Informtica & Sistemas 94


Fundamentos de Programacin

EJERCICIOS PROPUESTOS
1. Escriba un programa que lea un nmero desde el teclado entre 1 y 12 e imprima el
nombre del mes del ao correspondiente. (Enero, Febrero,...etc.).

2. Ingrese un nmero de hasta tres cifras, visualizar el nmero en romanos, por


ejemplo: 255  CCLV

3. Una entidad bancaria ofrece a sus clientes planes de cuentas con tasa de inters
segn la siguiente tabla:

Plan de Tasa de Monto Mnimo


Cuenta Inters

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


inters generado, el plan al cual pertenece y el nuevo saldo.

4. Ingrese el estado civil y nmero de hijos, luego calcule la bonificacin a pagar a un


trabajador segn la siguiente tabla:

Estado Civil Hijos Bonificacin


(% Haber Bsico)
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 programacin, el costo de los cursos es de la siguiente


manera:
Bsico 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 nmero de das de ese mes e identificar si el ao es


bisiesto.

Computacin, Informtica & Sistemas 95


Fundamentos de Programacin

7. Ingrese por teclado el nombre de un Empleado y su categora. Segn su categora


obtendr su bsico y bonificacin:

Categora Bsico Bonificacin


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

Calcule y visualice su remuneracin que es la suma del bsico y bonificacin.

Computacin, Informtica & Sistemas 96


Fundamentos de Programacin

CAPTULO XI

ESTRUCTURAS REPETITIVAS PARA - HACER

OBJETIVOS ESPECFICOS

 Defina el propsito de las estructuras repetitivas.

 Implementar desarrollos prcticos utilizando contadores y acumuladores

 Realiza la solucin de diversos casos prcticos aplicando estructuras repetitivas

CONTENIDOS

 Estructura iterativa

 Definicin

 Tipos de estructuras

 Estructura repetitiva Para Fin Para

 Contadores y acumuladores

 Desarrollo de ejercicios de aplicacin

ESTRUCTURA REPETITIVA

Definicin

 Son operaciones que se deben ejecutar un nmero repetido de veces.


 El conjunto de instrucciones que se ejecuta repetidamente cierto nmero de
Veces, se llama Ciclo, Bucle o Lazo, establecido por la condicin que se
Evala en cada una de ellas.
 Cada una de las repeticiones se conoce como iteracin.
 Tambin se les llaman problemas repetitivos o cclicos porque en la
Solucin es necesario utilizar un mismo conjunto de acciones que se puedan
ejecutar una cantidad especfica de veces. Esta cantidad puede ser fija
(previamente determinada por el programador) o puede ser variable (estar en
funcin de algn dato dentro del programa).

Qu es una Iteracin?

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


contenidas en el bucle.

Computacin, Informtica & Sistemas 97


Fundamentos de Programacin

Fases de un Programa Cclico o Repetitivo

Todo problema que trabaja con procesos repetitivos o cclicos 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 condicin que N
sea cero.

Ejemplo de un Bucle Infinito

En este flujograma, el bucle se estar repitiendo


indefinidamente ya que no existe ninguna
condicin que nos permita finalizar en algn
momento.

Computacin, Informtica & Sistemas 98


Fundamentos de Programacin

Clasificacin de las Estructuras Repetitivas

Las estructuras repetitivas se clasifican en:

a) Estructuras cclicas que ejecutan un nmero determinado de Iteraciones: Son


aquellas en que el nmero de iteraciones se conoce antes de ejecutarse el ciclo.

 Estructura Para Fin Para

b) estructuras cclicas que ejecutan un nmero indeterminado de Iteraciones:


Son aquellos en que el nmero de iteraciones no se conoce con exactitud, ya que
esta dado en funcin de un dato dentro del programa.

 Estructura Mientras Fin Mientras


 Estructura Repetir Hasta_Que

ESTRUCTURA REPETITIVA PARA - HACER

Definicin

 Si tenemos que repetir el bucle un nmero exacto de veces (que


conocemos antes de empezar el bucle), debemos utilizar el bucle para-
hacer.
 Al bucle for debemos asociarle una variable. Esta variable la crea
automticamente 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
esta estructura en algoritmos, debemos hacer uso de contadores y
algunas veces de acumuladores.

SINTAXIS

DIAGRAMA DE FLUJO

Computacin, Informtica & Sistemas 99


Fundamentos de Programacin

PSEUDOCDIGO

PARA VariableV.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 accin.
 Los contadores se utilizan con la finalidad de contar sucesos o acciones internas
de un bucle; deben realizar una operacin de inicializacin y posteriormente las
sucesivas de incremento o decremento del mismo.
 La inicializacin consiste en asignarle al contador un valor. Se situar antes y
fuera del bucle.

Representacin:

<contador>  <contador> + <valor constante>

Si en vez de incremento es decremento se coloca un menos en lugar del ms.

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.

Representacin:
<variable>  <variable> + <valor variable>

Ejemplo:
S  S + variable

Computacin, Informtica & Sistemas 100


Fundamentos de Programacin

EJERCICIOS RESUELTOS

1. Imprimir los 10 primeros nmeros naturales.

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

CODIFICACIN 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 nmeros naturales pero en forma descendente.

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

CODIFICACIN 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

Computacin, Informtica & Sistemas 101


Fundamentos de Programacin

3. Visualizar todos los nmeros 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-SI
FIN-PARA
FIN

CODIFICACIN 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 nmero 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

Computacin, Informtica & Sistemas 102


Fundamentos de Programacin

5. Disee un programa que imprima una tabla de cuadrados y de cubos para los
nmeros 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
FIN

CODIFICACIN 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 nmeros, visualizar el mayor y el menor de los


nmeros 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
ESCRIBIR (MAYOR, MENOR)
FIN

Computacin, Informtica & Sistemas 103


Fundamentos de Programacin

7. Elabore un programa para calcular el factorial de un nmero entero positivo

ALGORITMO Ejemplo7
VARIABLES
ENTERO N, FACTORIAL, i
INICIO
FACTORIAL  1
LEER (N)
PARA i 1 HASTA N
FACTORIAL  FACTORIAL * i
FIN-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 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
ESCRIBIR (CAPROB, CDESAPROB)
FIN

Computacin, Informtica & Sistemas 104


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

1. Visualizar los nmeros de 2 cifras pares.

2. Ingrese un nmero entero y luego calcule el factorial del nmero ingresado.

3. Ingrese un nmero entero y luego visualice un mensaje indicando si es primo o no


primo.

4. Ingrese un nmero entero y luego visualice un mensaje indicando si es


PERFECTO o NO ES PERFECTO.

5. Ingrese un nmero entero y luego calcule la suma de todos los nmeros impares
menores al nmero ingresado.

6. Visualizar la siguiente serie de nmeros: +1-2+3-4+5-6+7-8++N


NOTA: N ser el valor lmite de la serie.

7. Calcular la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes
impares.

8. Disee 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 mxima
Edad mnima

9. Escribe un algoritmo que lea un nmero natural N y un carcter. La salida debe ser un
rombo compuesto del carcter y de la anchura que especifica el nmero N. Por
ejemplo, si N es 5 y el carcter es *, el rombo sera:

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

10. Elabore un programa que permita convertir un nmero de base 10 a un nmero de otra
base, para ello ingrese el nmero y la base. Ejemplo: Suponga que el nmero 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 nmero, visualizar los divisores del nmero
ingresado.

Computacin, Informtica & Sistemas 105


Fundamentos de Programacin

12. Escribe un algoritmo que imprima una pirmide de dgitos como la de la figura,
tomando como entrada el nmero de filas de la misma.

1
121
12321
1234321
123454321

13. Escriba un Algoritmo que permita formar la siguiente serie, donde N es ingresado por
teclado:

1, 4, 9, 16, N2

14. Disee un programa que imprima N trminos de la siguiente serie:

3, 8, 15, 24

15. Disee un programa que halle los 3 primeros nmeros perfectos

16. Disee un programa para hallar la suma de N trminos de la siguiente serie:

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

17. Disee un programa para hallar la suma de N trminos de la siguiente serie:

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

18. Disee un programa donde visualice los nmeros primos comprendidos entre el 1 al
100.

Computacin, Informtica & Sistemas 106


Fundamentos de Programacin

CAPTULO XII

ESTRUCTURAS REPETITIVAS MIENTRAS - HACER

OBJETIVOS ESPECFICOS

 Defina el propsito de las estructuras repetitivas.

 Implementar desarrollos prcticos utilizando contadores y acumuladores.

 Realiza la solucin de diversos casos prcticos aplicando estructuras repetitivas.

CONTENIDOS

 Estructura Mientras - hacer

 Definicin

 Sintaxis

 Desarrollo de ejercicios de aplicacin

ESTRUCTURA MIENTRAS-HACER

Definicin

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

Caracterstica

 Se llama Mientras a la estructura algortmica que se ejecuta mientras la condicin


evaluada resulte verdadera.

 Se evala la expresin booleana y, si es cierta, se ejecuta la instruccin especificada,


llamada el cuerpo del bucle.

 Este proceso de evaluacin de la expresin booleana y ejecucin del cuerpo se


repite mientras la expresin sea cierta.

 La estructura MIENTRAS se conoce como Iterativa.

 Se usan cuando no se conoce con anticipacin el nmero de veces que se ejecutar


la accin.

Computacin, Informtica & Sistemas 107


Fundamentos de Programacin

SINTAXIS

DIAGRAMA DE FLUJO

PSEUDOCDIGO

MIENTRAS (Expresin<es>) HACER

VERDAD
:
:
FIN-MIENTRAS Instrucciones y/o
Sentencias

Computacin, Informtica & Sistemas 108


Fundamentos de Programacin

EJERCICIOS RESUELTOS
1. Imprimir los 3 primeros nmeros naturales.
ALGORITMO Ejemplo1
VARIABLES
ENTERO N
INICIO
N1
MIENTRAS( N <= 3 ) HACER
ESCRIBIR( N )
NN+1
FIN-MIENTRAS
FIN

CODIFICACIN 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 nmeros naturales, calcule y visualice la suma de los 10


nmeros.
ALGORITMO Ejemplo2
VARIABLES
ENTERO N, SUMA
INICIO
N1
SUMA 0
MIENTRAS (N <= 10) HACER
SUMA SUMA + N Acumulador
NN+1
FIN-MIENTRAS Contador
ESCRIBIR (LA SUMA ES:, SUMA)
FIN

Computacin, Informtica & Sistemas 109


Fundamentos de Programacin

CODIFICACIN 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 nmeros de 2 cifras positivos.

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

CODIFICACIN 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

Computacin, Informtica & Sistemas 110


Fundamentos de Programacin

4. Calcule y visualice los divisores de un nmero entero.


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

CODIFICACIN 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 )
NN+1
FIN-MIENTRAS
ESCRIBIR (LA SUMA ES:, SUMA)
FIN

Computacin, Informtica & Sistemas 111


Fundamentos de Programacin

6. Ingrese un nmero entero y luego visualice el nmero 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
ESCRIBIR (Nmero Cifras:, Cifras)
FIN

7. Disee un programa que reciba un 5 nmeros 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

Computacin, Informtica & Sistemas 112


Fundamentos de Programacin

8. Disee un programa donde ingrese un nmero, 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. Disee un programa donde ingrese un nmero, visualizar un mensaje si es nmero


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 (NMERO PRIMO)
SINO
ESCRIBIR (NMERO COMPUESTO)
FIN SI

FIN

Computacin, Informtica & Sistemas 113


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

1. Calcule y visualice la suma de los todos los nmeros 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 nmero entero y calcule la suma de las cifras del nmero.
5. Ingrese un nmero entero y luego calcule la suma de cifras pares e impares que
estn contenidas en el nmero ingresado.
6. Ingrese un nmero entero y calcule la mayor y menor cifra contenidas en el nmero
ingresado.
7. Ingrese un nmero entero y luego forme un 2do nmero con las cifras del nmero
ingresado en forma inversa.
8. Ingrese un nmero entero y luego obtenga su equivalente en base 5.
9. Disee un programa que lea Nombre y edad de 5 alumnos y calcule la edad
promedio as como tambin la mayor edad, considere que la edad debe encontrarse
entre 18 a 70 aos.
10. Disee un programa que imprima lo siguiente:
%
%%
%%%
%%%%
%%%%%
%%%%%%
%%%%%%%
11. Escribe un algoritmo que lea un nmero natural N y dibuje un tringulo de asteriscos
con base y altura N. Por ejemplo si N=5 debera dibujarse:
*
**
***
****
*****
12. Disee un programa para hallar la suma de N trminos de la siguiente serie:
1 + 1/32 + 1/52 + 1/72 + 1/92+............................
13. Calcular la suma de todos los nmeros primos existentes entre 1 y 1000.
14. Calcular la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes
impares.
15. Visualizar la siguiente serie de nmeros: +1-2+3-4+5-6+7-8++N

Computacin, Informtica & Sistemas 114


Fundamentos de Programacin

CAPTULO XIII

ESTRUCTURAS REPETITIVAS REPETIR HASTA

OBJETIVOS ESPECFICOS

 Defina el propsito de las estructuras repetitivas.

 Implementar desarrollos prcticos utilizando contadores y acumuladores.

 Realiza la solucin de diversos casos prcticos aplicando estructuras repetitivas.

CONTENIDOS

 Estructura REPETIR - HASTA

 Definicin

 Sintaxis

 Desarrollo de ejercicios de aplicacin

ESTRUCTURA REPETIR - HASTA

Definicin

 Se llama Repetir a la estructura algortmica que se ejecuta un nmero definido de


veces hasta que la condicin se torna verdadera.

Caracterstica

 Esta es una estructura similar en algunas caractersticas, a la anterior.

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

Computacin, Informtica & Sistemas 115


Fundamentos de Programacin

SINTAXIS

DIAGRAMA DE FLUJO

Se cumple hasta que


condicin sea
Verdadera, sino
repite el ciclo

PSEUDOCDIGO

REPETIR
Instrucciones y/o
FALSO : Sentencias

:
HASTA (Expresin<es>)

Computacin, Informtica & Sistemas 116


Fundamentos de Programacin

EJERCICIOS RESUELTOS

1. Visualizar los 5 primeros nmeros naturales.

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

CODIFICACIN 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 nmeros pares de 2 cifras.

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

Computacin, Informtica & Sistemas 117


Fundamentos de Programacin

CODIFICACIN 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: 1, 4, 9, 16, 25,, 100

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

CODIFICACIN 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

Computacin, Informtica & Sistemas 118


Fundamentos de Programacin

4. Ingrese un nmero 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

CODIFICACIN 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

Computacin, Informtica & Sistemas 119


Fundamentos de Programacin

5. Ingrese un nmero y luego visualice un mensaje indicando si el nmero 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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1
Sub Main()

Dim N,M , INV, CIFRA As Integer


WRITE ( INGRESE UN NMERO 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

Computacin, Informtica & Sistemas 120


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

1. Disee un programa que imprima lo siguiente:


%
%%
%%%
%%%%
%%%%%
%%%%%%
%%%%%%%
2. Disee un programa que lea Nombre y edad de 5 alumnos y calcule la edad
promedio as como tambin la mayor edad, considere que la edad debe encontrarse
entre 18 a 70 aos.

3. Disee un programa que permita calcular la Serie Fibonacci:


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

4. Disee un programa que imprima N trminos de la siguiente serie:


3, 8, 15, 24

5. Disee un programa que halle los 3 primeros nmeros perfectos

6. Disee un programa para hallar la suma de N trminos de la siguiente serie:


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

7. Disee un programa donde visualice los nmeros primos comprendidos entre el 1 al


100.

8. Disee un programa donde ingrese un NMERO, visualice la cantidad de cifras


ceros, pares e impares que tiene el NMERO ingresado.

9. Escriba un pequeo programa para imprimir los primeros cien nmeros 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 nmeros naturales pares. Valide el
valor de n y emita un mensaje de error si no es natural.

11. Escribe un algoritmo que lea un nmero natural N y dibuje un tringulo de asteriscos
con base y altura N. Por ejemplo si N=5 debera dibujarse:

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

Computacin, Informtica & Sistemas 121


Fundamentos de Programacin

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

abc = a3 + b3 + c3

13. Ingrese un nmero entero y luego calcule la suma de cifras pares e impares que
estn contenidas en el nmero ingresado.

14. Ingrese un nmero entero y calcule la mayor y menor cifra contenidas en el nmero
ingresado.

15. Ingrese un nmero entero y luego obtenga su equivalente en base 5.

Computacin, Informtica & Sistemas 122


Fundamentos de Programacin

CAPTULO XIV

SUBPROGRAMAS USO DE PROCEDIMIENTOS

OBJETIVOS ESPECFICOS

 Defina el propsito de los subprogramas.

 Realice operaciones que permita implementar subprogramas.

CONTENIDOS

 Programacin estructurada, subprogramas.

 Tipos de subprogramas, funciones y procedimientos.

 Procedimientos, declaracin, invocar un procedimientos, paso de parmetros.

SUBPROGRAMAS

Introduccin

 La programacin modular es una de las tcnicas fundamentales de la programacin.

 Se apoya en el diseo descendente y en la filosofa de divide y vencers, es decir


se trata de dividir el problema dado, en problemas ms simples en que cada uno de
los cuales lo implementaremos en un mdulo independiente.

 La programacin estructurada permite la escritura de programas fciles de leer y


modificar.

 En esta programacin, el flujo lgico se gobierna por las estructuras de control


bsicas vista hasta hoy: secuenciales, repetitivas y de seleccin.

 Cada subprograma tiene asociado un pseudocdigo 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.

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


funciones y subrutinas.

Computacin, Informtica & Sistemas 123


Fundamentos de Programacin

Definicin

 Los subprogramas permiten descomponer un problema en un conjunto de


problemas independientes entre s, ms sencillos de resolver y que pueden ser
tratados separadamente unos de otros.
 Adems se pueden probar los subprogramas de manera independiente,
depurndose sus errores antes de su inclusin en el programa principal y
almacenarse para su posterior utilizacin cuantas veces se precise.

Caractersticas de los Subprogramas

1. DIVISION EN MODULOS

 Funcionalidad clara y bien definida.


 Aislados. Sin dependencias con otros mdulos.
 Entrada/Salida simple y bien definida.

2. ABSTRACCION

 Nos centramos en la FUNCIONALIDAD de los mdulos.


 Qu problema resuelve.
 Que datos necesita.
 Que datos produce.
 Bajo qu condiciones se ejecuta.
 NO importa cmo se resuelve el problema.

3. ENCAPSULAMIENTO

 Si el mtodo para solucionar una tarea cambia, el aislamiento evita que


dicho cambio influya en las otras tareas.
 El aislamiento de los mdulos no puede ser total. Para que pueda
colaborar con otros mdulos, es necesario conocer.
 Qu problema resuelve.
 El intercambio de informacin.
 Bajo qu condiciones se produce.

Ventajas de los Subprogramas

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


facilidad.
 Se podr modificar un mdulo sin afectar a los dems
 Los subprogramas slo se escribirn 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
fcilmente.

Computacin, Informtica & Sistemas 124


Fundamentos de Programacin

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 informacin entre dos algoritmos
realizado a travs de variables globales (es decir, sin utilizar el interfaz).
 En nuestra metodologa de programacin, la utilizacin de variables globales y
efectos laterales est prohibida.

Clasificacin de los Subprogramas

Los subprogramas se clasifican en:

 Procedimientos o Rutinas
 Funciones

PROCEDIMIENTOS

Definicin

 Un procedimiento es un subprograma o un subalgoritmo que ejecuta una


determinada tarea, pero que tras ejecutar esa tarea no tienen ningn valor
asociado a su nombre como en las funciones, sino que si devuelve informacin,
lo hace a travs de parmetros.
 Al llamar a un procedimiento, se le cede el control, comienza a ejecutarse y
cuando termina devuelve el control a la siguiente instruccin a la de llamada
 Un procedimiento puede tener sus propias variables que se declaran en la
seccin var del propio procedimiento. Estas se llaman variables locales.
 As, las variables locales para un procedimiento slo 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
parmetros.

Computacin, Informtica & Sistemas 125


Fundamentos de Programacin

Ejemplo: Implemente un procedimiento que permita visualizar la suma de 2 nmeros


enteros.

ALGORITMO Ejemplo
Definicin de
VARIABLES
variables publicas
ENTERO A, B
PROCEDIMIENTO SUMA ( )
INICIO
Definicin del
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 parmetros.


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

Ejemplo: Implemente un procedimiento que permita visualizar la suma de 2 nmeros


enteros (utilice parmetros)

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

Computacin, Informtica & Sistemas 126


Fundamentos de Programacin

Parmetros

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 parmetros se clasifican en:


 Por Valor
 Por Referencia

Parmetros por Valor


 Son los parmetros que pueden recibir valores pero que no pueden devolverlos.
 Es una variable global que se conecta con una variable local mediante el envo de
su valor, despus de lo cual ya no hay relacin.
 Lo que le sucede a la variable local no afectar a la global.

Parmetros por Referencia


 Son los que pueden recibir y devolver valores.
 Son variables globales que se conectan con una local a travs de su contenido; al
establecerse dicha conexin las variables se convierten en sinnimos, 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

Computacin, Informtica & Sistemas 127


Fundamentos de Programacin

EJERCICIOS RESUELTOS

1. Implementar un procedimiento que permita visualizar un texto un nmero determinado de


veces.
N, variable Global

ALGORITMO Ejemplo1
VARIABLES
ENTERO N
PROCEDIMIENTO Imprime (CADENA Texto, ENTERO NMERO)
VARIABLES
ENTERO I Procedimiento imprime,
INICIO
con la declaracin de
PARA I 1 HASTA NMERO
ESCRIBIR (Texto) parmetros
FIN-PARA
FIN-PROCEDIMIENTO

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim N As Integer
SUB IMPRIME(TEXTO AS STRING, NMERO AS INTEGER)
DIM I AS INTEGER
For I=1 to NMERO
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

Computacin, Informtica & Sistemas 128


Fundamentos de Programacin

2. Implementar un procedimiento que imprima el mayor valor de 2 nmeros 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

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

CODIFICACIN 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)

End Sub
End Module

Computacin, Informtica & Sistemas 129


Fundamentos de Programacin

3. Implementar un procedimiento que visualice los divisores de un nmero 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-SI
FIN-PARA
FIN-PROCEDIMIENTO

INICIO
LEER (M)
ImprimeDivisores (M)
FIN

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


nmeros menores a un nmero 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
ESCRIBIR (SUMA)
FIN-PROCEDIMIENTO

INICIO
LEER (M)
ImprimeSumaMenores (M)
FIN

Computacin, Informtica & Sistemas 130


Fundamentos de Programacin

CODIFICACIN 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 de las de las cifras de un


nmero 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
ESCRIBIR (SUMA)
FIN-PROCEDIMIENTO

INICIO
LEER (M)
ImprimeSumaCifras (M)
FIN

Computacin, Informtica & Sistemas 131


Fundamentos de Programacin

6. Implementar un procedimiento que permita calcular y visualizar el menor de tres nmeros


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

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

7. Implemente un procedimiento que permita calcular y visualizar el nmero invertidos de un


nmero 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
ESCRIBIR (INVERSO)
FIN-PROCEDIMIENTO

INICIO
LEER (M)
ImprimeInverso (M)
FIN

Computacin, Informtica & Sistemas 132


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

1. Disee un procedimiento que imprima lo siguiente


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

2. Disee un procedimiento que permita calcular la Serie Fibonacci:


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

3. Disee un procedimiento que imprima N trminos de la siguiente serie:


3, 8, 15, 24

4. Disee un procedimiento para hallar la suma de N trminos de la siguiente serie:


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

5. Disee un procedimiento donde visualice los nmeros primos comprendidos entre el


1 al 100.

6. Disee un procedimiento donde ingrese un nmero, visualice la cantidad de cifras


ceros, pares e impares que tiene el nmero ingresado.

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


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

8. Escribe un procedimiento que lea un nmero natural N y dibuje un tringulo de


asteriscos con base y altura N. Por ejemplo si N=5 debera dibujarse:

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

9. Escriba un procedimiento para calcular e imprimir todos los nmeros enteros


comprendidos entre 100 y 999 tales que sean iguales a la suma de los cubos de sus
dgitos, es decir, los nmeros de la forma abc, con:

abc = a3 + b3 + c3

10. Ingrese un nmero entero y luego desarrolle un procedimiento que permita calcular
la suma de cifras pares e impares que estn contenidas en el nmero ingresado.

Computacin, Informtica & Sistemas 133


Fundamentos de Programacin

Computacin, Informtica & Sistemas 134


Fundamentos de Programacin

CAPTULO XV

USO DE FUNCIONES

OBJETIVOS ESPECFICOS

 Defina el propsito de las funciones

 Realice operaciones que permita implementar funciones

CONTENIDOS

 Funciones

 Declaracin

 Invocar una funcin, paso de parmetros

 Desarrollo prctico.

FUNCIONES

Definicin

 Una funcin es un sub-programa que procesa un grupo de instrucciones y/o


sentencias para luego devolver un nico valor.

 Las funciones pueden contener opcionalmente parmetros.

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

 Una funcin puede llamar a otra funcin inclusive puede llamarse a si misma
(recursividad).

ESTRUCTURA DE UNA FUNCIN

FUNCIN Nombre (Parmetros): Tipo_Dato


VARIABLES
: Lista de parmetros
INICIO
Variables locales a
: nivel funcin.
:
Instrucciones o
Sentencias
RETORNAR (Valor)
FIN-FUNCIN

Computacin, Informtica & Sistemas 135


Fundamentos de Programacin

EJERCICIOS RESUELTOS
1. Crear una funcin que retorne el cuadrado de un nmero entero.

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

CODIFICACIN EN VISUAL A NIVEL DE CONSOLA

Imports System.Console
Module Module1

Dim M As Integer
Function Cuadrado (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 funcin que retorne el mayor valor de 2 nmeros enteros.

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

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

Computacin, Informtica & Sistemas 136


Fundamentos de Programacin

CODIFICACIN 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 funcin que retorne la suma de la cifras de un nmero entero.

ALGORITMO Ejemplo3
VARIABLES
ENTERO M
FUNCIN 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
RETORNAR (Suma)
FIN-FUNCIN
INICIO
LEER (M)
ESCRIBIR (SumaCifras (M) )
FIN

Computacin, Informtica & Sistemas 137


Fundamentos de Programacin

Computacin, Informtica & Sistemas 138


Fundamentos de Programacin

CODIFICACIN 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 funcin que retorne el factorial de un nmero entero.

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

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

Computacin, Informtica & Sistemas 139


Fundamentos de Programacin

5. Implementar una funcin que retorne la suma de la mayor y menor cifras contenidas en
un nmero entero.

ALGORITMO Ejemplo5
VARIABLES
ENTERO M
FUNCIN 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-SI
SI (Cifra < MenorCifra) ENTONCES
MenorCifra Cifra
FIN-SI
N N DIV 10
FIN-MIENTRAS
RETORNAR (MayorCifra + MenorCifra)
FIN-FUNCIN
INICIO
LEER (M)
ESCRIBIR (SumaMaxMin (M))
FIN

6. Implementar una funcin que retorne la suma de todos los nmeros de 2 cifras
compuestos por cifras diferentes pares.

ALGORITMO Ejemplo6
VARIABLES
ENTERO M
FUNCIN 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-SI
FIN-PARA
RETORNAR SUMA
FIN-FUNCIN

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

Computacin, Informtica & Sistemas 140


Fundamentos de Programacin

7. Implementar una funcin que retorne la suma de los elementos de la siguiente serie:

1+8+27+64++1000

ALGORITMO Ejercicio7

FUNCIN SumaSerie (): ENTERO


VARIABLES
ENTERO SUMA
INICIO
PARA N 1 HASTA 10
SUMA SUMA + (N 3)
FIN-PARA
RETORNAR SUMA
FIN-FUNCIN

INICIO
ESCRIBIR (SumaSerie ())
FIN

Computacin, Informtica & Sistemas 141


Fundamentos de Programacin

EJERCICIOS PROPUESTOS

1. Implemente una funcin que permita calcular el factorial del nmero ingresado.

2. Implemente una funcin que retorne un mensaje indicando si es primo o no primo


de un nmero ingresado.

3. Implemente una funcin que retorne un mensaje indicando si es PERFECTO o NO


ES PERFECTO de un nmero ingresado por teclado.

4. Implemente una funcin que retorne la suma de todos los nmeros de 3 cifras
compuestos por cifras diferentes impares.

5. Elabore una funcin que permita convertir un nmero de base 10 a un nmero de


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

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

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

7. Elabore una funcin que retorne la suma de N trminos de la siguiente serie:


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

8. Elabore una funcin que retorne la suma de los N trminos de la siguiente serie:
1 + 1/2 + 2/3 + 3/4 + 4/5+............................

Computacin, Informtica & Sistemas 142


Fundamentos de Programacin

CAPITULO XVI

USO DE VECTORES Y MATRICES

OBJETIVOS ESPECFICOS

 Defina el propsito de los arreglos o vectores su importancia

 Realice operaciones que permita implementar procesos estadsticos

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
voltil por medio de una posicin la cual es manejada por un ndice que empieza
desde 0 hasta el nmero de elementos -1 del tamao 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 ms claras.

Arreglos

Definicin tipos.
o Arreglos Unidimensionales (Vectores).
Declaracin.
Algoritmos bsicos.
Ejercicios.

Computacin, Informtica & Sistemas 143


Fundamentos de Programacin

QUE ES UN ARREGLO

Un arreglo es una coleccin de elementos homogneos 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 parntesis, este ndice representa la posicin del
elemento en el arreglo.

Sintaxis de declaracin para un arreglo unidimensional

Sintaxis:

VARIABLES
Tipo_Dato Nombre_Arreglo (Nmero_Elementos)

Computacin, Informtica & Sistemas 144


Fundamentos de Programacin

EJERCICIOS RESUELTOS

1. Elabore un algoritmo para ingresar y visualizar los elementos de un arreglo


unidimensional de tipo entero

ALGORITMO Ejemplo1
CONSTANTES
MAX = 10
VARIABLES
ENTERO A (MAX), I
INICIO
PARA I 0 HASTA MAX-1
LEER(A ( I ) )
FIN-PARA
PARA I 0 HASTA MAX-1
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
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
PROMEDIO SUMA DIV MAX
ESCRIBIR( PROMEDIO )
FIN

Computacin, Informtica & Sistemas 145


Fundamentos de Programacin

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
MAYOR M(0) : MENOR M(0)
PARA I 1 HASTA MAX-1
SI( M(I) > MAYOR)ENTONCES
MAYOR M(I)
FIN-SI
SI( M(I) < MENOR)ENTONCES
MENOR M(I)
FIN-SI
FIN-PARA
ESCRIBIR(MAYOR=,MAYOR, MENOR=, MENOR)
FIN

5. Realice el proceso de bsqueda 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
LEER( DATO )
POSICION -1
PARA I 0 HASTA MAX-1
SI( M(I) = DATO )ENTONCES
POSICION I : I MAX-1
FIN-SI
FIN-PARA
SI( POSICION <> - 1 )ENTONCES
ESCRIBIR(DATO ENCONTRADO)
SINO
ESCRIBIR(DATO NO ENCONTRADO)
FIN-SI
FIN

Computacin, Informtica & Sistemas 146


Fundamentos de Programacin

EN VISUAL BASIC:
Ejemplo realizar una aplicacin para ingresar un nmero de elementos a un array de tamao
10 luego visualizar su contenido con la posicin 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 # de elementos al array..:")
"ing # de elementos.:",n-1 n = CInt(ReadLine()) - 1
si (n>10) entones If (n > 10) Then
imprimir WriteLine("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 elementos al array..:")
"ing elementos al a(i) = CDec(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

Computacin, Informtica & Sistemas 147


Fundamentos de Programacin

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 NMERO DE ELEMENTOS..:")
n = CInt(ReadLine()) - 1
If (n > 12) Then
WriteLine("error desbordamiento de 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 bsqueda secuencial es la tcnica ms simple para buscar un elemento en un arreglo.


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

Computacin, Informtica & Sistemas 148


Fundamentos de Programacin

La bsqueda binaria es el mtodo ms eficiente para encontrar elementos en un arreglo


ordenado. El proceso comienza comparando el elemento central del arreglo con el valor
buscado. Si ambos coinciden finaliza la bsqueda. Si no ocurre as, el elemento buscado
ser mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es
mayor se procede a hacer bsqueda 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.

Aqu su formato.

Ps Pro
bandera=0 bandera = 0
Leer WriteLine("ing elemento a 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 se encontro 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 mtodo de bsqueda y preguntar si desea anularlo o no al momento de
imprimirlo debe preguntar si este es mayor que 0 para q no muestre la anulacin respectiva.

Computacin, Informtica & Sistemas 149


Fundamentos de Programacin

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

Ordenamiento de datos:

Uno de los procedimientos ms comunes y tiles en el procesamiento de datos, es la


clasificacin u ordenacin de los mismos. Se considera ordenar al proceso de reorganizar
un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un mtodo
de ordenacin, hay que determinar cuntas comparaciones e intercambios se realizan para
el caso ms favorable, para el caso medio y para el caso ms desfavorable.

Intercambio:

El mtodo de intercambio se basa en comparar los elementos del arreglo e intercambiarlos


si su posicin actual o inicial es contraria inversa a la deseada.
Ejemplo:

Computacin, Informtica & Sistemas 150


Fundamentos de Programacin

Computacin, Informtica & Sistemas 151


Fundamentos de Programacin

Formato del mtodo 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 adems


cuantos son mayores que el promedio, imprimir el promedio, el nmero 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 posicin y el valor del elemento mayor


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

4) Almacenar 500 nmeros en un vector, elevar al cuadrado cada valor almacenado en el


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

5) Almacenar 300 nmeros en un vector, imprimir cuantos son ceros, cuntos son
negativos, cuantos positivos. Imprimir adems la suma de los negativos y la suma de los
positivos.

6) Almacenar 150 nmeros en un vector, almacenarlos en otro vector en orden inverso al


vector original e imprimir el vector resultante.

Computacin, Informtica & Sistemas 152


Fundamentos de Programacin

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.
Sern iguales cuando en la misma posicin de ambos vectores se tenga el mismo
valor para todos los elementos.

8) Se tiene el vector A con 100 elementos almacenados. Disee un algoritmo que escriba
SI si el vector esta ordenado ascendentemente o NO si el vector no est ordenado

9) Disee un algoritmo que lea un nmero cualquiera y lo busque en el vector X, el cual


tiene almacenados 80 elementos. Escribir la posicin donde se encuentra almacenado el
nmero en el vector o el mensaje NO si no lo encuentra. Bsqueda secuencial.

10) Disee 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 multiplicacin almacenarlo
en un vector C.

11) Disee un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros
nmeros de la serie fibonacci.

Computacin, Informtica & Sistemas 153


Fundamentos de Programacin

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 nmero 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 ms claras.

TEMAS:

ARREGLOS
o Arreglos bidimensionales (Vectores).

Declaracin inicializacin y asignacin.


Ejemplos de arreglos bidimensionales
Ejercicios.

Las variables utilizar son.


Nf ._ nmero de filas
Nc ._ nmero 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 operacin.

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}}

Computacin, Informtica & Sistemas 154


Fundamentos de Programacin

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 tambin de la capacidad de crear arrays formados por ms 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

Crearamos un array multidimensional formado por tres filas y cinco columnas. En este caso,
el nmero correspondiente a la primera dimensin denota las filas, mientras que el nmero
de la segunda dimensin hace lo propio para las columnas. La Figura 209 muestra un
diagrama con la estructura de este array.

Crear array multidimensional 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 nmero de dimensiones del array.


GetLength(Dimension). Devuelve el nmero de elementos de la dimensin de array
pasada como parmetro.

GetLowerBound(Dimensin). Devuelve el nmero de ndice inferior de la dimensin


pasada como parmetro.

Computacin, Informtica & Sistemas 155


Fundamentos de Programacin

GetUpperBound(Dimension). Devuelve el nmero de ndice superior de la dimensin


pasada como parmetro.

Es un array en que el acceso de sus elementos lo hace con ms de in ndice, trabajando as


con uno principal para las filas y otro secundario para el nmero de columnas.
Sintaxis.
Para leer

Para ndice de fila= 0 hasta nmero de elementos de filas


Para ndice de columna= 0 hasta nmero 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 nmero de elementos de filas


Para indice de columna= 0 hasta nmero 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

Computacin, Informtica & Sistemas 156


Fundamentos de Programacin

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 nmero 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
t0
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
tt+1
Fin si
Fin para
Imprimir "Nmero 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 ms alta entre los atletas es {0}", sm
Fin.

Computacin, Informtica & Sistemas 157


Fundamentos de Programacin

Ejemplo 2 : Realizar una matriz de 5 filas y 5 columnas ingresar los elementos y determinar
cules 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.

Computacin, Informtica & Sistemas 158


Fundamentos de Programacin

Ejemplo 3 : Realizar una aplicacin para ingresar elementos a una matriz de nf = 8, nc = 7,


realizar las siguientes operaciones matemticas.

Algoritmo Matriz3
Variables
z(9, 9) : real
a, b, c, fi, ci, nf, nc : entero
INICIO
Leer
"Ing. nmero de filas ..:", nf - 1
"Ing. nmero 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.

Computacin, Informtica & Sistemas 159


Fundamentos de Programacin

Ejemplo 4. Realizar una aplicacin para ingresar elementos a dos matrices: nf = 9, nc = 9,


realizar las siguientes operaciones matemticas.

Algoritmo Matriz4
Variables
x(9, 9), y(9, 9) : real
a, b, c, fi, ci, nf, nc : entero
INICIO
Leer
"Ing. nmero de filas ..:", nf - 1
"Ing. nmero 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.

Computacin, Informtica & Sistemas 160


Fundamentos de Programacin

Ejercicio 5 Realizar una aplicacin 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. nmero de filas ..:", nf - 1
"Ing. nmero 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.

Computacin, Informtica & Sistemas 161


Fundamentos de Programacin

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 ledos por teclado, y realice el producto de las dos matrices, mostrando la matriz
resultante.
Problema 3. Introducir un valor del 1 al 20 en un arreglo bidimensional de 5 filas y 4 columnas, el
nmero que se introduzca, digamos 3 debe almacenarse en la casilla correspondiente; y los
dems valores valdrn 0; si se ingresa el 15; si se ingresa el 8 y as sucesivamente, se tendra
esta matriz:

0 0 3 0 Los valores solo van a ser validos del 1 al 20; si yo pongo otro fuera de ese
parmetro me debe de rechazar el valor y pedir otra vez el valor. Tambin
0 0 0 8
debe pedir si se quiere introducir ms 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 atencin a sus clientes 5 cajeros (1,2,3,4,5) por cada
transaccin se ingresa el nmero de cajero e importe de la transaccin, que puede ser retiro,
deposito y otros. El proceso finaliza cuando en nmero 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 retiros c) visualizar el total por cada caja.

Problema 5.

Computacin, Informtica & Sistemas 162


Fundamentos de Programacin

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 crditos de cada curso del primer ciclo.
b) Nmero de cursos aprobados y desaprobados de cada alumno
c) Porcentaje de alumnos con promedio ponderado aprobado en el ciclo.
d) Nmero de alumnos con promedio mayor o igual a 8.

Problema 6.
Se desea desarrollar un programa que relacione la informacin de los sntomas que padece un
paciente con la informacin de los sntomas de las diferentes enfermedades. El nombre de los
pacientes debe colocarse en un vector, el nombre de las enfermedades debe colocarse en otro
vector, la informacin sobre los sntomas de cada paciente est codificada en una matriz en
donde las filas representa cada paciente y las columnas los diferentes sntomas que padece y la
informacin de los sntomas de cada enfermedad debe colocarse en una matriz en donde las
filas representan las diferentes enfermedades y las columnas los sntomas de cada
enfermedad. Las matrices de sntomas tendrn solamente los valores verdadero o falso, en
donde verdadero representa que el sntoma est presente en la enfermedad o en el paciente,
segn 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 ms comn, el nmero de pacientes que la tienen y el
porcentaje.
Generar un reporte con la enfermedad menos comn, el nmero de pacientes que la tienen y el
porcentaje.

Problema 7. Escribir un programa que determine si un matriz A de NxN es simtrica o no.


La matriz es simtrica 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 sern ceros)

Computacin, Informtica & Sistemas 163


Fundamentos de Programacin

Problema 11 Obtener la transpuesta de una matriz

a) Cuadrada
b) No cuadrada (teniendo en cuenta de que tamao 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.

Computacin, Informtica & Sistemas 164


Fundamentos de Programacin

Computacin, Informtica & Sistemas 165


Fundamentos de Programacin

Computacin, Informtica & Sistemas 166


Fundamentos de Programacin

Ejemplo Nro. 1: Ingresar 2 nmeros enteros y luego visualizar el mayor valor de estos
nmeros.

1.1 Cdigo en Visual Basic .NET

Resultado en Consola Visual Basic .Net

Computacin, Informtica & Sistemas 167


Fundamentos de Programacin

1.2 Cdigo en Java

Resultado en Consola de Java JCreator

Computacin, Informtica & Sistemas 168


Fundamentos de Programacin

Ejemplo Nro. 2: Una tienda comercial ofrece a sus clientes un descuento del 3% del
total de compra si el nmero de productos adquiridos es mayor a 5. Calcular el total a
pagar por una compra.

2.1 Cdigo en Visual Basic .NET

Resultado en Consola Visual Basic .Net

Computacin, Informtica & Sistemas 169


Fundamentos de Programacin

2.2 Cdigo en Java

Resultado en Consola de Java JCreator

Computacin, Informtica & Sistemas 170


Fundamentos de Programacin

Ejemplo Nro. 3: Una empresa otorga a sus trabajadores una bonificacin equivalente al
5% del salario por cada hijo que tenga el trabajador. Calcular la bonificacin y el total a
pagar a un trabajador.

3.1 Cdigo en Visual Basic .NET

Resultado en Consola Visual Basic .Net

Computacin, Informtica & Sistemas 171


Fundamentos de Programacin

3.2 Cdigo en Java

Resultado en Consola en Java JCreator

Computacin, Informtica & Sistemas 172


Fundamentos de Programacin

Ejemplo 4: Ingrese un nmero entre 1 y 999 y visualice el nmero de cifras que lo


componen.

4.1 Cdigo en Visual Basic .NET

Resultado en Consola Visual .Net

Computacin, Informtica & Sistemas 173


Fundamentos de Programacin

4.2 Cdigo en Java

Resultado en Consola en Java JCreator

Computacin, Informtica & Sistemas 174


Fundamentos de Programacin

Ejemplo 5: Ingresar un nmero entre 1 y 5, luego visualizar su equivalente en letras.

5.1 Cdigo en Visual Basic .NET

Resultado en Consola en Visual Basic .Net

Computacin, Informtica & Sistemas 175


Fundamentos de Programacin

5.2 Cdigo en Java

Resultado en Consola en Java JCreator

Computacin, Informtica & Sistemas 176


Fundamentos de Programacin

BIBLIOGRAFIA

 Fundamentos de Programacin : Luis Joyanes Aguilar

 Fundamentos de Programacin : Manuel Santos

Ismael Patio

 Fundamentos de Programacin : Jess Carretero

Felix Garca

Jos Manuel Prez

Alejandro Caldern

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/

Computacin, Informtica & Sistemas 177

Potrebbero piacerti anche