Вы находитесь на странице: 1из 79

UNIVERSIDAD NACIONAL DE INGENIERIA

Facultad de Ingeniera Industrial y de Sistemas

Area de Sistemas Computacin e Informtica

ALGORITMOS Y ESTRUCTURAS DE DATOS


PARTE I Profesora: Ing. Irma Inga Serrano 2012

FIIS

DATOS DEL CURSO

Universidad Nacional de Ingeniera

CODIGO DEL CURSO: ST-221 CREDITOS: 03 SISTEMA DE EVALUACION: F Examen Parcial: Peso 1 Examen Final : Peso 2 Promedio de Prcticas: Peso 1 (4 Prcticas calificadas, se elimina la mas baja)

CONTENIDO DEL CURSO


FIIS

1.- Introduccin y Conceptos Bsicos 2.- Estructuras de Control 1ra PC 3.- Arreglos 2da PC 4.- Cadenas Examen Parcial 5.- Subprogramas 6.- Recursividad 3ra PC 7.- Registros 8.- Archivos 4ta PC 9.- Programacin Dinmica Examen Final

Universidad Nacional de Ingeniera

Universidad Nacional de Ingeniera FIIS

I. CONCEPTOS BASICOS

FIIS

I. CONCEPTOS BASICOS
En nuestra vida cotidiana, para realizar una tarea o resolver un problema , ejecutamos un conjunto de pasos o acciones previamente definidos (ALGORITMO).

Universidad Nacional de Ingeniera

Ejm.

Tarea: hacer un pastel Problema: mostrar el promedio final de un alumno de Algoritmos.

En este proceso, se puede observar los siguientes elementos:


ELEMENTOS

DE ENTRADA

Ejecutor del algoritmo


Algoritmo

RESULTADO SALIDA

FIIS

PROCESAMIENTO DE DATOS: Tcnica usada para manipular datos y obtener informacin til para el usuario. Elementos:

Universidad Nacional de Ingeniera

DATOS Entrada

Procesador

INFORMACIN Salida

Algoritmo

Procesador : realiza las operaciones para convertir datos en informacin siguiendo las instrucciones del algoritmo. El procesador puede ser: persona(s): procesamiento manual computadora(s): procesamiento automatizado

FIIS

Algoritmo: Secuencia ordenada de pasos precisos, definidos y finitos, que se ejecutan para para resolver un problema. Se expresa en lenguaje natural Dato: Es la representacin simblica de un hecho, atributo o caracterstica de una entidad. Ejm: 27.2, Lima, Marzo, 25, ST221U, etc Los datos son valores que por si solos son irrelevantes. No dicen nada sobre el por qu de las cosas.

Universidad Nacional de Ingeniera

Informacin: conjunto de datos procesados y que tienen un significado . Es til para el que toma decisiones. Los datos se pueden transformar en informacin agregndoles valor (contexto, categora clculo). Ejm. La temperatura promedio de Lima en el mes de Julio fue de 16.2 grados En la primera prctica del curso ST221U hay 20 aprobados

FIIS

PROCESAMIENTO DE DATOS UTILIZANDO EL COMPUTADOR


Hardware

Universidad Nacional de Ingeniera

Procesador
DATOS Entrada INFORMACIN Salida

Programas

Software

FIIS

HARDWARE (componentes fsicos)

Universidad Nacional de Ingeniera

Unidades Perifricas De Entrada Ejem. Teclado Mouse Escaner, etc

UNIDAD CENTRAL DE PROCESO Unidad de Control Unidad Aritmtica Y Lgica

Unidades Perifricas De Salida Ejm. Impresora Monitor, Parlantes, etc.

Memoria Principal RAM y ROM

Unidades de Almacenamiento. Ejem. Disquete, Discos compactos, Discos duros, etc.

FIIS

SOFTWARE (programas)
PROGRAMA Es el algoritmo escrito en un lenguaje de programacin para ser ejecutado por el computador. TIPOS DE PROGRAMAS: Aplicaciones de uso especfico Ejm. Sistema de procesamiento de notas, Sistema de Matrcula, Sistema de facturacin, etc Aplicaciones de uso general: Ejm. Word, Excel, Power Point, Access, etc. Sistemas operativos : Ejm. DOS, Windows, Linux, etc.

Universidad Nacional de Ingeniera

FASES PARA LA CONSTRUCCION DE UN PROGRAMA


FIIS

Datos

SOLUCION DEL PROBLEMA

Algoritmo

IMPLEMENTACION Programa EN LA COMPUTADORA (Software)


Codificacin del algoritmo (programa)

Universidad Nacional de Ingeniera

Anlisis del problema

Diseo del algoritmo Verificacin Error de del algoritmo lgica OK Algoritmo

Ejecucin del Error programa sintaxis Verificacin del programa

OK
Programa

FIIS

Universidad Nacional de Ingeniera

LENGUAJES DE PROGRAMACION Es un lenguaje artificial que se utiliza para controlar el comportamiento del computador. Se componen de un conjunto de reglas sintcticas y semnticas que permiten al programador expresar acciones o instrucciones que luego sern interpretadas y ejecutadas por el computador. Tipos de lenguajes de Programacin: Lenguaje de alto nivel: lenguaje similar al lenguaje natural. Son fciles de escribir. Es el mas usado por los programadores. Ejm. C++, Java, Basic, Pascal, Prolog, Delphi, etc. En C++: P = M+N Lenguaje de bajo nivel: lenguaje mnemotcnico. Ejm. Lenguaje ensamblador : ADD M, N, P Lenguaje de mquina: lenguaje binario (0 y 1) entendible directamente por el computador. Ejm. 0110 1001 1010 1011

