Anda di halaman 1dari 126

UNIVERSIDAD SALESIANA

DE BOLIVIA

CARRERA DE INGENIERÍA DE SISTEMAS

DOSSIER
INTRODUCCIÓN A LA PROGRAMACIÓN
Primer Semestre

Lic. Judith Callisaya Choque

2 - 2014
Universidad Salesiana de Bolivia Ingeniería de Sistemas

Contenido
CAPITULO I........................................................................................................................................................3
CONCEPTOS BÁSICOS.....................................................................................................................................3
1.1 INTRODUCCIÓN................................................................................................................................3
1.2 DATOS, TIPOS DE DATOS Y OPERACIONES BÁSICAS....................................................................3
1.2.1. DEFINICIÓN DE DATOS...........................................................................................................3
1.2.2. TIPOS DE DATOS.......................................................................................................................3
1.3 IDENTIFICADORES Y PALABRAS RESERVADAS.......................................................................6
1.4 CONSTANTES Y VARIABLES..........................................................................................................6
1.5 EXPRESIONES...................................................................................................................................7
1.5.1 EXPRESIONES ARITMÉTICAS................................................................................................7
1.5.2 EXPRESIONES LOGICAS.........................................................................................................9
1.6 FUNCIONES INTERNAS.................................................................................................................10
1.7 LA OPERACIÓN DE ASIGNACIÓN...............................................................................................11
1.8 ENTRADA / SALIDA DE INFORMACIÓN....................................................................................12
CAPÍTULO II.....................................................................................................................................................14
RESOLUCIÓN DE PROBLEMAS UTILIZANDO COMPUTADORAS........................................................14
2.1 FASES EN LA RESOLUCION DE PROBLEMAS..........................................................................14
2.2 FASE DE RESOLUCION DEL PROBLEMA...................................................................................14
2.2.1 Análisis del Problema “ ¿ QUÉ ES LO QUE SE DESEA HACER ? ”.....................................14
2.2.2 Diseño del Algoritmo “¿ CÓMO SE HARÁ ?”........................................................................16
2.2.3 Verificación Manual del Algoritmo............................................................................................25
2.3 FASE DE IMPLEMENTACION EN LA COMPUTADORA............................................................26
2.3.1 Codificación del algoritmo en programa....................................................................................26
2.3.2 Compilación y ejecución de un programa..................................................................................26
2.3.3 Verificación y depuración del programa....................................................................................27
2.3.4 Documentación y mantenimiento...............................................................................................27
CAPITULO III...................................................................................................................................................28
PROGRAMACIÓN ESTRUCTURADA...........................................................................................................28
3.1 REGLAS DE PROGRAMACIÓN.....................................................................................................28
3.2 PROGRAMACIÓN ESTRUCTURADA...........................................................................................28
3.2.1 Diseño descendente....................................................................................................................28
3.2.2 Recursos Abstractos....................................................................................................................30
3.2.3 Teorema de la programación estructurada: estructuras básicas..................................................30
3.3 EJERCICIOS PROPUESTOS............................................................................................................58
CAPITULO IV...................................................................................................................................................61
ARREGLOS UNIDIMENSIONALES: VECTORES........................................................................................61
4.1 INTRODUCCION A LAS ESTRUCTURAS DE DATOS................................................................61
4.2 ARREGLOS (ARRAYS)...................................................................................................................63
4.2.1 ARREGLOS UNIDIMENSIONALES: VECTORES................................................................63
4.3 EJERCICIOS PROPUESTOS............................................................................................................72
CAPÍTULO V....................................................................................................................................................74
ARREGLOS BIDIMENSIONALES : MATRICES...........................................................................................74
5.1 INTRODUCCIÓN...................................................................................................................................74
5.2 DECLARACIÓN DE MATRICES....................................................................................................76
5.3 CONCEPTOS SOBRE MATRICES..................................................................................................77
5.3.1 Matriz Cuadrada.........................................................................................................................77
5.3.2 Matriz Rectangular.....................................................................................................................79
5.3.3 Matriz Identidad.........................................................................................................................80
5.3.4 Matriz Transpuesta.....................................................................................................................80
5.3.6 Matriz Inversa.............................................................................................................................81
5.4 LECTURA/ESCRITURA DE MATRICES.......................................................................................82
5.5 ALGEBRA DE MATRICES..............................................................................................................84

Introducción a la Programación 1 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

5.5.1 Suma de matrices........................................................................................................................84


