Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Apunte - Algoritmos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 23

Algoritmos

Apunte
MARTINEZ, Silvia Natalia

Apuntes de la materia Programación I.-


INTRODUCCION

El desarrollo de algoritmos es un tema fundamental en el diseño de programas por lo cual


el alumno debe tener buenas bases que le sirvan para poder desarrollar de manera fácil y
rápida sus programas.

Estos apuntes servirán de apoyo al estudiante para facilitar a desarrollar su capacidad


analítica y creadora, para de esta manera mejorar su destreza en la elaboración de
algoritmos que sirven como base para la codificación de los diferentes programas que
tendrá que desarrollar a lo largo de la materia.

1
CONCEPTOS BÁSICOS Y METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS POR MEDIO DE COMPUTADORAS.
Definición de Algoritmo
La palabra algoritmo se deriva de la traducción al latín de la palabra árabe
alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre
manipulación de números y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solución a un problema específico.

Tipos de Algoritmos

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

Lenguajes Algorítmicos

Es una serie de símbolos y reglas que se utilizan para describir de manera explícita
un proceso.
Tipos de Lenguajes Algorítmicos

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


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

Metodología para la solución de problemas por medio de computadora

Definición del Problema

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

Análisis del Problema

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


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

Una recomendación muy práctica es el que nos pongamos en el lugar de la computadora


y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para
producir los resultados esperados.

2
Diseño del Algoritmo

Las características de un buen algoritmo son:


Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayoría de las variantes que se puedan
presentar en la definición del problema.
Debe ser finito en tamaño y tiempo de ejecución.

Codificación

La codificación es la operación de escribir la solución del problema (de acuerdo a la


lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en
un código reconocible por la computadora, la serie de instrucciones detalladas se le
conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje
de alto nivel.

Prueba y Depuración

Los errores humanos dentro de la programación de computadoras son muchos y


aumentan considerablemente con la complejidad del problema. El proceso de identificar y
eliminar errores, para dar paso a una solución sin errores se le llama depuración.

La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de
la solución, por ello se debe considerar con el mismo interés y entusiasmo.
Resulta conveniente observar los siguientes principios al realizar una depuración,
ya que de este trabajo depende el éxito de nuestra solución.

Documentación

Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados,


procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra. Por ello la
documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras
modificaciones (mantenimiento).

La documentación se divide en tres partes:

Documentación Interna
Documentación Externa
Manual del Usuario

Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente
para hacer más claro el entendimiento de un proceso.

Documentación Externa: Se define en un documento escrito los siguientes puntos:


Descripción del Problema
3
Nombre del Autor
Algoritmo (diagrama de flujo o pseudocódigo)
Diccionario de Datos
Código Fuente (programa)

Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el
fin de que el usuario obtenga el resultado deseado.

Mantenimiento

Se lleva acabo después de terminado el programa, cuando se detecta que es necesario


hacer algún cambio, ajuste o complementación al programa para que siga trabajando de
manera correcta. Para poder realizar este trabajo se requiere que el programa este
correctamente documentado.

4
ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

1 Tipos de datos
2 Expresiones
3 Operadores y operandos
4 Identificadores como localidades de memoria

OBJETIVO EDUCACIONAL:

El alumno:

Conocerá las reglas para cambiar fórmulas matemáticas a expresiones válidas para la
computadora, además de diferenciar constantes e identificadores y tipos de datos
simples.

1 Tipos De Datos

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple
carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza
del conjunto de valores que puede tomar una variable.

Numéricos
Simples Lógicos
Alfanuméricos (string)
Tipos de
datos Arreglos (Vectores, Matrices)
Estructurados Registros
(Def. por el Archivos
usuario) Apuntadores

Tipos de Datos Simples

Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye
a los números enteros y los reales. Este tipo de datos permiten realizar operaciones
aritméticas comunes.

Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que
representan el resultado de una comparación entre otros datos (numéricos o
alfanuméricos).

Datos Alfanuméricos (String): Es una secuencia de caracteres alfanuméricos que


permiten representar valores identificables de forma descriptiva, esto incluye nombres de
personas, direcciones, etc. Es posible representar números como alfanuméricos, pero
estos pierden su propiedad matemática, es decir no es posible hacer operaciones con
ellos. Este tipo de datos se representan encerrados entre comillas.

Ejemplo:
“Instituto Tecnológico N° 4”
“2014”
5
2 Expresiones

Las expresiones son combinaciones de constantes, variables, símbolos de


operación, paréntesis y nombres de funciones especiales. Por ejemplo:

a+(b + 3)/c

Cada expresión toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecución de las operaciones indicadas.
Una expresión consta de operadores y operandos. Según sea el tipo de datos que
manipulan, se clasifican las expresiones en:

Aritméticas
Relaciónales
Lógicas

3 Operadores y Operandos

Operadores: Son elementos que relacionan de forma diferente, los valores de una o más
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Aritméticos
Tipos de Operadores Relaciónales
Lógicos

Operadores Aritméticos: Los operadores aritméticos permiten la realización de


operaciones matemáticas con los valores (variables y constantes).
Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o
reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el
resultado es real.

Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)

