INDICE - Universidad Salesiana de...

172
UNIVERSIDAD SALESIANA DE BOLIVIA DOSSIER INTRODUCCIÓN A LA PROGRAMACIÓN Primer Semestre Mg.Sc. JANNETH A. LAZARTE PEREZ I - 2012

Transcript of INDICE - Universidad Salesiana de...

UNIVERSIDAD SALESIANADE BOLIVIA

CARRERA DE INGENIERÍA DE SISTEMAS

DOSSIERINTRODUCCIÓN A LA PROGRAMACIÓN

Primer Semestre

Mg.Sc. JANNETH A. LAZARTE PEREZ

I - 2012

Universidad Salesiana de Bolivia Ingeniería de Sistemas

ContenidoCAPITULO I........................................................................................................................................................3CONCEPTOS BÁSICOS.....................................................................................................................................3

1.1 INTRODUCCIÓN................................................................................................................................31.2 DATOS, TIPOS DE DATOS Y OPERACIONES BÁSICAS...................................................................3

1.2.1. DEFINICIÓN DE DATOS...........................................................................................................31.2.2. TIPOS DE DATOS......................................................................................................................3

1.3 IDENTIFICADORES Y PALABRAS RESERVADAS.....................................................................61.4 CONSTANTES Y VARIABLES.........................................................................................................61.5 EXPRESIONES...................................................................................................................................7

1.5.1 EXPRESIONES ARITMÉTICAS................................................................................................71.5.2 EXPRESIONES LOGICAS.........................................................................................................9

1.6 FUNCIONES INTERNAS.................................................................................................................101.7 LA OPERACIÓN DE ASIGNACIÓN...............................................................................................111.8 ENTRADA / SALIDA DE INFORMACIÓN....................................................................................12

CAPÍTULO II.....................................................................................................................................................14RESOLUCIÓN DE PROBLEMAS UTILIZANDO COMPUTADORAS........................................................14

2.1 FASES EN LA RESOLUCION DE PROBLEMAS..........................................................................142.2 FASE DE RESOLUCION DEL PROBLEMA..................................................................................14

2.2.1 Análisis del Problema “ ¿ QUÉ ES LO QUE SE DESEA HACER ? ”.....................................142.2.2 Diseño del Algoritmo “¿ CÓMO SE HARÁ ?”........................................................................162.2.3 Verificación Manual del Algoritmo...........................................................................................25

2.3 FASE DE IMPLEMENTACION EN LA COMPUTADORA..........................................................262.3.1 Codificación del algoritmo en programa....................................................................................262.3.2 Compilación y ejecución de un programa..................................................................................262.3.3 Verificación y depuración del programa...................................................................................272.3.4 Documentación y mantenimiento...............................................................................................27

CAPITULO III...................................................................................................................................................28PROGRAMACIÓN ESTRUCTURADA...........................................................................................................28

3.1 REGLAS DE PROGRAMACIÓN.....................................................................................................283.2 PROGRAMACIÓN ESTRUCTURADA...........................................................................................28

3.2.1 Diseño descendente....................................................................................................................283.2.2 Recursos Abstractos...................................................................................................................303.2.3 Teorema de la programación estructurada: estructuras básicas.................................................30

3.3 EJERCICIOS PROPUESTOS............................................................................................................58CAPITULO IV...................................................................................................................................................61ARREGLOS UNIDIMENSIONALES: VECTORES........................................................................................61

4.1 INTRODUCCION A LAS ESTRUCTURAS DE DATOS...............................................................614.2 ARREGLOS (ARRAYS)...................................................................................................................63

4.2.1 ARREGLOS UNIDIMENSIONALES: VECTORES................................................................634.3 EJERCICIOS PROPUESTOS............................................................................................................72

CAPÍTULO V....................................................................................................................................................74ARREGLOS BIDIMENSIONALES : MATRICES..........................................................................................74

5.1 INTRODUCCIÓN...................................................................................................................................745.2 DECLARACIÓN DE MATRICES....................................................................................................765.3 CONCEPTOS SOBRE MATRICES..................................................................................................77

5.3.1 Matriz Cuadrada.........................................................................................................................775.3.2 Matriz Rectangular.....................................................................................................................795.3.3 Matriz Identidad.........................................................................................................................805.3.4 Matriz Transpuesta.....................................................................................................................805.3.6 Matriz Inversa.............................................................................................................................81

5.4 LECTURA/ESCRITURA DE MATRICES.......................................................................................825.5 ALGEBRA DE MATRICES..............................................................................................................84

Introducción a la Programación 1 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

5.5.1 Suma de matrices........................................................................................................................845.5.2 Resta de matrices........................................................................................................................845.5.3 Multiplicación de una matriz por un escalar..............................................................................855.5.4 Multiplicación de matrices.........................................................................................................86

5.6 EJERCICIOS PROPUESTOS............................................................................................................86CAPÍTULO VI...................................................................................................................................................91METODOS DE ORDENACIÓN.......................................................................................................................91

6.1 INTRODUCCIÓN..............................................................................................................................916.2 METODO DE INTERCAMBIO O DE LA BURBUJA....................................................................916.3 MÉTODO DE ORDENACIÓN POR INSERCIÓN..........................................................................946.4 METODO DE ORDENACIÓN POR SELECCIÓN.........................................................................956.5 MÉTODO DE ORDENACIÓN RÁPIDA (QUICKSORT)...............................................................95

CAPÍTULO VII..................................................................................................................................................97MÉTODOS DE BÚSQUEDA............................................................................................................................97

7.1 INTRODUCCIÓN..............................................................................................................................977.2 MÉTODO DE BÚSQUEDA SECUENCIAL....................................................................................977.3 MÉTODO DE BÚSQUEDA BINARIA............................................................................................987.4 MÉTODO DE BÚSQUEDA MEDIANTE TRANSFORMACIONES DE CLAVES (HASHING).99

CAPÍTULO VIII..............................................................................................................................................100INTRODUCCION A LA PROGRAMACIÓN MODULAR...........................................................................100

8.1 INTRODUCCION............................................................................................................................1008.2 EL DISEÑO DESCENDENTE: SUBPROGRAMAS...........................................................................1008.3 EL DISEÑO MODULAR......................................................................................................................102

8.3.1 PROCEDIMIENTOS Y FUNCIONES....................................................................................1028.4 TRANSFERENCIA DE INFORMACIÓN HACIA /DESDE MÓDULOS....................................105

8.4.1 Los parámetros................................................................................................................................1058.4.2 VARIABLES LOCALES Y VARIABLES GLOBALES.......................................................1068.4.3 AMBITO DE UN IDENTIFICADOR.....................................................................................107

LECTURAS COMPLEMENTARIAS.............................................................................................................108BIBLIOGRAFÍA..............................................................................................................................................108GLOSARIO......................................................................................................................................................109

Introducción a la Programación 2 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPITULO I

CONCEPTOS BÁSICOS

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

1.2.1. DEFINICIÓN DE DATOS

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

1.2.2. TIPOS DE DATOS

Los datos se clasifican en:

Simples Estructurados

Introducción a la Programación 3 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Los datos estructurados se clasifican en:

EstáticosVectoresMatricesRegistrosArchivos

Dinámicos

PilasColasListasÁrbolesGrafos

1.2.2.1. DATOS SIMPLES

Los datos simples se clasifican en:

Enteros Numérico

sReales

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

Varios caracteres (strings - cadenas)

Lógicos

1.2.2.1.1. Datos Numéricos

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

Ejemplos:

a) 984b) 86c) -75d) 132

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

Introducción a la Programación 4 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos:

a) 0.98b) 938.83c) 123.6555d) 6.87

1.2.2.1.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’

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

1.3 IDENTIFICADORES Y PALABRAS RESERVADAS

Introducción a la Programación 5 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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:

Turbo PascalProgram, var, uses, const, type, begin, end, repeat, while, if, unit, until, do, if, else, then, etc.

Turbo Cint, double, case, char, const, do, if, else, while, struct, for, etc.

1.4 CONSTANTES Y VARIABLES

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

Ejemplos:

a) 3.1416b) 2.71828c) ‘Error’

Introducción a la Programación 6 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

a) Edad: representa la edad de una personab) Sueldo_mensual: representa el sueldo que gana un empleado cada mesc) Nota_final: representa la nota final obtenida por un alumno.

1.5 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.5.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.5.1.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)

Introducción a la Programación 7 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Introducción a la Programación 8 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

OA) 156 10(6) 15

cociente

residuo

1.5.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.5.2.1 Operadores relacionales

Operador Significado= Igual que

<> Distinto que> Mayor que< Menor que

>= Mayor o igual que<= Menor o igual que

Ejemplos:

a) si A = 3 y B = 5

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

Introducción a la Programación 9 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

1.5.2.2 Operadores lógicos

Operador Expresión lógica Significadonot not p (no p)and p and q (p Λ q) Conjunción de p y qor p or q (p v q) Disyunción de p y q

p q p and q p or qV V V VV F F VF V F VF F F F

p not pV FF 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

1.6 FUNCIONES INTERNAS

Función Significado Tipo de operandos

Tipo de resultado

abs (x) Valor absoluto de x Entero o real Entero o realarctg (x) Arco tangente de x Entero o real Realcos(x) Coseno de x Entero o real Realent(x) Parte entera de x Entero o real Realexp(x) ex Entero o real Realln(x) Logaritmo natural de x Entero o real Reallog(x) Logaritmo decimal de x Entero o real Realsqrt(x) Raiz cuadrada de x Entero o real Realsqr(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 Realtan(x) Tangente de x Entero o real Real

trunc(x) Parte entera de x Real Entero

Introducción a la Programación 10 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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 ) + 3X = 25 + 2 + 3X = 30

1.7 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

Introducción a la Programación 11 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos:

N 10

A 0

A A + 3

C N div 2

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

Introducción a la Programación 12 Dossier

N A Coo oo oo10 0 5

3

nom_var

A, B, C A B COo oo oo25 -4 52

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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:

Introducción a la Programación 13 Dossier

NN

NN

NMOSTRAROO1515

nom_var nom_var

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO IIRESOLUCIÓN DE PROBLEMAS UTILIZANDO COMPUTADORAS

2.1 FASES EN LA RESOLUCION DE PROBLEMAS

donde:

F1: Fase de resolución del problemaF2: Fase de implementación en la computadora

2.2 FASE DE RESOLUCION DEL PROBLEMA

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

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

Introducción a la Programación 14 Dossier

ProblemaF1

Algoritmo SoluciónF2

Diagrama de Flujo

Programa

RESOLUCION DEL PROBLEMA

Análisis del Problema Diseño del Algoritmo Verificación Manual del Algoritmo

Análisis del Problema

Definición del problema Datos de Entrada Datos de Salida = resultados

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Introducción a la Programación 15 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Z : número real

Variables de salida

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

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

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

2.2.2.1.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.2.2.1.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.

Introducción a la Programación 16 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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

InicioP1. Llenar la olla con aguaP2. Encender el fuego de la cocinaP3. Poner la olla al fuegoP4. Esperar hasta que hierva el aguaP5. Introducir el huevo en la ollaP6. Esperar 10 minutosP7. Apagar el fuegoP8. Vaciar el aguaP9. Sacar el huevo de la olla

Fin

2) Algoritmo para preparar tortilla de papas

InicioP1. Pelar las papasP2. Echar las papas en una olla con aguaP3. Echar sal a gustoP4. Repetir Esperar Hasta que las papas estén cocidasP5. Vaciar el agua de la ollaP6. Sacar las papas a una cacerolaP7. Cortar las papasP8. Sacar el huevo de la neveraP9. Romper el huevo y botar las cáscarasP10. Batir el huevo en un plato hondoP11. Encender el fuegoP12. Poner la sartén

Introducción a la Programación 17 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

P13. Repetir Esperar Hasta que el aceite esté hirviendoP14. Meter las papas en la sarténP15. Esperar a que las papas estén doradasP16. Verter los huevos en la sarténP17. Echar un poco de salP18. Repetir Batir huevos y papas por ambos lados Hasta que la tortilla esté doradaP19. Retirar la sarténP20. Colocar la tortilla en un plato.

Fin

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

2.2.2.2.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:

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

Ejemplo

Inicio del programa

Introducción a la Programación 18 Dossier

CC

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Fin del programa

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

Ejemplos

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

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

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.

Introducción a la Programación 19 Dossier

fin

AA

A, BA, B

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos

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

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

Transfiere el valor de la variable A a la variable B

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

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

Compara el valor de la variable A con cero

Introducción a la Programación 20 Dossier

A A 0 0

A A A + 2 A + 2

B B A A

sino

A>A>BB

sino

A = 0

sino

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CONECTOR, se utiliza para enlazar dos partes cualesquiera de un diagrama de flujo en la misma página

CONECTOR, se utiliza para enlazar dos partes cualesquiera de un diagrama de flujo en diferentes páginas.

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

LINEA CONECTORA, se utiliza para unir dos símbolos

Se utiliza para realizar llamadas a subprogramas

IMPRESORA, se utiliza para enviar datos a la impresora

PANTALLA, se utiliza para mostrar los resultados por pantalla

Introducción a la Programación 21 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos

Muestra el valor almacenado en la variable A

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

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.

Introducción a la Programación 22 Dossier

