INDICE - usalesiana



Contenido

CAPITULO I 3

CONCEPTOS BÁSICOS 3

1.1 INTRODUCCIÓN 3

1.2 DATOS, TIPOS DE DATOS Y OPERACIONES BÁSICAS 3

1.2.1. DEFINICIÓN DE DATOS 3

1.2.2. TIPOS DE DATOS 3

1.3 IDENTIFICADORES Y PALABRAS RESERVADAS 6

1.4 CONSTANTES Y VARIABLES 6

1.5 EXPRESIONES 7

1.5.1 EXPRESIONES ARITMÉTICAS 7

1.5.2 EXPRESIONES LOGICAS 9

1.6 FUNCIONES INTERNAS 10

1.7 LA OPERACIÓN DE ASIGNACIÓN 11

1.8 ENTRADA / SALIDA DE INFORMACIÓN 12

CAPÍTULO II 14

RESOLUCIÓN DE PROBLEMAS UTILIZANDO COMPUTADORAS 14

2.1 FASES EN LA RESOLUCION DE PROBLEMAS 14

2.2 FASE DE RESOLUCION DEL PROBLEMA 14

2.2.1 Análisis del Problema “ ¿ QUÉ ES LO QUE SE DESEA HACER ? ” 14

2.2.2 Diseño del Algoritmo “¿ CÓMO SE HARÁ ?” 16

2.2.3 Verificación Manual del Algoritmo 25

2.3 FASE DE IMPLEMENTACION EN LA COMPUTADORA 26

2.3.1 Codificación del algoritmo en programa 26

2.3.2 Compilación y ejecución de un programa 26

2.3.3 Verificación y depuración del programa 27

2.3.4 Documentación y mantenimiento 27

CAPITULO III 28

PROGRAMACIÓN ESTRUCTURADA 28

3.1 REGLAS DE PROGRAMACIÓN 28

3.2 PROGRAMACIÓN ESTRUCTURADA 28

3.2.1 Diseño descendente 28

3.2.2 Recursos Abstractos 30

3.2.3 Teorema de la programación estructurada: estructuras básicas 30

3.3 EJERCICIOS PROPUESTOS 58

CAPITULO IV 61

ARREGLOS UNIDIMENSIONALES: VECTORES 61

4.1 INTRODUCCION A LAS ESTRUCTURAS DE DATOS 61

4.2 ARREGLOS (ARRAYS) 63

4.2.1 ARREGLOS UNIDIMENSIONALES: VECTORES 63

4.3 EJERCICIOS PROPUESTOS 72

CAPÍTULO V 74

ARREGLOS BIDIMENSIONALES : MATRICES 74

5.1 INTRODUCCIÓN 74

5.2 DECLARACIÓN DE MATRICES 76

5.3 CONCEPTOS SOBRE MATRICES 77

5.3.1 Matriz Cuadrada 77

5.3.2 Matriz Rectangular 79

5.3.3 Matriz Identidad 80

5.3.4 Matriz Transpuesta 80

5.3.6 Matriz Inversa 81

5.4 LECTURA/ESCRITURA DE MATRICES 82

5.5 ALGEBRA DE MATRICES 84

5.5.1 Suma de matrices 84

5.5.2 Resta de matrices 84

5.5.3 Multiplicación de una matriz por un escalar 85

5.5.4 Multiplicación de matrices 86

5.6 EJERCICIOS PROPUESTOS 86

CAPÍTULO VI 91

METODOS DE ORDENACIÓN 91

6.1 INTRODUCCIÓN 91

6.2 METODO DE INTERCAMBIO O DE LA BURBUJA 91

6.3 MÉTODO DE ORDENACIÓN POR INSERCIÓN 94

6.4 METODO DE ORDENACIÓN POR SELECCIÓN 95

6.5 MÉTODO DE ORDENACIÓN RÁPIDA (QUICKSORT) 95

CAPÍTULO VII 97

MÉTODOS DE BÚSQUEDA 97

7.1 INTRODUCCIÓN 97

7.2 MÉTODO DE BÚSQUEDA SECUENCIAL 97

7.3 MÉTODO DE BÚSQUEDA BINARIA 98

7.4 MÉTODO DE BÚSQUEDA MEDIANTE TRANSFORMACIONES DE CLAVES (HASHING) 99

CAPÍTULO VIII 100

INTRODUCCION A LA PROGRAMACIÓN MODULAR 100

8.1 INTRODUCCION 100

8.2 EL DISEÑO DESCENDENTE: SUBPROGRAMAS 100

8.3 EL DISEÑO MODULAR 102

8.3.1 PROCEDIMIENTOS Y FUNCIONES 102

8.4 TRANSFERENCIA DE INFORMACIÓN HACIA /DESDE MÓDULOS 105

8.4.1 Los parámetros 105

8.4.2 VARIABLES LOCALES Y VARIABLES GLOBALES 106

8.4.3 AMBITO DE UN IDENTIFICADOR 107

LECTURAS COMPLEMENTARIAS 108

BIBLIOGRAFÍA 109

GLOSARIO 110

CAPITULO I

CONCEPTOS BÁSICOS

1 INTRODUCCIÓN

El hombre desde sus orígenes ha debido comunicarse, ya sea de forma oral, escrita o por lenguaje corporal. Para lograr esto se ha tenido que adaptar, buscar o crear formas de lenguaje que le permitan describir situaciones, solucionar problemas matemáticos, físicos o lógicos. La necesidad de explicación y solución de problemas principalmente matemáticos hizo necesario definir una notación genérica, clara y sencilla que permitiera describir un proceso, sus entradas, sus salidas y su inicio y fin. También ha sido necesario definir lenguajes que le permitan al hombre comunicarse con esa máquina llamada computador, que fue diseñada para realizar procesos internos en base a entradas y salidas de datos (caja negra). En la actualidad hay equipos computacionales que son automáticos pero aun así, necesitan comunicarse internamente de alguna forma.

1.2 DATOS, TIPOS DE DATOS Y OPERACIONES BÁSICAS

Los algoritmos y los programas de computadoras, independientemente del lenguaje en que están escritos, están diseñados para manipular información o datos. Estos datos pueden ser las notas de los alumnos de la universidad, los sueldos de los empleados de una empresa, etc.