TIPOS DE PROGRAMAS (segn el Lenguaje de Programacin)


FIIS

PROGRAMA FUENTE (PF) Programa escrito en lenguaje de alto o bajo nivel. PROGRAMA OBJETO (PO): Programa escrito en lenguaje de mquina. Es el que ejecuta el computador.

Universidad Nacional de Ingeniera

TRADUCTORES DE LENGUAJE Programas que traducen programas fuente a lenguaje de mquina.


Tipos de Traductores: Compiladores e Intrpretes Programa Fuente Compilador Programa Objeto

Ejecucin del Programa


Ejecucin de la Instruccin

Programa Fuente

instruccin

Intrprete

Instruccin en leng.mq.

TIPOS DE DATOS (reconocidos por el computador)

FIIS

Universidad Nacional de Ingeniera

DATOS

BASICOS

ESTRUCTURADOS

Numricos -Enteros -Reales

Caracter

Lgico

Esttico -Arreglos -Registros -Archivos

Dinmico -Listas -Arboles -Grafos

DATOS BASICOS
FIIS

DATOS NUMERICOS Enteros y Reales El rango y precisin de los datos numricos depende del lenguaje de programacin que se utilice.

Universidad Nacional de Ingeniera

DATOS TIPO CARACTER Conjunto de caracteres que el computador reconoce. Se encuentran normalizados bajo el cdigo ASCII o EBCDIC En ambos se reconocen: Caracteres alfabticos: A - Z ; a - z Caracteres numricos: 0 - 9 Caracteres especiales: *, / , +, >, <, =, etc.
DATOS TIPO LOGICO Conjunto formado por dos valores lgicos: verdad, falso

FIIS

Expresin de los datos


Un dato puede venir expresado como: constante, variable, expresin, funcin
1.- CONSTANTE Es un dato (de cualquier tipo) cuyo valor no cambia durante la ejecucin del algoritmo o programa. Tipos de constantes: Literal: es un valor expresado en forma explcita. Ejm. 3.1416 Simblica: viene expresado bajo un nombre que guarda su valor Ejm. Pi (Previamente se debe definir que Pi = 3.1416)

Universidad Nacional de Ingeniera

FIIS

Universidad Nacional de Ingeniera

2.- VARIABLE Es una porcin de memoria RAM que almacena un dato. Puede cambiar de valor durante la ejecucin del algoritmo perdindose cualquier otro dato previamente almacenado en ella. Para definir una variable es necesario: - Darle un Nombre - Indicar el tipo de dato que va almacenar Tipos de variables: Entero: Ejm. nota, edad, examen, Real: Ejm. promedio, sueldo, talla Carcter: Ejm. seccin, sexo, Lgico: Ejm. Fin, encontrado, vale

FIIS

Almacenamiento de dato en una variable

Universidad Nacional de Ingeniera

Puede ser: - Por lectura: se solicita al usuario que ingrese un dato. Se utiliza la instruccin de lectura Ejm. Leer (edad). - Por asignacin: se asigna un dato a la variable. Se utiliza la instruccin de asignacin

En cualquier caso, se pierde el valor de la variable previamente almacenado en ella. Nota Ejm. Nota 12 12
Nota

Nota Nota +2

14

FIIS

3.- EXPRESIONES Es una combinacin de operandos y operadores Tipos de expresiones: A.- Expresiones aritmticas Operando: constantes, variables y expres. numricas Operadores: aritmticos (+, - , *, /, mod, div, **) (*) Resultado: dato numrico Ejm. (EP + 2*EF + PP)/4 (*) Operadores Aritmticos mod y div Si a y b son nmeros enteros: a div b devuelve el cociente (entero) de la divisin entera de a y b a mod b devuelve el resto (entero) de la divisin entera de a y b Ejm 13 div 5 = 2 y 13 mod 5 = 3

Universidad Nacional de Ingeniera

FIIS

Universidad Nacional de Ingeniera

B.- Expresiones lgicas Operando: constantes, variables y expres. lgicas Operadores: relacionales (>, <, >=, <=, =) y lgicos (NO, Y, O) Resultado: Dato lgico Ejm. (PP>6.1 y PF>6.1 ) o (PP>6.1 y (EP=0 o EF=0))
Prioridad de operadores:

() No /, *, div, mod, **,y +, - , o >, <, >=, <=, <>

4.- FUNCIONES Son programas predefinidas que: - Tienen un nombre con el cual se les invoca y - Aceptan datos y devuelven un resultado.

FIIS

Universidad Nacional de Ingeniera

Generalmente los lenguajes de programacin poseen funciones matemticas, de cadenas y otros que el programador puede utilizar.
Ejm. En C++ Abs(X): devuelve el valor absoluto del nmero entero X Sqrt(X): devuelve la raz cuadrada del nmero X (X0) Trunc (X): devuelve el nmero entero de X (real) Cos(X): devuelve el coseno de X

FIIS

DISEO DE ALGORITMOS: TECNICA DE PROGRAMACION ESTRUCTURADA


Conjunto de tcnicas para desarrollar algoritmos fciles de

escribir, leer, verificar y modificar.


Universidad Nacional de Ingeniera