Ejemplos:
Expresión Resultado
7/2 3.5
12 mod 7 5
4 +2*5 14

Prioridad de los Operadores Aritméticos


6
Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con
paréntesis anidados se evalúan de dentro a fuera, el paréntesis mas interno se evalúa
primero.
Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

1.- ^ Exponenciación
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de
izquierda a derecha.

Ejemplos:
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2 46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

Operadores Relaciónales:

Se utilizan para establecer una relación entre dos valores.


Compara estos valores entre si y esta comparación produce un resultado de certeza o
falsedad (verdadero o falso).
Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas)
Tienen el mismo nivel de prioridad en su evaluación.
Los operadores relaciónales tiene menor prioridad que los aritméticos.

Operadores Relaciónales
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Diferente
= Igual

Ejemplos:
Si a = 10 b = 20 c = 30

a+b>c Falso
a-b<c Verdadero
a-b=c Falso
a*b<>c Verdadero

Ejemplos no lógicos:
a<b<c
10 < 20 < 30
T < 30 (no es lógico porque tiene diferentes operandos)

Operadores Lógicos:
7
Estos operadores se utilizan para establecer relaciones entre valores lógicos.
Estos valores pueden ser resultado de una expresión relacional.

Operadores Lógicos
And Y
Or O
Not Negación

Operador And
Operando1 Operador Operando2 Resultado
T AND T T
T F F
F T F
F F F

Operador Or
Operando1 Operador Operando2 Resultado
T OR T T
T F T
F T T
F F F

Operador Not
Operando Resultado
T F
F T

Ejemplos:
(a < b) and (b < c)
(10<20) and (20<30)
T and T
T

Prioridad de los Operadores Lógicos


Not
And
Or

Prioridad de los Operadores en General


1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or

8
Ejemplos:
a = 10 b = 12 c = 13 d =10

1) ((a > b)or(a < c)) and ((a = c) or (a > = b))


F T F F
T F
F

2) ((a > = b) or (a < d)) and (( a > = d) and (c > d))


F F T T
F T
F

3) not (a = c) and (c > b)


F T
T

4 Identificadores