3 DEFINICIÓN DE DATOS

Los datos son los objetos sobre los que opera una computadora.

5 TIPOS DE DATOS

Los datos se clasifican en:

• Simples

• Estructurados

Los datos estructurados se clasifican en:

| | | | |

| | | | |

| |Estáticos | | |

| | | |Vectores |

| | | |Matrices |

| | | |Registros |

| | | |Archivos |

| | | | |

| | | | |

| | | |Pilas |

| | | | |

| |Dinámicos | | |

| | | |Colas |

| | | |Listas |

| | | |Árboles |

| | | |Grafos |

| | | | |

1 DATOS SIMPLES

Los datos simples se clasifican en:

| | | |Enteros |

| |Numéricos | | |

| | | |Reales |

| | | | |

| | | |1 sólo carácter (char) |

| |Carácter | | |

| | | |Varios caracteres (strings - cadenas) |

| | | | |

| |Lógicos | | |

1 Datos Numéricos

• Los enteros son números que no tienen parte decimal y pueden ser positivos o negativos.

Ejemplos:

a) 984

b) 86

c) -75

d) 132

• Los reales son números con parte entera y parte decimal y pueden ser positivos o negativos.

Ejemplos:

a) 0.98

b) 938.83

c) 123.6555

d) 6.87

2 Datos Tipo Carácter Y Tipo Cadena

Los datos de tipo carácter son los caracteres que puede interpretar la computadora, pueden ser:

• Alfabéticos (A, B, .., Z, a, b, .. , z)

• Dígitos (0, 1, .., 9)

• Especiales (+, -, /, ^, , $, etc.)

Y se caracterizan por estar formados por un sólo carácter.

Ejemplos:

a) ‘A’

b) ‘b’

c) ‘S’

d) ‘N’

e) ‘F’

f) ‘M’

Un dato de tipo cadena es una sucesión de caracteres que se encuentran encerrados entre comillas simples (apóstrofos) o comillas dobles.

El número de caracteres comprendidos entre las comillas se denomina longitud de la cadena.

Ejemplos:

a) ‘Juan Pérez’

b) ‘ c. Comercio # 345’

c) ’26 de Enero de 1981’

d) ‘2453567’

3 Datos Lógicos

Los datos lógicos o booleanos son aquellos que sólo pueden tomar uno de dos posibles valores: verdadero o falso.

2 IDENTIFICADORES Y PALABRAS RESERVADAS

Los identificadores son los nombres que se dan a los programas, constantes, variables, subprogramas y otros objetos. Se caracterizan por comenzar siempre con una letra y por cumplir con las reglas de sintaxis específicas de cada lenguaje de programación.

Ejemplos:

|Válidos |Inválidos |Observaciones |

|Nombre |10Nombre |Los identificadores deben empezar siempre con un letra |

|Dirección |9C |Los identificadores deben empezar siempre con un letra |

|Sueldo |Begin (***) |Los identificadores no pueden ser palabras reservadas |

|Sueldo_empleado |Sueldo empleado |Los identificadores no pueden tener espacios vacíos en medio |

|anio_nac |año_nac |Los identificadores no pueden tener ciertos caracteres como ñ o |

| | |acentos |

*** Begin es una palabra reservada del lenguaje Turbo Pascal, se la utiliza para indicar el principio del programa, procedimiento o función

Las palabras reservadas (KeyWords), son palabras clave y propias de cada lenguaje de programación.

Ejemplos:

| | |

| |Program, var, uses, const, type, begin, end, repeat, |

|Turbo Pascal |while, if, unit, until, do, if, else, then, etc. |

| | |

| |int, double, case, char, const, do, if, else, while, |

|Turbo C |struct, for, etc. |

3 CONSTANTES Y VARIABLES

Las constantes son datos cuyo valor no cambia durante la ejecución del programa.

Ejemplos:

a) 3.1416

b) 2.71828

c) ‘Error’

Las variables son datos cuyo valor puede cambiar durante la ejecución del programa.

Ejemplos:

a) Edad: representa la edad de una persona

b) Sueldo_mensual: representa el sueldo que gana un empleado cada mes

c) Nota_final: representa la nota final obtenida por un alumno.

4 EXPRESIONES

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Ejemplos:

a) Pi * radio

← Pi: constante equivalente a 3.1416

← Radio: variable que representa el radio de una circunferencia

Según sea el tipo de objetos que manipulan las expresiones pueden ser:

• Aritméticas

• Lógicas

• Carácter

1 EXPRESIONES ARITMÉTICAS

Las expresiones aritméticas son análogas a las fórmulas matemáticas. Las variables y constantes son de tipo numérico y las operaciones son las aritméticas.

1 Operadores aritméticos

|Símbolo |Operación |Tipo de operandos |Tipo de resultado |

|^ |Exponenciación |Entero o real |Entero o real |

|* |Multiplicación |Entero o real |Entero o real |

|/ |División |Entero o real |Real |

|+ |Suma |Entero o real |Entero o real |

|- |Resta |Entero o real |Entero o real |

|DIV |División entera |Entero |Entero (cociente) |

|MOD |Módulo |Entero |Entero (residuo) |

Ejemplos:

a)

|operador | | | | |

| | | | | | | |

|12 |+ |5 |= |17 | |resultado |

| | | | | | | | | |

|operandos | | | | |

b) 25.3 + 4.58 = 29.88

c) 15 - 8 = 7

d) 3 * 8 = 24

e) 6 ^ 3 = 216

f) 15/3 = 5.0

g) 15 div 3 = 5

h) 15 mod 3 = 0

|OA) |15 | 3 | | |

| |(0) | 5 | |cociente |

| | | | | |

|residuo | | |

** OA significa operaciones auxiliares

i) 27 div 4 = 6

j) 27 mod 4 = 3

|OA) |27 | 4 | | |

| |(3) | 6 | |cociente |

| | | | | |

|residuo | | |

k) 156 div 10 = 15

l) 156 mod 10 = 6

|OA) |156 | 10 | | |

| |(6) | 15 | |cociente |

| | | | | |

|residuo | | |

2 EXPRESIONES LOGICAS