Diseo Modular ( Top-down ) En problemas grandes y complejos: dividir el problema en subproblemas y disear un subprograma para resolver cada uno de ellos Descomposicin del programa en recursos abstractos Descompone una accin compleja en acciones simples capaces de ser ejecutadas por un computador ( instrucciones )
Estructuras de control bsicas Un programa se escribe utilizando 3 estruct. de control: EC Secuenciales, EC Selectivas, EC Repetitivas

FIIS

INSTRUCCIONES Son las acciones que van a ser ejecutadas por el computador para resolver el problema. TIPOS : Instrucciones de Inicio/Fin del algoritmo Instrucciones de lectura: Solicita al usuario el ingreso de dato desde un dispositivo de entrada (ejm. Teclado) y lo almacena en una variable. Instrucciones de escritura: Muestra los resultados a travs de un dispositivo de salida por ejemplo la pantalla, impresora, etc. Instrucciones de asignacin: asigna un dato a una variable. Instrucciones selectivas: se evala una condicin para ejecutar unas u otras acciones Instrucciones repetitivas: repite un grupo de acciones

Universidad Nacional de Ingeniera

FIIS

EJEMPLO

Universidad Nacional de Ingeniera

Se cuenta con las notas del EP, EF y PP de un alumno. Se sabe que el promedio final (PF) se calcula con la frmula: PF=(EP+ PP+2EF)/4 Si el alumno cumple con la siguiente condicin: PP>6.1 y PF> 6.1 tiene opcin a rendir un examen sustitutorio (ES) Escriba un algoritmo reciba las notas del alumno y luego muestre un mensaje indicando si el alumno puede rendir o no puede rendir el ES. En el caso que ya no pueda rendir el ES, debe mostrar tambin el PF

FIIS

Anlisis Datos de entrada: Salida:

EP, EF, PP mensaje y PF (si no puede rendir ES)

Universidad Nacional de Ingeniera

Algoritmo (en lenguaje propio) Inicio del algoritmo Ingresar las notas del alumno: EP, EF y PP Calcular PF con la siguiente frmula: PF = (EP + 2EF + PP)/4 Si cumple la condicin PP> 6.1 y PF>6.1entonces mostrar el mensaje Puede rendir el ES Si no cumple la condicin entonces mostrar el mensaje No puede rendir ES y mostrar PF Fin del algoritmo.

FIIS

HERRAMIENTAS PARA LA REPRESENTACION DE ALGORITMOS


Para representar los algoritmos existen herramientas que permiten expresar las instrucciones en forma estandarizada:

Universidad Nacional de Ingeniera

Diagrama de flujo Tcnica tipo grfico Pseudocdigo Lenguaje de especificacin (palabras reservadas) en lenguaje natural. Diagrama de Nassi-Scheneiderman Es una combinacin de las dos anteriores

FIIS

1.- Diagrama de Flujo Smbolos Significado


Inicio / Fin

Universidad Nacional de Ingeniera

Lectura / Escritura Proceso

Selectiva

Selectiva mltiple
Direccin o flujo

FIIS

Representacin del Algoritmo en Diagrama de Flujo

Inicio

Leer EP,EF, PP

Universidad Nacional de Ingeniera

PF=(EP+PP+2*EF)/4

PP>6.1 y PF>6.1

Escribir No puede rendir ES

Escribir Puede rendir ES

Escribir Su nota Final es: , PF

Fin

FIIS

2.- Pseudocdigo
Elementos del Pseudocdigo:

Declaracin de constantes: nombre de la constante = valor Declaracin de variables: reserva espacio en la RAM para almacenar datos tipo de dato: nombre de variable Biblioteca de Funciones: abs(X): devuelve el valor absoluto de X raiz2(X): devuelve la raiz cuadrada de X (real) entero (X): devuelve la parte entera del real X. Es entero. trunc(X): trunca (elimina los decimales) del real X. Es real. aleatorio(): devuelve un nmero aleatorio real >0 y <1 sen(X), cos(X), .., ln(X), log10(X), etc.

Universidad Nacional de Ingeniera

FIIS

Identificadores: Empiezan con un carcter alfabtico. Comentarios: // No son ejecutados por el computador. Sirven como referencia para el programador. Instrucciones bsicas Instrucciones de Inicio/Fin del algoritmo Inicio Fin Instrucciones de lectura leer ( nombre-variable1, nombre-variable2, . ) Instrucciones de escritura: escribir ( lista de variables o expresiones) Instrucciones de asignacin: variable valor o expresin

Universidad Nacional de Ingeniera

FIIS

Estructura del Algoritmo en Pseudocdigo


Cabecera (opcional) Contiene el nombre del algoritmo

Algoritmo nombre del algoritmo


Universidad Nacional de Ingeniera Constantes Variables

Nombre-constante = valor
Tipo-dato: nombre de variables

Bloque de Declaraciones Se declaran: Constantes (opcional), Variables (obligatorio) Otros (opcional)

Inicio

instrucciones

Bloque de Instrucciones Acciones para resolver el problema

Fin

FIIS

Representacin del Algoritmo en Pseudocdigo


Algoritmo Ejemplo-1
Variables entero: EP, EF real: PP, PF

Universidad Nacional de Ingeniera

Inicio Leer (EP, EF, PP) PF (EP+PP+2*EF)/4 Si (PP>6.1 y PF>6.1) entonces

Escribir ( Puede rendir el ES)