AA

AA

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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

Introducción a la Programación 23 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Introducción a la Programación 24 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

Inicio

leer(num)

si num > 0 entonces

absnum num

si_no

absnum num * (-1)

fin_si

mostrar(absnum)

Fin

Diagrama N-S

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

Introducción a la Programación 25 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

2.3.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.3.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.2.3.3 Verificación y depuración del programa

Introducción a la Programación 26 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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

Introducción a la Programación 27 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPITULO IIIPROGRAMACIÓN ESTRUCTURADA

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

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

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

Introducción a la Programación 28 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo

Calcular el promedio de 3 números.

AnálisisVariables de entrada

A: 1er. número realB: 2do. número realC: 3er. número real

Variables de salida

P: promedio de A, B y C

Diseño Entran :

A = 5B = 4C = 8

Sale :

P = 5.66

P = A + B + C

3

Introducción a la Programación 29 Dossier

Problema Principal

Subproblema 1 Subproblema 2 Subproblema 3 Subproblema 4

Subproblema 1.1. Subproblema 1.2. Subproblema 3.1.

Diseño Descendente

Universidad Salesiana de Bolivia Ingeniería de Sistemas

1. Leer los valores de A, B y C2. Calcular el promedio3. Mostrar el promedio

3.2.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.2.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

3.2.3.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 salida2. Existen caminos desde la entrada hasta la salida.3. Todas las instrucciones son ejecutables y no existen bucles infinitos

Introducción a la Programación 30 Dossier

Calcular el promedio de 3 números

Leer los valores deA, B y C Calcular el promedio Mostrar el

promedio

Leer el valor de A Leer el valor de B Leer el valor de C

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos:

Incorrecto Correcto

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

Introducción a la Programación 31 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Incorrecto Correcto

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

y éste debe terminar en algún momento.

Introducción a la Programación 32 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Incorrecto Correcto

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

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

Introducción a la Programación 33 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Diagrama N-S

Pseudocódigo

inicioAcciónAAcciónB

.

.

.

.

.AcciónN

fin

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

Introducción a la Programación 34 Dossier

Acción A

Acción N

Acción B

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Pseudocódigo

Inicioleer(A)leer(B)c A/Bmostrar(C)

Fin3.2.3.3 Estructuras Selectivas

Introducción a la Programación 35 Dossier

Inicio

Leer A

Leer B

C A/B

Mostrar C

Fin

Diagrama N-S

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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

Diagrama N-S

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

Diagrama de Flujo

Introducción a la Programación 36 Dossier

condición

acción A

acción B

sino

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Introducción a la Programación 37 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

InicioLeer A, Bsi B <> 0 entonces

C A / BMostrar C

fin_siFin

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

Diagrama N-S

Ejemplo

Introducción a la Programación 38 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Diagrama de Flujo

Diagrama N-S

Pseudocódigo

Introducción a la Programación 39 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

InicioLeer A, Bsi B <> 0 entonces

C A / BMostrar C

si_noMostrar “b debe ser distinto de cero”

fin_siFin

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

Introducción a la Programación 40 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S - Opción 1

Introducción a la Programación 41 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S - Opción 2

Pseudocódigo

según_sea variable hacerop1: acción1op2: acción2op3: acción3...opn: acciónNsi_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.

Introducción a la Programación 42 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo – Opción 1

Introducción a la Programación 43 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo – Opción 2

Introducción a la Programación 44 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

InicioLeer A, BLeer swsegún_sea sw hacer

1: c A + B Mostrar c2: c A – B Mostrar c3: c A * B Mostrar c4: si B <> 0 entonces

C A / BMostrar C

Introducción a la Programación 45 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

si_noMostrar “b debe ser distinto de cero”

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

fin_segúnFin

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

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

Introducción a la Programación 46 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Diagrama N-S

Introducción a la Programación 47 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

para var VI hasta VF [inc/dec] valor haceracción1acción2

fin_para

Ejemplo Mostrar los N primeros números naturales.

Diagrama de Flujo

Diagrama N-S

Pseudocódigo

Introducción a la Programación 48 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

InicioLeer Npara i 1 hasta N hacer

Mostrar ifin_para

Fin

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

Introducción a la Programación 49 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

mientras condición haceracción1acción2

fin_mientras

Ejemplo Mostrar los N primeros números naturales.

Introducción a la Programación 50 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Introducción a la Programación 51 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

InicioLeer Ni = 1mientras i <= N hacer

Mostrar ii = i + 1

fin_mientrasFin

3.2.3.4.3 Estructura repetir – hasta (REPEAT - UNTIL)

Se ejecuta hasta que se cumpla una condición determinada que por su ubicación se comprueba al final del bucle, esto permite que la iteración se ejecute al menos una vez antes de la condición ser evaluada.

Diagrama de Flujo

Introducción a la Programación 52 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

repetiracción1acción2

hasta_que condición

Diferencias entre las estructuras mientras y repetir

La estructura mientras termina cuando la condición es falsa, mientras que repetir termina cuando la condición es verdadera.

En la estructura repetir el cuerpo del bucle se ejecuta siempre al menos una vez; por el contrario, en la estructura mientras existe la posibilidad de que el bucle no se ejecute.

Ejemplos

1. Leer dos los valores de dos números A y B y realizar su división.

Introducción a la Programación 53 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Introducción a la Programación 54 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

InicioLeer Arepetir

Leer Bhasta_que B <> 0C A / BMostrar C

Fin

Introducción a la Programación 55 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo

Mostrar los N primeros números naturales.

Introducción a la Programación 56 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

Iniciorepetir

Leer Nhasta_que N > 0i 1repetir

Mostrar ii i + 1

hasta_que i > NFin

Introducción a la Programación 57 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

3.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:

3.3.1.1.1.1.1.1Para

X = 567

Mostrar X = 456X = 345X = 234X = 123X = 012X = 001X = 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.

Introducción a la Programación 58 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo

N = 6458732Dígitos pares

6 4 8 2Mostrar 21Mostrar 87654321Mostrar 4321Mostrar 654321

12. Generar las siguientes series de N términos:

a) 1, 2, 4, 7, 11, 16, ...................b) 2, 3, 4, 6, 7, 8, 12, 13, 14, 20, 21, ..................c) 1, 4, 13, 40, 121, 364, ..............................d) 0, 1, 3, 7, 14, 26, .........................e) 1, 3, 7, 13, 21, 31,......................f) 7, 6, 5, 7, 6, 5, 7, 6, 5, 7, .........................g) 1, -3, 5, -7, 9, -11, 13, -15, .........................h) 7, -18, 25, -49, 54, -55, 91, ..........................i) –1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, -1, ..................................j) 1, 2, 6, 12, 25, 48, 91, 168, ......................................

13. Dado un lote de N números enteros determinar cuántas veces un positivo está seguido de un cero.

14. Dado un lote de N números positivos menores que 111:a) si el número introducido es par calcular su factorialb) si el número introducido es impar verificar si es primoc) si el número introducido es par y múltiplo de 5 mostrar la suma de

sus divisores

15. Dado un lote de N números:a) determinar la cantidad de números primos y su sumab) determinar la cantidad de números perfectos y su suma

16. Dado un lote de N números mayores que 100 generar un número Z con los dígitos centena de cada número. Mostrar Z.

17. Dado un lote de N número, mostrar el promedio de cada 3 números consecutivos.

18. Dado un lote de N números, desplegar aquellos números tales que la diferencia entre el número y su inverso dé como resultado 54.

Introducción a la Programación 59 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

19. Introducir por teclado un lote de n números que representan los datos de una encuesta realizada a N estudiantes universitarios sobre su edad y sexo. Cada número está compuesto por 3 dígitos que representan la edad y el sexo de la persona, desglosados de la siguiente forma: los dos primeros dígitos (de izquierda a derecha) representan la edad del estudiante, y el tercer dígito representa el sexo, codificado como 0 = masculino y 1 = femenino. Calcular:

a) la cantidad total de mujeres (CantMu) b) la cantidad total de varones (CantVa)c) el promedio de las edades (PromEd)

Ejemplo Sea N = 7

361, 270, 180, 431, 251, 211, 190

sexo edad

Resulta:

CantMu = 3CantVa = 4PromEd = (36+27+18+43+25+21+19)/7 = 189/7 = 27

20. Evaluar las siguientes sumatorias:

a) S = 1! +2! + 3! + 4! + 5! + ..........................

b) S = 1/21 + 1/22 + 1/23 + 1/24 + .....................

c) S = 0*1 + 1*2 + 2*3 + 3*4 + 4*5 + .........................

d) S = 1*2 + 2*3 + 3*4 + 4*5 + 5*6 + .............

Introducción a la Programación 60 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPITULO IVARREGLOS UNIDIMENSIONALES: VECTORES

4.1 INTRODUCCION A LAS ESTRUCTURAS DE DATOS

Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella.

Los tipos de datos utilizados con más frecuencia en los diferentes lenguajes de programación son:

Simples Estructurados

Los datos simples son los que ocupan una casilla en la memoria (una variable simple hace referencia a un único valor a la vez) mientras que los datos estructurados hacen referencia a un grupo de casillas las cuales contiene un nombre o identificador.

RECORDANDO…

Los datos simples se clasifican en:

Enteros Numérico

sReales

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

Varios caracteres (strings - cadenas)

Lógicos

Introducción a la Programación 61 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Los datos estructurados se clasifican en:

EstáticosVectoresMatricesRegistrosArchivos

Dinámicos

PilasColasListasÁrbolesGrafos

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.

Introducción a la Programación 62 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

4.2 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

4.2.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:

………..

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

Introducción a la Programación 63 Dossier

Primer Elemento

Segundo Elemento

Ultimo elemento

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

4.2.1.1 DECLARACION DE VECTORES

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

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 vectortipo_valor : Tipo de los valores de los elementos del vector

Ejemplos

Introducción a la Programación 64 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Introducción a la Programación 65 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

4.2.1.2 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

4.2.1.2.1 Asignación

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

Introducción a la Programación 66 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Representación gráfica

Ejemplos

2)

Introducción a la Programación 67 Dossier

nomb_vector[subindice] valor

A[0] 5

A[1] 48

A[2] 24

A[3] -15

Quedando el vector A :

A =54824-15oo01234oo = valor infinito

j 0, n-1, 1

A[j] 1

j

Donde n es la dimensión del vector A.

El vector A para n = 4 quedaría así:

A =1111oo01234oo = un valor infinito

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Ejemplos:

1)

La operación de Escritura (mostrar o desplegar) en vectores se la realiza, normalmente, utilizando una estructura repetitiva (PARA/DESDE, REPETIR-

Introducción a la Programación 68 Dossier

j 0, n-1, 1

V[j]

j

Donde:

j representa a la variable subíndice

n es la dimensión del vector V

V es el vector de dimensión n

j 0, n-1,1

V[j]

j

Para n = 5, el vector V quedaría así:

V =78-4578116401234

Universidad Salesiana de Bolivia Ingeniería de Sistemas

HASTA, MIENTRAS-HACER); y consiste en mostrar los valores almacenados en cada una de las casillas del vector.

Representación gráfica

Ejemplos:

1)

4.2.1.2.3 Actualización

Consta a su vez de tres operaciones elementales:

Añadir Insertar Borrar o eliminar

Añadir

Introducción a la Programación 69 Dossier

j 0, n-1, 1

j

Donde:

j representa a la variable subíndice

n es la dimensión del vector V

V es el vector de dimensión nV[j]

j 0, n-1, 1

j

V[j]

Para n = 5 y el vector V con los siguientes elementos:

V =78-4578116801234Se imprimirían los valores almacenados en los elementos de V, es decir:

78, -45, 78, 1, 168

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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 -12 65 32 58 oo oo oo oo0 1 2 3 4 5 6 7 8 9

El nuevo valor de n sería 7 y el vector X resultante quedaría así:

X = 78 56 -12 65 32 58 45 oo oo oo0 1 2 3 4 5 6 7 8 9

Insertar

La operación de Insertar consiste en agregar un nuevo elemento en el INTERIOR del vector. Para insertar un elemento X en un arreglo Y ordenado se debe verificar:

1. Que exista espacio. Luego se debe:2. Encontrar la posición en la que se colocará el dato, esto con el fin de no

alterar el orden del vector, una vez encontrado el lugar, se debe mover todos los elementos del vector desde la misma posición hasta la última posición y luego se inserta el dato X. es importante tener en cuenta que si el dato a insertar se encuentra en la última posición no es necesario mover los elementos del vector.

3. Para no colocar datos que ya existan en el vector se debe buscar dentro de éste que el dato a insertar no exista para lo cual utilizaremos el algoritmo buscar.

Ejemplos:

1) Sea el vector V de dimensión n, X el valor que se desea insertar, MAX cantidad máxima de elementos que pueden almacenarse en el vector y POS la posición en la que se insertará el nuevo valor

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

V = 8 16 20 65 87 158 oo oo oo oo0 1 2 3 4 5 6 7 8 9

El nuevo valor de n sería 7 y el vector V resultante quedaría así:

V = 8 16 20 45 65 87 158 oo oo oo0 1 2 3 4 5 6 7 8 9

Introducción a la Programación 70 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Borrar o eliminar