Son aquellas que pueden tomar uno de dos posibles valores: verdadero o falso. Se forman combinando constantes y variables con operadores lógicos y relacionales.

1 Operadores relacionales

| | |

|Operador |Significado |

|= |Igual que |

| |Distinto que |

|> |Mayor que |

|< |Menor que |

|>= |Mayor o igual que |

| B es falso

(A + 5) >= (B + 2) es verdad

b) ‘A’ < ‘B’ es verdad

c) si A = 12

A mod 2 = 1 es falso

d) si MAX = 345

MAX mod 3 = 0 es verdad

2 Operadores lógicos

|Operador |Expresión lógica |Significado |

|not |not p |(no p) |

|and |p and q (p Λ q) |Conjunción de p y q |

|or |p or q (p v q) |Disyunción de p y q |

|p |q |p and q |p or q |

|V |V |V |V |

|V |F |F |V |

|F |V |F |V |

|F |F |F |F |

|p |not p |

|V |F |

|F |V |

Ejemplos:

a) (21 > 10) and (4 = 4) es verdad

b) not (34 < 56) es falso

c) (3 > 2) and (2 > 5 ) es falso

d) (45 >= 13) or (3 > 16) es verdad

5 FUNCIONES INTERNAS

|Función |Significado |Tipo de operandos |Tipo de resultado |

|abs (x) |Valor absoluto de x |Entero o real |Entero o real |

|arctg (x) |Arco tangente de x |Entero o real |Real |

|cos(x) |Coseno de x |Entero o real |Real |

|ent(x) |Parte entera de x |Entero o real |Real |

|exp(x) |ex |Entero o real |Real |

|ln(x) |Logaritmo natural de x |Entero o real |Real |

|log(x) |Logaritmo decimal de x |Entero o real |Real |

|sqrt(x) |Raiz cuadrada de x |Entero o real |Real |

|sqr(x) |Cuadrado de x |Entero o real |Entero o real |

|round(x) |Redondea x al entero más cercano |Entero o real |Entero |

|sin(x) |Seno de x |Entero o real |Real |

|tan(x) |Tangente de x |Entero o real |Real |

|trunc(x) |Parte entera de x |Real |Entero |

Ejemplos:

a) sqrt (25) = 5

b) sqr (6) = 36

c) trunc (6.58) = 6

d) ent (6.58) = 6.0

e) abs (-45) = 45

f) round (3.6) = 4

g) round (3.23) = 3

h) Si A = 5; B = 4; C = 3

Calcular el valor de: X = sqr(A) + sqrt (B) + C

Solución

|X |= |sqr( 5 ) + sqrt( 4 ) + 3 |

|X |= |25 + 2 + 3 |

|X |= |30 | |

6 LA OPERACIÓN DE ASIGNACIÓN

Se utiliza para asignar valores a las variables o cambiar el valor almacenado en ellas.

Formato

| | | |

|Nomb_Var | |Expresión o valor |

| | | |

Ejemplos:

| | | | |

| |N | |10 |

| | | | |

| | | | |

| |A | |0 |

| | | | |

| | | | |

| |A | |A + 3 |

| | | | |

| | | | |

| |C | |N div 2 |

| | | | |

7 ENTRADA / SALIDA DE INFORMACIÓN

La operación de entrada de datos permite leer valores y asignarlos a determinadas variables. Esta entrada de datos se conoce como operación de lectura de datos (read) y los datos se introducen mediante un dispositivo de entrada (teclado, unidad de disco, etc.).

Formato

Ejemplos:

La operación de salida muestra los resultados en un dispositivo de salida (pantalla o impresora) y se denomina operación de escritura (write) de datos.

Formato

Ejemplo:

[pic]

CAPÍTULO II

RESOLUCIÓN DE PROBLEMAS UTILIZANDO COMPUTADORAS

1 FASES EN LA RESOLUCION DE PROBLEMAS

[pic]

donde:

F1: Fase de resolución del problema

F2: Fase de implementación en la computadora

2 FASE DE RESOLUCION DEL PROBLEMA

[pic]

1 Análisis del Problema “ ¿ QUÉ ES LO QUE SE DESEA HACER ? ”

[pic]

El objetivo de esta fase es ayudar al programador a comprender la naturaleza del problema, para lo cual éste requiere el máximo de su imaginación y creatividad. Para esto se debe identificar claramente que tipo de información se necesita producir, y luego aquellos elementos dados en el problema que pueden ser útiles para obtener la solución.

Para poder definir bien un problema se lo debe leer cuidadosamente a fin de obtener una idea general de lo que se solicita. Una segunda lectura servirá para responder a las siguientes preguntas:

1. ¿ Qué datos se necesitan para obtener los resultados ? (tipo y cantidad)

2. ¿ Qué resultados se desean obtener ? (tipo y cantidad)

La respuesta a la primera pregunta indica que datos se proporcionan o las entradas del problema.

La respuesta a la segunda pregunta indicará los resultados o salidas del problema.

Ejemplo:

1. Leer dos números y calcular su suma.

Análisis

Variables de entrada

A : 1er número real

B : 2do número real

Variables de salida

S : suma de los números A y B, número real

2. Leer un número X entero y positivo y sumar sus dígitos

Análisis

Variables de entrada

X : número entero y positivo

Variables de salida

SD : suma de los dígitos de X, número entero y positivo

3. Leer un número y calcular su valor absoluto

Análisis

Variables de entrada

Z : número real

Variables de salida

VAZ : valor absoluto de Z, número real positivo

2 Diseño del Algoritmo “¿ CÓMO SE HARÁ ?”

En la etapa de Análisis se determina QUE hará el programa, mientras que en la etapa de Diseño se determina COMO hará el programa la tarea solicitada.

Una computadora NO tiene capacidad para solucionar problemas más que cuando se le proporcionan los pasos sucesivos a realizar. Estos pasos sucesivos que indican las instrucciones a ejecutar por la máquina constituyen un ALGORITMO.

La información proporcionada al algoritmo constituye su ENTRADA y la información producida por el algoritmo constituye su SALIDA.

1 Algoritmo