sino Escribir (No puede rendir el ES) Escribir (Su nota final es: , PF) Fin-si Fin

FIIS

ALGUNAS VARIABLES IMPORTANTES ACUMULADOR Es una variable cuyo valor aumenta o disminuye en una cantidad variable cada vez que se produce un determinado suceso o accin. Debe ser inicializado Ejm. Se desea acumular las notas de prcticas de un alumno sum 0 (el valor de sum es 0) sum sum + 13 (el valor de sum es 13) sum sum + 10 (el valor de sum es 23) CONTADOR Es un acumulador cuyo valor aumenta o disminuye en una cantidad constante cada vez que se produce un determinado suceso o accin. Se usa para contar sucesos. Ejm. Contar nmero de aprobados

Universidad Nacional de Ingeniera

FIIS

Universidad Nacional de Ingeniera

II. Diseo de algoritmos en Pseudocdigo ESTRUCTURAS DE CONTROL

FIIS

ESTRUCTURAS DE CONTROL

Un algoritmo debe ser escrito utilizando tres estructuras de control:


Universidad Nacional de Ingeniera

E.C. Secuencial Simple Doble Mltiple Desde Mientras Repetir - hasta

E.C. Selectiva

E.C. Repetitiva

FIIS

Estructura SECUENCIAL

Universidad Nacional de Ingeniera

Las acciones del algoritmo se ejecutan en el orden que se encuentran escritos.


accin 1 accin 2 accin 3 ------------accin n

FIIS

EJEMPLOS

Universidad Nacional de Ingeniera

1.- Se tiene un nmero real G que representa la medida de un ngulo en grados sexagesimales. Disee un algoritmo que reciba G y lo convierta en los nmeros enteros grados, minutos y segundos (redondeado). Luego muestre estos resultados.
2.- El salario de un empleado es M (real). Se desea realizar el pago respectivo pero solo se cuenta con billetes de 100, 50, 10 y monedas de 5 y 1 sol. Disee un algoritmo que reciba M y determine la mnima cantidad de billetes y monedas de cada tipo con el que se debe pagar al empleado. Note que si M tiene cntimos stos deben ser redondeados para que el pago sea un valor entero.

FIIS

Estructuras SELECTIVAS
Permiten ejecutar unas acciones u otras dependiendo del resultado de una condicin TIPOS DE ESTRUCTURAS SELECTIVAS

Universidad Nacional de Ingeniera

1. SELECTIVA SIMPLE: Las acciones se ejecutan si la condicin es verdadera .


Pseudocdigo

Si (condicin) entonces
accin1 accin 2 accin n fin-si

condicin

V
acciones

FIIS

2. SELECTIVA DOBLE Si la condicin es Verdadera se ejecutan unas acciones. Si la condicin es Falsa se ejecutan otras acciones

Universidad Nacional de Ingeniera

Pseudocdigo
Si (condicin) entonces acciones -V Sino acciones -F Fin-si

condicin

Acciones-F

Acciones-V

FIIS

EJEMPLOS 1.- El gobierno ha implementado como parte de su programa social un sistema de impuesto y subsidio familiar bajo la siguiente regla: - Las familias que poseen un ingreso familiar mensual menor o igual a S/. 800.00 recibirn un subsidio de S/. 300.00 - Las familias que poseen un ingreso familiar mayor a S/. 800.00 y menor o igual a S/. 2,000.00 recibirn un subsidio del 10% sobre su ingreso pero deben pagar un impuesto del 2% sobre el total de sus ingresos. - Las familias cuyo ingreso familiar sea mayor a S/. 2,000.00 deber pagar el 10% de impuesto sobre su ingreso. Disee un algoritmo que reciba como dato un ingreso familiar mensual y entregue como resultado: el monto adicional por subsidio, el impuesto y el monto neto que obtendr.

Universidad Nacional de Ingeniera

Universidad Nacional de Ingeniera

2.- Se tiene las notas del Examen parcial (EP), del Examen Final (EF), del Examen sustitutorio (ES) y las 4 notas de prcticas calificadas de un alumno del curso de Algoritmos y Est. Datos. Disee un algoritmo que reciba estas notas y luego muestre el promedio final (PF) del alumno sabiendo que: - el promedio de prcticas se obtiene eliminando la menor nota. - El examen sustitutorio ser considerado vlido si cumple con la siguiente condicin: PP>6.1 y (EP+2EF+PP)/4 >6.1. - Si el ES es vlido, reemplaza al EP o EF (al que mas favorezca al alumno) 3.- Disee un algoritmo que lea cuatro nmeros enteros y muestre los dos mayores. 4.- Disee un algoritmo que determine las races de la siguiente ecuacin : aX2 + bX + c = 0 Considere que los coeficientes son solicitados al usuario y pueden tomar cualquier valor real.

FIIS

3.- SELECTIVA MULTIPLE (Caso-sea) Se utiliza para seleccionar una de entre mltiples alternativas. El selector (variable, expresin o funcin ) se evala y compara con las alternativas de Caso. El valor del selector debe ser escalar (nmero entero o carcter).

Universidad Nacional de Ingeniera

FIIS

Pseudocdigo
Caso selector sea alt 1: acciones 1 alt 2: acciones 2 Selector

.
Sino

alt n: acciones n

Alt. 1

Alt. 2

Alt. n Acciones n

(opcional)

Acciones 1 Acciones 2