Los identificadores representan los datos de un programa (constantes, variables,


tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar
una posición en la memoria de la computadora, que nos permite accesar a su contenido.

Ejemplo: Nombre
Num_hrs
Calif2

Reglas para formar un Identificador

Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener


espacios en blanco.
Letras, dígitos y caracteres como la subraya ( _ ) están permitidos después del primer
carácter.
La longitud de identificadores puede ser de hasta 8 caracteres.

Constantes y Variables

Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la


ejecución del programa.
Ejemplo:
pi = 3.1416

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


temporalmente un dato durante la ejecución de un proceso, su contenido puede cambia
durante la ejecución del programa. Para poder reconocer una variable en la memoria de la
computadora, es necesario darle un nombre con el cual podamos identificarla dentro de
9
un algoritmo.

Ejemplo:
área = pi * radio ^ 2

Las variables son: el radio, el área y la constate es pi

Clasificación de las Variables

Numéricas
Por su Contenido Lógicas
Alfanuméricas (String)
Variables
De Trabajo
Por su Uso Contadores
Acumuladores

Por su Contenido

Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos,


positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto
decimal. Ejemplo:
iva=0.15 pi=3.1416 costo=2500

Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos
representan el resultado de una comparación entre otros datos.
Variables Alfanuméricas: Está formada por caracteres alfanuméricos (letras, números y
caracteres especiales). Ejemplo:
letra=’a’ apellido=’lopez’ direccion=’Av. Libertad #190’
Por su Uso

Variables de Trabajo: Variables que reciben el resultado de una operación matemática


completa y que se usan normalmente dentro de un programa. Ejemplo:
suma = a+b/c

Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza
una operación o se cumple una condición. Con los incrementos generalmente de uno en
uno.

Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa
de una serie de valores que se van leyendo o calculando progresivamente.

10
TÉCNICAS DE DISEÑO

1 Top down
2 Bottom up

OBJETIVO EDUCACIONAL:

El alumno:

Conocerá las características de las técnicas de diseño más empleadas, así como su
aplicación a cada tipo de problemas

1 Top Down

También conocida como de arriba-abajo y consiste en establecer una serie de niveles de


mayor a menor complejidad (arriba-abajo) que den solución al problema. Consiste en
efectuar una relación entre las etapas de la estructuración de forma que una etapa
jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de
información.
Este diseño consiste en una serie de descomposiciones sucesivas del problema
inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a
formar parte del programa.
La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos
básicos:
- Simplificación del problema y de los subprogramas de cada descomposición.
- Las diferentes partes del problema pueden ser programadas de modo
independiente e incluso por diferentes personas.
- El programa final queda estructurado en forma de bloque o módulos lo que hace
mas sencilla su lectura y mantenimiento.

2 Bottom Up

El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan


computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación,
o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.
Cuando la programación se realiza internamente y haciendo un enfoque
ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el desempeño
global, sea fluido. Los problemas de integración entre los subsistemas son sumamente
costosos y muchos de ellos no se solucionan hasta que la programación alcanza la fecha
limite para la integración total del sistema. En esta fecha, ya se cuenta con muy poco
tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas
interfaces, que en un principio, se ignoran.
Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla
al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un
enfoque ascendente. Uno de ellos es la duplicación de esfuerzos para accesar el
software y más aun al introducir los datos. Otro es, que se introducen al sistema muchos
datos carentes de valor. Un tercero y tal vez el más serio inconveniente del enfoque
ascendente, es que los objetivos globales de la organización no fueron considerados y en
consecuencia no se satisfacen.

11
TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS

1 Diagrama de flujo
2 Pseudocódigo
3 Diagrama estructurado (nassi-schneiderman)

OBJETIVO EDUCACIONAL:

El alumno:

Será capaz de diferenciar los métodos de representación y formulación de algoritmos, así


como de conocer las características más importantes de cada técnica.

Las dos herramientas utilizadas comúnmente para diseñar algoritmos son:


Diagrama de Flujo
Pseuducódigo

4.1 Diagrama de Flujo

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede


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

SÍMBOLO DESCRIPCIÓN

Indica el inicio y el final de nuestro


diagrama de flujo.

Indica la entrada de datos.

Símbolo de proceso y nos indica la asignación de


un valor en la memoria y/o la ejecución de una
operación aritmética.

Símbolo de decisión indica la realización de una


comparación de valores.

Conector dentro de página. Representa la


continuidad del diagrama dentro de la
misma página.

Indica la salida de información por impresora.

12
Líneas de flujo o dirección. Indican la
secuencia en que se realizan las operaciones.

Prueba de escritorio
Consiste en formar una tabla del diagrama de valores conocidos a las variables y verificar
si el resultado es el buscado.

Recomendaciones para el diseño de Diagramas de Flujo


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

2 Pseuducódigo

Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se


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

Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo


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

13
ESTRUCTURAS ALGORITMICAS

1 Secuenciales
- Asignación
- Entrada
- Salida
2 Condicionales
- Simples
- Múltiples
3 Repetición fila condicional

OBJETIVO EDUCACIONAL:

El alumno:

Conocerá las diferentes estructuras algorítmicas como componentes básicos de los


programas y aplicara la combinación de ellas para el desarrollo de algoritmos mas
complejos.

ESTRUCTURAS ALGORITMICAS
Las estructuras de operación de programas son un grupo de formas de trabajo, que
permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que
nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su
complejidad en:

- Asignación
Secuenciales - Entrada
- Salida

- Simples
Estructuras Condicionales - Múltiples
Algorítmicas
- Hacer para
Cíclicas - Hacer mientras
- Repetir hasta

1. Estructuras Secuenciales

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


en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se
representa de la siguiente forma:
Inicio
Accion1
Accion2
.
.
AccionN
Fin

14
- Asignación: La asignación consiste, en el paso de valores o resultados a una zona de la
memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La
asignación se puede clasificar de la siguiente forma:
Simples: Consiste en pasar un valor constate a una variable (a=15)
Contador: Consiste en usarla como un verificador del número de veces que se realiza un
proceso (a=a+1)
Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b)
De trabajo: Donde puede recibir el resultado de una operación matemática que involucre
muchas variables (a=c+b*2/4).

- Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado)


un valor. Esta operación se representa en un pseudocódigo como sigue:

Leer a, b

Donde “a” y “b” son las variables que recibirán los valores

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


resultado o mensaje. Este proceso se representa en un pseudocodigo como sigue:

Escribe “El resultado es:”, R

Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable
que contiene un valor.

2 Estructuras de Condicionales

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

Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”.
Estas tomas de decisión tienen la siguiente forma:

Si <condición> entonces
Acción(es)
Fin-si

Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en función del cumplimiento o no de una determinada condición. Se
representa de la siguiente forma:

Si <condición> entonces
Acción(es)
si no
Acción(es)
Fin-si

15
Donde:

Si …………
Indica el comando de comparación
Condición………… Indica la condición a evaluar
entonces……..…… Precede a las acciones a realizar cuando se cumple la condición
acción(es)………… Son las acciones a realizar cuando se cumple o no la condición
si no…………
Precede a las acciones a realizar cuando no se cumple la condición

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


acciones.

Múltiples: Las estructuras de comparación múltiples, son tomas de decisión


especializadas que permiten comparar una variable contra distintos posibles resultados,
ejecutando para cada caso una serie de instrucciones específicas. La forma común es la
siguiente:

Si <condición> entonces
Acción(es)
si no
Si <condición> entonces
Acción(es)
si no
. Varias condiciones
.

Forma General
Casos Variable
Op1: Acción(es)
Op2: Acción(es)
.
.
OpN: acción
Fin-casos

16
3. Estructuras Cíclicas

Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario


utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de
veces. Esta cantidad puede ser fija (previamente determinada por el programador) o
puede ser variable (estar en función de algún dato dentro del programa).Los ciclos se
clasifican en:

Ciclos con un Número Determinado de Iteraciones (Hacer-Para)


Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el
ciclo. La forma de esta estructura es la siguiente:

Hacer para V.C = L.I a L.S


Accion1
Accion2
. .
AccionN
Fin-para

Donde:
V.C Variable de control del ciclo
L.I Limite inferir
L.S Límite superior

En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta
que la variable de control llegue al límite superior.