5.5.2 Resta de matrices........................................................................................................................84
5.5.3 Multiplicación de una matriz por un escalar..............................................................................85
5.5.4 Multiplicación de matrices.........................................................................................................86
5.6 EJERCICIOS PROPUESTOS............................................................................................................86
CAPÍTULO VI...................................................................................................................................................91
METODOS DE ORDENACIÓN.......................................................................................................................91
6.1 INTRODUCCIÓN..............................................................................................................................91
6.2 METODO DE INTERCAMBIO O DE LA BURBUJA....................................................................91
6.3 MÉTODO DE ORDENACIÓN POR INSERCIÓN..........................................................................94
6.4 METODO DE ORDENACIÓN POR SELECCIÓN.........................................................................95
6.5 MÉTODO DE ORDENACIÓN RÁPIDA (QUICKSORT)...............................................................95
CAPÍTULO VII..................................................................................................................................................97
MÉTODOS DE BÚSQUEDA............................................................................................................................97
7.1 INTRODUCCIÓN..............................................................................................................................97
7.2 MÉTODO DE BÚSQUEDA SECUENCIAL....................................................................................97
7.3 MÉTODO DE BÚSQUEDA BINARIA............................................................................................98
7.4 MÉTODO DE BÚSQUEDA MEDIANTE TRANSFORMACIONES DE CLAVES (HASHING). 99
CAPÍTULO VIII..............................................................................................................................................100
INTRODUCCION A LA PROGRAMACIÓN MODULAR...........................................................................100
8.1 INTRODUCCION............................................................................................................................100
8.2 EL DISEÑO DESCENDENTE: SUBPROGRAMAS...........................................................................100
8.3 EL DISEÑO MODULAR......................................................................................................................102
8.3.1 PROCEDIMIENTOS Y FUNCIONES....................................................................................102
8.4 TRANSFERENCIA DE INFORMACIÓN HACIA /DESDE MÓDULOS.....................................105
8.4.1 Los parámetros................................................................................................................................105
8.4.2 VARIABLES LOCALES Y VARIABLES GLOBALES.........................................................106
8.4.3 AMBITO DE UN IDENTIFICADOR.....................................................................................107
LECTURAS COMPLEMENTARIAS.............................................................................................................108
BIBLIOGRAFÍA..............................................................................................................................................108
GLOSARIO......................................................................................................................................................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ñad a 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.

2.2.1 DEFINICIÓN DE DATOS

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

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

Vectores
 Estáticos Matrices
Registros
Archivos

Pilas
Colas
 Dinámicos Listas
Árboles
Grafos

2.3.1.1 DATOS SIMPLES

Los datos simples se clasifican en:

Enteros
 Numéricos

Reales

1 sólo carácter (char)


 Carácter

Varios caracteres (strings -


cadenas)

 Lógicos

1.2.1.1 Datos Numéricos

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

Ejemplos:

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

Introducción a la Programación 4 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Ejemplos:

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

1.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.1.3 Datos Lógicos

Introducción a la Programación 5 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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

Los identificadores deben empezar


Nombre 10Nombre
siempre con un letra
Los identificadores deben empezar
Dirección 9C
siempre con un letra
Los identificadores no pueden ser
Sueldo Begin (***)
palabras reservadas
Los identificadores no pueden tener
Sueldo_empleado Sueldo empleado
espacios vacíos en medio
Los identificadores no pueden tener
anio_nac año_nac
ciertos caracteres como ñ o acentos

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

Las palabras reservadas (KeyWords), son palabras clave y propias de cada


lenguaje de programación.

Ejemplos:

Program, var, uses, const, type,


Turbo Pascal begin, end, repeat, while, if, unit,
until, do, if, else, then, etc.

int, double, case, char, const, do,


Turbo C 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.

Introducción a la Programación 6 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos:

a) 3.1416
b) 2.71828
c) ‘Error’

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

a) Edad: representa la edad de una persona


b) Sueldo_mensual: representa el sueldo que gana un empleado cada mes
c) Nota_final: representa la nota final obtenida por un alumno.

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

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

2.3.1.1 Operadores aritméticos

Símbolo Operación Tipo de Tipo de


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

Introducción a la Programación 7 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

MOD Módulo Entero Entero (residuo)

Introducción a la Programación 8 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 auxiliares


i) 27 div 4 = 6

j) 27 mod 4 = 3

OA) 27 4
(3) 6 cociente

residuo

k) 156 div 10 = 15

l) 156 mod 10 = 6

Introducción a la Programación 9 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

OA) 156 10
(6) 15
cociente

residuo

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