acciones F Fin-caso

EJEMPLOS
FIIS

1.- Disee un algoritmo que reciba un mes en nmero y devuelva el nombre del mes correspondiente y la estacin a la que pertenece. Nota : considere que el mes no est validado. 2.- En una tienda que vende accesorios para computadoras, se tiene que el precio de los paquetes de CDs es de S/.50 para cualquier marca. Sin embargo, existe un descuento que vara de acuerdo al monto de la compra y a la marca: Si el monto de la compra es mayor a S/. 1,000 y menor a S/. 5,000: la marca A tiene un descuento del 5%, la marca B el 7%, la marca C el 3% y la marca D el 4%. Si el monto es mayor a S/. 5,000: las marcas A y B tienen un descuento del 9% y las marcas C y D del 5%.

Universidad Nacional de Ingeniera

Disee un algoritmo que reciba la marca y la cantidad de paquetes de CDs comprada por un cliente y luego muestre el importe total, el descuento y el importe neto que debe pagar el cliente.

FIIS

Estructuras REPETITIVAS
Permiten repetir una o mas acciones un cierto nmero de veces.
Un BUCLE (loop, en ingls) es un trozo de algoritmo cuyas instrucciones se repiten un cierto nmero de veces, mientras o hasta que se cumpla una cierta condicin. La condicin ser evaluada en cada iteracin (repeticin) del bucle.
Estructura repetitiva acciones 1 acciones 2 . acciones n Fin-estructura repetitiva

Universidad Nacional de Ingeniera

Cuerpo del bucle

TIPOS DE ESTRUCTURAS REPETITIVAS


FIIS

Universidad Nacional de Ingeniera

1. DESDE - HASTA Las acciones del bucle se ejecutan desde que el contador toma un valor inicial hasta que tome su valor final inclusive. En cada repeticin del bucle, el contador se incrementa o decrementa en una constante.
Con Vi

Pseudocdigo

F
Desde con Vi hasta Vf (inc/dec) k
accin1 accin 2 accin n fin-desde Con con +k Con Vf

V
acciones

EJEMPLO 1.- Se cuenta con las notas de EP, EF y PP de un grupo de 30 alumnos del curso de Algoritmos y Estructuras de Datos. Disee un algoritmo que reciba estos datos y luego muestre: a) el promedio final de cada alumno. b) el nmero de aprobados y el promedio general del grupo. 2.- Disee un algoritmo que muestre el factorial de un nmero entero mayor o igual a 0 3.- Disee un algoritmo que muestre las tablas de multiplicar de los nmeros del 2 hasta el nmero N dado por el usuario. 4.- Disee un algoritmo que muestre los divisores primos de un nmero entero positivo mayor que 1. 5.- Disee un algoritmo que muestre los N primeros trminos de la serie Fibonacci (N>0).

Universidad Nacional de Ingeniera

FIIS

FIIS

2. MIENTRAS - HACER (estructura de entrada controlada) Las acciones del bucle se ejecutan cuando la condicin es V. Las acciones se pueden ejecutar 0 o mas veces

Universidad Nacional de Ingeniera

Pseudocdigo

F
Mientras (condicin) hacer accin1 accin 2 Condicin

V
acciones

accin n
fin-mientras

FIIS

3.a. REPETIR - HASTA (estructura de salida controlada) Las acciones del bucle se ejecutan si la condicin es F. Las acciones se ejecutan 1 o mas veces

Universidad Nacional de Ingeniera

Pseudocdigo Repetir accin1 accin 2 acciones

Condicin

accin n
Hasta (condicin)

FIIS

EJEMPLOS 1.- Disee un algoritmo que reciba un nmero entero positivo de tres o mas cifras e indique si es capica (Se lee igual de izquierda a derecha como de derecha a izquierda). 2.- Disee un algoritmo que muestre el mximo comn divisor (MCD) de dos nmeros enteros positivos A y B. 3.- Disee un algoritmo que reciba un nmero no determinado de caracteres alfabticos (el ingreso termina cuando se ingresa el carcter *), luego muestre el nmero de cada vocal y la secuencia de caracteres U N I ingresados. 4.- Disee un algoritmo que ingrese las notas de un nmero no determinado de alumnos. Luego muestre: a) El promedio de notas de los alumnos aprobados b) La mayor nota y el nmero de alumnos que los poseen.

Universidad Nacional de Ingeniera

FIIS

Universidad Nacional de Ingeniera

5.- Disee un algoritmo que reciba n nmero reales y luego muestre el mayor de los nmeros negativos y el menor de los nmeros positivos. 6.- Para ingresar a un sistema se debe ingresar la clave de usuario (999). Si el usuario tiene hasta 3 oportunidades para ingresarla correctamente. Si falla la tercera vez, el sistema se cierra con el mensaje Vuelva otro da. Si logra ingresar al sistema, ste le solicita que ingrese un nmero real X entre 0 y 1 para calcular la siguiente suma: S= 1- x2 + x3 - x4 + ..
2! 3! 4!

El ltimo trmino en valor absoluto debe ser mayor a 10-5

FIIS

7.- Crear un algoritmo que permita leer para un grupo de n obreros la siguiente informacin: cdigo (entero positivo de 2 dgitos) y sueldo. Luego presentar los cdigos de aquellos obreros que tienen el mximo sueldo.

Universidad Nacional de Ingeniera

