You are on page 1of 115

Unidad I "Conceptos Bsicos"

1.1 Introduccin
Los sistemas modernos de computacin consisten en una gran
conjuncin de elementos de circuitos (hardware) y de programacin
(software) que han sido diseados para proporcionar a la computacin
un ambiente productivo y hasta cierta medida agradable.
El trmino Sistema de Cmputo se utiliza para sealar lo que el
usuario emplea, en lugar del trmino Computadora. En los primeros
aos de la computacin, los usuarios del sistema deban interactuar
ms estrechamente con el hardware real que lo que es hoy necesario,
muchas funciones que deban realizar los usuarios mismos se
manejan ahora por software mediante Sistemas Operativos. El
sistema operativo crea un ambiente en el cual los usuarios pueden
preparar programas y ejecutarlos sin tener que entrar en los detalles
del hardware del sistema.
Para satisfacer el crecimiento de la demanda de medios de
computacin, es que se ha desarrollado la multiprogramacin , en la
cual varios usuarios emplean el sistema de forma simultnea, como

Windows por ejemplo.


Un trmino fundamental de esta materia es el Programa, el cual
es simplemente una secuencia de instrucciones que orienta a la
Unidad de Control de Procesamiento (CPU) en el desarrollo de los
clculos, el cual debe expresarse de forma que sea entendido por el
CPU. Un CPU slo puede entender instrucciones que estn

Instituto Tecnolgico de Quertaro

expresadas en trminos de su lenguaje mquina, pero esto se


explicar ms adelante.

1.2

Definicin

de

Lenguaje

de

Programacin
Un Lenguaje de Programacin es aqul que es utilizado para
escribir programas de computadoras que puedan ser entendidos por
ellas. Estos lenguajes se clasifican en tres grandes categoras :
Lenguaje Mquina
Lenguaje de Bajo nivel (ensamblador)
Lenguaje de Alto nivel.

1.3 Definicin de algoritmo


"Un algoritmo se define como un mtodo que se realiza paso a
paso para solucionar un problema que termina en un nmero finito de
pasos".
Las caractersticas fundamentales que debe cumplir todo algoritmo
son :
Debe ser preciso. e indicar el orden de realizacin de cada paso.
Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el
mismo resultado cada vez.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn
momento ; o sea debe tener un nmero finito de pasos.

La definicin de un algoritmo debe describir tres partes : Entrada,

Proceso y Salida

Instituto Tecnolgico de Quertaro

1.4 Algoritmos Cotidianos


Se refiere a todos aqullos algoritmos que nos ayudan a resolver
problemas diarios, y que los hacemos casi sin darnos cuenta de que
estamos siguiendo una metodologa para resolverlos.

Algunos ejemplos son :


Disear un algoritmo para cambiar una llanta a un
coche.
Inicio.
Traer gato.
Levantar el coche con el gato.
Aflojar tornillos de las llantas.
Sacar los tornillos de las
llantas.
6. Quitar la llanta.
7. Poner la llanta de repuesto.
8. Poner los tornillos.
9. Apretar los tornillos.
10. Bajar el gato.
11. Fin
1.
2.
3.
4.
5.

Un cliente ejecuta un pedido a una fbrica. La fbrica examina en


su banco de datos la ficha del

cliente, si el cliente es solvente

entonces la empresa acepta el pedido, en caso contrario rechazar


el pedido.
Pasos del algoritmo :

Instituto Tecnolgico de Quertaro

Inicio
Leer el pedido
Examinar ficha del cliente
Si el cliente es solvente aceptar
pedido,

en

rechazar

caso

contrario

pedido

Fin

Determinar el mayor de tres nmeros enteros.


Pasos del algoritmo :
1.-

Comparar el primero y el

segundo entero, deduciendo cul


es el

mayor.

2.- Comparar el mayor anterior


con el tercero y deducir cul es el
mayor.

Este

ser

el

resultado.

Los pasos anteriores se pueden descomponer en otros pasos


ms simples en los que se denomina refinamiento del algoritmo.

1.-

Obtener el primer nmero

(entrada), denominado NUM1

Instituto Tecnolgico de Quertaro

2.- Obtener el segundo nmero


(entrada), denominado NUM2
3.- Compara NUM1 con NUM2 y
seleccionar el mayor ; si los dos
enteros

son

iguales,

seleccionar NUM1. Llamar a este


nmero
4.-

MAYOR.

Obtener el tercer nmero

(entrada), y se denomina NUM3.


5.- Compara MAYOR con NUM3
y seleccionar el mayor ; si los dos
enteros
seleccionar

son
el

Denominar a este

iguales,
MAYOR.
nmero

MAYOR.
6.-

Presentar el valor MAYOR

(salida).
7.- Fin

1.5 Definicin de Lenguajes Algortmicos


Los algoritmos pueden describirse utilizando diversos lenguajes.
Cada uno de estos lenguajes permiten describir los pasos con mayor o
menor detalle.
La clasificacin de los lenguajes para algoritmos puede enunciarse de
la siguiente manera :

Instituto Tecnolgico de Quertaro

Lenguaje Natural.
Lenguaje de Diagrama de Flujo.
Lenguaje Natural de Programacin.
Lenguaje de Programacin de Algoritmos.

Lenguaje Natural
Es aqul que describe en espaol, para nuestro caso, los pasos a
seguir utilizando un vocabulario cotidiano. Se le conoce

como

lenguaje jerga cuando se utilizan trminos especializados de una


determinada ciencia, profesin o grupo.

Lenguaje de Diagrama de Flujo


Es aqul que se vale de diversos smbolos para representar las
ideas o acciones a desarrollar. Es til para organizar las acciones o
pasos de un algoritmo pero requiere de etapas posteriores para
implementarse en un sistema de cmputo.

Lenguaje Natural de Programacin


Son aqullos que estn orientados a la solucin de problemas
que se definen de una manera precisa. Generalmente son aplicados
para la elaboracin de frmulas o mtodos cientficos.

Tiene las siguientes caractersticas :


Evita la ambigedad (algo confuso que se puede interpretar de va
maneras).
Son precisos y bien definidos.
Utilizan trminos familiares al sentido comn.
Elimina instrucciones innecesarias.

Instituto Tecnolgico de Quertaro

Lenguaje de Programacin de Algoritmos


Es aqul que se utiliza para introducir en la computadora un
algoritmo especfico. Se les conoce tambin como Lenguaje de

Programacin.
Lenguaje de Programacin :
Es un conjunto de palabras, smbolos y reglas sintcticas
mediante los cuales puede indicarse a la computadora los pasos a
seguir para resolver un problema.
Los lenguajes de programacin pueden clasificarse por diversos
criterios, siendo el ms comn su nivel de semejanza con el lenguaje
natural, y su capacidad de manejo de niveles internos de la mquina.
Los principales tipos de lenguajes utilizados son tres :
Lenguaje Mquina.
Lenguaje de bajo Nivel (ensamblador).
Lenguajes de Alto Nivel.

Lenguaje Mquina
Son aqullos que estn escritos en lenguajes directamente
inteligibles por la mquina (computadora), ya que sus instrucciones
son cadenas binarias (cadenas o series de caracteres de dgitos 0 y 1)
que especifican una operacin y las posiciones (direccin) de memoria
implicadas en la operacin se denominan instrucciones de mquina o

cdigo mquina. El cdigo mquina es el conocido cdigo binario.

Instituto Tecnolgico de Quertaro

Las instrucciones en lenguaje mquina dependen del hardware


de la computadora y, por tanto, diferirn de una computadora a otra.

Ventajas del Lenguaje Mquina


Posibilidad
(transferir

un

memoria) sin
traduccin
supone

de

programa

la

necesidad de

posterior,

una

cargar

lo

velocidad

que
de

ejecucin superior a cualquier otro


lenguaje de programacin.

Desventajas del Lenguaje Mquina


Dificultad y lentitud en la codificacin.
Poca fiabilidad.
Gran dificultad para verificar y poner a punto los programas.
Los programas solo son ejecutables en el mismo procesador (CPU).

En la actualidad, las desventajas superan a las ventajas, lo que


hace prcticamente no recomendables a los lenguajes mquinas.

Lenguajes de Bajo Nivel


Son ms fciles de utilizar que los lenguajes mquina, pero al
igual que ellos, dependen de la mquina en particular. El lenguaje de
bajo nivel por excelencia es el ensamblador. Las instrucciones en

Instituto Tecnolgico de Quertaro

lenguaje

ensamblador

son

instrucciones

conocidas

como

nemotcnicos. Por ejemplo, nemotcnicos tpicos de operaciones


aritmticas son : en ingls : ADD, SUB, DIV, etc. ; en espaol : SUM,
RES, DIV, etc.
Una instruccin tpica de suma sera :
ADD M, N, P
Esta instruccin significa "sumar el contenido en la posicin de
memoria M al nmero almacenado en la posicin de memoria N y
situar el resultado en la posicin de memoria P" . Evidentemente es
ms sencillo recordar la instruccin anterior con un nemotcnico que
su equivalente en cdigo mquina.
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador, requiere de una
fase de traduccin al lenguaje mquina para poder ser ejecutado
directamente por la computadora.
El programa original escrito en lenguaje ensamblador se
denomina programa fuente y el programa traducido en lenguaje
mquina se conoce como programa objeto, el cual ya es directamente
entendible por la computadora.
Ventajas del lenguaje ensamblador frente al lenguaje mquina
Mayor facilidad de codificacin y, en general, su
velocidad de clculo.

Instituto Tecnolgico de Quertaro

Desventajas del lenguaje ensamblador