2.3.1.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 10 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

2.3.1.2 Operadores lógicos

Operador Expresión lógica Significado


not not p (no p)
and p and q (p Λ q) Conjunción de p y q
or p or q (p v q) Disyunción de p y q

p q p and q p or q
V V V V
V F F V
F V F V
F F F F

p not p
V F
F V
Ejemplos:

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

b) not (34 < 56) es falso

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

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

1.6 FUNCIONES INTERNAS

Función Significado Tipo de Tipo de


operandos resultado
abs (x) Valor absoluto de x Entero o real Entero o real
arctg (x) Arco tangente de x Entero o real Real
cos(x) Coseno de x Entero o real Real
ent(x) Parte entera de x Entero o real Real
exp(x) ex Entero o real Real
ln(x) Logaritmo natural de x Entero o real Real
log(x) Logaritmo decimal de x Entero o real Real
sqrt(x) Raiz cuadrada de x Entero o real Real
sqr(x) Cuadrado de x Entero o real Entero o real
round(x) Redondea x al entero más Entero o real Entero
cercano
sin(x) Seno de x Entero o real Real
tan(x) Tangente de x Entero o real Real
trunc(x) Parte entera de x Real Entero

Introducción a la Programación 11 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 ) + 3
X = 25 + 2 + 3
X = 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 12 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos:

N 10

N A C
A 0 oo oo oo
10 0 5
3

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

nom_var

Ejemplos:

A B C
A, B, C
Oo oo oo
25 -4 52

Introducción a la Programación 13 Dossier


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

nom_var nom_var

Ejemplo:

N NMOSTRAROO
1515

Introducción a la Programación 14 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO II
RESOLUCIÓN DE PROBLEMAS UTILIZANDO COMPUTADORAS

2.1 FASES EN LA RESOLUCION DE PROBLEMAS

Problema Algoritmo Solución


F1 F2
Diagrama de Programa
Flujo

donde:

F1: Fase de resolución del problema


F2: Fase de implementación en la computadora

2.2 FASE DE RESOLUCION DEL PROBLEMA

RESOLUCION DEL PROBLEMA

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

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

Análisis del Problema

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

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 15 Dossier


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

Introducción a la Programación 16 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Variables de entrada

Z : número real

Variables de salida

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

2.2.6 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.3.1.1 Algoritmo

La palabra "algoritmo" es de origen árabe. Viene de "al-Khwārizmī",


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

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


un problema.

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

1.6.1.2 Características de un algoritmo

Introducción a la Programación 17 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

 Preciso, es decir que debe indicar claramente el orden de realización


de cada paso.

 Definido, es decir que si se sigue un algoritmo varias veces se debe


obtener el mismo resultado cada vez.

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

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

Inicio
P1. Llenar la olla con agua
P2. Encender el fuego de la cocina
P3. Poner la olla al fuego
P4. Esperar hasta que hierva el agua
P5. Introducir el huevo en la olla
P6. Esperar 10 minutos
P7. Apagar el fuego
P8. Vaciar el agua
P9. Sacar el huevo de la olla
Fin

2) Algoritmo para preparar tortilla de papas

Inicio
P1. Pelar las papas
P2. Echar las papas en una olla con agua
P3. Echar sal a gusto
P4. Repetir
Esperar
Hasta que las papas estén cocidas
P5. Vaciar el agua de la olla

Introducción a la Programación 18 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

P6. Sacar las papas a una cacerola


P7. Cortar las papas
P8. Sacar el huevo de la nevera
P9. Romper el huevo y botar las cáscaras
P10. Batir el huevo en un plato hondo
P11. Encender el fuego
P12. Poner la sartén
P13. Repetir
Esperar
Hasta que el aceite esté hirviendo
P14. Meter las papas en la sartén
P15. Esperar a que las papas estén doradas
P16. Verter los huevos en la sartén
P17. Echar un poco de sal
P18. Repetir
Batir huevos y papas por ambos lados
Hasta que la tortilla esté dorada
P19. Retirar la sartén
P20. Colocar la tortilla en un plato.
Fin

2.3.1.2 Herramientas de Programación

Una vez que se ha obtenido el algoritmo que resolverá el problema, es preciso


representarlo mediante una determinada HERRAMIENTA DE PROGRAMACION:

 Diagrama de flujo
 Pseudocódigo
 Diagramas Nassi-Shneiderman (diagramas N-S)

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

Introducción a la Programación 19 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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


un programa

Ejemplo

C Inicio del programa

fin Fin del programa