8.- Para un nmero entero positivo N (N>1), se dice que los divisores de N forman un lgebra booleana si N es el producto de nmeros primos diferentes. Ejemplo: N= 30= 2x3x5 (producto de primos diferentes) Los divisores de N forman un lgebra booleana Disee un algoritmo que permita leer el nmero N y luego nos muestre un mensaje indicando si para este nmero tenemos un lgebra booleana.
9.- Para un conjunto de n nmeros enteros positivos de 2 o mas cifras, se desea determinar el mximo comn divisor de dichos nmeros. Disee el algoritmo que realice esta tarea.

FIIS

Universidad Nacional de Ingeniera

10.- Disee un algoritmo que lea n puntos (x,y) del primer cuadrante y luego muestre los vrtices del menor rectngulo (con base paralelo al eje X) que contenga a dichos puntos. 11.- Decimos que los nmeros enteros positivos A y B son un par de nmeros amigos si la suma de los divisores propios (o sea, desiguales a s mismos) son iguales al otro nmero. Es decir, los divisores propios de A suman B y los de B suman A. Ejm. 220 y 284 son amigos
Suma divisores de 220 = 1+2+4+5+10+11+20+22+44+55+110 = 284 Suma divisores de 284 = 1+2+4+71+142 = 220

Disee un algoritmo que encuentre y muestre el primer par de nmeros amigos de 3 cifras.

FIIS

NOTA: En algunos lenguajes de programacin se tiene la estructura repetitiva REPETIR - MIENTRAS

3.b. REPETIR - MIENTRAS (estructura de salida controlada) Las acciones del bucle se ejecutan si la condicin es V. Las acciones se ejecutan 1 o mas veces
Universidad Nacional de Ingeniera

Pseudocdigo Repetir accin1 accin 2

acciones

Condicin

accin n
Mientras (condicin)

Universidad Nacional de Ingeniera FIIS

III. ARREGLOS Y CADENAS

FIIS

ARREGLOS
CARACTERISTICAS Son estructuras que permiten almacenar datos del mismo tipo bajo un solo nombre (nombre del arreglo). Para acceder a un dato de un arreglo se utiliza el ndice o ndice(s) que indican la posicin de dicho dato en el arreglo. Los arreglos almacenan los datos en la memoria RAM del computador mientras se ejecuta el programa. Una vez que se apaga el computador, esos datos se pierden. Se debe conocer el tamao mximo del arreglo para la declaracin de la variable TIPOS DE ARREGLOS: Arreglos unidimensionales o Vectores Arreglos bidimensionales o tridimensionales o Matrices Arreglos multidimensionales (mas de 3 dimensiones)

Universidad Nacional de Ingeniera

FIIS

ARREGLOS UNIDIMENSIONALES (Vectores)

Universidad Nacional de Ingeniera

Caractersticas Para acceder a un elemento del vector se necesita un ndice (posicin del dato en el vector). Los elementos se encuentran almacenados en posiciones contiguas de la RAM. Ejemplo: Se desea almacenar notas (nmeros enteros) de 10 alumnos del curso Algoritmos y Est. Datos bajo el nombre NOTA
Posicin 1
12 NOTA(3)

2
8

3
13

NOTA 4 5 15 13

6
9

7
11

8
15

9
11

10
10

FIIS

Universidad Nacional de Ingeniera

Declaracin de un Vector: Variables Arreglo (tamao mximo) de tipo de dato: nombre del vector Ejemplo: Se desea almacenar las edades y tallas de un mximo de 20 alumnos FIIS. Variables Arreglo(20) de entero: edad Arreglo (20) de real: talla

FIIS

OPERACIONES BASICAS CON VECTORES

Universidad Nacional de Ingeniera

Asignacin: A(3) 05
Lectura/escritura leer (A(4)) desde i 1 hasta n escribir (Nota (i) ) fin-desde Bsqueda de un elemento nico en un vector. Para ello se utiliza una variable lgica que controla si el elemento se encuentra en el vector. Si lo encuentra termina el bucle.

FIIS

Problemas

Universidad Nacional de Ingeniera

1.- Escriba un algoritmo que lea y almacene en un arreglo los sueldos (real) de mximo 50 empleados de la FIIS-UNI y muestre a) El sueldo promedio de ellos. b) El nmero de empleados que tienen sueldo mayor al sueldo promedio.
2.- Escriba un algoritmo que almacenen los elementos (enteros positivos de 2 cifras) de los conjuntos A y B de m y n elementos diferentes respectivamente (los mximos valores para m y n es de 15). Luego debe mostrar los elementos comunes a ambos.

FIIS

Universidad Nacional de Ingeniera

3.- PROBLEMA (2da PC 2009-2) Se cuenta con n (n<=50) nmeros enteros positivos. Disee un algoritmo que almacene estos datos y luego muestre el dgito (o dgitos) que mas se repite(n). 4.- Una empresa comercial cuenta con los datos de n (n 100) operaciones de ventas de sus productos que ha realizado durante un da: cdigo del producto (entero de 3 cifras) y la venta (en soles) por cada operacin. Sabiendo que cada producto puede repetirse mas de una vez, disee un algoritmo que almacene estos datos y luego muestre un reporte con los cdigos de los productos (sin repetir) y la venta total del da

FIIS

Universidad Nacional de Ingeniera