Dependencia total de la mquina lo que impide la transportabilidad de los
programas (posibilidad de ejecutar un programa en diferentes mquinas. El
lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple
Machintosh.

La formacin de los programadores es ms compleja que la correspondiente


a los programadores de alto nivel, ya que exige no solo las tcnicas de
programacin, sino tambin el conocimiento del interior de la mquina.

Los lenguajes ensamblador tienen sus aplicaciones muy


reducidas, se centran bsicamente en aplicaciones de tiempo real,
control de procesos y de dispositivos electrnicos.

Lenguajes de Alto Nivel


Estos lenguajes son los ms utilizados por los programadores.
Estn diseados para que las personas escriban y entiendan los
programas de un modo mucho ms fcil que los lenguajes mquina y
ensambladores. Un programa escrito en lenguaje de alto nivel es
independiente de la mquina (las instrucciones no dependen del
diseo del hardware o de una computadora en particular), por lo que
estos programas son portables o transportables. Los programas
escritos en lenguaje de alto nivel pueden ser ejecutados con poca o
ninguna modificacin en diferentes tipos de computadoras.

Ventajas de los lenguajes de alto nivel


El tiempo de formacin de los programadores es relativamente corto
Instituto Tecnolgico de Quertaro

comparado con otros lenguajes.


La escritura de programas se basa en reglas sintcticas similares a los
lenguajes humanos. Nombres de las instrucciones tales como READ,
WRITE, PRINT, OPEN, etc.
Las modificaciones y puestas a punto de los programas son ms fciles.
Reduccin del coste de los programas.
Transportabilidad.

Desventajas de los lenguajes de alto nivel


Incremento del tiempo de puesta a punto al necesitarse diferentes
traducciones del programa fuente para conseguir el programa definitivo.
No se aprovechan los recursos internos de la mquina que se explotan
mucho mejor en lenguajes mquina y ensambladores.
Aumento de la ocupacin de memoria.
El tiempo de ejecucin de los programas es mucho mayor.

Para una mejor compresin de este tema se definir el concepto de

programa, por ser este un trmino muy utilizado en el diseo


estructurado de algoritmos.

Programa

Es un conjunto de instrucciones escritas en un

lenguaje de programacin que indican a la computadora la secuencia


de pasos para resolver un problema.

1.6 Historia y Aplicacin de los Lenguajes


Algortmicos
Al igual que los idiomas sirven de vehculo de comunicacin entre
los seres humanos, existen lenguajes que realizan la comunicacin

Instituto Tecnolgico de Quertaro

entre los seres humanos y las computadoras. Estos lenguajes


permiten expresar los programas o el conjunto de instrucciones que el
operador humano desea que la computadora ejecute.
Los lenguajes de computadoras toman diferentes formas; los de
las primeras computadoras, como la ENIAC y la EDSAC, se
componan en el lenguaje real de las mquinas mismas. La dificultad
de programar las mquinas de esta manera limitaba drsticamente su
utilidad y proporcionaba un fuerte incentivo para que se desarrollaran
lenguajes de programacin ms orientados hacia la expresin de
soluciones con la notacin de los problemas mismos.
Los primeros lenguajes de programacin se conocieron como

Lenguajes

Ensambladores,

un

ejemplo

es:

TRANSCODE,

desarrollado para la computadora FERUT. En los lenguajes


ensambladores se define un cdigo especial llamado mnemnico para
cada una de las operaciones de la mquina y se introduce una
notacin especial para especificar el dato con el cual debe realizarse
la operacin.
A mediados de los aos 60s aparecieron los primeros lenguajes
de propsito general como FORTRAN, FORTRAN IV, ALGOL,
COBOL, BASIC, PL/I, ADA, C,C++, PASCAL, etc. pero el desarrollo
de nuevas tecnologas, tanto en arquitectura de computadoras como
en lenguajes de programacin, contina a paso acelerado, cada vez
con mayor velocidad, el panorama est cambiando de una etapa de
sistemas y lenguajes especialmente desarrollados para aplicaciones
individuales. Los lenguajes de programacin actuales son los
conocidos como Lenguajes visuales, como por ejemplo Visual Fox,
Visual Basic, Visual C .
Instituto Tecnolgico de Quertaro

Unidad II
" METODOLOGIA PARA LA SOLUCION DE PROBLEMAS POR
MEDIO DE COMPUTADORAS "

A fin de resolver un problema utilizando sistemas de cmputo,


debe seguirse una serie de pasos que permiten avanzar por etapas
bien definidas hacia la solucin.

Estas etapas son las siguientes :


Definicin del problema.
Anlisis de los datos.
Diseo de la solucin.
Codificacin.
Prueba y depuracin.
Documentacin.
Mantenimiento.

2.1 Definicin del problema


Est dada en s por el enunciado del problema, el cual debe ser
claro y complejo. Es importante que conozcamos exactamente "que se

Instituto Tecnolgico de Quertaro

desea obtener al final del proceso" ; mientras esto no se comprenda


no puede pasarse a la siguiente etapa.

2.2 Anlisis de los datos


Para poder definir con precisin el problema se requiere que las
especificaciones de entrada y salida sean descritas con detalle ya que
esto es un requisito para lograr una solucin eficaz.
Una vez que el problema ha sido definido y comprendido, deben
analizarse los siguientes aspectos :
Los resultados esperados.
Los datos de entrada disponibles.
Herramientas a nuestro alcance para manipular los datos y alcanzar
un resultado (frmulas, tablas, accesorios diversos).

Una medida aconsejable para facilitar esta etapa consiste en


colocarnos en lugar de la computadora deduciendo los elementos que
necesitaremos para alcanzar el resultado.

Ejemplo 2.1
Leer el radio de un crculo y calcular e imprimir su superficie y
circunferencia.
Anlisis
Las entradas de datos en este problema se concentran en el
radio del crculo. Dado que el radio puede tomar cualquier valor dentro
del rango de los nmeros reales, el tipo de datos radio debe ser real.

Instituto Tecnolgico de Quertaro

Las salidas sern dos variables : superficie y circunferencia que


tambin sern de tio real.
Entradas : Radio del crculo (variable RADIO).
Salidas : Superficie del crculo (variable AREA).
Circunferencia del crculo (variable CIRCUNFERENCIA).
Variables : RADIO, AREA, CIRCUNFERENCIA tipo real.

2.3 Diseo de la solucin


Una computadora no tiene capacidad para solucionar problemas
ms que cuando se le proporcionan los sucesivos pasos a realizar,
esto se refiere a la obtencin de un algoritmo que resuelva
adecuadamente el problema. En caso de obtenerse varios algoritmos,
seleccionar uno de ellos utilizando criterios ya conocidos.
Esta etapa incluye la descripcin del algoritmo resultante en un
lenguaje natural, de diagrama de flujo o natural de programacin.
Como puede verse, solo se establece la metodologa para
alcanzar la solucin en forma conceptual, es decir ; sin alcanzar la
implementacin en el sistema de cmputo.
De acuerdo al ejemplo 2.1 tenemos que la informacin
proporcionada constituye su entrada y la informacin producida por el
algoritmo constituye su salida. Los problemas complejos se pueden
resolver ms eficazmente por la computadora cuando se dividen en
subproblemas que sean ms fcil de solucionar.
El problema de clculo de la longitud y superficie de un crculo se
puede descomponer en subproblemas ms simples :
Leer datos de entrada.
Calcular superficie y longitud.

Instituto Tecnolgico de Quertaro

Escribir resultados (datos de salida).

2.4 Codificacin
Se refiere a la obtencin de un programa definitivo que pueda ser
comprensible para la mquina. Incluye una etapa que se reconoce
como compilacin.
Si la codificacin original se realiz en papel, previo a la
compilacin deber existir un paso conocido como transcripcin.

Programa Fuente
Esta escrito en un lenguaje de programacin. (pascal, C++,Visual
Fox, Visual Basic, etc).
Es entendible por el programador.

Programa Ejecutable
Est en lenguaje mquina.
Entendible por la mquina.

2.5 Prueba y depuracin

Instituto Tecnolgico de Quertaro

Una vez que se ha obtenido el programa ejecutable, este es


sometido a prueba a fin de determinar si resuelve o no el problema
planteado en forma satisfactoria.
Las pruebas que se le aplican son de diversa ndole y
generalmente dependen del tipo de problema que se est resolviendo.
Comnmente se inicia la prueba de un programa introduciendo datos
vlidos, invlidos e incongruentes y observando como reacciona en
cada ocasin.
El proceso de depuracin consiste en localizar los errores y
corregirlos en caso de que estos existan. Si no existen errores, puede
entenderse la depuracin como una etapa de refinamiento en la que
se ajustan detalles para optimizar el desempeo del programa.

2.6 Documentacin
Debido a que el programa resultante en esta etapa se encuentra
totalmente depurado (sin errores), se procede a la utilizacin para
resolver problemas del tipo que di origen a su diseo.
En vista de que esta utilizacin no podr ser supervizada en
todas las ocasiones por el programador, debe crearse un manual o
gua de operacin que indique los pasos a seguir para utilizar el
programa.

2.7 Mantenimiento
Se refiere a las actualizaciones que deban aplicarse al programa
cuando las circunstancias as lo requieran. Este programa deber ser

Instituto Tecnolgico de Quertaro

susceptible de ser modificado para adecuarlo a nuevas condiciones de


operacin.
Cualquier actualizacin o cambio en el programa deber reflejarse en
su documentacin.

3.1 Tipos de Datos


Un dato se define como la expresin general que describe los
objetos con los cuales opera una computadora. Los datos de entrada
se transforman por el programa, despus de las etapas intermedias,
en datos de salida.
Los datos se clasifican en diversas categoras, segn el tipo de
mquina o del lenguaje en uso. Generalmente podemos encontrar las
siguientes categoras :
Numricos
Lgicos
Cadenas

Datos Numricos
Son aqullos que representan una cantidad o valor determinado.
Su representacin se lleva a cabo en los formatos ya conocidos
(enteros, punto y fracciones decimales si estas existen).
Estos pueden representarse en dos formas distintas :
Tipo Numrico Entero (integer).
Tipo Numrico Real (real).

Instituto Tecnolgico de Quertaro

Enteros
Es un conjunto finito de los nmeros enteros. Los enteros son
nmeros completos, no tienen componentes fraccionarios o decimales
y pueden ser negativos y positivos.
Algunos ejemplos son :
37
-10 9
15.25
50

Reales
Consiste en un subconjunto de los nmeros reales. Estos nmeros
siempre tienen un punto decimal y pueden ser positivos o negativos.
Un nmero real consiste de un nmero entero y una parte decimal.
Algunos ejemplos son :
0.52 664.32
6.579 8.0
-9.3 -47.23

Cadenas
Son los datos que representan informacin textual (palabras,
frases, smbolos, etc). No representan valor alguno para efectos
numricos. Pueden distinguirse porque son delimitados por apstrofes
o comillas.

Instituto Tecnolgico de Quertaro

Se clasifica en dos categoras :


Datos tipo carcter (char)
Datos tipo Cadena (string)

Datos Tipo Carcter


Es un conjunto finito y ordenado de caracteres que la
computadora reconoce. Un dato de este tipo contiene solo un carcter.
Reconoce los siguientes caracteres :
Caracteres Alfabticos (A,B,C,Z,a,b,cz)
Caracteres Numricos (0,1,2,9)
Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, .)

Datos Tipo Cadena (string)


Es un sucesin de caracteres que se encuentran delimitados por
una comilla (apstrofe) o dobles comillas, segn el tipo de lenguaje de
programacin. La longitud de una cadena de caracteres es el nmero
de ellos comprendidos entre los separadores o delimitadores.
Ejemplos :
Hola Mortimer
12 de octubre de 1496
Enunciado cualquiera

Nota:

Los smbolos

disponibles para la formulacin de

caracteres y de cadenas son aqullos que se encuentran en el


codigo ASCII.
ASCII (American Standard Code for Information Interchange).
Instituto Tecnolgico de Quertaro

Lgicos
Tambin se le denomina Booleano, es aqul dato que solo puede
tomar uno de dos valores : Falso y verdadero.
Se utiliza para representar las alternativas (si/no) a determinadas
condiciones. Por ejemplo, cuando se pide si un valor entero sea primo,
la respuesta ser verdadera o falsa, segn sea.
Las categoras y tipos que se mencionaron anteriormente se
conocen como Tipos Simples, puesto que no poseen una estructura
compleja.
En forma adicional, cada lenguaje puede proporcionar la
utilizacin de Tipos Compuestos, siendo estos, datos que tienen una
estructura predeterminada.