La operación de Borrar consiste en eliminar un elemento del vector. Para eliminar un elemento X de un arreglo Y debe verificarse:

1. Que el arreglo Y no se encuentre vacío2. Que el elemento X se encuentre en el arreglo

Si se cumplen las dos condiciones anteriores se procederá a mover todos los elementos que están a su derecha una posición a la izquierda (o hacia arriba en vectores columna), decrementando finalmente el número de elementos del arreglo.

Ejemplo:

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

Para n = 6, X = 65, MAX = 10 y el vector

V = 78 56 -12 65 32 58 oo oo oo oo0 1 2 3 4 5 6 7 8 9

El nuevo valor de n sería 5 y el vector V resultante quedaría así:

V = 78 56 -12 32 58 oo oo oo oo oo0 1 2 3 4 5 6 7 8 9

2) Sea el vector V de dimensión n, POS la posición del elemento que se desea eliminar y MAX cantidad máxima de elementos que pueden almacenarse en el vector.

Para n = 6, POS = 2, MAX = 10 y el vector

V = 78 56 -12 65 32 58 oo oo oo oo0 1 2 3 4 5 6 7 8 9

El nuevo valor de n sería 5 y el vector V resultante quedaría así:

V = 78 -12 65 32 58 oo oo oo oo oo0 1 2 3 4 5 6 7 8 9

4.2.1.2.4 Ordenación

La Ordenación es la operación que consiste en organizar un conjunto de datos en forma ascendente (empezando por el elemento de menor valor y

Introducción a la Programación 71 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

terminando en el elemento de mayor valor) o descendente (empezando por el elemento de mayor valor y terminando en el elemento de menor valor).

Algunos de los algoritmos más utilizados son:

Método de intercambio o de la Burbuja Ordenación por inserción Ordenación por selección Método Shell Método de ordenación rápida (quicksort)

4.2.1.2.5 Búsqueda

La operación de búsqueda consiste en buscar un determinado elemento de acuerdo a su valor y luego identificar la posición en la que se encuentra.

Los métodos más utilizados son:

Búsqueda secuenciar o lineal Búsqueda binaria Búsqueda por transformación de claves (hashing)

4.3 EJERCICIOS PROPUESTOS

1. Llenar dos vectores A y B de N elementos cada uno, sumar el elemento de la primera posición del vector A con el elemento de la primera posición del vector B y así sucesivamente hasta N, almacenar el resultado en un vector C, e imprimir el vector resultante.

2. Llenar un vector de N elementos, imprimir la posición y el valor del elemento mayor almacenado en el vector. Suponga que todos los elementos del vector son diferentes.

3. Almacenar N números en un vector, elevar al cuadrado cada valor almacenado en el vector, almacenar el resultado en otro vector. Imprimir el vector original y el vector resultante.

4. Almacenar N números en un vector, imprimir cuantos son ceros, cuantos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.

5. Almacenar N números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.

6. Se tienen almacenados en la memoria dos vectores A y B de N elementos cada uno. Hacer un algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo son. Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.

Introducción a la Programación 72 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

7. Se tiene el vector A con N elementos almacenados. Diseñe un algoritmo que escriba “SI” si el vector está ordenado ascendentemente o “NO” si el vector no está ordenado.

8. Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector V, el cual tiene almacenados N elementos. Escribir la posición donde se encuentra almacenado el número en el vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.

9. Diseñe un algoritmo que lea dos vectores A y B de N elementos cada uno y multiplique el primer elemento de A con el ultimo elemento de B y luego el segundo elemento de A por el N-1 elemento de B y así sucesivamente hasta llegar al N elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C.

10.Dado un vector A de N elementos, hallar:a. La suma de los números paresb. La suma de los números imparesc. La suma de los números primosd. La cantidad de números pares, impares y primos.

11.Realizar la suma de dos vectores considerando que son de distinta longitud.

12.Dados dos Vectores A y B ordenados ascendentemente llevar todos sus elementos a un nuevo vector C que también deberá estar ordenado ascendentemente.

13.Dado un Vector A de N elementos hacer rotar hacia la derecha en K elementos

14.Realizar el producto de dos vectores considerando que son de distinta longitud.

15.Generar los primeros N números primos y almacenarlos en un vector P.

Para N = 8, P quedaría:

P = 2 3 5 7 11 13 17 190 1 2 3 4 5 6 7

Introducción a la Programación 73 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO VARREGLOS BIDIMENSIONALES : MATRICES

5.1 INTRODUCCIÓN

Hasta ahora, todos los arreglos que se han considerado han sido unidimensionales de modo que bastaba un sólo índice para especificar un elemento deseado. Cuando la información se acomoda de manera natural en una disposición rectangular o cuadrada, es decir en una tabla de valores, puede ser ventajoso almacenarla en un arreglo bidimensional, también llamado "matriz".

Fila 0

Fila 1

Fila 2

Fila 3

Fila 4

Una matriz puede considerarse como un vector de vectores. Es, por consiguiente, un conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es significativo y se necesitan dos índices para especificar uno de sus elementos, un subíndice de renglón o fila y un subíndice de columna.

Un array bidimensional, también denominado matriz o tabla, tiene dos dimensiones (una dimensión por cada subíndice) y necesita un valor para cada subíndice y poder identificar a cada uno de sus elementos. El primer subíndice se refiere a la fila de la matriz, mientras que el segundo subíndice se refiere a la columna.

Sea B una matriz de N filas y M columnas:

01

Introducción a la Programación 74 Dossier

Columna 5

Columna 4

Columna 3

Columna 2

Columna 1

Columna 0

Universidad Salesiana de Bolivia Ingeniería de Sistemas

B =

2….

i B[i, j]…..N-1

0 1 2 3 4 5 ….. j …. M-1

el elemento B[i, j] es aquel que ocupa la i-ésima fila y la j-ésima columna.

Donde i = 0..N o bien 0 <= i <= N-1

j = 0..M o bien 0 <= j <= M-1

El arreglo B se dice que tiene N por M elementos ya que existen M elementos en cada fila y N elementos en cada columna.

Ejemplo Sea a una matriz de 4 filas y 3 columnas, podemos asignar valores a cada uno de sus elementos de la siguiente forma:

Introducción a la Programación 75 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Quedando la matriz:

5.2 DECLARACIÓN DE MATRICES

Lo mismo que los vectores, las matrices también deben declararse para luego ser utilizadas, dicha declaración en los diagramas de flujo se hace inmediatamente después del símbolo de INICIO, de la siguiente forma:

Introducción a la Programación 76 Dossier

nomb_const = valor

PROCESOS

nomb_matriz = MATRIZ[nomb_cons, nomb_const] DE tipo_valor

C

fin

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Donde:

nomb_const : Nombre de la constante que indica la cantidad máxima de filas/columnas de la matriz

valor : Cantidad máxima de filas/columnas de la matriznomb_matriz : Nombre de la matriztipo_valor : Tipo de los valores de los elementos de la matriz

Ejemplo.-

5.3 CONCEPTOS SOBRE MATRICES

5.3.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 111 45 65 -7 55 12 25 34 78 23 123 98 78 14 16 -84 6 8 5 7 4

Introducción a la Programación 77 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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 91 5 0 3 2 42 10 -7 14 6 73 3 2 2 4 84 7 8 9 9 0

Los valores de los elementos que están en la diagonal principal son:

1, 0, 14, 4, 0

Triangular Superior

La región determinada por los elementos situados sobre la diagonal principal se llama triangular superior que tiene la propiedad de que la fila es menor que la columna.

Ejemplo.- Sea la matriz M de orden 5:

0 1 2 3 4

M =

0 1 5 6 7 91 5 0 3 2 42 10 -7 14 6 73 3 2 2 4 84 7 8 9 9 0

Los valores de los elementos que están en la triangular superior son:

5, 6, 7, 9, 3, 2, 4, 6, 7, 8

Triangular Inferior

La región determinada por los elementos situados por debajo de la diagonal principal se llama triangular inferior que tiene la propiedad de que la fila es mayor que la columna.

Ejemplo.- Sea la matriz M de orden 5:

Introducción a la Programación 78 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

0 1 2 3 4

M =

0 1 5 6 7 91 5 0 3 2 42 10 -7 14 6 73 3 2 2 4 84 7 8 9 9 0

Los valores de los elementos que están en la diagonal principal son:

5, 10, -7, 3, 2, 2, 7, 8, 9, 9

Diagonal Secundaria

Es el conjunto formado por los elementos: A[0, n-1], A[1, n -2], A[2, n-3], …., A[i, j], …, A[n-1, 0].

Ejemplo.- Sea la matriz M de orden 5:

0 1 2 3 4

M =

0 1 5 6 7 91 5 0 3 2 42 10 -7 14 6 73 3 2 2 4 84 7 8 9 9 0

Los valores de los elementos que están en la diagonal secundaria son:

9, 2, 14, 2, 7

5.3.2 Matriz Rectangular

Llámese matriz rectangular a aquella matriz que tiene más filas que columnas o más columnas que filas, se denota por A(n, m).

Ejemplo.- Para A = 3 y B = 4, la matriz C (3, 4) es la siguiente:

0 1 2 3

C =0 1 2 5 81 7 45 6 122 10 -7 14 16

Introducción a la Programación 79 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

5.3.3 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 01 0 1 0 02 0 0 1 03 0 0 0 1

5.3.4 Matriz Transpuesta

La matriz transpuesta At de una matriz A(m, n) es aquella en la cual las filas de una matriz son las columnas de la otra.

Ejemplo.- Sea la matriz B (3, 5):

0 1 2 3 4

B =0 5 8 9 7 61 4 5 3 2 -12 0 1 10 -9 5

Entonces la matriz transpuesta Bt (5, 3) será:

0 1 2

B =

0 5 4 01 8 5 12 9 3 103 7 2 -94 6 -1 5

5.3.5Matriz Simétrica

Una matriz es simétrica si cumple que:

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

para cualquier matriz de orden n x n, donde 0 <= i <= n-1, 0 <= j <= n-1

Introducción a la Programación 80 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo.- Sea la matriz Z (5, 4) simétrica, entonces tendrá la forma:

0 1 2 3

Z =0 1 2 5 61 2 4 7 82 5 7 10 -13 6 8 -1 11

5.3.6 Matriz Inversa

Es aquella matriz X (n, n) representada por X-1 y tal que X*X-1 = I, donde I es la matriz identidad.

Ejemplos.-

a) Sea la matriz A (2, 2):

0 1

A = 0 2 -51 -1 3

la matriz inversa de A. A-1 es:

0 1

A-1 = 0 3 51 1 2

b) Sea la matriz B (3, 3):

0 1 2

B =0 1 2 31 2 5 32 1 0 8

la matriz inversa de B, B-1 es:

0 1 2

B-1 =0 -40 16 91 13 -5 -32 5 -2 -1

Introducción a la Programación 81 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

5.4 LECTURA/ESCRITURA DE MATRICES

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

Ejemplo:

Introducción a la Programación 82 Dossier

i 0, n-1, 1

j 0, n-1, 1

A[i, j]

j

i

Donde:

i representa al subíndice de las filasj representa al subíndice de las columnasn es la cantidad de filasm es la cantidad de columnasA es la matriz de n*n (matriz cuadrada)

i 0, n-1, 1

j 0, m-1, 1

A[i, j]

j

i

Donde:

i representa al subíndice de las filasj representa al subíndice de las columnasn es la cantidad de filasm es la cantidad de columnasA es la matriz de n*m (matriz rectangular)

Universidad Salesiana de Bolivia Ingeniería de Sistemas

La operación de Escritura (mostrar o desplegar) en matrices se la realiza, normalmente, utilizando dos estructuras repetitivas (PARA/DESDE, REPETIR-HASTA, MIENTRAS-HACER); y consiste en mostrar los valores almacenados en cada una de las casillas de la matriz.

Ejemplo:

Introducción a la Programación 83 Dossier

i 0, n-1, 1

j 0, n-1, 1

j

i

Donde:

i representa al subíndice de las filasj representa al subíndice de las columnasn es la cantidad de filasm es la cantidad de columnasA es la matriz de n*n (matriz cuadrada)A[i,

j]

i 0, n-1, 1

j 0, m-1, 1

j

i

Donde:

i representa al subíndice de las filasj representa al subíndice de las columnasn es la cantidad de filasm es la cantidad de columnasA es la matriz de n*m (matriz rectangular)

A[i, j]

Universidad Salesiana de Bolivia Ingeniería de Sistemas

5.5 ALGEBRA DE MATRICES

5.5.1 Suma de matrices

Si  A y B son dos matrices de igual dimensión MxN, entonces la suma de A y B existe y es igual a una matriz C también de dimensión MxN, en donde cada:

C (i, j) = A (i, j) + B (i, j)

para:0 <= i <= m-10 <= j <= n-1

Ejemplo:

Sean las matrices A (3,2) y B (3, 2):

0 1 0 1

A =0 7 9

B =0 -2 0

1 4 -5 1 6 12 11 6 2 0 5

la matriz C resultante es:

0 1

A =0 5 91 10 -42 11 11

5.5.2 Resta de matrices

Si  A y B son dos matrices de igual dimensión MxN, entonces la resta de A y B existe y es igual a una matriz C también de dimensión MxN, en donde cada:

C (i, j) = A (i, j) - B (i, j)

para:0 <= i <= m-10 <= j <= n-1

Introducción a la Programación 84 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo:

Sean las matrices A (3,2) y B (3, 2):

0 1 0 1

A =0 7 9

B =0 -2 0

1 4 -5 1 6 12 11 6 2 0 5

la matriz C resultante es:

0 1

A =0 9 91 -2 -62 11 1

5.5.3 Multiplicación de una matriz por un escalar

Si A es una matriz de orden (dimensión) MxN y K es un escalar, el producto de K*A es igual a otra matriz D también de orden MxN en donde cada:

D (i, j) = K * A (i, j)

para:0 <= i <= m-10 <= j <= n-1

Ejemplo: Sea la matriz A (4,5) y K = 3:

0 1 2 3 4

A =

0 5 0 1 2 31 3 -4 0 2 12 2 3 1 4 63 7 5 4 2 0

El resultado de multiplicar la matriz A por el escalar 3 es:

0 1 2 3 4

D =0 15 0 3 6 91 9 -12 0 6 32 6 9 3 12 183 21 15 12 6 0

5.5.4 Multiplicación de matrices

Introducción a la Programación 85 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Sean  A una matriz de dimensión MxP y B otra matriz de dimensión PxN, entonces la multiplicación de A y B existe y es igual a una matriz C de dimensión MxN, en donde cada:

para:0 <= i <= m-10 <= j <= n-1

Ejemplo: Sean las matrices A (2, 3) y B (3, 2):

0 1 2 0 1

A = 0 1 1 2B =

0 0 51 4 0 3 1 2 1

2 0 1

la matriz C resultante es:

0 1

A = 0 2 81 0 23

5.6 EJERCICIOS PROPUESTOS

1. Leer una matriz A de orden M x N y un número K. Multiplicar todos los elementos de la matriz por el número K. Mostrar la matriz resultante.

2. Leer una matriz C de orden P (matriz cuadrada). Mostrar los elementos de la diagonal principal, secundaria, de la matriz triangular superior y de la matriz triangular inferior.

3. Leer un matriz X de orden A x B y hallar su transpuesta. Mostrar ambas matrices.

4. Lea N x M números (N y M deben ser leídos y validados) y almacénelos en una matriz (por filas), y:

a) Señale si la matriz es cuadradab) Determine y muestre el promedio de los N x M númerosc) Determine y muestre el promedio por filad) Determine y muestre el promedio por columna

Introducción a la Programación 86 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

5. Considere la siguiente definición: "Una matriz es rala si para cada columna y para cada fila todos los elementos que almacena son cero (0) excepto un elemento que es igual a uno (1)". Construya un diagrama de flujo que lea una matriz de N x M elementos y determine si es rala.

6. Lea dos matrices de orden N x M y

a) genere una tercera con la suma de ambasb) genere una tercera con la multiplicación de ambas, si es posible.

Para cada caso anterior, muestre la matriz resultante.

7. Lea una matriz de N x M y a continuación:

a) Elimine la fila x (x se debe leer y validar).b) Elimine la columna y (y se debe leer y validar).c) Inserte una nueva fila en x (x se debe leer y validar).d) Inserte una nueva columna en y (y se debe leer y validar).

8. Leer los elementos de una matriz de N x N y reemplazar todos los números negativos por un cero y los positivos por un nueve. Mostrar la matriz original y la matriz cambiada. (NO USAR MATRICES NI VECTORES AUXILIARES).

9. Una compañía tiene N sucursales en todo el país. Se formó una matriz de N por 12 que contiene las ventas de cada sucursal durante los 12 meses del año. Elaborar un diagrama de flujo que nos permita hallar e imprimir lo siguiente:

a) Total de ventas de la compañíab) Total de ventas por cada sucursalc) Sucursal que más vendió durante el añod) Mes que menos vendió la compañía

10. En una matriz C de M x 6 se encuentran almacenadas las calificaciones de 6 materias de un grupo de M estudiantes. Elaborar un diagrama de flujo que nos permita calcular e imprimir los siguiente:

a) La nota promedio de cada estudianteb) El número de estudiantes que aprobaron cada materiac) El número de estudiantes que reprobaron cada materiad) La nota promedio de cada materia

11. Diseñar un programa que lea información referente a las horas trabajadas en cada día de la semana por los empleados de la empresa "La Huelga S.A.", y las almacene en una matriz. Por cada empleado se tienen los siguientes datos: Código del empleado(entero en el rango [1..100]), Horas trabajadas en horario normal, Horas trabajadas en sobre tiempo. La empresa paga un sueldo de $ 2.350 bruto por hora normal y $ 3.500 por

Introducción a la Programación 87 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

hora de sobre tiempo. Emitir un informe en el cual por cada empleado se imprima: código del empleado, cantidad de horas normales trabajadas, $ por horas normales, cantidad de horas de sobre tiempo trabajadas, $ por horas de sobre tiempo y total $ del empleado.

12. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 4 1 1 1 41 4 4 1 4 42 4 4 4 4 43 4 4 1 4 44 4 1 1 1 4

13. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 1 1 1 1 11 1 0 0 0 12 1 0 0 0 13 1 0 0 0 14 1 1 1 1 1

Introducción a la Programación 88 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

14. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 5 4 3 2 11 6 17 16 15 142 7 18 25 24 233 8 19 20 21 224 9 10 11 12 13

15. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 1 2 6 7 151 3 5 8 14 162 4 9 13 17 223 10 12 18 21 234 11 19 20 24 25

16. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 1 6 10 13 151 0 2 7 11 142 0 0 3 8 123 0 0 0 4 94 0 0 0 0 5

17. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 1 1 1 1 11 0 0 0 1 02 0 0 1 0 03 0 1 0 0 04 1 1 1 1 1

Introducción a la Programación 89 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

18. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 5 0 0 0 01 6 4 0 0 02 12 7 3 0 03 13 11 8 2 04 15 14 10 9 1

19. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 25 10 11 12 131 24 9 2 3 142 23 8 1 4 153 22 7 6 5 164 21 20 19 18 17

20. Generar la siguiente matriz de orden N x N (sólo para valores impares de N y mayores que 3).

Ejemplo: Para N = 5

0 1 2 3 4

A =

0 1 2 3 4 51 16 17 18 19 62 15 24 25 20 73 14 23 22 21 84 13 12 11 10 9

Introducción a la Programación 90 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO VIMETODOS DE ORDENACIÓN

6.1 INTRODUCCIÓN

Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado de objetos en una secuencia determinada. Cuando se analiza un método de ordenación, hay que determinar cuántas comparaciones e intercambios se realizan para el caso más favorable, para el caso medio y para el caso más desfavorable.

La colocación en orden de una lista de valores se llama Ordenación. Por ejemplo, se podría disponer una lista de valores numéricos en orden ascendente o descendente, o bien una lista de nombres en orden alfabético. La localización de un elemento de una lista se llama búsqueda.

Tal operación se puede hacer de manera más eficiente después de que la lista ha sido ordenada. Existen varios métodos para ordenamiento, clasificados en tres formas:

Intercambio Selección

Inserción.

En cada familia se distinguen dos versiones: un método simple y directo, fácil de comprender pero de escasa eficiencia respecto al tiempo de ejecución, y un método rápido, más sofisticado en su ejecución por la complejidad de las operaciones a realizar, pero mucho más eficiente en cuanto a tiempo de ejecución. En general, para arreglos con pocos elementos, los métodos directos son más eficientes (menor tiempo de ejecución) mientras que para grandes cantidades de datos se deben emplear los llamados métodos rápidos.

6.2 METODO DE INTERCAMBIO O DE LA BURBUJA

El método de intercambio se basa en comparar los elementos del arreglo e intercambiarlos si su posición actual o inicial es contraria inversa a la deseada. Aunque no es muy eficiente para ordenar listas grandes, es fácil de entender y muy adecuado para ordenar una pequeña lista de unos 100 elementos o menos.

Una pasada por la ordenación de burbujeo consiste en un recorrido completo a través del arreglo, en el que se comparan los contenidos de las casillas adyacentes, y se cambian si no están en orden. La ordenación por burbujeo completa consiste en una serie de pasadas ("burbujeo") que termina con una en la que ya no se hacen cambios porque todo está en orden.

Introducción a la Programación 91 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo:

Supóngase que están almacenados cuatro números en un arreglo con casillas de memoria de x[0] a x[3]. Se desea disponer esos números en orden creciente. La primera pasada de la ordenación por burbujeo haría lo siguiente:

Comparar el contenido de x[0] con el de x[1]; si x[0] contiene el mayor de los números, se intercambian sus contenidos.

Comparar el contenido de x[1] con el de x[2]; e intercambiarlos si fuera necesario.

Comparar el contenido de x[2] con el de x[3]; e intercambiarlos si fuera necesario.

Al final de la primera pasada, el mayor de los números estará en x[3].

Introducción a la Programación 92 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

El método expresado en pseudocódigo es:

Desde I 1 hasta n - 1 hacer

Desde J 0 hasta n - 2 hacer

Si elemento [J] > elemento [J + 1]

Entonces

aux elemento [J]

elemento [J] elemento [J + 1]

elemento [J + 1] aux

Fin_si

Fin_desde

Fin_desde

Introducción a la Programación 93 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

El fundamento de este método consiste en insertar los elementos no ordenados del arreglo en subarreglos del mismo que ya estén ordenados. Por ser utilizado generalmente por los jugadores de cartas se lo conoce también por el nombre de método de la baraja.

Dependiendo del método elegido para encontrar la posición de inserción tendremos distintas versiones del método de inserción.

El método expresado en pseudocódigo es:

Desde I 1 hasta n - 1 hacer

aux elemento[I]

k I - 1

sw 0

Mientras (sw = 0) Λ (k >= 0) hacer

Si aux < elemento [k]

Entonces

elemento [k + 1] elemento [k]

k k – 1

Si_no

sw 1

Fin_si

Fin_mientras

elemento [k+1] aux

Fin_desde

Introducción a la Programación 94 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

6.4 METODO DE ORDENACIÓN POR SELECCIÓN

Los métodos de ordenación por selección se basan en dos principios básicos:

Seleccionar el elemento más pequeño (o más grande) del arreglo. Colocarlo en la posición más baja (o más alta) del arreglo.

A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde.

El método expresado en pseudocódigo es:

Desde I 0 hasta n - 2 hacer

aux elemento [I]

k I

Desde J I + 1 hasta n - 1 hacer

Si elemento [J] < aux

Entonces

aux elemento [J]

k j

Fin_si

Fin_desde

elemento [k] elemento [I]

elemento [I] aux

Fin_desde

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

Si bien el método de la burbuja era considerado como el peor método de ordenación simple o menos eficiente, el método Quicksort basa su estrategia en la idea intuitiva de que es más fácil ordenar una gran estructura de datos subdividiéndolas en otras más pequeñas introduciendo un orden relativo entre ellas. En otras palabras, si dividimos el array a ordenar en dos subarrays de forma que los elementos del subarray inferior sean más pequeños que los del subarray superior, y aplicamos el método reiteradamente, al final tendremos el array inicial totalmente ordenado.

Introducción a la Programación 95 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Existen además otros métodos conocidos, el de ordenación por montículo y el de shell.

Introducción a la Programación 96 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO VIIMÉTODOS DE BÚSQUEDA

7.1 INTRODUCCIÓN

La búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. A menudo un programador estará trabajando con grandes cantidades de datos almacenados en arreglos y pudiera resultar necesario determinar si un arreglo contiene un valor que coincide con algún valor clave o buscado.

Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar elementos dentro de un array: búsqueda lineal y búsqueda binaria.

7.2 MÉTODO DE BÚSQUEDA SECUENCIAL

La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo.

El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.

El método expresado en pseudocódigo sería:

ind 0sw 0mientras (sw = 0) Λ (ind < N) hacer

si arreglo[ind] = valor_buscado entonces

sw 1si_no

ind ind + 1fin_si

fin_mientrassi sw = 1entonces

Mostrar “Encontrado”

Introducción a la Programación 97 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

si_noMostrar “No encontrado”

fin_si

7.3 MÉTODO DE BÚSQUEDA BINARIA

La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.

El método expresado en pseudocódigo sería:

sw 0primero 0ultimo N - 1mientras (primero <= ultimo) Λ (sw = 0) hacer

mitad (primero + ultimo)/2si arreglo[mitad] = valor_buscado entonces

sw 1si_no

si arreglo[mitad] > valor_buscado entonces

ultimo mitad - 1si_no

primero mitad + 1fin_si

fin_sifin_mientras

si sw = 1entonces

Mostrar “Encontrado”si_no

Mostrar “No encontrado”fin_si

Introducción a la Programación 98 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

La idea principal de este método consiste en aplicar una función que traduce el valor del elemento buscado en un rango de direcciones relativas. Una desventaja importante de este método es que puede ocasionar colisiones.

El pseudocódigo correspondiente al método sería:

funcion hash (valor_buscado)inicio

hash valor_buscado mod numero_primofin

inicio hash (valor)il iniciosw 0repetir

si arreglo[il] = valor entonces

sw 1si_no

il (il +1) mod Nfin_si

hasta (sw = 1) V (il = inicio)si sw = 1entonces

Mostrar “Encontrado”si_no