Ciclos con un Numero Indeterminado de Iteraciones ( Hacer-Mientras, Repetir-Hasta)


Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya que
esta dado en función de un dato dentro del programa.
Hacer-Mientras: Esta es una estructura que repetira un proceso durante “N” veces, donde
“N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la
que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple,
entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:

Hacer mientras <condición>


Accion1
Accion2
AccionN
Fin-mientras

Repetir-Hasta: Esta es una estructura similar en algunas características, a la anterior.


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

Repetir
Accion1
Accion2
AccionN
Hasta <condición>

18
ARREGLOS

1 Vectores
2 Matrices
3 Manejo de cadenas de caracteres

OBJETIVO EDUCACIONAL:

El alumno:

Será capaz de utilizar los datos de tipo arreglo para plantear la solución de problemas que
requieran de esta estructura.

Arreglo: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre
(variable) a una colección de datos del mismo tipo.

Los arreglos se caracterizan por:


 Almacenan los elementos en posiciones contiguas de memoria
 Tienen un mismo nombre de variable que representa a todos los elementos. Para
hacer referencia a esos elementos es necesario utilizar un índice que especifica el
lugar que ocupa cada elemento dentro del archivo.

Unidimensionales (Vectores)
Tipo de
Arreglos
Bidimensionales (Matrices)

1. Vectores

Es un arreglo de “N” elementos organizados en una dimensión donde “N” recibe el


nombre de longitud o tamaño del vector. Para hacer referencia a un elemento del vector
se usa el nombre del mismo, seguido del índice (entre corchetes), el cual indica una
posición en particular del vector. Por ejemplo:

Vec[x]

Donde:
Vec………… Nombre del arreglo
x…………
Numero de datos que constituyen el arreglo

Representación gráfica de un vector

9
19
10

Llenado de un Vector

Hacer para I = 1 a 10
Leer vec[I]
Fin-para

Hacer mientras I <= 10


Leer vec[I]
Fin-mientras

I=1
Repetir
Leer vec[I]
I=I+1
Hasta-que I>10

2 Matriz

Es un arreglo de M * N elementos organizados en dos dimensiones donde “M” es el


número de filas o reglones y “N” el número de columnas.

Para representar una matriz se necesita un nombre de matriz se necesita un


nombre de matriz acompañado de dos índices.

Mat [R,C]

Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato.

Representación gráfica de una matriz


Mat [R,C]
1,1
1,2
1,3
1,4

2,1
2,2
2,3
2.4

3,1
3,2
3,3
3,4

4,1
20
4,2
4,3
4,4

Llenado de una matriz

Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para

Por columnas
Hacer para C = 1 a 5
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para

Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los índices
y se utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos ciclos se les
llama ciclos anidados (un ciclo dentro de otro ciclo).

21
BIBLIOGRÁFIA

 JEAN Paul Tremblay, B. Bunt Richard; "Introducción a la ciencias de las


computadoras (enfoque algoritmico)" Mc Graw Hill

 JOYANES Aguilar Luis; "Metodología de la programación" Mc Graw Hill

 JOYANES Aguilar Luis; "Problemas de metodología de la programación" Mc Graw


Hill

 CORREA Uribe Guillermo; "Desarrollo de algoritmos y sus aplicaciones en Basic,


Pascal y C (3ª. Edición)" Mc Graw Hill

 Levine Guillermo; "Introducción a la computación y a la programación estructurada"


Mc Graw Hill

 JOYANES Aguilar Luis; "Fundamentos de programación, algoritmos y estructura de


datos"
 Mc Graw Hill

 JOYANES Aguilar Luis, Luis Rodríguez Baena y Matilde Fernández Azuela;


"Fundamentos de programación, libro de problemas" Mc graw Hill

 Bores Rosario, Rosales Roman; "Computación. Metodología, lógica computacional


y programación" Mc Graw Hill

 LOZANO Letvin; "Diagramación y programación estructurada y libre" Mc Graw Hill

 LOPEZ Roman Leobardo; "Programación estructurada (enfoque algoritmico)"


Computec

22

También podría gustarte