5.- PROBLEMA (2da PC 2007-1) Una dificultad de las calculadoras y de las computadoras es calcular el producto de nmeros grandes. Disee un algoritmo que permita ingresar dos nmeros enteros positivos grandes M y N (mnimo de 10 dgitos y mximo de 40 dgitos) y luego, utilizando arreglos calcule y muestre el producto de dichos nmeros. Nota: Cada nmero debe ser ledo dgito por dgito y almacenado en un arreglo.

FIIS

ARREGLOS BIDIMENSIONALES (Matrices)


Caractersticas

Para acceder a un elemento del arreglo se necesita dos ndices. VENTAS

Universidad Nacional de Ingeniera

i j 1 2 3 4 5

VENTAS(4,2)
Declaracin de matrices: Arreglo (tamao-fila x tamao-columna) de tipo de dato: nombre-var

Universidad Nacional de Ingeniera

Problema 1.- Una empresa es propietaria de una cadena de 5 tiendas comerciales. Para cada una de ellas se cuenta con las ventas mensuales de un perodo de 6 meses. Disee un algoritmo que almacene estos datos y luego muestre: a) Las ventas por mes b) La tienda (o tiendas) con la mayor venta en el perodo c) La tienda y el mes en que ha ocurrido la menor venta 2.- Se cuenta con las notas de la primera prctica calificada de los alumnos de n cursos (n 20). En cada curso existe a los mas 50 alumnos matriculados. Se va a ingresar las notas solo de aquellos alumnos que rindieron la prueba. Disee un algoritmo que almacene estos datos y luego: a) muestre el promedio general y el nmero de alumnos cuya nota sea mayor que dicho promedio. b) El curso (o cursos) con el mayor nmero de aprobados.

FIIS

FIIS

Arreglos Multidimensionales

Universidad Nacional de Ingeniera

Caractersticas Para acceder a uno de sus elementos se necesitan 3 o mas ndices. Muchas veces, para representarlos se necesita utilizar tablas en el que se puede apreciar sus dimensiones. Declaracin de un arreglo multidimensional Variables
arreglo (tamao1 x tamao2 x tamao3 x .) de tipo de dato: nombre de variable

FIIS

PROBLEMA (2da PC 2007-2) Para un conjunto de n provincias del pas(n50) se cuenta con los siguientes datos: cdigo (entero de 4 cifras), el nmero de turistas extranjeros y el nmero de turistas nacionales que visitaron mensualmente cada provincia durante el ao 2009. Disee un algoritmo que almacene los datos mencionados y luego muestre: a) Por cada provincia: el nmero de turistas que ha recibido durante el ao 2009 b) El mes o meses en el que hubo mayor nmero de turistas extranjeros c) La provincia y el mes que ha tenido el menor nmero de turistas

Universidad Nacional de Ingeniera

FIIS

OPERACIONES CON VECTORES

1.- Ordenamiento
Universidad Nacional de Ingeniera Por seleccin Burbuja Insercin directa Insercin binaria Shell Quick Sort Por ndices

2.- Eliminacin (fsica) de un elemento de un vector

3.- Insercin de un elemento en un vector ordenado.

FIIS

1.1. Ordenamiento por seleccin


//Ordenamiento ascendente del vector A de n elementos

Universidad Nacional de Ingeniera

desde i 1 hasta n-1 desde j i+1 hasta n Si (A(i) > A(j)) entonces aux A(i) A(i) A(j) A(j) aux fin-si fin-desde Fin desde.

FIIS

1.2. Ordenamiento por ndices


// inicializar el vector de ndices desde i 1 hasta n I(i) i fin-desde //Ordenamiento ascendente del vector A de n elementos desde i 1 hasta n-1 desde j i+1 hasta n Si (A(I(i)) > A(I(j)) entonces aux I(i) I(i) I(j) I(j) aux fin-si fin-desde Fin desde.

Universidad Nacional de Ingeniera

FIIS

PROBLEMAS 1.- // ordenamiento simple y ordenamiento doble Se cuenta con la nota y la seccin (letra) de n (n 100) alumnos de un curso XYZ. Disee un algoritmo que almacene estos datos y luego: a) presente un reporte en el que se muestre por cada seccin : el nmero de alumnos y el promedio general de la seccin. El reporte debe estar ordenado por seccin en orden alfabtico. b) presente un reporte en el que se muestre por cada seccin: el nmero de alumnos y el promedio general de los alumnos de dicha seccin. El reporte debe estar ordenado en forma descendente segn el promedio general de la seccin. Si hay promedios iguales, se debe presentar ordenado por seccin en forma ascendente.

Universidad Nacional de Ingeniera

2. Eliminacin (fsica) de un elemento del vector

FIIS

Si se desea eliminar un elemento X del vector A de n elementos:


Universidad Nacional de Ingeniera

// Buscar el elemento X en el vector A. Si ste se encuentra en la posicin i del vector: // Eliminacin del elemento X de A desde j i hasta n-1 A(j) A(j+1) fin-desde n n-1

3. Insercin de un elemento en un vector ordenado


Se realiza la insercin de un elemento en un vector si ste tiene espacio disponible. Si se desea insertar un elemento X en un vector A de n elementos ordenado en forma ascendente:
// Insercin de X en A enc F ; in Mientras (enc=F y i>0) entonces Si X< A(i) entonces A(i+1) A(i) i i-1 sino enc V fin-si Fin-mientras A (i+1) X n n-1

Universidad Nacional de Ingeniera

FIIS

FIIS

Ejemplos

Universidad Nacional de Ingeniera