Mostrar “No encontrado”fin_si

Introducción a la Programación 99 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO VIIIINTRODUCCION A LA PROGRAMACIÓN MODULAR

8.1 INTRODUCCION

Una estrategia muy utilizada para la resolución de problemas complejos con la computadora, es la división del problema en otros problemas más pequeños o subproblemas.  Estos subproblemas se implementan mediante módulos o subprogramas.

Los subprogramas son una herramienta importante para el desarrollo de algoritmos y programas de modo que normalmente un proyecto de programación está compuesto generalmente de un programa principal y un conjunto de subprogramas con las llamadas a los mismos dentro del programa principal.

Los subprogramas se clasifican en: procedimientos y funciones.

8.2 EL DISEÑO DESCENDENTE: SUBPROGRAMAS

Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas.

Estos problemas a su vez pueden ser divididos repetidamente en problemas más pequeños hasta que los problemas más pequeños puedan ser solucionados.

Esta técnica de dividir el problema principal en subproblemas se denomina frecuentemente divide y vencerás.  El método de diseño se denomina diseño descendente, debido a que se comienza en la parte superior con un problema general y se diseñan soluciones específicas a sus subproblemas.

Veamos un ejemplo de cómo emplear el diseño descendente para resolver un problema. Supongamos que un profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas según distintas calificaciones, etc. A continuación se tiene un esquema que representa una de las posibles divisiones del problema en módulos.

Introducción a la Programación 100 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

El problema principal se resuelve con el programa principal (también llamado conductor del programa), y los subproblemas (módulos) mediante subprogramas: procedimientos y funciones.

Un subprograma realiza una tarea concreta que se describe con una serie de instrucciones.

Ejemplo:

Leer el radio de un círculo y calcular e imprimir su superficie y longitud.

Análisis

Especificaciones de EntradaRadio: Real

Especificaciones de SalidaSuperficie: RealLongitud: Real

Algoritmo

1. Leer el valor del radio 2. Calcular la Superficie 3. Calcular la Longitud 4. Visualizar los valores de la superficie y la longitud

Introducción a la Programación 101 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Refinamiento del Algoritmo

1. Leer el valor del radio 2. Calcular la superficie

2.1. pi - 3.141592 (constante pi) 2.2. S - pi * Radio * Radio

3. Calcular la longitud 3.1. pi - 3.141592 3.2. L - 2 * pi * Radio

4. Visualizar los valores de la superficie y la longitud

8.3 EL DISEÑO MODULAR

Los subproblemas o módulos se diseñan con subprogramas, que a su vez se clasifican en procedimientos y funciones.

Los procedimientos y las funciones son unidades de programas diseñadas para ejecutar una tarea específica.  Por ejemplo, los procedimientos predefinidos, ReadLn y WriteLn de Pascal, están diseñados para realizar operaciones de entrada y salida, al igual que las funciones printf y scanf en el lenguaje C que realizan operaciones de entrada y salida.

El proceso de descomposición de un problema en módulos se conoce como modularización y a la programación relativa a ellos programación modular.

8.3.1 PROCEDIMIENTOS Y FUNCIONES

8.3.1.1 Procedimientos

Un procedimiento es un subprograma que realiza una tarea específica. Puede recibir cero o más valores del programa que llama y devolver cero o más valores a dicho programa.

Un procedimiento está compuesto de un grupo de sentencias a las que se asigna un nombre (identificador) y constituye una unidad de programa. La tarea determinada al procedimiento se ejecuta siempre que se encuentra el nombre del procedimiento.

La forma de declarar un procedimiento es la siguiente:

Introducción a la Programación 102 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Donde:

Nomb_Proc : Nombre que se le da al procedimiento

lista_parametros : Son los parámetros de entrada y/o salida necesarios para el procedimiento

y la forma de llamarlo es:

Los parámetros al momento de hacer la llamada al procedimiento deben coincidir en número, orden y tipo con los parámetros de la declaración del mismo.

8.3.1.2 Funciones

Una función es un subprograma que recibe como argumentos o parámetros, datos de tipos numérico o no numérico, y devuelve un único resultado. Esta característica le diferencia esencialmente de un procedimiento.

La forma de declarar un procedimiento es la siguiente:

Introducción a la Programación 103 Dossier

Nomb_Proc(lista_parametros)

Fin Nomb_Proc

Procesos

Nomb_Proc(par1, par2, par3, ….)

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Donde:

Nomb_Func : Nombre que se le da a la función

lista_param_entr : Son los parámetros de entrada necesarios para la función

param_salida : Es el resultado devuelto por la función

Una función es llamada por medio de su nombre, en una sentencia de asignación:

Los procedimientos y funciones son similares, aunque presentan notables diferencias entre ellos:

1. Las funciones normalmente, devuelven un solo valor a la unidad de programa (programa principal u otro subprograma) que las referencia o llama.  Los procedimientos pueden devolver cero, uno o varios valores. En el caso de no devolver ningún

Introducción a la Programación 104 Dossier

Nomb_Func(lista_param_entr)

Retornar(param_salida)

Procesos

Nomb_Var Nomb_Func(par1, par2, par3, …)

Universidad Salesiana de Bolivia Ingeniería de Sistemas

valor, realizan alguna tarea tal como operaciones de entrada/salida.

2. A un nombre de procedimiento no se puede asignar un valor, y por consiguiente ningún tipo esta asociado con un nombre de procedimiento.

3. Una función se referencia utilizando su nombre en una instrucción (de asignación o expresión matemática), mientras que un procedimiento se referencia por una llamada o invocación al mismo.

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

8.4.1 Los parámetros

Una de las características más importantes de los subprogramas es la posibilidad de comunicación entre el programa principal y los subprogramas (o entre los subprogramas). Esta comunicación se realiza a través de una lista de parámetros o argumentos.

Así pues, los módulos se clasifican en:

Módulos sin parámetros (no existe comunicación entre el programa principal y los módulos o entre módulos).

Módulos con parámetros (existe comunicación entre el programa principal y los módulos, y entre ellos).

Un parámetro es prácticamente, una variable cuyo valor debe ser o bien proporcionado por el programa principal al módulo o ser devuelto desde el módulo hasta el programa principal. Por consiguiente hay dos tipos de parámetros: parámetros de entrada y parámetros de salida.

Los parámetros de entrada son aquellos cuyos valores deben ser proporcionados por el programa principal, y los de salida son aquellos cuyos valores se calcularán en el subprograma o módulo y se deben devolver al programa principal para su proceso posterior.

8.4.1.1 PASO DE PARÁMETROS POR VALOR Y PASO DE PARÁMETROS POR REFERENCIA

Existen dos tipos de parámetros, que nos ayudan a transferir/recibir información de otros subprogramas, o del programa principal, a saber: parámetros de entrada (por valor) y parámetros de salida o de entrada/salida (por referencia).

8.4.1.1.1 Pase de parámetros por Valor

Introducción a la Programación 105 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Son parámetros unidireccionales que se utilizan para proporcionar información a un subprograma, pero no pueden devolver valores, al programa llamador.

Se les llama parámetros de entrada, ya que en la llamada al subprograma el valor del parámetro actual se pasa a la variable que representa a la variable actual. Este valor puede ser modificado dentro del subprograma pero el valor modificado no es devuelto al programa o subprograma llamador. En otras palabras, cuando se define un parámetro por valor el subprograma sólo recibe una copia del valor del dato que el programa invocador le pasa. Por tanto si en el procedimiento modificamos este valor, el dato original permanecerá inalterado.

8.4.1.1.2 Pase de parámetros por Referencia

Se utilizan tanto para recibir como para transmitir valores entre el subprograma y el programa llamador. Este puede actuar como parámetro de salida o de entrada/salida. En otras palabras, cuando definimos parámetros por referencia lo que se pasa al procedimiento son los datos en sí, y si éste los modifica, los cambios permanecerán una vez que la ejecución vuelva al módulo que invocó al procedimiento.

8.4.2 VARIABLES LOCALES Y VARIABLES GLOBALES

Las variables utilizadas en un programa con subprogramas pueden ser de dos tipos: locales y globales.

8.4.2.1 Variables Locales

Una variable local es una variable que esta declarada dentro de un subprograma y se dice que es local al subprograma. Una variable local sólo está disponible durante el funcionamiento del subprograma, al terminar su función el subprograma y regresar al programa llamador, se pierde el valor que se encontraba guardado en la variable local.

8.4.2.2 Variables Globales

Las variables declaradas en el programa principal se denominan variables globales. Al contrario que las variables locales cuyos valores se pueden utilizar sólo dentro del subprograma en que fueron declaradas, las variables globales se pueden utilizar en todo el programa principal y en todos los subprogramas, donde se haga referencia al identificador de esta variable.

8.4.3 AMBITO DE UN IDENTIFICADOR

La mayoría de los programas tienen una estructura tipo árbol, el programa principal es la raíz y de este penden muchas ramas (procedimientos y funciones).

Introducción a la Programación 106 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Los subprogramas en los que un identificador puede ser utilizado se conocen como ámbito o alcance del identificador, dicho de otro modo, es en esta sección donde el identificador es válido.

8.4.3.1 Reglas de Ámbito

1. El ámbito de un identificador es el dominio en que esta declarado. Por consiguiente un identificador declarado en un bloque P puede ser usado en el subprograma P y en todos los subprogramas llamados en el subprograma P.

2. Si un identificador j declarado en el procedimiento P se redeclara en algún subprograma interno Q invocado en P, entonces el subprograma Q y todas sus invocaciones a otros subprogramas se excluyen del ámbito de j declarado en P.

Introducción a la Programación 107 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

LECTURAS COMPLEMENTARIAS

Ing. Eduardo Raffo Leca: Diagramas de Flujo: Solución de Problemas. RAFFO LECA EDITORES. 2000.

BIBLIOGRAFÍA JOYANES AGUILAR, Luis: Fundamentos de la Programación. 3ra. Edición.

McGraw – Hill. 2003.

JOYANES AGUILAR, Luis: Problemas de Metodología de la Programación. 1ra. Edición. McGraw – Hill. 1990.

Introducción a la Programación 108 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

GLOSARIO

Introducción a la Programación 109 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Algoritmo. El término algoritmo es un procedimiento o fórmula para resolver un problema. La palabra se deriva del nombre del matemático árabe Al-Juarismi (825 DC).

Un programa de ordenador puede considerarse como un algoritmo elaborado.

En matemáticas o ciencia informática, un algoritmo generalmente es un pequeño procedimiento que resuelve un problema recurrente.

Almacenamiento. Medio diseñado para acumular y guardar datos, como un disco duro o un CD-ROM.

ANSI. (American National Standards Institute) Organización dedicada a la creación y establecimiento de estándares para facilitar el comercio y las telecomunicaciones.

ASCII. (Código Estándar Americano para el Intercambio de Información). Es el formato más común para ficheros de texto usado en ordenadores y muy a menudo en Internet. En un fichero ASCII, cada letra, número o cualquier carácter especial va representado por un número binario de 7 dígitos, por lo que pueden obtenerse un total de 128 caracteres.

UNIX y cualquier sistema operativo basado en DOS (excepto Windows NT) usan códigos ASCII para los ficheros de texto. Windows NT usa un nuevo código denominado UNICODE.

Babbage, Charles. Físico, geólogo, astrónomo, biólogo, matemático e ingeniero ingles, nacido en Teigmmmouth en 1792 y fallecido en Londres en 1871. Estudió en el St. Peter's College de Cambridge en donde ejercició posteriormente como profesor de matemáticas. Cofundador de varias sociedades científicas como: la Royal Astronomical Society (1820), la British Association for the Advancement of Science (1831) y la Statistical Society (1834). Pionero en los estudios sobre las máquinas de calcular, desarollo las bases de lo que hoy es la ciencia de los ordenadores y la programación. Precursor en economía de la moderna investigación operativa en el campo de los procesos económicos y físicos de la producción. Son obras suyas destacadas: A Comparative View of the Various Institutions for the Asurance of Lives (1826), Reflections on the Decline of Science in England and on some of its Causes (1830), On the Economy of Machinery and Manufactures (1832), entre sus trabajos el más valioso y actual, Passages from the Life of a Philosopher (1864).

Back-up. Ver copia de seguridad.

BAK file. (BAcKup file) Archivo BAK. Extensión de archivos de DOS y OS/2 para archivos de respaldo

Basic. Si hablamos de "Basic" lo primero que a un informático se le viene a la cabeza es el lenguaje de programación. Si nos referimos a él (BEGINNERS ALL PURPOSE SIMBOLIC INSTRUCTION CODE ), se trata de un lenguaje creado en 1963 y que se hizo muy popular por la sencillez en el aprendizaje.

Binario. Método para la codificación de números en forma de series de bits. El sistema numérico binario, conocido también como "base 2", utiliza combinaciones de sólo dos dígitos: 1 y 0.

Introducción a la Programación 110 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

BIOS (BASIC INPUT/OUTPUT SYSTEM) contiene el programa inicial (llamado SETUP) que un ordenador carga nada más encender el interruptor y que tiene las instrucciones básicas de arranque del sistema. También controla el flujo de datos entre el sistema operativo y los dispositivos conectados al Pc, como pueden ser el disco duro, la tarjeta de video, el teclado, ratón ....