Representa la ENTRADA/SALIDA de datos desde o


hacia cualquier periférico de entrada o salida

Ejemplos

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

A, B
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 20 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplos

A  0 Inicializa la variable A en cero (almacena el cero


en la variable A)

A A+ 2 Suma dos al valor previo de la variable A y


almacena este resultado en la misma variable.

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

Representa DECISION, se utiliza para indicar


no si operaciones lógicas o de comparación entre
datos, dependiendo del resultado cual de los
caminos alternativos a seguir.

Ejemplos

no si Compara el valor de la variable A con el valor de


A> la variable B.
B

no si Compara el valor de la variable A con cero


A=
0

Introducción a la Programación 21 Dossier


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 22 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 23 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

1.6.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 24 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 25 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.7 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

Introducción a la Programación 26 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

anotando en una hoja de papel los valores que van tomando en las diferentes
fases. Este proceso se conoce como PRUEBA DE ESCRITORIO.

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.2.8 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.2.9 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.

Introducción a la Programación 27 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

2.2.10 Verificación y depuración del programa

La verificación de un programa es el proceso de ejecutar el programa con


varios datos de entrada llamados datos de prueba, que determinarán si el
programa tiene errores.

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


eliminar dichos errores.

2.2.11 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 28 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPITULO III
PROGRAMACIÓ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

2.2.12 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 29 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diseño Descendente

Problema Principal

Subproblema 1 Subproblema 2 Subproblema 3 Subproblema 4

Subproblema
Subproblema 1.1. Subproblema 1.2.
3.1.

Ejemplo

Calcular el promedio de 3 números.

Análisis
Variables de entrada

A: 1er. número real


B: 2do. número real
C: 3er. número real
Variables de salida

P: promedio de A, B y C

Diseño
Entran :
A=5
B=4
C=8
Sale :

P = 5.66

A + B + C
P=
3

Introducción a la Programación 30 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

1. Leer los valores de A, B y C


2. Calcular el promedio
3. Mostrar el promedio

Calcular el promedio
de 3 números

Leer los valores de Mostrar el


Calcular el promedio
A, B y C promedio

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

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

2.2.14 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

2.3.1.1 Programa propio

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

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


2. Existen caminos desde la entrada hasta la salida.
3. Todas las instrucciones son ejecutables y no existen bucles infinitos

Introducción a la Programación 31 Dossier


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 32 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 33 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Incorrecto Correcto

El diagrama de flujo entra en un ciclo


infinito y NUNCA terminará.

2.3.1.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 34 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Acción A

Acción B

Acción N

Diagrama N-S

Pseudocódigo

inicio
AcciónA
AcciónB
.
.
.
.
.
AcciónN
fin

Introducción a la Programación 35 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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


ellos.

Diagrama de Flujo

Diagrama N-S

Inicio

Leer A

Leer B

C  A/B

Mostrar C

Fin

Pseudocódigo

Inicio
leer(A)
leer(B)
c  A/B
mostrar(C)
Fin

Introducción a la Programación 36 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

2.3.1.3 Estructuras Selectivas

Las estructuras selectivas o de decisión se utilizan para tomar decisiones


lógicas. Se clasifican en los siguientes tipos:

 decisión o selectiva simple


 decisión o selectiva doble
 decisión o selectiva múltiple

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

no si
condició
n
acción A

acción B

Diagrama N-S

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


ellos.

Introducción a la Programación 37 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Diagrama N-S

Introducción a la Programación 38 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

Inicio
Leer A, B
si B <> 0 entonces
CA/B
Mostrar C
fin_si
Fin

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

Introducción a la Programación 39 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo

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

Diagrama de Flujo

Diagrama N-S

Introducción a la Programación 40 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

Inicio
Leer A, B
si B <> 0 entonces
CA/B
Mostrar C
si_no
Mostrar “b debe ser distinto de cero”
fin_si
Fin

1.14.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 41 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S - Opción 1

Introducción a la Programación 42 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S - Opción 2

Pseudocódigo

según_sea variable hacer


op1: acción1
op2: acción2
op3: acción3
.
.
.
opn: acciónN
si_no: acciónX
fin_según

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

Introducción a la Programación 43 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo – Opción 1

Introducción a la Programación 44 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo – Opción 2

Introducción a la Programación 45 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

Inicio
Leer A, B
Leer sw
según_sea sw hacer
1: c  A + B
Mostrar c
2: c  A – B
Mostrar c
3: c  A * B
Mostrar c
4: si B <> 0 entonces
CA/B
Mostrar C

