Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SYLLABUS
Facultad de Ciencia y Tecnologa
Ingeniera de Sistemas
PRIMER SEMESTRE
Ing. Adhemar Ramrez
Gestin Acadmica I/2010
UDABOL
UNIVERSIDAD DE AQUINO BOLIVIA
Acreditada como PLENA mediante R.M. 288/01
VISIN DE LA UNIVERSIDAD
Ser la Universidad lder en calidad educativa.
MISIN DE LA UNIVERSIDAD
Desarrollar la Educacin Superior Universitaria con calidad y
competitividad al servicio de la sociedad.
SYLLABUS
Asignatura:
Cdigo:
Requisito:
Carga Horaria:
Crditos:
Programacin I
CMP 117
Ninguno
80
8
I. OBJETIVOS
Capacitar al estudiante en el enfoque y solucin de problemas mediante algoritmos
estructurados, as como la utilizacin del computador para la programacin y ejecucin de
tales soluciones usando un lenguaje de programacin de alto nivel.
II. OBJETIVOS ESPECIFICOS
Desarrollar en el estudiante la habilidad de plantear, paso a paso y usando estructuras
lgicas, la solucin ordenada de problemas tpicos.
Capacitar al estudiante en la solucin de problemas, mediante el uso de una maquina de
cmputo y de un pseudo-lenguaje de programacin o de una herramienta sencilla de
computacin.
III. PROGRAMA ANALTICO DE LA ASIGNATURA.
1. INTRODUCCION A LOS COMPUTADORES Y A LA COMPUTACION
.1.
Computadores.
.1.1. Que son?
.1.2. Caractersticas
.1.3. Elementos
.1.4. Usuarios
.1.5. Evolucin Histrica
.1.6. Clasificacin
.1.7. Lenguajes de programacin
.1.8. Virus y Anomalas
.2.
Computacin
.2.1. Definicin
.2.2. Dato
.2.3. Programa
3
Constantes
.2.
Variables
.3.
.4.
Estructuras Secunciales
.5.
Estructuras de Decisin
.5.1. IF-ELSE
.5.2. CASE
.6.
Estructuras de Repeticin
.6.1. For
.6.2. While
.6.3. Do-while
.6.4. Problemas con FOR, WHILE, DO-WHILE
.6.4.1. Series
.6.4.2. Sumatorias, Productorias
.6.4.3. Descomposicin de Dgitos
.6.4.4. Lotes de nmeros
1. PROGRAMACIN EN PASCAL
.1.
Estructuras de un programa
.2.
Datos reales
.3.
Entrada/Salida
.4.
Procedimientos y Funciones
.5.
.6.
.7.
.8.
Archivos
.9.
Texto
.2.
.3.
Arreglos multidimensionales
4
BIBLIOGRAFIA
AHO A.V, HOPCROFT J. E Y ULLMAN J.D, Estructuras de Datos y Algoritmos, Editorial AddisonWesley, Iberoamericana.
V. CRONOGRAMA DE BRIGADAS
APUNTES
WORK PAPER # 1
No. DE PROCEDIMIENTO:
No. DE HOJAS: 3
CDIGO:
ALUMNOS
ADMINIST.
OTROS
FECHA DE DIFUSIN:
FECHA DE ENTREGA:
CUESTIONARIO:
1. Defina el concepto de un Computador?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
2. Componentes de un computador?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
3. Identifique elementos de Hardware?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
4. Qu es el CPU?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
5. Qu unidades de almacenamiento existen?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
WORK PAPER # 2
No. DE PROCEDIMIENTO:
No. DE HOJAS: 3
CDIGO:
ALUMNOS
ADMINIST.
OTROS
FECHA DE DIFUSIN
FECHA DE ENTREGA:
10
SOFTWARE
Nos referimos con software a la parte lgica de la computadora a los procedimientos que el hardware realiza inducidos
por el software y este a su vez por nosotros. El software es como un traductor que hace que nuestras rdenes se
conviertan en realidad, manipulando el hardware o la parte fsica.
El software esta compuesto por programas de computadora.
Programa
Un programa es un conjunto de instrucciones lgicas que le dicen a la computadora que debe hacer, adems un
programa debe satisfacer las necesidades de los usuarios utilizando eficientemente los recursos disponibles. Los
programas de tratan con mayor profundidad en el Tema 3.
Los programas que escribiremos ms adelante sern utilizando un lenguaje de programacin muy popular como lo es el
C++.
Cdigo Fuente
Le daremos el nombre de cdigo fuente a los programas que escribamos en un determinado lenguaje de programacin,
que simplemente estar compuesto por instrucciones escritas por un programador. El cdigo fuente no constituye
software propiamente dicho pero es una instancia mediante la cual se llega al Software
Sistema Operativo
Es el programa ms importante que se ejecuta en una computadora. Cualquier computadora de propsito general debe
operar con un sistema operativo para lograr ejecutar otros programas. El sistema operativo ejecuta las tareas bsicas,
como de reconocer entradas desde el teclado, enviar mensajes a pantalla, manteniendo rastro de los archivos y
directorios en el disco, y controlar los dispositivos perifricos como las impresoras.
Para grandes sistemas, el sistema operativo tiene una gran responsabilidad y cualidades. Es como un polica de transito,
quien se asegura de que los diferentes programas que se ejecutan al mismo tiempo no interfieran unos con otros.
Tambin es responsable de la seguridad, asegurando que usuarios no autorizados accedan al sistema.
El sistema operativo provee de una plataforma de software por encima de la cual otros programas, llamados
aplicaciones, pueden ejecutarse. Los programas de aplicacin tienen que crearse de acuerdo a la plataforma en donde
se van a ejecutar. La eleccin de sistema operativo, entonces, determina el tipo de uso que se le va ha dar a la PC como
tambin el tipo de aplicaciones que se puedan ejecutar.
Para las PCs (computadoras personales) los ms populares sistemas operativos son el DOS, OS/2, y Windows, adems
de otros de libre distribucin como el Linux.
11
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
4
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
5
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
12
13
WORK PAPER # 3
No. DE PROCEDIMIENTO:
No. DE HOJAS: 4
CDIGO:
ALUMNOS
ADMINIST.
OTROS
FECHA DE DIFUSIN:
FECHA DE ENTREGA:
14
El C++ es un lenguaje que utiliza un compilador y su trabajo es el de llevar el cdigo fuente escrito en C++ a un
programa escrito en lenguaje mquina.
Entrando en ms detalle un programa en cdigo fuente es compilado obteniendo un archivo parcial (un objeto) que tiene
extensin obj luego el compilador invoca al linker que convierte al archivo objeto en un ejecutable con extensin exe
que como ya sabemos es un archivo que esta en formato binario (ceros y unos) y que puede funcionar por si solo.
Adems el compilador de C++ al realizar su tarea realiza una comprobacin de errores en el programa, es decir, revisa
que todo este en orden por ejemplo variables y funciones bien definidas, revisa todo lo referente a cuestiones
sintcticas, esta fuera del alcance del compilador que por ejemplo el algoritmo utilizado en el problema funcione bien.
La siguiente figura muestra los pasos para tener un programa ejecutable desde el cdigo fuente:
15
Interprete
Los interpretes en lugar de producir un Lenguaje objetivo, como en los compiladores, lo que hacen es realizar la
operacin que debera realizar el Lenguaje origen. Un interprete lee el cdigo como esta escrito y luego lo convierte en
acciones, es decir, lo ejecuta en ese instante.
Existen lenguajes que utilizan un Interprete, como por ejemplo JAVA, y su interprete traduce en el instante mismo de
lectura, el cdigo en lenguaje mquina para que pueda ser ejecutado.
La siguiente figura muestra el funcionamiento de un interprete.
16
CUESTIONARIO:
Qu es un compilador?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
Qu es un Intrprete?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
Diferencia entre Compilador e intrprete?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
17
WORK PAPER # 4
No. DE PROCEDIMIENTO:
No. DE HOJAS: 3
CDIGO:
ALUMNOS
ADMINIST.
OTROS
FECHA DE DIFUSIN:
FECHA DE ENTREGA:
LENGUAJES DE PROGRAMACION
18
Al desarrollarse las primeras computadoras electrnicas, se vio la necesidad de programarlas, es decir, de almacenar en
memoria la informacin sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les
indicaban los pasos de clculo, uno por uno.
John Von Neumann desarroll el modelo que lleva su nombre, para describir este concepto de "programa almacenado".
En este modelo, se tiene una abstraccin de la memoria como un conjunto de celdas, que almacenan simplemente
nmeros. Estos nmeros pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el
programa en s.
Cmo es que describimos un programa como nmeros? Se tena el problema de representar las acciones que iba a
realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit,
solamente nos permita almacenar nmeros binarios.
La solucin que se tom fue la siguiente: a cada accin que sea capaz de realizar nuestra computadora, asociarle un
nmero, que ser su cdigo de operacin (opcode) . Por ejemplo, una calculadora programable simple podra asignar
los opcodes:
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.
Supongamos que queremos realizar la operacin 5 * 3 + 2, en la calculadora descrita arriba. En memoria, podramos
"escribir" el programa de la siguiente forma:
Localidad Opcode Significado Comentario 0 5 5 En esta localidad, tenemos el primer nmero de la frmula 1 3 * En esta
localidad, tenemos el opcode que representa la multiplicacin. 2 3 3 En esta localidad, tenemos el segundo nmero de la
frmula 3 1 + En esta localidad, tenemos el opcode que representa la suma. 4 2 2 En esta localidad, tenemos el ltimo
nmero de la frmula
Podemos ver que con esta representacin, es simple expresar las operaciones de las que es capaz el hardware (en este
caso, nuestra calculadora imaginaria), en la memoria.
La descripcin y uso de los opcodes es lo que llamamos lenguaje de mquina . Es decir, la lista de cdigos que la
mquina va a interpretar como instrucciones, describe las capacidades de programacin que tenemos de ella; es el
lenguaje ms primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento
de la mquina al ms bajo nivel.
los lenguajes ms primitivos fueron los lenguajes de mquina. Esto, ya que el hardware se desarroll antes del software,
y adems cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware.
La programacin en esos momentos era sumamente tediosa, pues el programador tena que "bajarse" al nivel de la
mquina y decirle, paso a pasito, cada punto de la tarea que tena que realizar. Adems, deba expresarlo en forma
numrica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy
limitada. Sin embargo, hay que recordar que en estos momentos, simplemente an no exista alternativa.
El primer gran avance que se dio, como ya se coment, fue la abstraccin dada por el Lenguaje Ensamblador, y con l,
el nacimiento de las primeras herramientas automticas para generar el cdigo mquina. Esto redujo los errores
triviales, como poda ser el nmero que corresponda a una operacin, que son sumamente engorrosos y difciles de
detectar, pero fciles de cometer. Sin embargo, an aqu es fcil para el programador perderse y cometer errores de
lgica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de l.
Con el desarrollo en los 50s y 60s de algoritmos de ms elevado nivel, y el aumento de poder del hardware, empezaron
a entrar al uso de computadoras cientficos de otras ramas; ellos conocan mucho de Fsica, Qumica y otras ramas
similares, pero no de Computacin, y por supuesto, les era sumamente complicado trabajar con lenguaje Ensamblador
en vez de frmulas. As, naci el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (FORmula
19
20
WORK PAPER # 5
No. DE PROCEDIMIENTO:
No. DE HOJAS: 4
CDIGO:
ALUMNOS
ADMINIST.
OTROS
FECHA DE DIFUSIN:
FECHA DE ENTREGA
21
24
25
LA MEMORIA
La Memoria Principal est formada por circuitos integrados (chips), en ellos la informacin se almacena en estados de
tensin (+5 V) al que hacemos corresponder un uno, y no tensin (0 V) al que le corresponde un cero, por tanto el
sistema de almacenamiento slo posee dos posibles valores y por ello se denomina binario. sta es por lo tanto la
menor cantidad de informacin que podemos almacenar en un ordenador, y se denomina bit (o cero o uno), y al
conjunto de ocho bits se le denomina Byte u Octeto.
Podemos imaginar la memoria como un conjunto de casillas, cada una con una direccin que la identifica, donde se
almacenan los datos y las instrucciones correspondientes a los programas.
Para conocer la ubicacin de cada dato estas casillas deben estar convenientemente numeradas, es lo que se denomina
direccin de memoria. En cada casilla podremos almacenar una determinada cantidad de bits segn el ordenador,
8bits (1 Byte), 16 bits, 32 bits,.. .El nmero de bits que almacena un ordenador en cada casilla de la memoria y que
puede manipular en cada ciclo se la denomina longitud de palabra ("word" en ingls).
La siguiente tabla muestra, a modo de ejemplo, varias posiciones de memoria en un ordenador cuya longitud de palabra
es de 8 bits, por tanto en cada direccin de memoria se almacena 1 Byte.
Direccin de memoria
Dato almacenado
0 = 00000000
01011010
1 = 00000001
01001100
2 = 00000010
11011001
3 = 00000011
00101110
4 = 00000100
10001101
etc
etc
Figura 3
La cantidad de Bytes que se pueden almacenar en la memoria de un ordenador es bastante elevada y por ello se utilizan
prefijos, as 1 KiloByte o KB corresponde a 210 = 1024 Bytes (y no 1000 KB), 1 MegaByte o MB = 1024 KB, 1 GigaByte o
GB = 1024 MB, 1 TeraByte o TB = 1024 GB.
La memoria se comunica con el resto de la CPU mediante unos canales denominados "Buses". Existen tres, el Bus de
datos por donde circulan los datos, el Bus de direcciones encargado de indicar la posicin de un dato concreto
almacenado en memoria, y el Bus de control por donde circulan las instrucciones de los procesos que lleva a cabo el
ordenador.
Por tanto, para localizar un dato en la memoria principal, la direccin que ocupa ste debe circular por el bus de
direcciones. Segn cual sea la amplitud del bus de direcciones y la longitud de palabra, as ser el tamao de la
memoria que puede gestionar el ordenador. Es decir, el nmero de casillas o direcciones de memoria que pueden ser
indicadas y el tamao de la informacin que contienen. Para un bus de direcciones de 8 bits el ordenador podr
gestionar 28 = 256 posiciones de memoria y en cada una de ellas podremos almacenar 8 bits si esta es la longitud de
palabra de ese ordenador.
La siguiente figura (Figura 3) muestra la memoria de un ordenador con una longitud de palabra de 8 bits y un bus de
direcciones tambin de 8 bits. Deberan existir 28 = 256 casillas - desde la 00000000 hasta la 11111111 (en lenguaje
binario), cada una conteniendo un dato de 8 bits de tamao , en total 256 x 8 = 2048 bits o 256 Bytes. Los datos
contenidos en las casillas de memoria no tienen evidentemente ninguna relacin con la direccin de estas, ya que van
variando conforme se ejecuta el programa o se producen entradas de nuevos datos.
27
29
COMPUTADORA DIGITAL
1. Estn basadas en dispositivos biestables, i.e., que slo pueden tomar uno de dos valores posibles: 1 0.
Tienen como ventaja, el poder ejecutar diferentes programas para diferentes problemas, sin tener que la
necesidad de modificar fsicamente la mquina.
30