Este programa está guardado en un integrado o chip (conocido vulgarmente como cucarachas) con la característica que puede volver a reescribirse cuando aparecen nuevas actualizaciones.

Existen varias marcas de BIOS. Las más comunes pueden ser AMI, PHOENIX y AWARD.

Bit.  Abreviación de binary digit, un bit es la unidad más pequeña de datos que un ordenador puede manejar. Los bits se utilizan en distintas combinaciones para representar distintos tipos de datos. Cada bit tiene un valor 0 ó 1.

Boot (master Boot). Todos los discos (disquetes y discos duros) tienen una sección muy importante, denominada "sector de arranque". En ella se almacena la información acerca de las características del disco, además de poder albergar un programa con el que es posible arrancar el ordenador, mediante la utilización de ese disco. Cuando se habla del Boot se hace referencia al sector de arranque de un disquete, mientras que el término Master Boot (MBR) hace referencia al sector de arranque de un disco duro.

En algunas fuentes podemos leer BOOT o BOOTEAR. Esta palabra, relacionada con el término descrito, generalmente indica la acción de INICIAR o INICIALIZAR un equipo informático.

Bucle. Conjunto de instrucciones contenidas en un programa o rutina que se repite un número determinado de veces.

Buffer es un área de datos (en memoria, en el disco duro...)y se comparte entre dispositivos de hardware y aquellos programas que necesitan de su uso. Permite a cada dispositivo o programa operar en ese área de forma independiente lo que facilita la coordinación de las diferentes tareas ya que no dependen de la velocidad del sistema.

Bug. Error en la codificación (Ver: Código) de un programa que provoca inconvenientes diversos al usuario. En la actualidad se realiza un control de calidad exhaustivo de las aplicaciones mediante beta-testers que prueban el programa durante meses en todas las situaciones imaginables, con el objetivo de detectar la presencia de bugs. Debido a la complejidad de las aplicaciones actuales, es casi imposible depurar totalmente un programa, que suele incluir siempre algún bug, que puede producir un efecto indeseado en determinadas ocasiones.

Defecto de sistema. Un Bug es un fallo del disco de un sistema que sus creadores no han detectado. Puede producirse por un error en una fórmula matemática o por un defecto en la forma de leer y tratar la información que se recibe.

Buscador. Un buscador es un tipo de software que crea una base de datos de sitios web en función de los títulos de las mismas, de palabras clave, o de alguna palabra contenida en dicha página. El usuario se conecta con un buscador y especifica la palabra o las palabras clave del tema que desea buscar. El buscador devuelve una lista de resultados presentados en hipertexto, es decir que se pueden pulsar y acceder directamente al fichero correspondiente.

Introducción a la Programación 111 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Existen multitud de buscadores, pero actualmente el más usado y el que mejor búsquedas ofrece es:

http://www.google.com

Byte. Un Byte es una unidad de información que consiste en un conjunto de 8 bits, por ejemplo: 00101101. Cada número del ejemplo representaría un bit y siempre entre 0 y 1 ya que está escrito en código binario.

Cualquier caracter del teclado de nuestro ordenador ocuparía un byte, así como un "6" una "?" o una "f", aunque un conjunto de bytes puede formar una imagen en la pantalla (cualquier fotografía está formada por cientos o miles de Bytes).Normalmente, los bytes suelen ser abreviados como "B" y un bit como una "b". Seguro que nos suena el hecho de hablar de tantos Bytes de memoria o disco duro, e incluso de MegaBytes (MB) o GigaBytes (GB). Por ejemplo, en un disco duro de 820 MB tiene una cantidad aproximada de 820 millones de bytes. Decimos aproximada porque un MegaByte contiene un total de 1.048.576 Bytes. Es posible que oigamos hablar también de NIBBLE, que no es más que medio Byte.

Algunos tipos de letra (o language scripts) necesitan 2 bytes para representar un caracter; en este caso se llamarán conjuntos de caracteres de doble byte.(DBCS o Double Byte Character Sets).

C. El lenguaje C es una herramienta de programación de tipo general, utilizada para el desarrollo del sistema operativo Unix. Fue realizado a principios de la década de los setenta por Dennis Ritchie, como evolución del lenguaje B que creara Ken Thompson.

C:. Letra con la que se denomina a la primera unidad de un disco duro. En los sistemas DOS, para acceder a la unidad C, deberemos escribir cd c:.

C++. Versión de C orientada a objetos creada por Bjarne Stroustrup. C++ se ha popularizado porque combina la programación tradicional en C con programación orientada a objetos. Smalltalk y otros lenguajes originales de programación orientada a objetos no suministraban las estructuras familiares de lenguajes convencionales como C y Pascal.

Chat. Conversación interactiva en tiempo real, en Internet

Código Fuente. También denominado fuente o texto fuente. Es el texto que contiene las instrucciones del programa, escritas en el lenguaje de programación. Se trata de un archivo de texto legible que se puede copiar, modificar e imprimir sin dificultad.

El concepto contrario es el código objeto, que se deriva del código fuente y está diseñado para ser legible sólo por la máquina.

Código máquina. Es un lenguaje muy básico y elemental usado a nivel del procesador del sistema consistente en combinaciones de ceros y unos. El código máquina es el único entendible por el procesador y los programas deben ser "traducidos" a ese lenguaje para poder ejecutarse. Esta tarea la ejecutan los llamados compiladores. Estamos muy acostumbrados a ver exteriormente programas en código máquina; estos son, por ejemplo, todos los ficheros con extensión EXE.

Comando. Se trata de una orden dada a un equipo informático para que realice una acción determinada. Normalmente siempre hablamos de comandos cuando realizamos la

Introducción a la Programación 112 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

acción de escribir algo en un entorno de texto, como puede ser MS-DOS, la "interfaz de comandos" de Windows NT o simplemente al consola de Linux con el fin de obtener un resultado.

Así en MS-DOS, al escribir FORMAT, el equipo nos devolverá un mensaje relacionado con la acción de formatear alguna unidad de disco.

Compilador. Por este nombre conocemos al programa que es capaz de procesar y analizar los códigos de un programa escrito en un determinado lenguaje de programación, y "traducirlo" al lenguaje "Código máquina" (lenguaje usado por el microprocesador) para su posterior ejecución.

Computador u Ordenador. Máquina digital, electrónica y programable, para el tratamiento automático de la información, capaz de recibirla, operar sobre ella mediante procesos determinados y suministrar los resultados de tales operaciones.  Dícese también computadora, principalmente en textos españoles antiguos y en varios países hispanoamericanos.

Constante. Es una incógnita que se utiliza en los lenguajes de programación que no puede cambiar su contenido en el transcurso del programa.

Correo electrónico También conocido como “E-mail”. Los sistemas con software de correo electrónico y un requisito de hardware (red, enlace módem, etc.) pueden utilizarse para el envío y recepción de mensajería entre usuarios, entendiendo por mensajería cualquier texto, programa, etc.

Cracker. (intruso, revientasistemas, saboteador) Un cracker es una persona que intenta acceder a un sistema informático sin autorización. Estas personas tienen a menudo malas intenciones, en contraste con los hackers, y pueden disponer de muchos medios para introducirse en un sistema.

Datos. 1. Técnicamente, los datos son hechos y cifras en bruto, tales como órdenes y pagos, los cuales se procesan para obtener información, por ejemplo el saldo deudor y el monto disponible. Sin embargo, en el uso común, los términos datos e información se toman como sinónimos.

La cantidad de datos versus información que se guarda en el computador constituye una compensación. Los datos pueden procesarse en diferentes formas de información, pero toma tiempo clasificar y sumar transacciones. La información actualizada puede proporcionar respuestas inmediatas.

Un error frecuente es creer que el software es también datos. El computador ejecuta o corre un software. Los datos se "procesan", mientras que el software se "ejecuta".

2. Cualquier forma de información, ya sea en forma electrónica o sobre papel. En forma electrónica, "datos" se refiere a archivos, bases de datos, documentos de texto, imágenes y, voz y video codificados en forma digital.

DEBUG. Depurar fallos. Corregir errores o fallos de programación o configuración.

Depurar. Depurar es limpiar. Si nos referimos a la programación de una web o un programa, por ejemplo, se trataría de eliminar aquellas líneas de código que son inservibles y que solo ocupan espacio y hacen que la ejecución del código sea más lenta.

Introducción a la Programación 113 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de flujo. Representación gráfica, mediante la utilización de signos convencionales, del proceso que sigue la información en un programa determinado. Se utilizan habitualmente en la fase de desarrollo de aplicaciones por los programadores.

El diagrama de flujo o Flowchart es una de las técnicas de representación de algoritmos más antigua, y consiste en representar mediante símbolos las operaciones a realizar. Por ejemplo: el inicio y el fin del algoritmo se representan con un símbolo elíptico, las entradas y salidas con un paralelogramo, las decisiones con un rombo, los procesos con un rectángulo, etc.

Diagrama de N/S. El diagrama de Nassi-Schneiderman es similar a un diagrama de flujo pero con la omisión de las flechas de conexión, quedando las cajas de las acciones, pegadas unas a otras.

Dígito. Carácter simple en un sistema de numeración. En el sistema decimal, los dígitos van del 0 al 9. En el sistema binario, los dígitos son el 0 y el 1.

Extensión de Archivo. Son los caracteres que, precedidos de un punto, aparecen detrás del nombre de un archivo. Permiten identificar y clasificar los ficheros. Por ejemplo, estas son algunas de las extensiones más comunes:

BAK-SeguridadBAT-Archivo por lotes de DOS y OS/2BIN-Controlador, recubrimientoCFG-ConfiguraciónCHK-Archivo encadenado de Chkdsk del DOSCOM-Programa ejecutableDBF-Base de datos dBASEDCA-Texto IBMDLL-Biblioteca de enlaces dinámicosDOC-Documento (MultiMate, Word...)DRV-ControladorEPS-PostScript encapsuladoEXE-Programa ejecutableFON-Fuente (tipo) o número telefónicoGIF-Gráficos por trama CompuServeHLP-Texto de ayudaOVL-Módulo de recubrimientoOVR-Módulo de recubrimientoPCX-Gráficos por trama PC PaintbrushPIF-Información de Windows para programas de DOSTIF-Gráficos por trama TIFFTMP-TemporalTXT-Texto ASCIIWAV-Sonido de WindowsWK*-Diversos formatos de hojas de cálculo de Lotus (WKS, WK1, etc.)WMF-Metaarchivo de WindowsZIP-Archivo comprimido PKZIP$$$-Temporal

GHz. (GigaHertZ) Mil millones de ciclos por segundo.

Giga. Prefijo que significa mil millones. Con frecuencia se refiere al valor preciso 1,073,741,824, puesto que las especificaciones del computador por lo general están en números binarios.

Introducción a la Programación 114 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Gigabit. Aproximadamente mil millones de bits: 1 bit x 1.0243 (es decir, 1.073.741.824 bits).

Gigabyte. Aproximadamente mil millones (1 billón) de bytes: 1 byte x 1.0243 es decir, 1.073.741,824 bytes.

GUI. (Graphical User Interface). Sistema de interacción entre el ordenador y el usuario, caracterizado por la utilización de iconos y elementos gráficos en su concepción. Es un paso más allá de los interfaces basados en caracteres, que sólo incluían líneas de texto para introducir comandos y conocer las respuestas del sistema.

Interfaz gráfica de usuario. Término aplicado a la representación gráfica de la manipulación de los comandos de un programa. Es muy común el desarrollo de GUIs para Windows que manejan programas basados en MS-DOS. De esta manera, el usuario recibe una interfaz mas amigable aunque siga internamente trabajando con la versión en línea de comandos. En estos casos en la GUI la que se encarga de enviar los comandos (con sus parámetros) al programa original.

Acrónimo de Graphical User Interface. (interfaz gráfico de usuario) Todos los entornos de escritorio Linux (KDE, Gnome, etc...) son un GUI. La mayor parte de los GUIs proporcionan soporte para el ratón y/o las ventanas para gestionar programas.Gusano. Es programa similar a un virus que se diferencia de éste en su forma de realizar las infecciones. Mientras que los virus intentan infectar a otros programas copiándose dentro de ellos, los gusanos solamente realizan copias de ellos mismos.

Gusano de Win32: este tipo de gusanos se propaga a través de las API de Windows, funciones MAPI o clientes de correo electrónico como Microsoft Outlook. Estos gusanos son capaces de enviarse a sí mismos como un fichero adjunto a todas las direcciones a las que el usuario afectado envíe un mensaje de correo.

Un gusano es un virus o programa auto replicante que no altera los archivos sino que reside en la memoria y se duplica a sí mismo.

Los gusanos utilizan las partes automáticas de un sistema operativo que generalmente son invisibles al usuario.

Es algo usual detectar la presencia de gusanos en un sistema cuando, debido a su incontrolada replicación, los recursos del sistema se consumen hasta el punto de que las tareas ordinarias del mismo son excesivamente lentas o simplemente no pueden ejecutarse.

Nótese que el término inglés worm, también tiene otra acepción dentro del mundo de la informática:

Worm (de write once, read many), perteneciente a las tecnologías de almacenamiento de datos. No debe ser confundido con el de gusano informático.