Introducción a la Programación 46 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

si_no
Mostrar “b debe ser distinto de cero”
fin_si
si_no: Mostrar “valor ingresado debe estar entre 1 y 4”
fin_según
Fin

2.3.1.4 Estructuras Repetitivas

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

Las estructuras que repiten una secuencia de instrucciones un número


determinado de veces se llaman bucles e iteración al hecho de repetir la
ejecución de una secuencia de acciones.

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

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

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

 para/desde (FOR
 mientras(WHILE)
 repetir – hasta (REPEAT - UNTIL)

1.14.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 47 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Diagrama N-S

Introducción a la Programación 48 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

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


acción1
acción2
fin_para

Ejemplo Mostrar los N primeros números naturales.

Diagrama de Flujo

Diagrama N-S

Introducción a la Programación 49 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

Inicio
Leer N
para i  1 hasta N hacer
Mostrar i
fin_para
Fin

1.14.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 50 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

mientras condición hacer


acción1
acción2
fin_mientras

Ejemplo Mostrar los N primeros números naturales.

Introducción a la Programación 51 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Introducción a la Programación 52 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Pseudocódigo

Inicio
Leer N
i=1
mientras i <= N hacer
Mostrar i
i=i+1
fin_mientras
Fin

1.14.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 53 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

repetir
acción1
acció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 54 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama de Flujo

Introducción a la Programación 55 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

Inicio
Leer A
repetir
Leer B
hasta_que B <> 0
CA/B
Mostrar C
Fin

Introducción a la Programación 56 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo

Mostrar los N primeros números naturales.

Introducción a la Programación 57 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Diagrama N-S

Pseudocódigo

Inicio
repetir
Leer N
hasta_que N > 0
i1
repetir
Mostrar i
ii+1
hasta_que i > N
Fin

Introducción a la Programación 58 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:

1.14.4.3.1.1.1 X = 567
Para
Mostrar X= 456
X= 345
X= 234
X= 123
X= 012
X= 001
X= 000

7. Leer 2 números A y B enteros y positivos cuyos dígitos están ordenados


ascendentemente, obtener un tercer número X entero y positivo
formado por los dígitos de A y B, que también deberá estar ordenado
ascendentemente.

8. Leer un número Z entero y positivo y eliminar aquellos dígitos cuyo


valor sea igual al menor de ellos.

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


10.

10. Leer 2 números X e Y enteros y positivos, y generar un nuevo número Z


con los dígitos pares de X seguidos de los dígitos impares de Y.

Introducción a la Programación 59 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

11. Dado un número N entero y positivo, mostrar los dígitos pares de N, y


generar nuevos números con los dígitos decrecientes.

Ejemplo

N = 6458732
Dígitos pares

6 4 8 2
Mostrar 21
Mostrar 87654321
Mostrar 4321
Mostrar 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 factorial
b) si el número introducido es impar verificar si es primo
c) 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 suma
b) 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.

Introducción a la Programación 60 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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 = 3
CantVa = 4
PromEd = (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 61 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPITULO IV
ARREGLOS 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éricos

Reales

1 sólo carácter (char)


 Carácter

Varios caracteres (strings -


cadenas)

 Lógicos

Introducción a la Programación 62 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Los datos estructurados se clasifican en:

Vectores
 Estáticos Matrices
Registros
Archivos

Pilas
Colas
 Dinámicos Listas
Árboles
Grafos

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

Los tipos de datos simples pueden ser organizados en diferentes estructuras de


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

Las estructuras de datos dinámicas no tienen limitaciones en el tamaño de


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

La selección del tipo de estructura de datos más adecuado a cada aplicación


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

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

Introducción a la Programación 63 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
2.2.15 ARREGLOS UNIDIMENSIONALES: VECTORES

Los arreglos unidimensionales son arreglos de una sola dimensión, y para


operar con cualquiera de sus elementos se debe escribir el nombre del arreglo
seguido de UN subíndice entre corchetes [ ].

Representación gráfica:

………..

Primer Segundo Ultimo


Elemento Elemento elemento

Los arreglos están compuestos elementos, donde cada elemento, a su vez,


está formado por los índices y datos, los índices hacen referencia a la cantidad
de elementos del arreglo y a la posición en la cual se localizan, los datos se

Introducción a la Programación 64 Dossier


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

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

Nombre de la constante que indica la cantidad máxima de


nomb_const :
elementos que puede almacenar el vector
Cantidad máxima de elementos que puede almacenar el
valor :
vector
nomb_vector : Nombre del vector
tipo_valor : Tipo de los valores de los elementos del vector

Ejemplos

Introducción a la Programación 65 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Introducción a la Programación 66 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

1.15.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 67 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Representación gráfica

nomb_vector[subindice]  valor

Ejemplos

A[0]  5
Quedando el vector A :

A =54824-15oo01234
A[1]  48 oo = valor infinito

A[2]  24

A[3]  -15

2)