Tipos Compuestos
Entre los principales tipos compuestos se encuentran los siguientes:
a.- SUBRANGO :

Son aqullos en los que se especifca con

precisin el intervalo de valores vlidos para un dato.


Ejemplos:
0..100

(son enumerativos de tipo entero)

'A'..'Z'

(son enumerativos de tipo cadena)

Los Reales no son vlidos para crear enumerativos, ya que su


intervalo no est definido.
b.- ENUMERATIVOS :

Son aqullos en los que se definen

individualmente los valores para un dato.


Ejemplos:

Instituto Tecnolgico de Quertaro

(0,25,40,52)

Siempre deben ponerse netre parntesis.

c.- DEFINIDOS POR EL USUARIO :

Son aqullos que el

programador crea para satisfacer las necesidades del programa en


diseo.

Constantes y variables
Una Constante es aqulla que no cambia de valor durante la
ejecucin de un programa (o comprobacin de un algoritmo en este
caso). Se representa en la forma descrita para cada categora.
Las Variables son aqullas que pueden modificar su valor durante
la ejecucin de un programa (idem).
Su representacin se da a traves de letras y smbolos
generalmente numricos a los que se les asigna un valor.
Ejemplos:
Constantes

Variables

36

Numricos

450.35
0.58

Cadena

A
Nom

'A'

Edad

'Juan'

Ciudad

'La Paz'

Estatura

Falso

Lgicos

Verdadero

3.2 Operadores y Operandos


Instituto Tecnolgico de Quertaro

Operadores
Un operador es el smbolo que determina el tipo de operacin o
relacin que habr de establecerse entre los operandos para alcanzar
un resultado.
Los operadores se clasifican en tres grupos:
Aritmticos.
Relacionales.
Lgicos.

1.- Operadores Aritmticos


Son aqullos que permiten la realizacin de clculos aritmticos.
Utilizan operandos numricos y proporcionan resultados numricos.
Operador

Operacin

Suma

Resta

Multiplicacin

Divisin real

Div

Divisin entera

Mod

Residuo

Exponenciacin

Ejemplos:

Instituto Tecnolgico de Quertaro

7+3 = 10 10 Div 4 = 2
7-3 = 4 20 Mod 3 = 2
7*3 = 21 5 Mod 7 = 5
10/4= 2.5 4 ^ 2 = 16

En la expresin 7+3, los valores 7 y 3 se denominan operandos.


El valor de la expresin 7+3 se conoce como resultado de la
expresin.
Todos los operadores aritmticos no existen en todos los
lenguajes de programacin, por ejemplo, en Fortran no existen Div y
mod.

Operadores Div y Mod


El smbolo / se utiliza para la divisin real, y el operador Div representa
la divisin entera.
Expresin

Resultado

Expresin

Resultado

10.5/3.0

3.5

10 Div 3

1/4

0.25

18 Div 2

2.0/4.0

0.5

30 Div 30

30/30

1.0

10 Mod 3

6/8

0.75

10 Mod 2

Instituto Tecnolgico de Quertaro

Operadores Relacionales
Permiten realizar comparaciones de valores de tipo numrico o
carcter. Estos operadores sirven para expresar las condiciones en los
algoritmos. Proporcionan resultados lgicos.
Operador

Significado

<

Menor que

>

Mayor que

Igual que

<=

Menor o igual que

>=

Mayor o igual que

<>

Diferente de

El formato general para las comparaciones es:

expresin1 operador de relacin expresin2


El resultado de la operacin ser Verdadero o Falso. As por ejemplo,
si A=4 y B=3, entonces:
A>B

Es

Verdadero

Instituto Tecnolgico de Quertaro

(A-2) < (B4)

Es

Falso

Los operadores de relacin se pueden aplicar a cualquiera de los


cuatro tipos de datos estndar: enteros, real, lgico y carcter.
A < K = Verdadero
A > a = Falso
MARIA < JUAN =
Falso (se considera la
primera letra)
JAIME > JORGE =
Falso

Nota: La comparacin de cadenas se rige por el cdigo ASCII.

Prioridad De Operadores Aritmticos y Relacionales


Determina el orden en que habrn de realizarse las operaciones
en una expresin determinada. Para obtener la prioridad se deben
conocer las siguientes reglas:
Las operaciones que estn encerradas entre parntesis se evalan primero. Si
existen diferentes parntesis anidados (interiores unos a otros), las
expresiones ms internas se evalan primero.

Instituto Tecnolgico de Quertaro

Las operaciones aritmticas dentro de una expresin suelen seguir el


siguiente orden de prioridad.

Operador

Prioridad

Alta

*, /, Div
+, -, Mod
Relacionales

Baja

En caso de coincidir varios operadores de igual prioridad en una


expresin o subexpresin encerrada entre parntesis, el orden de
prioridad en este caso es de izquierda a derecha.
Cuando se desea realizar una operacin con baja prioridad por
adelantado, debe agruparse a los operandos involucrados.
4 + 12 /2 = 10 (sin
agrupar)
(4 + 12) /2 = 8 (con
agrupador)

Ejemplo:
Obtener los resultados de las expresiones:
-4 * 7 + 2 ^ 3 / 4 - 5
Solucin:

Instituto Tecnolgico de Quertaro

-4 *7 + 2 ^

Resulta:
-4 * 7+ 8/4 -5
-28 + 8/4 -5
-28 + 2 - 5
-26 - 5
-31

Los parntesis tienen prioridad sobre el resto de las operaciones.


A * (B+3)

La constante 3 se suma primero al valor de B,

despus este resultado se multiplica

por el valor de

A.
(A*B) +3 A y B
A + (B/C) + D

Se multiplican primero y a continuacin se suma 3.


Esta expresin equivale a A+ B/C + D

Operadores Lgicos
Son aqullos que permiten la combinacin de condiciones para
formar una sola expresin lgica. Utilizan operandos lgicos y
proporcionan resultados lgicos tambin.

Instituto Tecnolgico de Quertaro

Operador

Relacin

not

Negacin (No)

and

Conjuncin (Y)

or

Disyuncin (O)

xor

Disyuncin
Exclusiva
(O/SOLO)

Se obtiene Verdadero si:


NOT

El operando es falso

AND

Ambos
operandos
verdaderos

OR

Al menos un operando es
verdadero

XOR

Solo uno de los operandos


son verdadero

AND

son

NOT(X)

NOT(Y)

Instituto Tecnolgico de Quertaro

X OR Y

X XOR

Prioridad De Los Operadores Lgicos


Los operadores aritmticos seguan un orden especfico o de
prioridad cuando existan ms de un operador en las expresiones. De
modo similar los operadores lgicos y relacionales tienen un orden de
prioridad.
Ejemplos:
Not 4 > 6

Produce un error, ya que el

operador not se aplica a 4.


Not (4 > 14)
(1.0<x) And (x<z +7.0)

Produce un valor verdadero.


Si x vale 7 y z vale 4, se

obtiene un valor falso.

Asignacin
La operacin de asignacin es el modo de darle valores a una
variable. La operacin de asignacin se representa por el smbolo u
operador

. La operacin de asignacin se conoce como instruccin

o sentencia de asignacin cuando se refiere a un lenguaje de


programacin.
A fin de manejar datos por medio de variables, estos pueden
recibir valores determinados. El tipo de los valores que pueden recibir
dependen de la declaracin previa de tales variables.
En una asignacin se resuelve, primeramente la expresin (al
lado derecho del smbolo de asignacin) y se asigna el resultado en la
variable.
El formato general de asignacin es:

Instituto Tecnolgico de Quertaro

Nom_variable

Expresin

Donde Expresin puede ser una

variable o constante, operacin,

funcin.
Ejemplo:
A

Significa que la variable A se le ha asignado el valor 9. La accin


de asignar es destructiva, ya que el valor que tuviera la variable antes
de la asignacin se pierde y se reemlaza por el nuevo valor. As en la
secuencia de operaciones:
A

30

189

Cuando se ejecutan, el ltimo valor que toma A ser 9, ya que los


valores anteriores a este han desaparecido.
Las acciones de asignacin se

clasifican segn sea el tipo de

expresiones : Aritmticas, Lgicas y de Caracteres.

Asignacin Aritmtica
Las expresiones en las operaciones de asignacin son aritmticas:
Suma

5+10+2

Se evala la expresin 5+10+2 y se asigna a

la variable Suma, es decir, 17

ser el valor que

toma Suma.

Asignacin Lgica
La expresin que se evala en la operacin de asignacin es lgica.
Supngase que M, N, y P son variables de tipo lgico.
M

8<5

M o (7 <= 12)

7>6

Instituto Tecnolgico de Quertaro

Tras ejecutar las operaciones anteriores, las variables M,N,P


toman los valores, falso, verdadero, verdadero respectivamente.

Asignacin de caracteres
La operacimn que se evala es de tipo caracter.
x

'3 de Mayo de 1999'

La accin de asignacin anterior asigna la cadena de caracteres '3 de


Mayo de 1999' a la variable de tipo carcter x.

Entrada y Salida de Informacin


Los clculos que realizan las computadoras requieren para ser
tiles la Entrada de los datos necesarios para ejecutar las operaciones
que posteriormente se convertirn en resultados, es decir, Salida.
Las operaciones de entrada permiten leer determinados valores y
asignarlos a determinadas variables. Esta entrada se conoce como
operacin de Lectura (read). Los datos de entrada se introducen al
procesador mediante dispositivos de entrada (teclado, unidades de
disco, etc). La salida puede aparecer en un dispositivo de salida
(pantalla, impresora, etc).

La operacin de salida se denomina

escritura (write).
En la escritura de algoritmos las acciones de lectura y escritura
se representan por los formatos siguientes
leer ( Nom_variable )
escribir (lista de variables de salida)
Ejemplo:

Obtener rea de un tringulo.

Entrada

Instituto Tecnolgico de Quertaro

Frmula (A= B*h/2)


Datos (Base, altura)
Proceso
Multiplicar Base y altura.
Dividir resultado de la multiplicacin anterior entre dos.
Mostrar resultado de divisin anterior.
Salida
Area del tringulo.

Algoritmo
Inicio
leer(B)
leer(h)
x

B*h

x/2

escribir(A)
Fin

3.3 Expresiones

Instituto Tecnolgico de Quertaro

Las expresiones son combinaciones de constantes, variables,


smbolos de operadores, parntesis y nombres de funciones
especiales. Las mismas ideas son utilizadas en notacin matemtica
tradicional ; por ejemplo :
a + b ( b+2)

Aqu los parntesis indican el orden de clculo.

Cada expresin toma un valor que se determina tomando los