Hacker. (pirata) Una persona que goza alcanzando un conocimiento profundo sobre el funcionamiento interno de un sistema, de un ordenador o de una red de ordenadores. Este término se suele utilizar indebidamente como peyorativo, cuando en este último sentido sería más correcto utilizar el término "cracker". Es también aficionado a los ordenadores o computadoras. Un usuario cautivado por la programación y las tecnologias informáticas.

Hardware. Cuando hablamos de ordenadores, el hardware está formado por los componentes físicos. Es la parte "dura", es decir, los elementos que configuran la máquina y que le dan una serie de características y potenciales.

Introducción a la Programación 115 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Hertzio. El hertzio es una unidad de frecuencia electromagnética (es decir, de cambio de estado o ciclo en una corriente alterna) de un ciclo por segundo. Reemplaza al anterior término "ciclo por segundo (cps)".

Por ejemplo, en los Estados Unidos, el suministro común de energía doméstica es a 60 hertzios (lo que significa que la corriente cambia de dirección o polaridad 120 veces, o 60 ciclos, cada segundo).

En Europa,la frecuencia de línea es de 50 hertzios, o 50 ciclos por segundo. La transmisión de radio se realiza a tasas de frecuencia mucho mayores, habitualmente expresadas en kilohertzios (KHz) or megahertzios (MHz).

La unidad de medida toma su nombre de Heinrich Hertz, un físico alemán. En América Latina también se llama sencillamente "hertz".

HTML (Hypertext Markup Language). Uno de los lenguajes utilizados por los programadores par diseñar sitios visualizables en la World Wide Web, gracias a los navegadores de Internet como por ejemplo Netscape Navigator.

Impresora de chorro de tinta. También se conoce por su definición en inglés (ink-jet). Este tipo de impresoras funcionan mediante una serie de inyectores que proyectan gotas diminutas de tinta, de manera que la acumulación de gotas permite la formación de letras, imágenes, etc. Esta clase de impresoras se ha impuesto por ofrecer una alta calidad de impresión a un precio aceptable.

Impresora de impacto. Se trata de la primera generación tecnológica en lo que se refiere a impresión, aunque este tipo de impresoras siguen utilizándose ampliamente. Se fundamentan en un sistema mecánico que «golpea» una cinta entintada de forma similar a las máquinas de escribir. Entre sus ventajas cabe citar su bajo precio, pero resultan muy limitadas en sus funciones (reproducen mal las imágenes) y su calidad de impresión no es muy alta. Las impresoras matriciales golpean la cinta entintada mediante un número determinado de agujas que forman cada carácter.

Impresora láser. La tecnología láser es, en la actualidad, la que ofrece mayor calidad de impresión, aunque a un precio más elevado que el de las otras tecnologías. Resultan muy veloces y silenciosas. Funcionan mediante la combinación de un tambor fotosensible al que se adhieren partículas de tóner que luego son transferidas al papel, de igual forma a como funcionan las fotocopiadoras.

Impresora. Periférico del ordenador diseñado para copiar en un soporte «duro» (papel, acetato, etc.) texto e imágenes en color o blanco y negro.

Información. Elemento fundamental que manejan los ordenadores en forma de datos binarios. Tras la revolución industrial, se habla de la revolución de la información, que se ha convertido en el mayor valor de las empresas y de las personas. El auge, proliferación y universalización de sistemas de interconexión global como Internet, ha llevado a hablar de la sociedad de la información como el nuevo paradigma del mundo en que vivimos.

Informática. Es la ciencia de la información automatizada, todo aquello que tiene relación con el procesamiento de datos, utilizando las computadoras y/o los equipos de procesos automáticos de información.

Es la ciencia que se encarga de la automatización del manejo de la información.

Introducción a la Programación 116 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Input/Output. Entrada/Salida. En ocasiones, los dispositivos o controladores de entrada y salida de datos se describen con su nombre inglés o con las siglas «I/O» en lugar de «E/S».Internet Entramado de ordenadores en el ámbito mundial al cual puede accederse generalmente por Modem, ofreciendo acceso a una enorme cantidad de información y personas.

Internet 2. Es un proyecto que se empezó en Estados Unidos con el fin de poder realizar trabajos pesados, es decir, hacer investigaciones muy complejas y poder correr aplicaciones que en la Internet actual no se puede, como son las bibliotecas digitales, etc.

Esta red se puso en marcha en 1999 conectando a muchas universidades ya que son las que llevan la delantera en ese proyecto.

Intérprete. Programa que realiza un análisis de una aplicación escrita en un lenguaje no-máquina (fácil de entender y trabajar con él) y lo convierte en lenguaje máquina entendible por el ordenador.

Programa que trabaja directamente con el programa fuente en memoria. El intérprete traduce las instrucciones del programa fuente una por una y las ejecuta inmediatamente. No suele ser habitual emplear los intérpretes para traducir y ejecutar los programas fuente, ya que son lentos, pero presentan ciertas ventajas en campos determinados.

Java Lenguaje de programación diseñado para su uso en Internet. Muchas de las animaciones y efectos que vemos en las diferentes páginas de Internet se han escrito en Java.

JPEG Formato de archivo gráfico de uso frecuente en sitios Web, donde se encuentran generalmente también archivos GIF. Los archivos JPEG son mejores para fotografías e imágenes con amplia gama de colores.

KHz. (KiloHertZ) Kilohertzio. Mil ciclos por segundo.

Lenguaje binario. El funcionamiento de cualquier sistema informático reside en el principio binario. Por convención previa, a ambos estados de un sistema binario, llamados "bit" (contracción de "binario elemento") se les atribuye el valor 0 y 1 respectivamente. Es un sistema particularmente adaptado al ordenador: 0, la corriente no pasa y 1, pasa (unos 5 voltios). Por lo tanto, el cifrado digital de una información, bien se trate de un texto, de una imagen o de un sonido, siempre es una lista de 0 y de 1.

Lenguaje de Alto Nivel. Lenguaje de programación en el que las instrucciones enviadas para que el ordenador ejecute ciertas órdenes son similares al lenguaje humano. Dado que el ordenador no es capaz de reconocer estas órdenes, es necesario el uso de un intérprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender.

Lenguaje de Bajo Nivel. Lenguaje de programación que el ordenador puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecución, pues no necesita un intérprete que traduzca cada línea de instrucciones.

Lenguaje de programación. Lenguaje que los programadores usan para comunicar instrucciones a una computadora y poder ejecutar un programa.

Los lenguajes de programación se dividen en 2 categorías fundamentales:

Introducción a la Programación 117 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

bajo nivel: Son dependientes de la máquina, están diseñados para ejecutarse en una determinada computadora. A esta categoría pertenecen las 2 primeras generaciones.

Alto Nivel: Son independientes de la máquina y se pueden utilizar en una variedad de computadoras. Pertenecen a esta categoría la tercera y la cuarta generación. Los lenguajes de más alto nivel no ofrecen necesariamente mayores capacidades de programación, pero si ofrecen una interacción programador/computadora más avanzada. Cuanto más alto es el nivel del lenguaje, más sencillo es comprenderlo y utilizarlo.

Cada generación de lenguajes es más fácil de usar y más parecida a un lenguaje natural que su predecesores. Los lenguajes posteriores a la cuarta generación se conocen como lenguajes de muy alto nivel. Son lenguajes de muy alto nivel los generadores de aplicaciones y los naturales.

En cada nuevo nivel se requieren menos instrucciones para indicar a la computadora que efectúe una tarea particular. Pero los lenguajes de alto nivel son sólo una ayuda para el programador. Un mayor nivel significa que son necesarios menos comandos, debido a que cada comando o mandato de alto nivel reemplaza muchas instrucciones de nivel inferior.

1. Primera - Lenguaje de máquina: Empieza en los años 1940-1950. Consistía en sucesiones de dígitos binarios. Todas las instrucciones y mandatos se escribían valiéndose de cadenas de estos dígitos. Aún en la actualidad, es el único lenguaje interno que entiende la computadora; los programas se escriben en lenguajes de mayor nivel y se traducen a lenguaje de máquina.

2. Segunda – Lenguajes ensambladores: Fines de los ’50. Se diferencian de los lenguajes de máquina en que en lugar de usar códigos binarios, las instrucciones se representan con símbolos fáciles de reconocer, conocidos como mnemotécnicos,. Aún se utilizan estos lenguajes cuando interesa un nivel máximo de eficiencia en la ejecución o cuando se requieren manipulaciones intrincadas. Al igual que los lenguajes de la máquina, los lenguajes ensambladores son únicos para una computadora particular. Esta dependencia de la computadora los hace ser lenguajes de bajo nivel.

3. Tercera: años ’60. Los lenguajes de esta generación se dividen en tres categorías, según se orienten a:

procedimientos: Requieren que la codificación de las instrucciones se haga en la secuencia en que se deben ejecutar para solucionar el problema. A su vez se clasifican en científicos (p.ej.: FORTRAN), empresariales (v.g.: COBOL), y de uso general o múltiple (p.ej.: BASIC). Todos estos lenguajes permiten señalar cómo se debe efectuar una tarea a un nivel mayor que en los lenguajes ensambladores. Hacen énfasis los procedimientos o las matemáticas implícitas, es decir en lo que se hace (la acción).

problemas: Están diseñados para resolver un conjunto particular de problemas y no requieren el detalle de la programación que los lenguajes orientados a procedimientos. Hacen hincapié en la entrada y la salida deseadas.

objetos: El énfasis se hace en el objeto de la acción. Los beneficios que aportan estos lenguajes incluyen una mayor productividad del programador y claridad de la lógica, además de ofrecer la flexibilidad necesaria para manejar problemas abstractos de programación.

4. Cuarta: su característica distintiva es el énfasis en especificar qué es lo que se debe hacer, en vez de cómo ejecutar una tarea. Las especificaciones de los programas se desarrollan a un más alto nivel que en los lenguajes de la generación anterior. La característica distintiva es ajena a los procedimientos, el

Introducción a la Programación 118 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

programador no tiene que especificar cada paso para terminar una tarea o procesamiento. Las características generales de los lenguajes de cuarta generación son:

Uso de frases y oraciones parecidas al inglés para emitir instrucciones; no operan por procedimientos, por lo que permiten a los usuarios centrarse

en lo que hay que hacer no en cómo hacerlo; Al hacerse cargo de muchos de los detalles de cómo hacer las cosas,

incrementan la productividad.

Hay dos tipos de lenguajes de cuarta generación, según se orienten:

a la producción: Diseñados sobre todo para profesionales en la computación.

al usuario: Diseñados sobre todo para los usuarios finales, que pueden escribir programas para hacer consultas en una base de datos y para crear sistemas de información. También se llama lenguaje de consultas (SQL, Structured Query Language: lenguaje estructurado para consultas).

Lenguaje natural. Lenguaje utilizado normalmente por las personas. El objetivo de poder programar ordenadores utilizando lenguaje natural es una vieja idea que todavía no ha podido cumplirse, aunque los sistemas expertos y la inteligencia artificial podrán ayudar en este sentido.

LINUX Sistema operativo de redes, basado en Unix creado por Linus Torvalds para ser una versión casera de Unix, de libre distribución, es decir gratuito, la única condición para modificar el sistema operativo y comercializarlo era la de que cualquier adición, mejora o modificación seria incluida para posteriores versiones, fue en un principio programado por el mismo, posteriormente gracias a la colaboración de muchos programadores alrededor del mundo y gracias a que su código fuente estaba al alcance de todos, se fue perfeccionando, hasta el punto de representar hoy en día la competencia mas fuerte de Windows, además de ser mas estable, ofrece otras muchas ventajas, como el ahorro de memoria y el poco espacio que ocupa la instalación en comparación con otros sistemas operativos de redes Aproximadamente 100 megas, sus únicas deficiencias son la falta de algunos drivers para el hardware mas reciente y la dificultad que implica para el usuario promedio la instalación de algunas de sus versiones.

Memoria. Término que se utiliza comúnmente para aludir a la memoria de acceso aleatorio de una computadora (véase también RAM). El término memoria se ha utilizado para referirse a toda clase de almacenamiento electrónico de datos (véase almacenamiento). La memoria de un sistema de computadora es crucial para su funcionamiento. Sin ella, la computadora no podría leer programas o retener datos. La memoria almacena los datos electrónicamente en células de memoria contenidas dentro de los chips. Las dos clases más importantes de chips de memoria son DRAM y SRAM.

Término actualizado:

DRAM (dynamic random access memory): los chips de DRAM están diseñados como una matriz de celdas de memoria dispuestas en filas y columnas. Cada celda de memoria usada para almacenar bits de información que puede ser extraída al indicar de su fila y su columna (dirección).

FPM (fast page mode) DRAM: este tipo de chip de memoria es una mejora con respecto a la anterior tecnología DRAM, porque se accede más rápidamente a la información que se encuentra en la misma fila de la dirección que se accedió

Introducción a la Programación 119 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

previamente. De esta forma, el controlador no pierde tiempo ubicando la fila, sólo debe ubicar la columna correspondiente. Esta tecnología va camino a la obsolescencia, viéndose reemplazada por la DRAM sincrónica, o SDRAM.