La palabra "algoritmo" es de origen árabe. Viene de "al-Khwārizmī", sobrenombre del célebre matemático Mohamed ben Musa. Khwārizmī quiere decir "de Khwārizm", el estado donde nació Ben Musa. Al-Khwārizmī vivió en entre los años 780-840, y es quien recibe el crédito de haber implementado reglas para realizar sumas, restas, multiplicaciones y divisiones de número decimales paso a paso.

Un ALGORITMO es una secuencia de pasos sucesivos que lleva a la solución de un problema.

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

2 Características de un algoritmo

← Preciso, es decir que debe indicar claramente el orden de realización de cada paso.

← Definido, es decir que si se sigue un algoritmo varias veces se debe obtener el mismo resultado cada vez.

← Finito, es decir que debe tener un número finito de pasos, que debe terminar en algún momento.

3 Partes de un algoritmo

Consta de tres partes:

← Entrada, es la información proporcionada al algoritmo.

← Proceso, son los cálculos necesarios para encontrar la solución del problema.

← Salida, son las respuestas proporcionadas por el algoritmo o resultados finales del proceso.

Ejemplo

1) Algoritmo para cocinar un huevo duro.

Inicio

P1. Llenar la olla con agua

P2. Encender el fuego de la cocina

P3. Poner la olla al fuego

P4. Esperar hasta que hierva el agua

P5. Introducir el huevo en la olla

P6. Esperar 10 minutos

P7. Apagar el fuego

P8. Vaciar el agua

P9. Sacar el huevo de la olla

Fin

2) Algoritmo para preparar tortilla de papas

Inicio

P1. Pelar las papas

P2. Echar las papas en una olla con agua

P3. Echar sal a gusto

P4. Repetir

Esperar

Hasta que las papas estén cocidas

P5. Vaciar el agua de la olla

P6. Sacar las papas a una cacerola

P7. Cortar las papas

P8. Sacar el huevo de la nevera

P9. Romper el huevo y botar las cáscaras

P10. Batir el huevo en un plato hondo

P11. Encender el fuego

P12. Poner la sartén

P13. Repetir

Esperar

Hasta que el aceite esté hirviendo

P14. Meter las papas en la sartén

P15. Esperar a que las papas estén doradas

P16. Verter los huevos en la sartén

P17. Echar un poco de sal

P18. Repetir

Batir huevos y papas por ambos lados

Hasta que la tortilla esté dorada

P19. Retirar la sartén

P20. Colocar la tortilla en un plato.

Fin

2 Herramientas de Programación

Una vez que se ha obtenido el algoritmo que resolverá el problema, es preciso representarlo mediante una determinada HERRAMIENTA DE PROGRAMACION:

← Diagrama de flujo

← Pseudocódigo

← Diagramas Nassi-Shneiderman (diagramas N-S)

1 Diagramas de Flujo

Un diagrama de flujo (flowchart) es un diagrama que utiliza símbolos estándar y en el que cada paso del algoritmo se visualiza dentro del símbolo adecuado y el orden en que estos pasos se ejecutan se indica conectándolos con flechas llamadas líneas de flujo porque indican el flujo lógico del algoritmo.

En esencia el diagrama de flujo es un medio de presentación visual y gráfica del flujo de datos a través del algoritmo, las operaciones ejecutadas y el orden en que se ejecutan.

Los símbolos utilizados en los diagramas de flujo han sido normalizados por las organizaciones ANSI (American National Institute) y por ISO (International Standard Organization), los más utilizados son:

|[pic] | |

| |Representa el INICIO “C” y el FINAL “fin” del de un programa |

| | |

|Ejemplo | |

|[pic] | |

| |Inicio del programa |

|[pic] | |

| |Fin del programa |

| | |

|[pic] | |

| | |

| |Representa la ENTRADA/SALIDA de datos desde o hacia cualquier periférico de entrada o |

| |salida |

| | |

|Ejemplos | |

|[pic] | |

| | |

| |Lee un valor desde un periférico de entrada y lo almacena en la variable A |

|[pic] | |

| | |

| |Lee dos valores desde un periférico de entrada y los almacena en las variables A y B |

| |respectivamente |

| | |

|[pic] | |

| |Representa PROCESO, se utiliza para realizar cualquier tipo de operación que pueda |

| |originar cambios de valores en las variables, pueden ser operaciones aritméticas, de |

| |transferencia, etc. |

| | |

|Ejemplos | |

| | |

|[pic] | |

| |Inicializa la variable A en cero (almacena el cero en la variable A) |

| | |

|[pic] | |

| |Suma dos al valor previo de la variable A y almacena este resultado en la misma |

| |variable. |

| | |

|[pic] | |

| |Transfiere el valor de la variable A a la variable B |

|[pic] | |

| |Representa DECISION, se utiliza para indicar operaciones lógicas o de comparación |

| |entre datos, dependiendo del resultado cual de los caminos alternativos a seguir. |

| | |

|Ejemplos | |

|[pic] | |

| | |

| |Compara el valor de la variable A con el valor de la variable B. |

|[pic] | |

| | |

| |Compara el valor de la variable A con cero |

| | |

|[pic] |CONECTOR, se utiliza para enlazar dos partes cualesquiera de un diagrama de flujo en |

| |la misma página |

| | |

|[pic] |CONECTOR, se utiliza para enlazar dos partes cualesquiera de un diagrama de flujo en |

| |diferentes páginas. |

|[pic] | |

| | |

| |LINEAS DE FLUJO, indican el sentido de ejecución de las operaciones. (flujo de la |

| |información) |

|[pic] | |

| | |

| | |

| |LINEA CONECTORA, se utiliza para unir dos símbolos |

| | |

|[pic] | |

| | |

| |Se utiliza para realizar llamadas a subprogramas |

| | |

|[pic] | |

| | |

| |IMPRESORA, se utiliza para enviar datos a la impresora |

| | |

|[pic] |PANTALLA, se utiliza para mostrar los resultados por pantalla |

| | |

| | |

|Ejemplos | |

| | |

|[pic] | |

| | |

| | |

| |Muestra el valor almacenado en la variable A |

|[pic] | |

| | |

|[pic] | |

| |TECLADO, se utiliza para representar el ingreso de datos por teclado. |

|[pic] | |

| | |

| | |

| | |

| |COMENTARIOS, se utiliza para añadir comentarios al diagrama de flujo. Se los puede |