1.- Se cuenta con los cdigos y los promedios finales de n alumnos de un determinado curso. Disee un algoritmo que almacene estos datos en vectores y luego elimine del vector a aquellos alumnos que tengan promedio final menor al promedio general. Mostrar los elementos 2.- Se cuenta con los siguientes datos de n alumnos (n 100): cdigo (entero de 4 cifras), notas de 4 PC. Disee un algoritmo que almacene dichos datos y luego elimine a aquellos alumnos cuyo promedio de prcticas sea menor a 6.1. Luego debe mostrar los datos de los alumnos que quedan con su respectivo promedio de prcticas. Nota: el PP es el promedio de las 4 PC

FIIS

CADENAS
CADENA: es una secuencia de caracteres que tiene las siguientes caractersticas: a) para ingreso y salida se comporta como un dato bsico Ejm. Leer (apellido) Escribir (apellido) OJO: apellido es una variable tipo cadena de mximo 10 car b) para acceder a uno de sus caracteres se comporta como un arreglo de caracteres. Ejm. Apellido(3) Z
1 Apellido R 2
O

Universidad Nacional de Ingeniera

3
S A

4
L

6
E S

10

Nombre(3)

Universidad Nacional de Ingeniera

FIIS

Tipos de cadenas: Numricas: sus caracteres son dgitos numricos. Ejm. 2011 Alfanumricas: Sus caracteres son letras y dgitos numricos Ejm. 20100426A General: cualquier combinacin de caracteres. Ejm. 21/06/2011

Declaracin de variables tipo cadena cadena (tamao mximo de la cadena): nombre-cadena Ejm. cadena (10): apellido Longitud de cadena: Es el nmero de caracteres que posee la cadena. Para determinarla se usa la funcin Longitud n Longitud (apellido)

FIIS

Operaciones bsicas con cadenas Asignacin Ejm. Nombre JHONNI; palabra U; Nombre Y Lectura/escritura Ejm. Leer (nombre) ; Escribir (nombre)
Otras operaciones con cadenas Concatenacin o unin de cadenas cad3 cad1+cad2 cad3 cad1+ + cad2 Ejm. Nomap nombre+ apellido Extraccin de cadenas cad1 cad1 + carac1 Ejm. Extraer el mes del texto: Ingres a la UNI en Agosto del ao 2011 Conversin de cadenas numricas a nmeros enteros Ejm. Convertir la cadena 2010 al nmero entero 2010

Universidad Nacional de Ingeniera

FIIS

Problemas

Universidad Nacional de Ingeniera

1.- Disee un algoritmo que lea y valide: a) el cdigo de un alumno UNI (8 caracteres numricos y 1 letra que va de A-K) b) la fecha dada en nmeros enteros dia mes ao, para aos mayores a 1900
2.- Disee un algoritmo que muestre un mensaje indicando si una palabra ingresada es palndromo o no. (ANA es palndromo , se lee igual de izq a der como de der a izq ) 3.-Disee un algoritmo que reciba una lnea de texto (80 caracteres) y muestre el nmero de palabras que contiene el texto.

FIIS

Arreglos de Cadenas
CARACTERISTICAS: 1.- Los elementos del vector son cadenas. 2.- Para acceder a una cadena se utiliza un sub-ndice. 3.- Para acceder a un carcter de cualquiera de sus elementos, se utiliza 2 sub-ndices Declaracin:
arreglo (tamao mximo) de cadena (numero mx de caract): nombre del vector

Universidad Nacional de Ingeniera

Ejemplo: arreglo (30) de cadena(10): Nombre Nombre(1) IRLA Nombre(1,3) M

FIIS

Ordenamiento de arreglo de vectores

Universidad Nacional de Ingeniera

Segn la cadena Segn un carcter de la cadena Ejms. 1.- Arreglo de apellidos de n alumnos // ordenamiento alfabetico (ascendente) del vector nombre

2.- Arreglo de cdigos de n productos. El cdigo est compuesto por 5 dgitos y 1 letra al final que representa la seccin a la que pertenece) //ordenamiento de los cdigos de productos por secciones

FIIS

PROBLEMA (EP-2008-1)

La clnica XXX ofrece seguros mdicos en varios planes (A, B, C) los cuales tienen coberturas diferentes. La cuota mensual que paga un cliente depende del tipo de plan que escoge y del nmero de familiares que asegura. Para cada nuevo cliente afiliado, en base a sus datos (apellido patero, apellido materno, nombre, ao, mes, nmero de inscripcin (entero de 3 cifras), la clnica genera un cdigo que consta de 12 caracteres con la siguiente estructura: Los cuatro primeros caracteres representan el ao de ingreso. Las dos siguientes caracteres el mes de ingreso. El sptimo, octavo y noveno carcter son las letras iniciales del apellido paterno, apellido materno y nombre del cliente (en ese orden). Los 3 ltimos caracteres corresponden al nmero de inscripcin del cliente. Disee un algoritmo que permita leer los n datos (n 300) clientes afiliados durante el ao 2007 y almacene el cdigo generado, el plan y la cuota mensual de cada cliente y luego: a) Presente por cada tipo de plan un listado (cdigo y cuota) de los clientes afiliados en el 2007 ordenados en forma decreciente segn el monto de sus cuotas b) Dado un mes del 2007, presente el plan o planes cuyo monto total en dicho mes sea el mayor

Universidad Nacional de Ingeniera