valores de las variables y constantes implicadas y la ejecucin de las
operaciones indicadas.
Una expresin consta de operadores y operandos. Segn sea el
tipo de objetos que manipulan, las expresiones se clasifican en :
Aritmticas
Relacionales
Lgicas
Carcter

El resultado de la expresin numrica es de tipo numrico ; el


resultado de una expresin relacional y de una expresin lgica es de
tipo lgico ; el resultado de una expresin carcter es de tipo carcter.

1.- Expresiones Aritmticas


Las expresiones aritmticas son anlogas a las frmulas
matemticas. Las variables y constantes son numricas (real o entera)
y las operaciones son las aritmticas.
+
*

suma
resta
multiplicacin

Instituto Tecnolgico de Quertaro

/
**, ^
div
mod

divisin
exponenciacin
divisin entera
mdulo (resto)

Los clculos que implican tipos de datos reales y enteros suelen


dar normalmente resultados del mismo tipo si los operandos lo son
tambin. Por ejemplo, el producto de operandos reales produce un
real.
Ejemplo :
4x6

se representa por 4 * 6

39

se representa por 3 ^ 9

18 div 6

se representa por 18/6

2.- Expresiones Lgicas (booleanas)


Es una expresin que solo pueden tomar los valores de :
verdadero y falso. Las expresiones lgicas se forman combinando
constantes lgicas, variables lgicas y otras expresiones y otras
expresiones lgicas utilizando los operadores lgicos not, and y or, y
los operadores relacionales (de relacin o comparacin) =, >, <, <=,
>=, <>.

UNIDAD IV
"TECNICAS DE DISEO"

Instituto Tecnolgico de Quertaro

Con el objeto de facilitar el diseo de algoritmos y la organizacin


de los diversos elementos de los que se componen se utilizan algunas
tcnicas que muestran una metodologa a seguir para resolver los
problemas. Estas tcnicas hacen que los programas sean ms fciles
de escribir, verificar, leer y mantener.
Algunas de las tcnicas ms conocidas son :
Top Down (diseo descendente)
Botton Up
Warnier Orr

4.1 Top Down


Es una tcnica para disear que consiste en tomar el problema
en forma inicial como una cuestin global y descomponerlo
sucesivamente en problemas ms pequeos y por lo tanto, de
solucin ms sencilla.
La descomposicin del problema original (y de las etapas
subsecuentes), puede detenerse cuando los problemas resultantes
alcanzan un nivel de detalle que el programador o analista pueden
implementar fcilmente.
El problema se descompone en etapas o estructuras jerrquicas,
de modo que se puede considerar cada estructura como dos puntos
Instituto Tecnolgico de Quertaro

de vista : lo que hace?, y cmo lo hace ?. Si se considera un nivel n de


refinamiento, las estructuras se consideran de la siguiente forma :
nivel n :

Vista desde el exterior.

"lo que hace ?"


Nivel n+1 :

Vista desde el interior.

"cmo lo hace ?"


Ejemplo de un diseo descendente (top-down ) de un control de
almacn :

4.2 Botton Up

Instituto Tecnolgico de Quertaro

Esta tcnica consiste en partir de los detalles ms precisos del


algoritmo

completando

suscesivamente

mdulos

de

mayor

complejidad, se recomienda cuando ya se cuenta con experiencia y ya


se sabe lo que se va a hacer.

Conforme se va alcanzando el desarrollo de mdulos ms


grandes se plantea como objetivo final la resolucin global del
problema.

Este mtodo es el inverso del anterior y es recomendable cuando


se tiene un modelo a seguir o se cuenta con amplia experiencia en la
resolucin de problemas semejantes.

La tcnica de Botton Up es frecuentemente utilizada para la


realizacin de pruebas a sistemas ya concluidos.

4.3 Warnier Orr


Es una tcnica que utiliza una representacin semejante a la de
cuadros sinpticos para mostrar el funcionamiento y organizacin de
los elementos que conforman el algoritmo.
Bsicamente, utiliza una notacin de llaves para organizar los
mdulos y se auxilia en la siguiente simbologa para indicar
operaciones de control.

Instituto Tecnolgico de Quertaro

Smbolo

Significado

OR (uno, otro o varios)


XOR (uno u otro, solo uno)

(x,y)

Nota :

puede hacerse tantas veces desde x hasta y

Los diagramas Warnier Orr se leen de izquierda a derecha

y de arriba hacia abajo.


Ejemplo de un diagrama de Warnier Orr, de un control de almacn

Instituto Tecnolgico de Quertaro

(0,n) = De cero veces a n veces


(1,n) = De una vez a n veces

UNIDAD V
"TENICAS

PARA

ALGORITMOS"

Instituto Tecnolgico de Quertaro

LA

FORMULACION

DE

Las tcnicas analizadas en la unidad anterior permiten un diseo


global del algoritmo, pero ocasionalmente pueden desatender detalles
especficos de este.

Las tres tcnicas de formulacin de algoritmos ms populares son :


Diagrama de flujo
Pseudocdigo
Diagramas estructurados

5.1 Diagramas de
Flujo
Se basan en la utilizacin de diversos smbolos para representar
operaciones especficas.

Se les llama diagramas de flujo porque

los smbolos utilizados se conectan por medio de flechas para indicar


la secuencia de operacin.
La simbologa utilizada para la elaboracin de diagramas de flujo
es variable y debe ajustarse a un patrn definido previamente.
SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO
Smbolo

Instituto Tecnolgico de Quertaro

Funcin

Instituto Tecnolgico de Quertaro

Ejemplo:
Calcular el salario neto de un trabajador en funcin del nmero
de horas trabajadas, precio de la hora de trabajo y considerando unos
descuentos fijos al salario bruto en concepto de impuestos (20 por
100).

Instituto Tecnolgico de Quertaro

Ejemplo:
Realizar un diagrama de flujo que permita mostrar en pantalla un
mensaje de mayora o minora de edad segn sea el caso para un
nombre especfico.

Instituto Tecnolgico de Quertaro

5.2 Pseudocdigo

Instituto Tecnolgico de Quertaro

Es un lenguaje de especificacin de algoritmos. El uso de tal


lenguaje hace el paso de codificacin final (esto es, la traduccin a un
lenguaje de programacin) relativamente fcil.
El pseudocdigo naci como un lenguaje similar al ingls y era un
medio representar bsicamente las estructuras de control de
programacin estructurada. Se considera un primer borrador, dado
que el pseudocdigo tiene que traducirse posteriormente a un
lenguaje de programacin. Cabe sealar que el pseudocdigo no
puede ser ejecutado por una computadora.
La ventaja del pseudocdigo es que en su uso en la planificacin
de un programa, el programador se puede concentrar en la lgica y en
las estructuras de control y no preocuparse de las reglas de un
lenguaje especfico. Es tambin fcil modificar el pseudocdigo si se
descubren errores o anomalas en la lgica del programa, adems de
todo esto es fcil su traduccin a lenguajes como pascal, COBOL, C,
FORTRAN o BASIC.
El pseudocdigo utiliza para representar las acciones sucesivas
palabras reservadas en ingls (similares a sus homnimos en los
lenguajes de programacin), tales como star,begin, end, stop, if-then-

else, while, repeat-until.etc

Secuencia
Inicio
accin1
accin2
Instituto Tecnolgico de Quertaro

:
accin n
Fin

Decisin
Simple
si condicin entonces
a
c
c
i

n
1
a
c
c
i

n
2
:

Instituto Tecnolgico de Quertaro

a
c
c
i

n
n
Doble
si condicin then
accin1
accin2
:
en caso contrario
accin1
acci2

Iteraccin
Fija

Instituto Tecnolgico de Quertaro

para

var.

inicial

hasta

hacer
a
c
c
i

n
1
a
c
c
i

n
2
:
a
c
c
i

n
n

Instituto Tecnolgico de Quertaro

Entera
final

Condicional al inicio
mientras

condicin

hacer
a
c
c
i

n
1
a
c
c
i

n
2
:
a
c
c
i

Instituto Tecnolgico de Quertaro

Condicional al final
Repetir
accin1
accin2
:
accin n
Hasta que condicin

Seleccin
casos selector de
valor1 : accin1
accin2

valor2 : accin1
accin2

Instituto Tecnolgico de Quertaro

valor n : accin1
accin2

Ejercicio :
Se requiere preguntar dos valores, y a continuacin ofrecer un
men con las operaciones bsicas (+, -, *, /). Despus de presentar el
resultado se ofrecer la posibilidad de una nueva operacin.
Declaracin de variables :
Real : X, Y, RESPUESTA
Entero : OPCION
Carcter : OP

Inicio
Repetir
escribir(Primer valor :
)
leer(X)
escribir(Segundo
valor : )
leer(Y)
escribir(1) Suma )

Instituto Tecnolgico de Quertaro

escribir(2) Resta )
escribir(3)
Multiplicacin )
escribir(4) Divisin )
escribir(Qu
operacin

deseas

realizar ? : )
leer(OPCION)
casos OPCION de
1:
RESULTA
DO
X+Y
2:
RESULTA
DO

X-

Y
3:
RESULTA
DO
X*Y
4 : si Y=0
entonces

Instituto Tecnolgico de Quertaro

escribir(
Error )

RESULTADO

en

caso

contrario

RESULTADO

X/Y
escribir

(Resultado :
,RESULTADO)
escribir(Deseas
otro clculo : [S/N] )
leer(OP)
Hasta que RES = N
Fin

Ejercicio :
Preguntar un nombre y repetirse en pantalla tantas veces como se
desee. (preguntar cantidad de repeticiones), indicando el nmero de
repeticin.
Declaracin de variables

Instituto Tecnolgico de Quertaro

Cadena : nom
entero : x, n

Inicio
escribir(Nombre : )
leer(nom)
escribir(Cuntas

veces

quieres

repetirlo ? : )
leer(n)
para x

1 hasta n hacer

escribir(x.- , nom)
Fin

5.3 Diagramas Estructurados (nassi-schneiderman)

El diagrama N-S de Nassi-Schneiderman, tambin conocido


como diagrama de Chapin, es como un diagrama de flujo en el que se
omiten las flechas de unin y las cajas son contiguas. Las acciones
sucesivas se escriben en cajas sucesivas, y, como en los diagramas
de flujo, se pueden escribir diferentes acciones en una caja.
Los Diagramas Estructurados, son una tcnica que permite
formular algoritmos mediante una representacin geomtrica y de
asignacin de espacios de un bloque especfico.

Instituto Tecnolgico de Quertaro

Un algoritmo se representa de la manera siguiente:

Una estructura condicional en N-S se representa de la siguiente


manera :

Ejemplo: Se desea calcular el salario neto semanal de un trabajador


en funcin del nmero de horas trabajadas y la tasa de impuestos.

Instituto Tecnolgico de Quertaro

6.1 Estructura Secuencial


Es aqulla 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 suscesivamente hasta el fin del
proceso. La estructura secuencial tiene una entrada y una salida. Su
representacin grfica es la siguiente:

ESTRUCTURA SECUENCIAL

....

Instituto Tecnolgico de Quertaro

DIAGRAMA N-S DE UNA ESTRUCTURA SECUENCIAL

PSEUDOCODIGO DE UNA ESTRUCTURA SECUENCIAL


Inicio
:
:
acciones
:
:
fin

Ejemplo:

Instituto Tecnolgico de Quertaro

Calcular el salario neto de un trabajador en funcin del nmero


de horas trabajadas, precio de la hora de trabajo y considerando unos
descuentos fijos al sueldo bruto en concepto de impuestos (20 por
100).

Pseudocdigo
Inicio
{clculo salario neto}
leer nombre, horas, precio_hora
salario_bruto
impuestos

horas * precio
0.20 * salario_bruto

salario_neto
salario_bruto_impuestos
escribir

nombre,

salario_bruto,

salario_neto_bruto, salario_neto
Fin

Diagrama de flujo

Instituto Tecnolgico de Quertaro

Diagrama N-S

Instituto Tecnolgico de Quertaro

6.2 Condicionales
La especificacin formal de algoritmos tiene realmente utilidad
cuando el algoritmo requiere una descripcin ms complicada que una
lista sencilla de instrucciones. Este es el caso cuando existen un
nmero de posibles alternativas resultantes de la evaluacin de una
determinada condicin.
Las estructuras selectivas se utilizan para tomar decisiones
lgicas; de ah que se suelan denominar tambin estructuras de

decisin o alternativas.
En las estructuras selectivas se evala una condicin y en
funcin del resultado la misma se realiza una opcin u otra. Las
condiciones

se

especifcan

usando

expresiones

lgicas.

La

representacin de una estructura selectiva se hace con palabras en


pseudocdigo (if, then, else o bien en espaol si, entonces, sino), con
una figura geomtrica en forma de romba o bien con un tringulo en el
interior de una caja rectangular.

Las estructuras selectivas o alternativas pueden ser:


Simples
Mltiples

Alternativa Simple (si-entonces/if-then)


La estructura alternativa simple si-entonces (en ingls if-then o
bien IF-THEN ) ejecuta una determinada accin cuando se cumple

Instituto Tecnolgico de Quertaro

una determinada condicin. La seleccin si-entonces evala la


condicin y . . .
Si la condicin es verdadera, entonces ejecuta la accin S1 (o
acciones caso de ser S1 una

accin compuesta y constar de

varias acciones).
Si la condicin es falsa, entonces no hacer nada.
A continuacin se muestra la grfica de la estructura condicional
simple.

Pseudocdigo en espaol
Si
<condicin
>
Entonces

<accin
S1>

Instituto Tecnolgico de Quertaro

Fin_si

Pseudocdigo en ingls
If
<condicin
> then
<accin
S1>
end_if

Diagrama N-S

Alternativas Mltiples (segn_sea, caso de / case)


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 estrucura de decisin mltiple evaluar una expresin que
podr tomar n valores distintos 1,2,3,4,..n . Segn que elija uno de

Instituto Tecnolgico de Quertaro

estos valores en la condicin, se realizara una de las n acciones, o lo


que es igual, el flujo del algoritmo seguir un determinado camino
entre los n posibles.
La representacin grfica se muestra a continuacin:

Diagrama de Flujo

Diagrama N-S
Modelo 1

Instituto Tecnolgico de Quertaro

Modelo 2

Pseudocdigo
En ingls la estructura de decisin mltiple se representa

Case expresin of
[e1]: accin S1
[e2]: accin S2
:
[en]: accin Sn

else
accin Sx

end_case

Ejemplo:
Se desea disear un algoritmo que escriba los nombres de los
das de la semana en funcin del valor de una variable DIA introducida
por teclado.
Los das de la semana son 7; por consiguiente, el rango de
valores de DIA ser 1..7, y caso de que DIA tome un valor fuera de
este rango se deber producir un mensaje de error advirtiendo la
situacin anmala.

Instituto Tecnolgico de Quertaro

Inicio
Leer DIA
Segn_sea DIA hacer
1: escribir('Lunes')
2: escribir('Martes')
3: escribir('Mircoles')
4: escribir('Jueves')
5: escribir('Viernes')
6: escribir('Sabado')
7: escribir('Domingo')
else
escribir('Error')
fin_segn
fin

Estructuras Repetitivas
Las estructuras que repiten una secuencia de instrucciones
un nmero determinado de veces se denominan Bucles y se

Instituto Tecnolgico de Quertaro

denomina Iteracin al hecho de repetir la ejecucin de una secuencia


de acciones. Entre las estructuras repetitivas se encuentran:
Mientras (while)
Repetir (repeat)
Desde (for)

1.- Estructura Mientras (while)


La estructura repetitiva while, es aqulla en que el cuerpo del bucle
se repite mientras se cumple una determinada condicin, su
representacin grfica es:

Pseudocdigo en espaol
Mientras condicin hacer
Accin

Pseudocdigo en ingls
while condicin do

S1

<Acciones>
Accin S2
:
accin Sn

Instituto Tecnolgico de Quertaro

:
End_while

Fin_mientras

Diagrama N-S

Ejemplo:
Contar los nmeros enteros positivos introducidos por teclado. Se
consideran dos variables enteras NUMERO y CONTADOR (contar el
nmero de enteros positivos). Se supone que se leen nmeros
positivos y se detiene el bucle cuando se lee un nmero negativo o
cero.

Pseudocdigo
Inicio
contador

Leer (numero)
Mientras numero > 0 hacer
contador
Leer (numero)
Fin_Mientras

Instituto Tecnolgico de Quertaro

contador+1

Escribir('El nmero de enteros positivos es : ',


contador)
Fin

Diagrama de Flujo

Representacin en N-S

Instituto Tecnolgico de Quertaro

Ver:
Repetir (repeat)
Desde (for)

UNIDAD VII
"ARREGLOS"

Las variables que hemos utilizado hasta ahora nos permiten el


almacenamiento de un solo valor a la vez.

Para resolver cierto tipo de problemas con datos mltiples en


forma eficiente, se requiere almacenamiento en conjunto. A esta
organizacin de elementos se le conoce con el nombre de arreglo.

Otra definicin de arreglo ms completa (Luis Joyanes A.), es un


conjunto finito y ordenado de elementos homogneos. La propiedad
Instituto Tecnolgico de Quertaro

"ordenado" significa que el elemento primero, segundo, terceronsimo de un arreglo puede ser identificado. Los elementos de una
arreglo debern ser homogneos, es decir, del mismo tipo de datos.
Por ejemplo un arreglo puede estar compuesto de todos sus
elementos de tipo cadena, otro puede tener sus elementos de tipo
entero, etc.

Al tratar el tema de arreglos es necesario conocer el trmino de

dimensin.
Dimensin
0
1
2
3

Descripcin
Un solo punto.
(vector o lista) Una recta. Contiene largo.
(matriz o tabla) Contiene largo y ancho.
(cubo) Tiene largo, ancho y fondo.

Declaracin de un Arreglo
Nom_variable : Arreglo [dimensin] de Nom_tipo

En donde dimensin especifica :


<subndice inferior> <subndice superior>
En el orden : Fila, Columna, Fondo.

Instituto Tecnolgico de Quertaro

Ejemplo de una declaracin :

0 Dimensin :
x

20

donde x, es de tipo

Entero.

1 Dimensin :
5
1

x[2]

x : arreglo [1..4] de Enteros.

2 Dimensiones :
1

x[2,4]

x : arreglo [1..3, 1..4] de Enteros.

Instituto Tecnolgico de Quertaro

3 Dimensiones :
x[1,4,2]
x:

arreglo[1..3,

1..4,

1..2]

de

Enteros.

Las operaciones que se pueden realizar con arreglos durante el


proceso de resolucin de un problema son :
Asignacin
Lectura/Escritura
Recorrido (acceso secuencial)
Actualizar (aadir, borrar, insertar)
Ordenacin
Bsqueda

7.1 Vectores
Son aqullos de una sola dimensin, por lo que tambin son llamados

arreglos Unidimensionales.
Ejemplo :
Un vector de una dimensin llamado CALIF, que consta de n
elementos.

Instituto Tecnolgico de Quertaro

calif(1)

calif(n2)

calif(2)

calif(n1)

calif(n)

El subndice o ndice de un elemento (1, 2 n) designa su


posicin en la ordenacin del vector. Otras posibles notaciones del
vector son :
a1,

a2,,an

En

matemticas

algunos

lenguajes(BASIC)
A(1), A(2),A(n)
A[1],

A[2],A[n]

En

programacin (Pascal)

Los vectores se almacenan en memoria central de la


computadora en un orden adyacente. As, un vector de 50 elementos
denominado NUMEROS se representa grficamente por 50 posiciones
de memoria sucesivas.

Memoria
NUMEROS(1)

Direccin x

NUMEROS(2)

Direccin x+1

NUMEROS(3)

Direccin x+2

:
:

Instituto Tecnolgico de Quertaro

NUMEROS(50)

Direccin x+49

Cada elemento de un vector se puede procesar como si fuese


una variable simple al ocupar una posicin de memoria. As :
NUMEROS(25)

75

(almacena el valor 75 en la posicin 25a del

vector NUMEROS y la

instruccin de

salida : escribir NUMEROS(25).

Declaracin
nom _arreglo = arreglo[liminf..limsup] de tipo
donde :
nom_arreglo :

nombre vlido del arreglo.

liminf..limsup :

lmites inferior y superior del rango del arreglo.

tipo :

tipo de datos de los elementos del arreglo : entero, real,

carcter.
NOMBRES= arreglo [1..10] de carcter
Significa que NOMBRES es un arreglo (array) unidimensional de
10 elementos (1 a 10) de tipo carcter.

Asignacin
NOMBRES(8)

Ana

Asigna el valor Ana al elemento 8 del vector NOMBRES

Lectura/Escritura de Datos

Instituto Tecnolgico de Quertaro

La Lectura/Escritura de datos en un arreglo u operaciones de


entrada/salida normalmente se realizan con estructuras repetitivas,
aunque puede tambin hacerse con estructuras selectivas. Las
instrucciones simples de lectura/escritura se representarn como :
leer A
escribir A

Lectura del vector A


Escritura del vector

A
leer V(5)

Leer el elemento

V(5) del vector V

Acceso Secuencial al Vector (recorrido)


Se puede acceder a los elementos de un vector para introducir
datos (escribir) en el o bien para visualizar su contenido (leer). Estas
operaciones se realizan utilizando estructuras repetitivas, cuyas
variables de control (por ejemplo I) se utilizan como subndices del
vector (por ejemplo, X(I). El incremento del contador del bucle
producir el tratamiento sucesivo de los elementos del vector.
Ejemplo :
Lectura de 15 valores enteros de un vector denominado TOTAL.

TOTAL= array [1..15] de entero


desde i

1 hasta 15 hacer

leer TOTAL(i)

Instituto Tecnolgico de Quertaro

fin _desde

Si se cambian los limite inferior y superior, por ejemplo, 5 y 12, el


bucle de lectura sera :
desde i

5 hasta 12 hacer

leer TOTAL(i)
fin_desde

La salida o escritura de vectores se representa de un modo similar.


desde i

1 hasta 15 hacer

escribir TOTAL(i)
fin_desde
Visualiza todo el vector completo (un elemento en cada lnea
independiente).

Actualizacin de un Vector
Puede constar de tres operaciones ms elementales :
a) Aadir elementos (aade un nuevo elemento al final del vector)
Un arreglo A se ha dimensionado a 6 elementos, pero solo se
han asignado 4 valores a los elementos A(1), A(2), A(3), A(4), se
podrn aadir dos elementos ms con una simple accin de
asignacin.
A(5)

15

A(6)

Instituto Tecnolgico de Quertaro

b.- Insertar elementos (introduce un elemento en el interior de un


vector)
Ejemplo :

Se tiene un arreglo NOM de 6 elementos de nombres de

personas, en orden alfabtico y se desea insertar un nuevo nombre.

{Calcular la posicin ocupada por el elemento a insertar} P


{Inicializar contador de inserciones} i n.
mientras i >= P hacer
{transferir el elemento actual hacia abajo, a la posicin i+1}
NOM(i+1)

NOM(i)

{decrementar contador}
i

i-1

fin_mientras
{Insertar el elemento en la posicin P}
NOM(P)

nuevo elemento

{Actualizar el contador de elementos del vector}


n

n+1

fin

Instituto Tecnolgico de Quertaro

c) Borrar elementos (Elimina elementos de un vector)