| |usar en cualquier parte del diagrama de flujo. |

| | |

Recomendaciones para el diseño de Diagramas de Flujo

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

• Se debe evitar el cruce de líneas utilizando los conectores.

• Se deben usar conectores solo cuando sea necesario.

• No deben quedar líneas de flujo son conectar.

• Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.

• Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.

2 Pseudocódigo

Hasta ahora los algoritmos se han expresado en lenguaje común. Sin embargo, los programas deben ser escritos en un lenguaje que pueda entender la computadora. Es natural, por lo tanto, describir los algoritmos en un lenguaje que se parezca más al lenguaje utilizado para escribir programas de computadora, es decir en un lenguaje de pseudoprogramación, una imitación del código de las computadoras o como se le conoce PSEUDOCODIGO.

El pseudocódigo fue creado para superar las dos principales desventajas del diagrama de flujo: el diagrama de flujo es lento de crear y difícil de modificar sin tener que dibujarlo de nuevo. Es una mezcla de lenguaje natural y símbolos, términos y otras características comúnmente utilizadas en los lenguajes de alto nivel.

Ventajas de utilizar Pseudocódigo frente a Diagramas 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.

3 Diagramas N-S (Nassi-Shneiderman)

Los diagramas de Nassi-Shneiderman llamados también N-S o de Chapin son una herramienta de programación que favorece la programación estructurada. Constan de una serie de cajas que comienzan con un primer rectángulo que se va rellenando de arriba hacia abajo siguiendo la técnica descendente (top-down).

Ejemplo

Realizar un algoritmo para calcular el valor absoluto de un número

Definición del problema

Encontrar el valor absoluto de un número

Análisis del problema

Para encontrar el valor absoluto del número es necesario recordar que para los enteros positivos el valor es el mismo, mientras que para los enteros negativos es necesario cambiarlos de signo.

Datos de entrada:

a: número

Datos de salida:

va: valor absoluto de a

Proceso:

número = número * (-1)

Diseño de la solución

← Diagrama de Flujo

[pic]

← Pseudocódigo

Inicio

leer(num)

si num > 0 entonces