j  0, n-1, 1
Donde n es la dimensión del vector A.

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

A[j]  1 A =1111oo01234
oo = un valor infinito

Introducción a la Programación 68 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

j  0, n-1, 1 Donde:

j representa a la variable subíndice

n es la dimensión del vector V


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

Ejemplos:

1)

j  0, n-1,1 Para n = 5, el vector V quedaría


así:

V =78-4578116401234

V[j]

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 69 Dossier


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

j  0, n-1, Donde:
1
j representa a la variable subíndice

n es la dimensión del vector V


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

Ejemplos:

1)

Para n = 5 y el vector V con los


j  0, n-1,
siguientes elementos:
1
V =78-4578116801234
Se imprimirían los valores
almacenados en los elementos
V[j] de V, es decir:
78, -45, 78, 1, 168

1.15.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 70 Dossier


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 oo
0 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 oo
0 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 oo
0 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í:

Introducción a la Programación 71 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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ío


2. 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 oo
0 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 oo
0 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 oo
0 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 oo
0 1 2 3 4 5 6 7 8 9

Introducción a la Programación 72 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

1.15.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
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.1.1 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.

Introducción a la Programación 73 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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 pares
b. La suma de los números impares
c. La suma de los números primos
d. 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 19
0 1 2 3 4 5 6 7

Introducción a la Programación 74 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO V
ARREGLOS 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

Columna 5

Columna 4

Columna 3

Columna 2

Columna 1

Columna 0

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:

Introducción a la Programación 75 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

1
2
….
B=
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 76 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:

nomb_const = valor

nomb_matriz = MATRIZ[nomb_cons, nomb_const] DE tipo_valor

PROCESOS

fin

Introducción a la Programación 77 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Donde:

Nombre de la constante que indica la cantidad máxima de


nomb_const :
filas/columnas de la matriz
valor : Cantidad máxima de filas/columnas de la matriz
nomb_matriz : Nombre de la matriz
tipo_valor : Tipo de los valores de los elementos de la matriz

Ejemplo.-

5.3 CONCEPTOS SOBRE MATRICES

2.2.16 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
0 12 -5 6 98 11
1 45 65 -7 55 1
A= 2 25 34 78 23 12
3 98 78 14 16 -8
4 6 8 5 7 4

Introducción a la Programación 78 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
0 1 5 6 7 9
1 5 0 3 2 4
M= 2 10 -7 14 6 7
3 3 2 2 4 8
4 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
0 1 5 6 7 9
1 5 0 3 2 4
M= 2 10 -7 14 6 7
3 3 2 2 4 8
4 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.

Introducción a la Programación 79 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo.- Sea la matriz M de orden 5:

0 1 2 3 4
0 1 5 6 7 9
1 5 0 3 2 4
M= 2 10 -7 14 6 7
3 3 2 2 4 8
4 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
0 1 5 6 7 9
1 5 0 3 2 4
M= 2 10 -7 14 6 7
3 3 2 2 4 8
4 7 8 9 9 0

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

9, 2, 14, 2, 7

2.2.17 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
0 1 2 5 8
C= 1 7 45 6 12
2 10 -7 14 16

Introducción a la Programación 80 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

2.2.18 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
0 1 0 0 0
1 0 1 0 0
I= 2 0 0 1 0
3 0 0 0 1

2.2.19 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
0 5 8 9 7 6
B= 1 4 5 3 2 -1
2 0 1 10 -9 5

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

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

5.3.1 Matriz 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 81 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
0 1 2 5 6
1 2 4 7 8
Z=
2 5 7 10 -1
3 6 8 -1 11

2.2.20 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
0 2 -5
A=
1 -1 3

la matriz inversa de A. A-1 es:

0 1
0 3 5
A-1 =
1 1 2

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

0 1 2
0 1 2 3
B= 1 2 5 3
2 1 0 8

la matriz inversa de B, B-1 es:

0 1 2
0 -40 16 9
B-1 = 1 13 -5 -3
2 5 -2 -1

Introducción a la Programación 82 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:

Donde:
i  0, n-1,
1 i representa al subíndice de las
filas
j representa al subíndice de las
columnas
j  0, n-1,
1 n es la cantidad de filas
m es la cantidad de columnas
A es la matriz de n*n (matriz
A[i, j]
cuadrada)

Donde:
i  0, n-1, 1
i representa al subíndice de las
filas
j representa al subíndice de las
columnas
j  0, m-1,
1 n es la cantidad de filas
m es la cantidad de columnas
A es la matriz de n*m (matriz
A[i, j]
rectangular)

Introducción a la Programación 83 Dossier


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:

Donde:
i  0, n-1, 1
i representa al subíndice de las
filas
j representa al subíndice de las
j  0, n-1, 1 columnas
n es la cantidad de filas
m es la cantidad de columnas
A es la matriz de n*n (matriz
A[i, cuadrada)
j]

Donde:
i  0, n-1, 1
i representa al subíndice de las filas
j representa al subíndice de las
columnas
j  0, m-1, n es la cantidad de filas
1 m es la cantidad de columnas
A es la matriz de n*m (matriz
rectangular)
A[i,
j]

Introducción a la Programación 84 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

5.5 ALGEBRA DE MATRICES

2.2.21 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-1
0 <= j <= n-1

Ejemplo:

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

0 1 0 1
0 7 9 0 -2 0
A= 1 4 -5 B= 1 6 1
2 11 6 2 0 5

la matriz C resultante es:

0 1
0 5 9
A= 1 10 -4
2 11 11

2.2.22 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-1
0 <= j <= n-1

Introducción a la Programación 85 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Ejemplo:

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

0 1 0 1
0 7 9 0 -2 0
A= 1 4 -5 B= 1 6 1
2 11 6 2 0 5

la matriz C resultante es:

0 1
0 9 9
A= 1 -2 -6
2 11 1

2.2.23 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-1
0 <= j <= n-1

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

0 1 2 3 4
0 5 0 1 2 3
A 1 3 -4 0 2 1
= 2 2 3 1 4 6
3 7 5 4 2 0

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

0 1 2 3 4
0 15 0 3 6 9
1 9 -12 0 6 3
D=
2 6 9 3 12 18
3 21 15 12 6 0

Introducción a la Programación 86 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

2.2.24 Multiplicación de matrices

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:

p 1
C [i , j ]   A[i, k ] * B[k , j ]
k 0

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

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

0 1 2 0 1
0 1 1 2 0 0 5
A=
1 4 0 3 B= 1 2 1
2 0 1

la matriz C resultante es:

0 1
0 2 8
A=
1 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 cuadrada

Introducción a la Programación 87 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

b) Determine y muestre el promedio de los N x M números


c) Determine y muestre el promedio por fila
d) Determine y muestre el promedio por columna

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 ambas


b) 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ñía


b) Total de ventas por cada sucursal
c) Sucursal que más vendió durante el año
d) 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 estudiante


b) El número de estudiantes que aprobaron cada materia
c) El número de estudiantes que reprobaron cada materia
d) La nota promedio de cada materia

Introducción a la Programación 88 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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
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
0 4 1 1 1 4
1 4 4 1 4 4
A= 2 4 4 4 4 4
3 4 4 1 4 4
4 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
0 1 1 1 1 1
1 1 0 0 0 1
A= 2 1 0 0 0 1
3 1 0 0 0 1
4 1 1 1 1 1

Introducción a la Programación 89 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
0 5 4 3 2 1
1 6 17 16 15 14
A= 2 7 18 25 24 23
3 8 19 20 21 22
4 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
0 1 2 6 7 15
1 3 5 8 14 16
A= 2 4 9 13 17 22
3 10 12 18 21 23
4 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
0 1 6 10 13 15
1 0 2 7 11 14
A= 2 0 0 3 8 12
3 0 0 0 4 9
4 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
0 1 1 1 1 1
1 0 0 0 1 0
A= 2 0 0 1 0 0
3 0 1 0 0 0
4 1 1 1 1 1

Introducción a la Programación 90 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
0 5 0 0 0 0
1 6 4 0 0 0
A= 2 12 7 3 0 0
3 13 11 8 2 0
4 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
0 25 10 11 12 13
1 24 9 2 3 14
A= 2 23 8 1 4 15
3 22 7 6 5 16
4 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
0 1 2 3 4 5
1 16 17 18 19 6
A= 2 15 24 25 20 7
3 14 23 22 21 8
4 13 12 11 10 9

Introducción a la Programación 91 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO VI
METODOS 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