EDO (extended data out) DRAM: es similar al FPM con una leve modificación: no solamente retiene la fila de ubicación del último dato solicitado, sino también la columna. La ventaja principal de EDO es que mantiene la in-formación extraída disponible por más tiempo, acortando la secuencia de lectura de la memoria. Su desempeño es entre un 10 y 20 por ciento más rápido que la FPM. Esta tecnología estará terminando su ciclo de producción a fines del año 2000.

SDRAM o DRAM sincrónica (synchronous DRAM): es el cambio más radical y reciente de tecnologías de memorias, porque la extracción de información es sincronizada con el reloj de la placa madre que controla la CPU. Al estar sincronizada con el procesador, se eliminan tiempo de espera, y esto hace que el proceso de extracción de información de la memoria sea más eficiente. En 1998, SDRAM se convirtió en el estándar de la mayoría de las PCs, notebooks y servidores del mercado. El SDRAM está disponible en velocidades de 66 Mhz, 100 Mhz y 133 Mhz. A esta última se la conoce como HSDRAM (high-Speed synchronous DRAM).

SDRAM II o DDR (double date rate): es la próxima generación de SDRAM. Se basa en el mismo principio de la SDRAM, pero duplica su velocidad de lectura de información.

RDRAM (Rambus Dynamic Random Acces Memory): es usada en la industria del entretenimiento, estaciones gráficas y gráficos de video. Rambus usa la tecnología RSL (Rambus Signal Level), que permite un promedio de trasferencia de 600 Mhz. En la actualidad hay dos generaciones de Rambus: base y concurrente.

DIRECT RAMBUS: es la tercera generación de Rambus. Sus módulos se denominan RIMM y SO-RIMM. Direct RDRAM utiliza también el RSL, pero tiene una frecuencia mas alta (800 Mhz) y mejora su eficiencia en un 90 por ciento. Un solo canal de DIRECT RDRAM puede transmitir un ancho de banda de 1.6 Gb por segundo. El RIMM tiene 184 pines y chips de 2,5 voltios. La Motherboard puede soportar hasta 3 sockets RIMM, con un máximo de 32 chips de DIRECT RDRAM por canal. DIRECT RAMBUS requiere que todos sus sockets estén completos para permitir el traspaso de la señal.

Menú. Procedimiento para facilitar al usuario la elección de alternativas a través de un Menú de opciones.Microsoft C. Sistema de desarrollo y compilador C de Microsoft para aplicaciones DOS y Windows de Microsoft. La programación de Windows requiere el Windows Software Development Kit (SDK), el cual viene incluido.

La versión 7.0 incluye la capacidad C++ y la Versión 1.0 del Microsoft Foundation Class Library (MFC), que provee una estructura base de código orientado a objetos sobre la cual puede construirse una aplicación.

Microsoft Word. Microsoft Word es un procesador de texto creado por Microsoft, para crear documentos de destacada importancia tales como informes, cartas, planes empresariales y otros tipos de documentos para Internet e impresión.

Monitor. Elemento hardware que está constituido básicamente por un tubo de rayos catódicos, más sus conexiones a la CPU y dispositivos de encendido y apagado, controles

Introducción a la Programación 120 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

de imagen, pantalla-display, etc. Los hay de muy diferentes tamaños y diseños. Su operación está gobernada por el sistema operativo. Pantalla de visualización que se usa para presentar la salida de un computador, una cámara, una videograbadora u otro generador de video. La claridad del monitor se basa en el ancho de banda del video, la densidad de puntos, el índice de regeneración y la convergencia.

Nanosegundos. Es una Mil Millonésima parte de un segundo. Es decir, en un segundo hay 1.000.000.000 de nanosegundos. Se trata de una escala de tiempo muy pequeña, pero bastante común en los ordenadores, cuya frecuencia de proceso es de unos cientos de Megahercios.

Decir que un procesador es de 500 Mhz, es lo mismo que decir que tiene 500.000.000 ciclos por segundo, o que tiene un ciclo cada 2 ns.

Pantalla. Palabra que puede tener varios significados dentro de la informática pero el más común y al que nos solemos referir cuando hablamos de ellos es a un dispositivo de salida o periférico, conectado a un ordenador o PC el cual nos sirve para visualizar la información que nos está mostrando el equipo.

Hay veces que también se puede usar cuando se abre una ventana dentro de Windows (por ejemplo) y alguien puede decir "se me ha abierto una nueva pantalla".

Pascal. Es un lenguaje de programación desarrollado por N. Wirth hace más de 20 años. Su uso es frecuente en la formación de programadores.

PDF. (Portable Document Format) Formato de los documentos de Acrobat Reader que les permite conservar todas las características gráficas durante la transmisión a través de Internet.

Pirata Informático. La práctica habitual de la copia ilegal de software, tanto en el terreno doméstico como en el ámbito empresarial, ha relegado este término a ciertos personajes con alguna aureola capaces de penetrar en bases de datos de centros clave. Sin embargo, el término alude precisamente a esta práctica no por extendida menos reprobable, que ocasiona cuantiosísimas pérdidas a la industria informática.

Power Point. Aplicación ofimática perteneciente al paquete de Microsoft Office. Con esta aplicación se pueden realizar presentaciones profesionales mediante la creación de "diapositivas" que podemos ver en la pantalla de nuestro PC o proyectarlas como si de diapositivas se tratase. La ventaja es que pueden añadirse textos animados, sonidos y hacerlo interactivo.

Procedimiento. Dentro de una aplicación, se denomina procedimiento al conjunto de instrucciones, controles, etc. que hacen posible la resolución de una cuestión específica. La impresión es un procedimiento, como lo es la incorporación de una imagen a un texto predeterminado, etc.

Programa. 1. Redacción de un algoritmo en un lenguaje de programación.

2. Conjunto de instrucciones ordenadas correctamente que permiten realizar una tarea o trabajo específico.

3. Toda secuencia de instrucciones o indicaciones destinadas a ser utilizadas, directa o

Introducción a la Programación 121 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

indirectamente, en un sistema informático para realizar una función o una tarea o para obtener un resultado determinado, cualquiera que fuere su forma de expresión y fijación.

4. Conjunto secuenciado de instrucciones que quedan escritas en un lenguaje determinado con unos fines específicos. Aunque en el lenguaje común con frecuencia se denomina programa al sistema operativo, la diferencia estriba, precisamente, en la especificidad de aquél frente al carácter de gestión global de éste. La palabra software engloba ambos.

Programa Fuente. Es un texto escrito en un lenguaje de programación para crear el programa. Es la forma del programa legible por el programador.

Es un texto que describe lo que hace el programa, y que una vez pasado por un proceso llamado compilación (traducción de lenguaje fuente a lenguaje máquina) genera el código ejecutable, el programa que usamos.

Es el conjunto completo de instrucciones y archivos originales y de soporte, creados y/o modificados por el programador, destinado a producir el programa ejecutable a partir de ellos.

Programador. Persona que diseña, escribe y/o depura programas de ordenador o computadora, es decir, quien diseña la estrategia a seguir, propone las secuencias de instrucciones y/o escribe el código correspondiente en un determinado lenguaje de programación.

Pseudocódigo. Herramienta de análisis de programación. El pseudocódigo es un lenguaje de especificación de algoritmos, de uso fácil y sintaxis similar al lenguaje de programación a utilizar, que permite al programador concentrarse en las estructuras de control, y olvidarse de la sintaxis del lenguaje a utilizar.

RAM. (Ramdom Access Memory, memoria de acceso aleatorio). Los programas que se ejecutan en el ordenador, así como los datos de las variables que utilizan estos programas, deben estar almacenados en un lugar accesible para el microprocesador. Este lugar se denomina memoria y, físicamente, está formada por una serie de chips comunicados con el microprocesador a través del bus de direcciones y el bus de datos.

En la memoria RAM se guardan los datos y pueden ser modificados y leídos constantemente. Esta información se borra cuando se apaga el ordenador debido a que necesitan estar alimentadas constantemente.

Resolución. Se denomina resolución al número de columnas de pixels que pueden ser mostradas en una pantalla. La resolución se puede medir en columnas de pixels: a más resolución, mayor calidad gráfica.Cantidad de puntos que puede pintar una impresora en un espacio determinado. Generalmente se mide en puntos por pulgada (ppp), es decir, los puntos que caben en una pulgada de lado (2,54 centímetros).

Sistema Operativo. Software que controla el ordenador. Unix es un sistema operativo. También Linux, Windows, OS/2, MacOS, etc.

Software. El software está compuesto por los programas que dirigen el funcionamiento de un ordenador. Es la "parte lógica" de la máquina que permite enlazar todos los elementos de hardware de la manera más efectiva posible, permitiéndole realizar cualquier tipo de trabajo.

Introducción a la Programación 122 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Spyware. Los programas espía o spyware son aplicaciones que recopilan información sobre una persona u organización sin su conocimiento. La función más común que tienen estos programas es la de recopilar información sobre el usuario y distribuirlo a empresas publicitarias u otras organizaciones interesadas, pero también se han empleado en círculos legales para recopilar información contra sospechosos de delitos.

Terabyte. Aproximadamente mil Gigabytes. 1TB = 1024GB

Troyano. Remontémonos unos miles de años, hasta el siglo XIII antes de Cristo, y desplacémonos unos miles de kilómetros al Este. Los griegos llevan años y años asediando la ciudad de Troya, situada en la actual Turquía. Finalmente, deciden "abandonar" el asedio. En la playa, tras de sí, dejan un enorme caballo de madera. Un espía griego, Sinón, convence a los troyanos de que se trata de un regalo de los griegos. Los troyanos se llevan el caballo dentro de la ciudad. Durante la noche, Sinón se dirige al caballo y abre una trampilla oculta en él. De la trampilla salen varios soldados griegos que, una vez dentro de Troya, consiguen doblegar la ciudad. Troya es conquistada gracias a un engaño (el del caballo) y a una traición (la de Sinón). Curiosamente, miles de años después, aquel caballo de madera ha servido para nombrar a una de las más peligrosas amenazas informáticas después de los virus, los Caballos de Troya, que reproducen exactamente la misma técnica. Un programa inofensivo llega al ordenador de un usuario desprevenido. El programa se ejecuta y funciona con normalidad… aparente. En realidad, y sin que el usuario se dé cuenta, un programa dañino se instala al mismo tiempo que el programa inofensivo. Los más modernos troyanos abren puertos de comunicaciones que permiten el control del ordenador por intrusos a través de Internet. Los troyanos no se pueden considerar virus ya que no se replican o no hacen copias de sí mismos. En realidad son programas que llegan a un ordenador de forma totalmente normal y no producen efectos visibles o apreciables (por lo menos en ese momento). Pueden llegar acompañados de otros programas instalándose, al mismo tiempo, en nuestro ordenador. Al activarse puede dejar huecos en nuestro sistema, a través de los cuales se producen intrusiones.

Turbo C. Compilador de C, de Borland, que se emplea para crear una gran variedad de productos comerciales. Es conocido por su bien diseñado depurador. Las versiones orientadas a objetos, de Borland, de C son Turbo C++ y Borland C++.

Unix. Sistema operativo multiusuario independiente del tipo de ordenador, que pueden también incorporar los compatibles IBM y que a diferencia del MS-DOS, puede acceder a toda la memoria de trabajo disponible y administrarla de forma integral.

Usuario. Palabra que describe a la persona que habitualmente utiliza algo, esto es por ejemplo, "el usuario de un ordenador". Un sencillo ejemplo puede ser: La persona que lee un manual, es el usuario del manual. Muchas veces lo describen como "Manual del Usuario" es decir, de la persona que lo va a leer y poner en práctica.

Un usuario puede ser definido como aquella persona que interactúa con la computadora a nivel de aplicación. En cambio, los programadores y todo profesional técnico no pueden ser considerados como usuarios cuando trabajan con la computadora a nivel profesional.

Variable. Se trata de una estructura matemática que puede almacenar cualquier tipo de información, ya sea numérica, alfanumérica, etc...

Para entendernos, una variable podría ser como una caja, en la que puedes introducir cualquier cosa (información).

Introducción a la Programación 123 Dossier

Universidad Salesiana de Bolivia Ingeniería de Sistemas

Variable Local. Una Variable Local es una propia o exclusiva de un programa, función o procedimiento donde este declarada e inicializada.

Virus. A parte de los conocidos microbios que nos pueden ocasionar problemas de diversa índole, en informática un virus es un programa que es capaz de realizar diversas operaciones para las cuales fue programado. Los virus pueden ser transmitidos enviando un fichero a través de Internet, mandando un mensaje por correo electrónico o bajándonos un fichero de una página Web.

Hay algunos virus que son inofensivos y que solo nos gastan alguna que otra  broma en el ordenador (mensajes que aparecen de repente, por ejemplo). Otros en cambio son muy peligrosos ya que pueden llegar a borrar toda la información de nuestro PC, e incluso averiarlo. La facilidad de transmisión de los virus por Internet, pueden llegar a ocasionar grandes "destrozos" informáticos si no se está debidamente protegido.

Windows. Sistema operativo desarrollado por la empresa Microsoft y cuyas diversas versiones (95, 98, NT, 2000, Me, XP...) dominan de forma abrumadora el mercado de los ordenadores personales. La palabra windows significa literalmente "ventanas" en inglés.

Introducción a la Programación 124 Dossier