absnum ( num

si_no

absnum ( num * (-1)

fin_si

mostrar(absnum)

Fin

← Diagrama N-S

[pic]

3 Verificación Manual del Algoritmo

Una vez que se ha representado el algoritmo utilizando alguna herramienta de programación (Diagramas de Flujo, Pseudocódigo, Diagramas N-S), es necesario asegurarse que el mismo realiza las tareas para las que ha sido diseñado y produce los resultados correctos y esperados.

La forma más común de comprobar un algoritmo es mediante su ejecución manual usando datos significativos que abarquen todos los valores posibles y anotando en una hoja de papel los valores que van tomando en las diferentes fases. Este proceso se conoce como PRUEBA DE ESCRITORIO.

3 FASE DE IMPLEMENTACION EN LA COMPUTADORA

Una vez que el algoritmo ha sido probado se pasa a la fase de resolución práctica en la computadora.

Esta fase se descompone en las siguientes subfases:

← Codificación del algoritmo en programa

← Compilación y ejecución del programa

← Verificación y depuración del programa

← Documentación y mantenimiento del programa

1 Codificación del algoritmo en programa

Codificar es escribir el algoritmo representado mediante una herramienta de programación en un lenguaje de programación Ej. Turbo Pascal, Turbo C, etc.

Para realizar la conversión del algoritmo en programa se deben sustituir los símbolos utilizados por las correspondientes palabras reservadas del lenguaje, y las operaciones/instrucciones expresarlas en el lenguaje de programación correspondiente.

2 Compilación y ejecución de un programa

Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operación se realiza con un programa editor, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco.

El programa fuente debe ser traducido a lenguaje de máquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga prácticamente de la compilación. Si tras la compilación se presentan errores en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se producen errores, obteniéndose entonces el programa objeto. Luego se realizará la fase de montaje del programa objeto con las librerías del programa del compilador. El proceso de montaje produce un programa ejecutable.

Cuando el programa ejecutable se ha creado, se lo puede ejecutar desde el sistema operativo con solo teclear su nombre. Suponiendo que no existan errores durante la ejecución (llamados errores de ejecución), se obtendrá la salida de resultados del programa.

3 Verificación y depuración del programa

La verificación de un programa es el proceso de ejecutar el programa con varios datos de entrada llamados datos de prueba, que determinarán si el programa tiene errores.

La depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.

4 Documentación y mantenimiento

La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de un problema. Debe ser realizada con mucho cuidado y detalle por la influencia que tiene en el producto final. Programas pobremente documentados son difíciles de leer, más difíciles de depurar y casi imposibles de mantener y modificar.

La documentación de un programa puede ser interna o externa. La documentación interna es la contenida en las líneas de comentarios. La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigo, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados.

La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan MANTENIMIENTO DEL PROGRAMA. Después de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores. Es práctica numerar las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, etc. (Si los cambios introducidos son importantes se varía el primer dígito Ej. de 1.0 a 2.0; en caso de cambios pequeños sólo se varía el segundo dígito Ej. de 2.0 a 2.1).

CAPITULO III

PROGRAMACIÓN ESTRUCTURADA

1 REGLAS DE PROGRAMACIÓN

Las reglas que pueden considerarse para una buena programación son:

1. Diseñar los algoritmos por etapas partiendo de conceptos generales hacia conceptos más detallados utilizando para esto el método descendente (top-down).

2. Dividir un algoritmo en partes independientes (módulos) que pueden ser resueltos por separado.

3. Utilizar las técnicas de la programación estructurada para la resolución de problemas.

4. Elegir correctamente las estructuras de datos.

5. Describir completa y claramente cada algoritmo (documentación).

6. Verificar y validar el programa con datos significativos.

2 PROGRAMACIÓN ESTRUCTURADA

La programación estructurada surge en la década de los 60’s y principios de los 70’s, y es concebida como el conjunto de técnicas para desarrollar programas fáciles de escribir, verificar, leer y modificar.

Concretamente, la programación estructurada es el conjunto de técnicas que incorporan:

← diseño descendente

← recursos abstractos

← número limitado de estructuras de control

1 Diseño descendente

El diseño descendente es el proceso mediante el cual un problema se descompone en una serie de subproblemas más sencillos de resolver La metodología descendente consiste en establecer relaciones entre estos subproblemas, de modo que se relacionen unos con otros mediante entradas y salidas de información.

[pic]

Ejemplo

Calcular el promedio de 3 números.

Análisis

Variables de entrada

A: 1er. número real

B: 2do. número real

C: 3er. número real

Variables de salida

P: promedio de A, B y C

Diseño

Entran :

A = 5

B = 4

C = 8

Sale :

P = 5.66

| |A |+ |B |+ |C |

|P = | | | | | |

| | |3 | |

1. Leer los valores de A, B y C

2. Calcular el promedio

3. Mostrar el promedio

[pic]

2 Recursos Abstractos

La descomposición de un programa en términos de recursos abstractos consiste en descomponer una determinada acción compleja en otras más simples, capaces de ser ejecutadas por la computadora.

3 Teorema de la programación estructurada: estructuras básicas

En mayo de 1966 Böhm y Jacopini demostraron que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control:

← secuenciales

← selectivas

← repetitivas

1 Programa propio

Un programa se define como propio si cumple las siguientes características:

1. Posee un solo punto de entrada y uno de salida

2. Existen caminos desde la entrada hasta la salida.

3. Todas las instrucciones son ejecutables y no existen bucles infinitos

Ejemplos:

|Incorrecto |Correcto |

| | |

|[pic] |[pic] |

| | |

| | |

| | |

|No pueden existir dos símbolos de FIN en un mismo diagrama de | |

|flujo. | |

|Incorrecto |Correcto |

| | |

|[pic] |[pic] |

| | |

|Todos los símbolos del diagrama de flujo deben estar conectados | |

|entre sí y éste debe terminar en algún momento. | |

|Incorrecto |Correcto |

| | |

| | |

|[pic] |[pic] |

| | |

|El diagrama de flujo entra en un ciclo infinito y NUNCA terminará.| |

2 Estructuras Secuenciales

La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las acciones se ejecutan de tal forma que la salida de una es la entrada de otra, es decir que la acción B se ejecuta después de la acción A, la acción C sigue a la B y así sucesivamente hasta concluir el proceso.

Diagrama de Flujo

[pic]

Diagrama N-S

[pic]

Pseudocódigo

inicio

AcciónA

AcciónB

.

.

.

.

.

AcciónN

fin

Ejemplo Leer los valores de dos números A y B y realizar la división entre ellos.

Diagrama de Flujo

[pic]

[pic]

Pseudocódigo

Inicio

leer(A)

leer(B)

c ( A/B

mostrar(C)

Fin

3 Estructuras Selectivas

Las estructuras selectivas o de decisión se utilizan para tomar decisiones lógicas. Se clasifican en los siguientes tipos:

← decisión o selectiva simple

← decisión o selectiva doble

← decisión o selectiva múltiple

1 Estructura selectiva simple si – entonces (IF - THEN)

Ejecuta una determinada acción cuando se cumple una determinada condición. La selección if – then (si – entonces) evalúa la condición y si es verdadera ejecuta la acción o las acciones de lo contrario no hará nada

Diagrama de Flujo

[pic]

Diagrama N-S

[pic]

Ejemplo Leer los valores de dos números A y B y realizar la división entre ellos.

Diagrama de Flujo

[pic]

Diagrama N-S

[pic]

Pseudocódigo

Inicio

Leer A, B

si B 0 entonces

C ( A / B

Mostrar C

fin_si

Fin

2 Estructura Selectiva Doble si entonces sino (IF-THEN ELSE)

Permite elegir entre dos opciones posibles en función del cumplimiento o no de una determinada condición. Si la condición es verdadera, se ejecuta la acción A -o conjunto de acciones- y si es falsa, se ejecuta la acción 1 –o conjunto de acciones.

Diagrama de Flujo

[pic]

Diagrama N-S

[pic]

Ejemplo

Leer los valores de A y B y calcular la división entre ellos.

Diagrama de Flujo

[pic]

Diagrama N-S

[pic]

Pseudocódigo

Inicio

Leer A, B

si B 0 entonces

C ( A / B

Mostrar C

si_no

Mostrar “b debe ser distinto de cero”

fin_si

Fin

3 Estructura Selectiva Múltiple según – caso (CASE)

La estructura de selección múltiple evaluará una expresión que podrá tomar n valores distintos 1, 2, 3, 4, …..n. Según que elija uno de estos valores en la condición, se realizará una de las n acciones.

Diagrama de flujo – Opción 1

[pic]

[pic]

Diagrama N-S - Opción 1

[pic]

Diagrama N-S - Opción 2

[pic]

Pseudocódigo

según_sea variable hacer

op1: acción1

op2: acción2

op3: acción3

.

.

.

opn: acciónN

si_no: acciónX

fin_según

Ejemplo Leer los valores de dos números A y B y realizar una de las cuatro operaciones aritméticas fundamentales.

Diagrama de Flujo – Opción 1

[pic]

Diagrama de Flujo – Opción 2

[pic]

Diagrama N-S

[pic]

Pseudocódigo

Inicio

Leer A, B

Leer sw

según_sea sw hacer

1: c ( A + B

Mostrar c

2: c ( A – B

Mostrar c

3: c ( A * B

Mostrar c

4: si B 0 entonces

C ( A / B

Mostrar C

si_no

Mostrar “b debe ser distinto de cero”

fin_si

si_no: Mostrar “valor ingresado debe estar entre 1 y 4”

fin_según

Fin

4 Estructuras Repetitivas

Son aquellas en las cuales una operación o conjunto de ellas deben repetirse un número determinado/indeterminado de veces hasta que se cumple una condición específica veces.

Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se llaman bucles e iteración al hecho de repetir la ejecución de una secuencia de acciones.

¿Dónde se sitúa la condición?

La regla básica nos dice que “si se tienen varias instrucciones que necesitan ser repetidas, la decisión de detener el proceso repetitivo debe estar situada o bien al principio de todas las instrucciones o al final de ellas.” La ubicación de la condición diferencia las estructuras mientras y repetir.

Las tres estructuras repetitivas o iterativas más importantes son:

← para/desde (FOR

← mientras(WHILE)

← repetir – hasta (REPEAT - UNTIL)

1 Estructura para/desde (FOR)

Se utilizan las estructuras para/desde cuando se conocen con certeza el número de veces que desea repetir un bucle, es decir, cuando es un número fijo de veces y por lo tanto no se necesita colocar una condición para detener el bucle. En su lugar un contador cuenta el número de iteraciones fijadazas y se termina cuando llega al valor final.

Diagrama de Flujo

[pic]

Diagrama N-S

[pic]

Pseudocódigo

para var ( VI hasta VF [inc/dec] valor hacer

acción1

acción2

fin_para

Ejemplo Mostrar los N primeros números naturales.

Diagrama de Flujo

[pic]

Diagrama N-S

[pic]

Pseudocódigo

Inicio

Leer N

para i ( 1 hasta N hacer

Mostrar i

fin_para

Fin

2 Estructura mientras (WHILE)

La estructura repetitiva mientras es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Dicha condición se encuentra ubicada al principio del bucle y cuando se ejecuta esta instrucción, la primera cosa que sucede es que se evalúa la condición. Si la condición es verdadera, entonces se ejecuta el cuerpo del bucle. Este proceso se repite una y otra vez mientras la condición sea verdadera.

Diagrama de flujo

[pic]

Diagrama N-S

[pic]

Pseudocódigo

mientras condición hacer

acción1

acción2

fin_mientras

Ejemplo Mostrar los N primeros números naturales.

[pic]

[pic]

Diagrama N-S

[pic]

Pseudocódigo

Inicio

Leer N

i = 1

mientras i 0

i ( 1

repetir

Mostrar i

i ( i + 1

hasta_que i > N

Fin

3 EJERCICIOS PROPUESTOS

1. Dado un número N verificar si es par o impar sin utilizar DIV, MOD, /, o la función parte entera o [].

2. Dado un número NUM entero positivo reemplazar los dígitos impares que tuviera por el dígito par superior (en el caso del 9 reemplazar por 0).

3. Hacer leer un número Z y eliminar todos sus dígitos cuyo valor sea igual a otro número A previamente leído.

4. Dado un número N entero positivo, añadir los dígitos que sean necesarios a N para obtener un nuevo número capicúa en M.

5. Dado un número Z entero y positivo, eliminar aquellos dígitos que se encuentren en las posiciones impares. Mostrar el número resultante.

6. Leer un número X entero positivo y disminuir continuamente sus dígitos hasta que cada dígito llegue a cero.

Ejemplo:

|Para | | |

| |X = |567 |

|Mostrar |X = |456 |

| |X = |345 |

| |X = |234 |

| |X = |123 |

| |X = |012 |

| |X = |001 |

| |X = |000 |

7. Leer 2 números A y B enteros y positivos cuyos dígitos están ordenados ascendentemente, obtener un tercer número X entero y positivo formado por los dígitos de A y B, que también deberá estar ordenado ascendentemente.

8. Leer un número Z entero y positivo y eliminar aquellos dígitos cuyo valor sea igual al menor de ellos.

9. Leer un número X en base 10 y convertirlo a base B, donde B > 1 y B < 10.

10. Leer 2 números X e Y enteros y positivos, y generar un nuevo número Z con los dígitos pares de X seguidos de los dígitos impares de Y.

11. Dado un número N entero y positivo, mostrar los dígitos pares de N, y generar nuevos números con los dígitos decrecientes.

Ejemplo

N = 6458732

Dígitos pares

| 6 | 4 | 8 | 2 | |

| | | | |

| |Numéricos | | |

| | | |Reales |

| | | | |

| | | |1 sólo carácter (char) |

| |Carácter | | |

| | | |Varios caracteres (strings - cadenas) |

| | | | |

| |Lógicos | | |

Los datos estructurados se clasifican en:

| | | | |

| | | | |

| |Estáticos | | |

| | | |Vectores |

| | | |Matrices |

| | | |Registros |

| | | |Archivos |

| | | | |

| | | | |

| | | |Pilas |

| | | | |

| |Dinámicos | | |

| | | |Colas |

| | | |Listas |

| | | |Árboles |

| | | |Grafos |

Los tipos de datos simples o primitivos son aquellos que no están compuestos por otras estructuras de datos, los más utilizados por casi todos los lenguajes de programación son: enteros, reales y carácter, siendo los tipos lógicos, subrango y enumerativos propios de lenguajes estructurados como Pascal.

Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estáticas y dinámicas. Las estructuras de datos estáticas son aquellas en las que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse durante la ejecución del mismo. Las estructuras que pueden ser implementadas en casi todos los lenguajes de programación son: arreglos (arrays), registros y archivos.

Las estructuras de datos dinámicas no tienen limitaciones en el tamaño de memoria ocupada y se caracterizan porque éste tamaño de memoria si puede ser cambiado mientras la ejecución del programa. Las estructuras dinámicas más utilizadas son: pilas, colas, listas, árboles y grafos.

La selección del tipo de estructura de datos más adecuado a cada aplicación dependerá esencialmente del tipo de aplicación y no así del lenguaje de programación, ya que en aquellos lenguajes en los que dicha estructura no esté implementada deberá ser simulada mediante el algoritmo adecuado.

La diferencia más importante entre los tipos de datos simples y los tipos de datos estructurados consiste en que en los tipos de datos simples un nombre de variable (identificador) representa a un elemento, mientras que en los tipos de datos estructurados un identificador representa múltiples datos individuales, pudiendo cada uno de éstos ser referenciado independientemente.

4 ARREGLOS (ARRAYS)

Un arreglo se define como una colección finita, homogénea y ordenada de elementos, es finito porque tiene un limite de elementos que podrán formar parte del arreglo, homogéneo ya que todos los elementos deben ser del mismo tipo (Todos Caracteres, Todos Numéricos, Etc.) y ordenada ya que se puede saber cual es el primer elemento, el segundo elemento, y así sucesivamente hasta el ultimo elemento. Dicho arreglo se identifica mediante un nombre y se le asocia un nombre de variable válido (por ejemplo NOTAS, EDADES, FONOS, etc.).

Los componentes individuales del arreglo reciben el nombre de elementos y se distinguen entre ellos por el nombre del array seguido de uno o varios subíndices o índices entre paréntesis o corchetes. Los subíndices son números enteros que normalmente empiezan en 1 (excepto en el lenguaje C, en cuyo caso empiezan en 0). En una máquina, dichos elementos se almacenan en posiciones contiguas (adyacentes) de memoria (un elemento por posición). Estos elementos pueden ser datos simples o estructuras.

Los arreglos se utilizan para resolver cierto tipo de problemas en los que se debe operar con múltiples datos de manera eficiente y se requiere almacenarlos en conjunto.

Los arrays se clasifican en:

← Unidimensionales (vectores)

← Bidimensionales (matrices)

← Multidimensionales

1 ARREGLOS UNIDIMENSIONALES: VECTORES

Los arreglos unidimensionales son arreglos de una sola dimensión, y para operar con cualquiera de sus elementos se debe escribir el nombre del arreglo seguido de UN subíndice entre corchetes [ ].

Representación gráfica:

| | | | |……….. | |

| | | | | | | | |

|Primer |Segundo Elemento| | |Ultimo elemento|

|Elemento | | | | |

Los arreglos están compuestos elementos, donde cada elemento, a su vez, está formado por los índices y datos, los índices hacen referencia a la cantidad de elementos del arreglo y a la posición en la cual se localizan, los datos se refieren a la información que se almacena en cada una de las casillas, por lo tanto para hacer referencia a un dato de un arreglo se utiliza el nombre del arreglo y el índice del elemento.

Ejemplos

Por ejemplo podría ser un vector denominado NOTA:

|NOTA[0] |NOTA[1] |NOTA[2] |NOTA[3] |…………………… |NOTA[k] |………. | |

| | | | | | | |NOTA[30] |

|75 |68 |51 |49 |…………………. |68 |……. |100 |

|0 |1 |2 |3 |……………… |k |……. |n |

2 DECLARACION DE VECTORES

La declaración de vectores en los diagramas de flujo se hace inmediatamente después del INICIO, de la siguiente forma:

[pic]

donde:

|nomb_const |: |Nombre de la constante que indica la cantidad máxima de elementos que puede almacenar el vector |

|valor |: |Cantidad máxima de elementos que puede almacenar el vector |

|nomb_vector |: |Nombre del vector |

|tipo_valor |: |Tipo de los valores de los elementos del vector |

Ejemplos

[pic]

[pic]

[pic]

3 OPERACIONES CON VECTORES

Las operaciones con vectores se pueden realizar con elementos individuales o sobre los vectores completos mediante instrucciones básicas y estructuras de control.

Dichas operaciones son:

← Asignación

← Lectura/escritura

← Actualización (añadir, insertar, eliminar)

← Ordenación

← Búsqueda

1 Asignación

La asignación de valores a los elementos del vector se realizará con la instrucción de asignación.

Representación gráfica

[pic]

Ejemplos

[pic]

2)[pic]

2 Lectura/ Escritura

La operación de Lectura (almacenar o cargar o llenar) en vectores se realiza, normalmente, utilizando una estructura repetitiva (PARA/DESDE, REPETIR-HASTA, MIENTRAS-HACER); y consiste en leer un valor para cada una de sus casillas.

Representación gráfica

[pic]

Ejemplos:

1)

[pic]

La operación de Escritura (mostrar o desplegar) en vectores se la realiza, normalmente, utilizando una estructura repetitiva (PARA/DESDE, REPETIR-HASTA, MIENTRAS-HACER); y consiste en mostrar los valores almacenados en cada una de las casillas del vector.

Representación gráfica

[pic]Ejemplos:

1)

[pic]

3 Actualización

Consta a su vez de tres operaciones elementales:

← Añadir

← Insertar

← Borrar o eliminar

Añadir

La operación de Añadir consiste en agregar un nuevo elemento al FINAL del vector, la única condición para realizarla es que el vector no esté lleno.

Ejemplo:

Sea el vector X de dimensión n, V el valor que se desea añadir y MAX cantidad máxima de elementos que pueden almacenarse en el vector.

Para n = 6, V = 45, MAX = 10 y el vector

|X = |78 |56 |

|valor |: |Cantidad máxima de filas/columnas de la matriz |

|nomb_matriz |: |Nombre de la matriz |

|tipo_valor |: |Tipo de los valores de los elementos de la matriz |

Ejemplo.-

[pic]

5 CONCEPTOS SOBRE MATRICES

1 Matriz Cuadrada

Llámese matriz cuadrada a aquella matriz con igual número de filas que de columnas, y se denota por A(n, n).

Ejemplo.- Para N = 5, la matriz A de orden 5 es la siguiente:

| | |0 |1 |2 |3 |4 |

|A = |0 |12 |-5 |6 |98 |11 |

| |1 |45 |65 |-7 |55 |1 |

| |2 |25 |34 |78 |23 |12 |

| |3 |98 |78 |14 |16 |-8 |

| |4 |6 |8 |5 |7 |4 |

Elementos de la matriz cuadrada

Diagonal Principal

Es el conjunto formado por los elementos: A[0, 0], A[1, 1], A[2, 2], …., A[j, j], …, A[n-1, n-1], es decir, por los elementos cuyo número de fila es igual al número de columna.

Ejemplo.- Sea la matriz M de orden 5:

| | |0 |1 |2 |3 |4 |

|M = |0 |1 |5 |6 |7 |9 |

|M = |0 |1 |5 |6 |7 |9 |

|M = |0 |1 |5 |6 |7 |9 |

|M = |0 |1 |5 |6 |7 |

|C = |0 |1 |2 |5 |8 |

| |1 |7 |45 |6 |12 |

| |2 |10 |-7 |14 |16 |

2 Matriz Identidad

Es aquella matriz I (n, n) en la que todos los elementos de la diagonal principal son “1” y el resto son “0”:

Ejemplo.- Sea I la matriz de orden 4:

| | |0 |1 |2 |3 |

|I = |0 |1 |0 |0 |0 |

| |1 |0 |1 |0 |0 | |

|B = |0 |5 |8 |9 |

|B = |

|A[i, j] = A[j, i] |

| |

para cualquier matriz de orden n x n, donde 0 ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related download