Algoritmo de Borrado
Inicio
{se utilizar una variable auxiliar AUX, que
contendr el valor del elemento que se desea
borrar}
AUX

NOM(i)

desde i

j hasta N-1 hacer

{llevar elemento j+1 hacia arriba}


NOM(i)

NOM(i+1)

fin_desde
{actualizar contador de elementos}
{ahora tendr un elemento menos, N-1}
N

N-1

Fin

Referencia a un elemento de Arreglo


variable de arreglo [subndice]
Ejemplo :
x

x[3]

escribir (x[2])

Instituto Tecnolgico de Quertaro

? 9
1

Ejercicio :
Se desea la lectura y desplegado de 5 nombres. Resuelva el
problema por cada uno de los siguientes criterios :
a)

Lectura y desplegado alternados.

b)

Todas

las

lecturas,

todos

los

desplegados.
a) variables :
string : nom
entero : x

Inicio
Para x

1 hasta 5

hacer
escribir(Nombre ? )
leer(nom)
escribir( La persona nmero, x, se llama : ,nom)
Fin

Instituto Tecnolgico de Quertaro

Nota :

No se utilizaron arreglos porque no se requera de

almacenamiento mltiple.
b) variables :
nom : Arreglo[1..5] de string
x : Entero

Inicio
para x

1 hasta 5 hacer

escribir(Dame

el

nombre nmero,x, ?)
leer(nom[x])
para x

1 hasta 5 hacer

escribir(La persona nmero ,


x, se llama : ,nom[x])
Fin

Ordenacin de Arreglos
Existen diversos mtodos para ordenar los elementos de un
arreglo. El ms conocido de ellos (no el mejor) es el Mtodo de la

Burbuja.

Instituto Tecnolgico de Quertaro

El mtodo consiste en hacer un recorrido por el arreglo


comparando parejas de elementos ; si estos no estn en el orden
deseado, se procede a intercambiarlos.
Al finalizar el recorrido se verifica la cantidad de intercambios, si
esta es 0 se asume que el arreglo est ordenado ; en caso contrario
se inicia nuevamente el recorrido.
Las parejas de elementos que se comparan deben ser contiguos
(elemento1 y elemento2, elemento2 y elemento3, etc). El nmero total
de comparaciones es n-1 (donde n es la cantidad de elementos).
Ejemplo :
Se requiere la ordenacin de una lista con 5 valores enteros
previamente introducidos.
Variables :
LISTA : arreglo[1..5] de entero
x, aux : entero
cambio : boleano

Inicio
Para x

1 hasta 5 hacer

escribir(Dame
valor,x, :)

Instituto Tecnolgico de Quertaro

el

leer( LISTA[x])
repetir
cambio falso
para x

1 hasta 4 hacer

si LISTA[x] > LISTA[x+1] entonces


aux

LISTA[x]

LISTA[x]

LISTA[x+1]

LISTA[x+1]
cambio

aux
verdadero

fin_si_entonces
hasta cambio = falso
escribir(Lista ordenada)
para x

1 hasta 5 hacer

escribir(Elemento nmero,x,
es,LISTA[x])
Fin

7.2 Matrices
Se puede considerar como un vector de vectores. Es, por
consiguiente, un conjunto de elementos, todos del mismo tipo, en el

Instituto Tecnolgico de Quertaro

cual el orden de los componentes es significativo y en el que se


necesitan especificar dos subndices para poder identificar a cada
elemento del arreglo.
Tambin se les llama arreglos Bidimensionales, ya que una tabla
ser utilizada cuando se requiere de establecer relaciones por
renglones y columnas entre datos de un tipo comn.
1

3 4... J

... N

B(I,J)

Se considera que este arreglo tiene dos dimensiones (una


dimensin por cada subndice) y necesita un valor para cada
subndice, y poder identificar un elemento individual. En notacin
estndar, normalmente el primer subndice se refiere a la fila del
arreglo, mientras que el segundo subndice se refiere a la columna del
arreglo. Es decir, B(I,J), es el elemento de -b que ocupa la Ia y la Ja
columna como se muestra en la figura anterior.
Un ejemplo tpico de un arreglo Bidimensional es un tablero de
ajedrez. Se puede representar cada posicin o casilla del tablero
mediante un arreglo, en el que cada elemento es una casilla y en el
que su valor ser un cdigo representativo de cada figura del juego.
Ejemplo:

Instituto Tecnolgico de Quertaro

Se desea registrar las edades de 4 grupos de personas, cada


uno de ellos con 5 elementos. Los datos debern ser mostrados en
forma posterior.
variables:
edad: arreglo(1..4,1..5) de entero
g,p: enteros

Inicio
para g

1 hasta 4 hacer

escribir(Grupo : ,g)
para p

1 hasta 5 hacer

escribir(Edad de la persona ,p)


leer(edad[g,p])
para g

1 hasta 4 hacer

escribir(Grupo ,g)
para p

1 hasta 5 hacer
escribir(persona

Tiene,edad[g,p],aos)
Fin

Instituto Tecnolgico de Quertaro

,p,

Ejemplo:
Se tienen 4 fbricas cada una de ellas con 6 empleados. Se
desea registrar los salarios y mostrarlos posteriormente. En forma
alternada deber leerse tambin el nombre de cada empleado.
Durante el desplegado de los gastos se indicar el nombre y salario
del empleado mejor pagado de cada fbrica as como el total de
nmina ( de cada fbrica).
variables:
Nom: arreglo[1..4,1..6] de string
salario: arreglo[1..4,1..6] de entero
fab, emp, total, cont, lug, zuc: entero

Inicio
para fab

1 hasta 4 hacer

para emp

1 hasta 6 hacer

escribir(Empleado : ,emp)
escribir(Nombre del empleado :)
leer(nom[fab,emp])
escribir(Salarios del empleado : )
leer(sal[fab,emp])

Instituto Tecnolgico de Quertaro

para fab

1 hasta 4 hacer

total

cont

sal[fab,1]

escribir(Fbrica, fab)
para emp

1 hasta 6 hacer

escribir(El empleado ,emp, se


llama,nom[fab,emp],

gana

,salario[fab,emp])
total

total + salario[fab,emp]

si salario[fab,emp] >= cont entonces


cont

salario[fab,emp]

lug

fab

zuc

emp

finEntonces
escribir(El

mejor

pagado

es

,nom[lug,zuc],y gana ,salario[lug,zuc])


escribir(El total es : ,total)
Fin

8.1 Definicin
Una cadena (string) de caracteres es un conjunto de caracteres
(incluido el blanco), que se almacenan en un rea contigua de la
memoria. Pueden ser entradas o salidas a/desde una computadora.
Instituto Tecnolgico de Quertaro

La longitud de una cadena es el nmero de caracteres que


contiene. La cadena que no contiene ningn carcter se le denomina
cadena vaca o nula. y su longitud es cero; no se debe confundir con
una cadena compuesta de solo espacios en blanco.
La representacin de las cadenas suele ser con comillas simples
o dobles, las comillas actan como separadores, algunos ejemplos:
12 de Octubre de 1492
Hola, como ests?

MEXICO ES GRANDE

La cadena puede contener entre sus separadores, cualquier


carcter vlido del cdigo aceptado por el lenguaje y la computadora;
el blanco es uno de los caracteres ms utilizado.
Una Subcadena es una cadena de caracteres que ha sido
extrada de otra de mayor longitud.

12 de

es una subcadena de 12 de

Octubre de 1492
como ests
como ests?

Instituto Tecnolgico de Quertaro

es una subcadena de Hola,

XI

es una subcadena de

MEXICO ES GRANDE

Datos Tipo Carcter


Anteriormente se analizaron los diferentes tipos de datos y entre
ellos existan el dato tipo carcter (char) que se incorpora en
diferentes lenguajes de programacin, bien con este nombre, o bien
como datos tipo cadena.
Constantes
Una constante tipo carcter es un conjunto de caracteres vlidos
encerrados entre comillas, para evitar confundirlos con nombres de
variables, operadores, enteros, etc
Variables
Una variable de cadena o tipo carcter es una variable cuyo valor
es una cadena de caracteres. Las variables de tipo carcter se deben
declarar en el algoritmo y segn el lenguaje tendrn una notacin u
otra.
var NOMBRE, DIRECCION, PAIS: carcter
Cadenas de Longitud Fija
Se consideran vectores de la longitud declarada, con blancos a
izquierda o derecha si la cadena no tiene la longitud declarada. As el
ejemplo siguiente:
E S T A
1

C A S A
2

Instituto Tecnolgico de Quertaro

E S
8 9

10

U N A
11

12 13

14

15

R U I N A /// ///
16

17

18

19

20

21

22

23

24

Se declar con una dimensin de 24 caracteres y los dos ltimo se


rellenan con blancos.
Cadenas de Longitud Variable con un Mximo
Se considera un puntero, con dos campos que contienen la longitud
mxima y la longitud actual.

E S T A

20 17

C A S A

E S

G U A Y /// /// ///

Donde:
20 = Longitud mxima
17 = Longitud actual

Instrucciones Bsicas con Cadenas


Las instrucciones bsicas : asignar y entrada/salida (leer/escribir)
se realizan de un modo similar al tratamiento de dichas instrucciones
con datos numricos.
Asignacin
Si la variable NOMBRE ha sido declarada como carcter
var NOMBRE : carcter
La instruccin de asignacin debe contener en el lado derecho de la
asignacin una constante tipo carcter (una cadena) o bien otra
variable tipo carcter. As:

NOMBRE

Juan Gonzlez

Instituto Tecnolgico de Quertaro

Significa que la variable NOMBRE toma por valor la cadena Juan


Gonzlez

Entrada/Salida
La entrada/salida desde una computadora se puede realizar en
modo carcter, para ello se asignar una cadena de caracteres a una
variable tipo cadena.
var A,B,C,D: carcter
las instrucciones:
leer A,B
escribir C,D

Asignarn a A y B las cadenas introducidas por el teclado y


visualizar o imprimirn en el dispositivo de salida las cadenas que
representan las variables C y D.

8.2 Funcin de cadenas de caracteres


El tratamiento de cadenas es un tema importante, debido
esencialmente a la gran cantidad de informacin que se almacena en
ellas. Segn el tipo de lenguaje de programacin elegido se tendr
mayor o menor facilidad para la realizacin de operaciones.
Las operaciones con cadenas ms usuales son:
Clculo de la longitud
Comparacin
Concatenacin
Extraccin de subcadenas
Instituto Tecnolgico de Quertaro

Bsqueda de informacin

1.- CALCULO DE LA LONGITUD DE UNA CADENA


La longitud de una cadena, como ya se ha comentado, es
el nmero de caracteres de la cadena. As:
'Hola'

Tiene 4 caracteres

La operacin de determinacin de la longitud de una


cadena se representar por la funcin Longitud, cuyo
formato es:
Longitud (cadena)
La funcin longitud tiene como argumento una cadena,
pero su resultado es un valor numrico entero.
Ejemplo:
longitud('Como ests?')
longitud(' ')

Proporciona 11.
Cadena de un blanco,

proporciona 1.
longitud(' Hola')

Cadena 'Hola' relleanda de

un blanco a la izquierda para tener longitud de 5.

2.- COMPARACION
Es una operacin muy importante sobre todo en la
clasificacin de datos tipo carcter, que se utiliza con
Instituto Tecnolgico de Quertaro

mucha frecuencia en aplicaciones de proceso de datos


(clasificaciones de listas, tratamiento de textos, etc).
Los criterios de comparacin se basan en el orden
numrico del cdigo o juego de caracteres que admite la
computadora o el propio lenguaje de programacin. En
nuestro lenguaje algortmico utilizaremos el cdigo ASCII
como cdigo numrico de referencia.
En la comparacin de cadenas se pueden considerar dos
operaciones ms elementales: igualdad y desigualdad.
Ejemplos:
'LUIS' < 'LUISITO'

verdadera

'ANA' < 'MARTA'

verdadera

'BARTOLO' >= 'BARTOLOME'

falsa

3.- CONCATENACION
La concatenacin es la operacin de reunir varias
cadenas de caracteres en una sola, pero conservanso el
orden de los caracteres en cada una de ellas. El smbolo
que representa la concatenacin vara de unos lenguajes
a otros. Los ms utilizados son:
+

//

&

Las cadenas para concatenarse pueden ser constantes o


variables.

Instituto Tecnolgico de Quertaro

Ejemplos:
'Mayo ' + 'de 1999'
x

'Lenguaje'

'Ensamblador'

x+' '+y

= 'Mayo de 1999'

z= 'Lenguaje Ensamblador'

4.- SUBCADENAS
Esta operacin permite la extraccin de una parte
especfica de una cadena: subcadena.
Subcadena (cadena, inicio, longitud)
Cadena:

Es la cadena de la que debe extraerse una

subcadena.
Inicio:

Es un nmero o expresin numrica entera

que corresponde a la posicin

inicial

de la subcadena.
Longitud:

Es la longitud de la subcadena.

Ejemplos:
subcadena ('abcdefgh',3,6)

Equivale a

'cdef'
subcadena ('Tecnolgico',1,3)
Instituto Tecnolgico de Quertaro

Equivale a

'Tec'

subcadena ('Mxico',5,2)

Equivale a

'co'

5.- BUSQUEDA
Esta operacin localiza si una determinada cadena
forma parte de otra cadena ms grande o buscar la
posicin en que aparece un determinado carcter o
secuencia de caracteres en un texto.
El resultado de la funcin es un valor entero
Posicin (cadena, subcadena)
subcadena:

Es el texto que se trata de localizar.

Ejemplo:
nombre

'Marielena'

Posicin (nombre,'elena')

Produce 5.

La funcin Posicin, al tomar tambin un valor numrico


entero se puede utilizar en expresiones aritmticas o en
instrucciones de asignacin a variables numricas.

Otras funciones de cadenas


a) Insertar Cadenas

Instituto Tecnolgico de Quertaro

Si se desea insertar una cadena C dentro de un texto o


cadena ms grande, se debe indicar la posicin. El
formato es:
Insertar (t, p, s)
t

Texto o cadena donde se va a insertar.

Posicin a partir de la cual se va a insertar.

Subcadena que se va a insertar.

Ejemplo:
Insertar ('Tecnolgico',4,'XXX') =

'TecXXXnolgico'

Insertar ('Juan O',5,'de la')=

'Juan de la O'

b) Borrar
Elimina una subcadena que comienza en la posicin p y
tiene una longitud l.
Borrar (t, p ,l)
t

Texto o cadena de donde se va a eliminar una

subcadena.
p

Posicin a partir del cual se va a insertar.

Longitud de la subcadena a eliminar.

Instituto Tecnolgico de Quertaro

Ejemplo:
Borrar ('Tecnolgico',4,2)

'Teclgico'

c) Conversin Cadenas/Nmeros
Existen funciones o procedimientos en los lenguajes
de programacin (val y str) que permiten convertir un
nmero en una cadena y viceversa.

En nuestros

algoritmos los denotaremos por valor y cadena.


Valor (cadena)
en

un

nmero;

Convierte la cadena

siempre

que

la

cadena fuese de
dgitos numricos.
Cadena (valor)

numrico en una cadena.


Ejemplos:
Valor ('12345') = 12345
Cadena(12345)= '12345'

Funciones internas

Instituto Tecnolgico de Quertaro

Convierte un valor

Las operaciones que se requieren en los programas


exigen

en

numerosas

ocasiones,

adems

de

las

operaciones aritmticas bsicas, ya tratadas, un nmero


determinado

de

operaciones

especiales

que

se

denominan funciones internas, incorporadas o estndar.


Por ejemplo la funcin ln se puede utilizar para determinar
logaritmo de un n se puede utilizar para determinar
logaritmo de un nmero y la funcin sqrt calcula la raz
cuadrada de un nmero positivo. Existen otras funciones
que

se

utilizan

para

determinar

las

funciones

trigonomtricas.

La siguiente tabla muestra las funciones internas ms


usuales, siendo x el argumento de la funcin.

Funcin

Descripcin

abs(x)

Valor absoluto de
Entero o real
x

igual
argumento

arctan(x)

Arcotangente de x Entero o real

real

cos(x)

Coseno de x

Entero o real

real

exp(x)

Exponencial de x

Entero o real

real

ln(x)

Logaritmo de x

Entero o real

real

log10(x)

Logaritmo
decimal de x

Entero o real

real

round(x)

Redondeo de x

Real

entero

sin(x)

Seno de x

Entero o real

real

sqr(x)

Cuadrado de x

Entero o real

igual
argumento

Instituto Tecnolgico de Quertaro

Tipo_Argumento Resultado
que

que

sqrt(x)

Raz cuadrada de
Entero o real
x

real

trunc(x)

Truncamiento de
real
x

entero

8.3 Manipulacin de cadenas

Ejercicio 1:
Contar el nmero de letras 'i' de una frase terminada en un punto. Se
supone que las letras pueden leerse independientemente.

Algoritmo letras_i
var
N: entera
Letra: carcter
Inicio
N

repetir
leer(Letra)
si Letra = 'i' entonces
N

N+1

fin si
hasta que Letra = '.'

Instituto Tecnolgico de Quertaro

escribir('La frase tiene :', N,' letras i')


Fin

Ejercicio 2:
Aceptar un nombre y proporcionar la cantidad de caracteres que
contiene.
Inicio
escribir('Cul es el nombre : ')
Leer(nom)
escribir('Tu nombre tiene ', Longitud(nom),' letras')
Fin
Ejercicio 3:
Pedir una cadena que contenga una vez la letra F ('F'). Deber
informarse la posicin donde fue encontrada, el carcter previo y el
siguiente.

Inicio
escribir('Dame cadena que contenga [F] ')
leer(cad)
x

Posicin('F', cad)