Introducción a la Programación 92 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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 93 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 94 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 95 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

Introducción a la Programación 96 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

subarray superior, y aplicamos el método reiteradamente, al final tendremos el


array inicial totalmente ordenado.

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


de shell.

Introducción a la Programación 97 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO VII
MÉ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  0
sw  0
mientras (sw = 0) Λ (ind < N) hacer
si arreglo[ind] = valor_buscado
entonces
sw  1
si_no
ind  ind + 1
fin_si
fin_mientras
si sw = 1

Introducción a la Programación 98 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

entonces
Mostrar “Encontrado”
si_no
Mostrar “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  0
primero  0
ultimo  N - 1
mientras (primero <= ultimo) Λ (sw = 0) hacer
mitad  (primero + ultimo)/2
si arreglo[mitad] = valor_buscado
entonces
sw  1
si_no
si arreglo[mitad] > valor_buscado
entonces
ultimo  mitad - 1
si_no
primero  mitad + 1
fin_si
fin_si
fin_mientras

si sw = 1
entonces
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

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_primo
fin

inicio  hash (valor)


il  inicio
sw  0
repetir
si arreglo[il] = valor
entonces
sw  1
si_no
il  (il +1) mod N
fin_si
hasta (sw = 1) V (il = inicio)
si sw = 1
entonces
Mostrar “Encontrado”
si_no
Mostrar “No encontrado”
fin_si

Introducción a la Programación 100 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

CAPÍTULO VIII
INTRODUCCION 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 101 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 Entrada
Radio: Real

Especificaciones de Salida
Superficie: Real
Longitud: 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 102 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 .

2.2.25 PROCEDIMIENTOS Y FUNCIONES

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


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Nomb_Proc(lista_parametros)

Procesos

Fin Nomb_Proc

Donde:

Nomb_Proc : Nombre que se le da al procedimiento

Son los parámetros de entrada y/o salida necesarios


lista_parametros :
para el procedimiento

y la forma de llamarlo es:

Nomb_Proc(par1, par2, par3, ….)

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.

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


Universidad Salesiana de Bolivia Ingeniería de Sistemas

Nomb_Func(lista_param_entr)

Procesos

Retornar(param_salida)

Donde:

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

Son los parámetros de entrada necesarios para la


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

Nomb_Var  Nomb_Func(par1, par2, par3, …)

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 105 Dossier


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

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

Introducción a la Programación 106 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

1.25.3.1 Pase de parámetros por Valor

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.

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

2.2.26 VARIABLES LOCALES Y VARIABLES GLOBALES

Las variables utilizadas en un programa con subprogramas pueden ser de dos


tipos: locales y globales.

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

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

Introducción a la Programación 107 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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.

2.3.1.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 108 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 109 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

GLOSARIO

Introducción a la Programación 110 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 111 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

Introducción a la Programación 112 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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

Introducción a la Programación 113 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Introducción a la Programación 114 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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-Seguridad
BAT-Archivo por lotes de DOS y OS/2
BIN-Controlador, recubrimiento
CFG-Configuración
CHK-Archivo encadenado de Chkdsk del DOS
COM-Programa ejecutable
DBF-Base de datos dBASE
DCA-Texto IBM
DLL-Biblioteca de enlaces dinámicos
DOC-Documento (MultiMate, Word...)
DRV-Controlador
EPS-PostScript encapsulado
EXE-Programa ejecutable
FON-Fuente (tipo) o número telefónico
GIF-Gráficos por trama CompuServe
HLP-Texto de ayuda
OVL-Módulo de recubrimiento
OVR-Módulo de recubrimiento
PCX-Gráficos por trama PC Paintbrush
PIF-Información de Windows para programas de DOS
TIF-Gráficos por trama TIFF
TMP-Temporal
TXT-Texto ASCII
WAV-Sonido de Windows
WK*-Diversos formatos de hojas de cálculo de Lotus (WKS, WK1, etc.)
WMF-Metaarchivo de Windows

Introducción a la Programación 115 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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.

Introducción a la Programación 116 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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.

Introducción a la Programación 117 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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.

Introducción a la Programación 118 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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:

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

Introducción a la Programación 119 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Introducción a la Programación 120 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Introducción a la Programación 121 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

Introducción a la Programación 122 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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


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.

Introducción a la Programación 123 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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.

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.

Introducción a la Programación 124 Dossier


Universidad Salesiana de Bolivia Ingeniería de Sistemas

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

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 125 Dossier

Anda mungkin juga menyukai