escribir('La letra 'F' se encuentra en la


posicin : ',x)

Instituto Tecnolgico de Quertaro

escribir('El carcter anterior es : ' ,


Subcadena(cad, x-1,1))
escribir('El carcter siguiente es : ',
Subcadena(cad, x+1, 1))
Fin

Ejercicio 4:
Leer dos caracteres y deducir si estn en orden alfabtico.
variables:
CAR1, CAR2 : carcter.
Algoritmo Comparacin
Inicio
Leer CAR1, CAR2
Si CAR1 <= CAR2 entonces
escribir('Si se encuentran en orden')
sino
escribir('Desordenados')
Fin_si
Fin

Ejercicio 5:

Instituto Tecnolgico de Quertaro

Se desea eliminar los blancos de una frase dada terminada en un


punto. Se supone que es posible leer los caracteres de la frase de
uno a uno.

Anlisis del problema


Para poder efecturar la lectura de la frase almacena sta en un
arreglo de caracteres (F), de modo que F(1) contiene el primer
carcter i-simo del a frase dada. Construiremos una frase nueva sin
blancos en otro arreglo G.

Algoritmo
Los pasos a dar para la realizacin del algoritmo son:
Inicializar contador de letras de la nueva frase G.
Leer el primer carcter.
Repetir
Si el primer carcter no es en blanco, entonces escribir en
el lugar siguiente del arreglo F

leer carcter siguiente de la

frase dada.
Hasta que el ltimo carcter se encuentre.
Escribir la nueva frase (G), ya sin blancos.

Variables:
F : array de caracteres de la frase dada.
G : array de caracteres de la nueva frase dada.
i : Constador del array F.
j : Constador del array G.
Algoritmo Blanco
Inicio
i

Instituto Tecnolgico de Quertaro

leer F(i)
Repetir
Si F(i) <> ' ' entonces
j

j+1

G(j)

F(i)

Fin si
i

i+1

leer F(i)
Hasta que F(i) = '.'
{escritura de la nueva frase G}
Desde i

1 a j hacer

escribir G(i)
Fin Desde
Fin
Ejercicio 6:
Encontrar un espacio en blanco en una cadena.
variables:
x: entero
nom,a,b : cadena
Inicio
leer(nom)
x

Posicin (' ',nom)

Subcadena (nom,1,x-1)

Subcadena (nom, x+1, x)

Instituto Tecnolgico de Quertaro

Fin
Ejercicio 7:
Solicitar un nombre y mostrarlo con la inicial en mayscula.
variables:
nom,a,b: cadena
x,y

: carcter

: entero

Inicio
escribir('Introduce nombre : ')
leer(nom)
x

Subcadena(nom,1,1)

MAYUSCULA(x)

Longitud (nom)

Subcadena (nom, 2, z-1)

Concatenacin

y+a

Escribir('Te llamas : ' , concatenacin)


Fin

Nota:

MAYUSCULA es una funcin para

minsculas a maysculas.

Instituto Tecnolgico de Quertaro

convertir letras

UNIDAD IX
"MANEJO DE MODULOS"

9.1 Concepto y caractersticas

Mdulo:
Es aqul que est constituido por una o varias instrucciones
fsicamente contiguas y lgicamente encadenadas, las cuales se
pueden referenciar mediante un nombre y pueden ser llamadas desde
diferentes puntos de un programa.

Un mdulo puede ser:


Un programa
Una funcin
Una subrutina (o procedimiento)

Caractersticas de un Mdulo
Los mdulos deben tener la mxima cohesin y el mnimo
acoplamiento. Es decir, deben tener la mxima independencia entre
ellos.

Instituto Tecnolgico de Quertaro

La salida del mdulo debe ser funcin de la entrada, pero no de


ningn estado interno. En la creacin de los mdulos deben cumplirse
tres aspectos bsicos: descripcin, rendimiento y diseo.
En la descripcin se definen las funciones y objetivos del
programa. Para obtener el mximo rendimiento se ha de comprobar
que el programa realice el proceso aprovechando al mximo todos los
recursos de los que dispone. En cuanto al diseo, se debe comprobar
la estructura que sigue el mdulo, as como la estructura de los datos
y la forma de comunicaciones entre los diversos y diferentes mdulos.
Conforme se extiende el tamao de los algoritmos, se hace ms
difcil su revisin, actualizacin y/o correccin.
Una poltica comn para solventar este problema consiste en la
modularizacin. Esto significa que el algoritmo se fragmenta en partes
llamadas mdulos. En realidad, es un mtodo de diseo que tiende a
dividir el problema, de forma lgica, en partes perfectamente
diferenciadas que pueden ser analizadas, programadas y puestas a
punto independiente.
Realmente la programacin modular es un intento para disear
programas, de forma tal que cualquier funcin lgica pueda ser
intercambiada sin afectar a otras partes del programa.
Algunas ventajas de utilizar mdulos son:
Un programa modular es fcil de mantener y modificar.
Un programa modular es ms fcil de escribir y depurar (ejecutar, probar y
poner a punto).
Un programa modular es ms fcil de controlar. El desglose de un problema
en mdulos permite encomendar los mdulos ms complejos a los
programadores ms experimentados y los ms sencillos a los programadores
nveles.
Posibilita el uso repetitivo de las rutinas en el mismo o en diferentes
programas.

Instituto Tecnolgico de Quertaro

Desventajas del uso de mdulos:


No se dispone de algoritmos formales de modularidad, por lo que a veces
los programadores no tienen claras las ideas de los mdulos.
La programacin modular requiere ms memoria y tiempo de ejecucin.

Objetivos de la programacin modular:


Disminuir la complejidad.
Aumentar la claridad y fiabilidad.
Disminuir el coste.
Aumentar el control del proyecto.
Facilitar la ampliacin del programa mediante nuevos mdulos.
Facilitar las modificaciones y correcciones al quedar automticamente
localizadas en un mdulo.

9.2 Clasificacin de los mdulos

Pueden ser de dos tipos:


Funciones
Procedimientos

Estas funciones y procedimientos se escriben solamente una vez,


pero pueden ser referenciados (invocadas) en diferentes puntos de un
programa, tantas veces como se requiera de modo que se puede
evitar la duplicacin innecesaria del cdigo.

Instituto Tecnolgico de Quertaro

Funciones
Las funciones son bloques de instrucciones que tienen por objeto
el alcanzar un resultado que sustituir a la funcin en el punto de
invocacin (las funciones devuelven un resultado).
Cada funcin se evoca utilizando su nombre en una expresin
con los argumentos actuales o reales encerrados entre parntesis.
Para hacer una referencia a una funcin se invoca mediante un
nombre y en caso de existir, una lista de parmetros actuales
necesarios (argumentos). Los argumentos deben coincidir en
cantidad, tipo y orden con los de la funcin que fue definida. La
funcin devuelve un valor nico.
Las funciones a que se hace referencia, se conocen como
funciones de usuario puesto que son definidas por l mismo y
permiten su uso en forma idntica a las funciones estndares. Para
coordinar e iniciar el procesamiento, se utiliza un mdulo principal que
es colocado al final del algoritmo.

Declaracin de funciones
funcin nombre_funcin (par1, par2,par3,...) : tipo_del_resultado

Inicio
accin1
accin2
:

Instituto Tecnolgico de Quertaro

nombre_funcin
Resultado_Obtenido
Fin

Donde:
par1,par2 ....

Lista de parmetros formales o argumentos.

nombre_funcin

Nombre asociado de la funcin, que ser un

nombre de identificador vlido.


accin1, accin2,..

Instrucciones que constituyen la definicin de

las funcin, y que debe contener

una accin sola

de asignacin que asigne un valor al nombre de la funcin.

Ejemplo:
Obtener el sexto carcter de un nombre y si dicho carcter no
existe, se asumir un asterisco como tal.

Funcin SEXTO(n:string):carcter
Inicio
si longitud(n) >= 6 entonces
SEXTO

Subcadena(n,6,1)

en caso contrario
SEXTO

Instituto Tecnolgico de Quertaro

Fin

Invocacin a las funciones


Una funcin puede ser llamada slo mediante referencia de la forma
siguiente:
nombre_funcin (lista de parmetros actuales)
Donde:
nombre_funcin

Funcin que llama.

Lista de param. actuales

Constantes, variables, expresiones,

valores de funciones,
nombres de funciones o procedimientos.
Una llamada a la funcin implica los siguientes pasos:
A cada parmetro formal se le asigna el valor real de su correspondiente
parmetro actual (esta correspondencia se ver ms tarde y se denomina
llamada por valor).

Se ejecuta el cuerpo de acciones de la funcin.

Se devuelve el valor de la funcin y se retorna al punto de llamada.

Ejercicio:
Calcular la potencia de un nmero.

Instituto Tecnolgico de Quertaro

funcion POTENCIA(x,n :entero): entero


Inicio
y

Desde i
y

1 hasta abs(n) hacer

y*x

fin Desde
si n < 0 entonces
y

1/y

Fin si
POTENCIA

Fin

9.3 Operacin de Mdulos y sus Parmetros

PASO DE PARAMETROS
Existen diferentes mtodos para el paso de parmetros a
subprogramas, un mismo programa puede producir diferentes
resultados bajo diferentes sistemas de paso de parmetros.

Los parmetros se clasifican de la siguiente manera:

Instituto Tecnolgico de Quertaro

1. Entradas:

Las entradas proporcionan valores desde el

programa que llama y que se utilizan

dentro de un

procedimiento. En los subprogramas funcin

las entradas son los

argumentos

en el sentido tradicional.

2. Salidas:

Las salidas producen los resultados del subprograma;

de nuevo si se utiliza el caso

una funcin, mientras que con

procedimientos pueden calcularse cero, una o varias salidas.


3.

Entradas/Salidas:

Un solo parmetro se utiliza para mandar

argumentos a un programa y para

devolver resultados.

Los mtodos ms empleados para realizar el paso de parmetros son:


Paso por valor (parmetro valor).
Paso

por

referencia

direccin

(parmetro

variable).

PASO POR VALOR


Se utiliza en muchos lenguajes de programacin (pascal, basic,
modula-2, algol, etc), debido a su analoga con los argumentos de una
funcin, donde los valores se proporcionan en el orden de clculo de
resultados. Los parmetros se tratan como variables locales y los
valores iniciales se proporcionan copiando los valores de los
correspondientes argumentos.
Los parmetros formales (locales a la funcin), reciben como
valores iniciales los valores de los parmetros actuales y con ello se
ejecutan las acciones descritas en el subprograma.

Instituto Tecnolgico de Quertaro

La llamada por valor no devuelve informacin al programa que


llama.

PASO POR REFERENCIA


Se utiliza cuando se requiere que ciertos parmetros sirvan como
parmetros de salida, es decir, devuelvan los resultados a la unidad o
programas que llama. La unidad que llama pasa a la unidad llamada
la direccin del parmetro actual (que est en el mbito de la unidad
llamante). Una referencia al correspondiente parmetro formal se
tratra como una referncia a la posicin de memoria, cuya direccin se
ha pasado. Entonces una variable pasada como parmetro real es
compartida, es decir, se puede modificar directamente por el
subprograma.

Si

el

parmetro actual

es

una

expresin,

el

subprograma recibe la direccin de la posicin temporal que contiene


el valor de la expresin.

9.4 Criterios de Modularizacin

Criterios de la programacin modular


Con independencia de las tcnicas, los requisitos que debe cumplir la
programacin modular son:

Establecimiento de un organigrama modular: Se realiza mediante


bloques, en el que cada bloque corresponde a un mdulo y muestra
grficamente la comunicacin entre el mdulo principal y los secundarios.

Instituto Tecnolgico de Quertaro

Descripcin del mdulo principal: Debe ser claro y conciso, reflejando los
punto fundamentales del programa.

Descripcin de los mdulos bsicos o secundarios: Los mdulos bsicos


deben resolver partes bien definidas del problema. Solo pueden tener un
punto de entrada y un punto de salida. Si un mdulo es complejo de
resolver, conviene se subdivida en submdulos. Ningn mdulo puede ser
llamado desde distintos puntos del mdulo principal.

Normas de la programacin : Dependern del anlisis de cada problema y


de las normas generales o particulares que haya recibido el programador.

Bibliografa

"Algoritmos y Estructura de Datos"


Wirth, Niklaus
Editorial Mc Graw Hill
Mxico,

1989

"Introduccin a la Ciencia de las Computadoras, Enfoque Algortmico"


Jean Paul Tremblay
Richard B. Bunt
Editorial Mc Graw Hill

Instituto Tecnolgico de Quertaro

Mxico,

1990

"Fundamentos de Programacin, Algoritmos y Estructura de Datos"


Luis Joyanes Aguilar
Editorial Mc Graw Hilll
Mxico,

1994

"Introduccin a la Computacin y la Programacin Estructurada"


Guillermo Levine
Editorial Mc Graw Hill
Mxico,

1991

"Introduction to the Design and Analysis of Algorithms"


Goodman, Hedetmienic
Editorial Mc Graw Hill
U.S.A.,

"Diagraming Techniques for Analysis and Programmers"


James Martn & Carma Mc Clure
Editorial Prentice Hall

Instituto Tecnolgico de Quertaro

1991

You might also like