You are on page 1of 50

FACULTAD DE CIENCIAS Y TECNOLOGIA

RED NACIONAL UNIVERSITARIA

SYLLABUS

Facultad de Ciencias y Tecnologa


Ingeniera de Sistemas

PROGRAMACIN I

PRIMER SEMESTRE

Gestin Acadmica I / 2011

U N

I V E R S

I D A D

D 1

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

UDABOL
UNIVERSIDAD DE AQUINO BOLIVIA Acreditada como PLENA mediante R. M. 288/01

VISION DE LA UNIVERSIDAD Ser la Universidad lder en calidad educativa.

MISION DE LA UNIVERSIDAD Desarrollar la Educacin Superior Universitaria con calidad y competitividad al servicio de la sociedad.

Estimado(a) estudiante: El Syllabus que ponemos en tus manos es el fruto del trabajo intelectual de tus docentes, quienes han puesto sus mejores empeos en la planificacin de los procesos de enseanza para brindarte una educacin de la mas alta calidad. Este documento te servir de gua para que organices mejor tus procesos de aprendizaje y los hagas mucho ms productivos. Esperamos que sepas apreciarlo y cuidarlo.

U N

I V E R S

I D A D

E 2

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

SYLLABUS
I. Asignatura: Cdigo: Requisito: Carga Horaria: Horas tericas: Horas prcticas: Crditos: Programacin I CMP 117 Ninguno 80 horas 80 horas 0 horas 8

II. OBJETIVOS GENERALES DE LA ASIGNATURA. Capacitar al estudiante en el enfoque y solucin de problemas mediante algoritmos estructurados, as como la utilizacin de la programacin y ejecucin de tales soluciones usando un lenguaje de programacin de alto nivel. Desarrollar en el estudiante la habilidad de razonamiento en la solucin de problemas en el mbito de la programacin

III. PROGRAMA ANALTICO DE LA ASIGNATURA. UNIDAD 1. CONCEPTOS BSICOS Y METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR MEDIO DE COMPUTADORAS TEMA 1. Introduccin a los Computadores 1.1. 1.2. 1.3. Qu es una computadora Hardware y Software Tipos de computadoras 1.3.1. Por su uso 1.3.1.1. Computadora analgica 1.3.1.2. Computadora digital 1.3.1.3. Computadora hbrida 1.3.2. Por su tamao 1.3.2.1. Microcomputadora 1.3.2.2. Minicomputadora 1.3.2.3. Microcomputadora 1.3.2.4. Supercomputadora Principales componentes de una computadora

1.4.

TEMA 2. La Computacin 2.1. 2.2. Definicin Sistemas Operativos 2.2.1. D.O.S. 2.2.2. Windows 2.2.3. Linux
U N I V E R S I D A D D 3 E A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

2.3. 2.4. 2.5. 2.6. 2.7.

Lenguajes de Programacin Evolucin de los lenguajes computacionales Compilador e intrprete Tipos de lenguajes de programacin 2.6.1. Lenguaje de alto y bajo nivel 2.6.2. El lenguaje de mquina y el lenguaje ensamblador Virus informticos 2.7.1. Definicin 2.7.2. Clasificacin 2.7.3. Software antivirus

TEMA 3. Datos y Tipos de Datos 3.1. 3.2. Representacin de datos en una computadora. Clasificacin de los datos 3.2.1. Numricos 3.2.2. Alfanumricos 3.2.3. Lgicos Constantes y variables Identificadores Operadores 3.5.1. Operadores de relacin 3.5.2. Operadores aritmticos 3.5.3. Operadores alfanumricos 3.5.4. Operadores lgicos

3.3. 3.4. 3.5.

UNIDAD 2. ESTRUCTURAS ALGORITMICAS TEMA 4 . Algoritmos 4.1. 4.2. 4.3. 4.4. Definicin Caractersticas de un algoritmo Fases en el desarrollo de un algoritmo Diseo de algoritmos. Su representacin 4.4.1. Pseudocdigo 4.4.2. Diagramas de flujo 4.4.3. Diagramas de Nassi-Schneiderman (N-S)

TEMA 5. Estructuras 5.1. Estructuras secunciales 5.1.1. Asignacin 5.1.2. Entrada 5.1.3. Salida 5.1.4. Aplicaciones Estructuras condicionales 5.2.1. Simples
U N I V E R S I D A D D E 4 A Q U I N O B O L I V I A

5.2.

FACULTAD DE CIENCIAS Y TECNOLOGIA

5.3.

5.2.2. Mltiples Estructuras Iterativas 5.3.1. Para 5.3.2. Mientras 5.3.3. Repetir hasta 5.3.4. Aplicaciones

UNIDAD 3. ESTRUCTURAS DE DATOS BSICAS

TEMA 6. Arreglos 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8. Concepto de estructura de datos Definicin de un arreglo Arreglos unidimensionales: los vectores Operaciones con vectores Arreglos multidimensionales Arreglos bidimensionales (tablas) Operaciones con arreglos bidimensionales Ordenacin, bsqueda y mezcla 6.8.1. Ordenacin 6.8.2. Ordenacin por burbuja 6.8.3. Ordenacin por seleccin 6.8.4. Ordenacin por insercin 6.8.5. Ordenacin Shell 6.8.6. Bsqueda lineal 6.8.7. Bsqueda binaria 6.8.8. Mezcla

TEMA 7. Cadenas 7.1. 7.2. 7.3. 7.4. 7.5. Concepto de cadena de caracteres Longitud de una cadena Operaciones entre cadenas Procedimientos y funciones de cadenas internos Otras propiedades de las cadenas

UNIDAD 4. PROGRAMACION MODULAR TEMA 8. Procedimientos y Funciones 8.1. 8.2. 8.3. 8.4. Los subprogramas Definicin de mdulo mbito de variables 8.3.1. Variable local 8.3.2. Variable global Funciones
U N I V E R S I D A D D 5 E A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

8.5. 8.6. 8.7. 8.8.

8.4.1. Llamada Procedimientos 8.5.1. Llamada Tipos de parmetros 8.6.1. Por valor 8.6.2. Por referencia Diferencias esenciales entre funciones y procedimientos Aplicaciones

UNIDAD 5. MANEJO DE ARCHIVOS. TEMA 9. Archivos 9.1. Definicin 9.2. Terminologa 9.3. Tipos de archivos 9.3.1. Archivos de texto 9.3.2. Archivos binarios 9.4. Operaciones IV. SISTEMA DE EVALUACIN DE APRENDIZAJE
Durante el semestre se realizan 3 periodos evaluativos que constan de 2 tipos de evaluacin, la procesual y la de resultados Evaluacin procesual: La evaluacin procesual tiene el carcter formativo y sumativo, lo que implica el seguimiento y evaluacin de los trabajos prcticos, trabajos de investigacin, participacin en el aula, actividades diarias, desarrollo de los Work Papers, DIFs, Control y seguimiento a las Brigadas de aula abierta, Jornadas, Congreso CICC, visitas a empresas, seminarios, cursos y otros que realicen los estudiantes de manera individual y grupal durante el transcurso del semestre, esta evaluacin representa el 50%. Evaluacin de Resultados: La evaluacin de resultado consiste en valorar los procesos de aprendizaje mediante pruebas o exmenes. Esta evaluacin representa el 50%. Nota Parcial: La nota parcial es la suma de la evaluacin procesual y de resultados: NOTA PARCIAL = NOTA DE EVALUACION PROCESUAL + NOTA EVALUACION DE RESULTADO

Nota Final La nota final es el promedio de las tres notas parciales, debiendo ser mayor a 51 para aprobar la materia. NOTA FINAL = ( PRIMER PARCIAL + SEGUNDO PARCIAL + TERCER PARCIAL)/ 3

U N

I V E R S

I D A D

E 6

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Segundo Turno Si por cualquier razn, no se llegara a alcanzar a 51 en la nota final, para ingresar a examen de segundo turno se deben cumplir 2 requisitos La nota final debe ser mayor a 40 La asistencia a clases debe ser mayor al 80 % Si se cumplen estos requisitos, se tomara una evaluacin en la cual se debe obtener una nota mayor a 51, pero la nota de segundo turno que figurara ser de 51.

V. BIBLIOGRAFA. Luis Joyanes Aguilar. Programacin en Turbo Pascal. Editorial McGraw Hill. Espaa 1990. Schumann. Turbo Pascal. Editorial Marcombo Duntemman Jeff. Turbo Pascal la Biblia. Editorial Anaya Multimedia. Herbert Schildt. Turbo C/C++ Manual de referencia. Editorial Osborne/McGraw-Hill. Espaa, 1992. Luis Joyanes Aguilar. C++ a su alcance un enfoque orientado a objetos. Editorial McGraw-Hill. Espaa, 1994. Luis Joyanes Aguilar. Fundamentos de Programacin. Editorial McGraw-Hill. Espaa, 1996. Oscar R. Castillo Oros Mandual de Referencia DELPHI Latinas Editores Oruro Bolivia 2007.

U N

I V E R S

I D A D

D 7

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

VI. PLAN CALENDARIO DEL AL ACTIVIDADES OBSERVACIONES

SEMANA

1ra. 2da. 3ra. 4ta. 5ta. 6ta. 7ma. 8va. 9na. 10ma. 11ra. 12da. 13ra. 14ta. 15ta. 16ta. 17ma. 18va. 19na. 20va. 21ra.

09-mar 14-mar 21-mar 28-mar 04-abr 11-abr 18-abr 25-abr 02-may 09-may 16-may 23-may 30-may 06-jun 13-jun 20-jun 27-jun 04-jul 11-jul 18-jul 25-jul

12-mar 19-mar 26-mar 02-abr 09-abr 16-abr 23-abr 30-abr 07-may 14-may 21-may 28-may 04-jun 11-jun 18-jun 25-jun 02-jul 09-jul 16-jul 23-jul 26-jul

Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia Avance de materia

Inicio Primera Evaluacin Parcial Conclusin Primera Evaluacin Parcial

Presentacin de Notas Presentacin de Notas

Inicio Segunda Evaluacin Parcial


Conclusin Segunda Evaluacin Parcial

Presentacin de Notas Presentacin de Notas

Inicio Evaluacin Final


Conclusin Evaluacin Final Evaluacin del segundo turno Cierre de Gestin

Presentacin de Notas Transcripcin de Notas Transcripcin de Notas

22 de abril 1 de mayo 23 de junio


U N I V E R S I D A D

FERIADOS Viernes Santo Da del Trabajo Corpus Christi


D E 8 A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

PLANIFICACION DE ACTIVIDADES CONTENIDO MINIMO CONTENIDO ANALITICO PERIODOS ACADEMICOS RECURSOS DIDACTICOS

ACTIVIDAD

INTRODUCCIN A LAS COMPUTADORAS Y COMPUTACION

TEMA 1. Introduccin a los Computadores Tema 2. La Computacin Tema 3. Datos y Tipos de Datos Tema 4. Algoritmos Tema 5. Datos y Tipos de Datos T Tema 6. Arreglos Tema 7. Cadenas

6 PERIODOS

- Data display - Equipos de computacin

ESTRUCTURAS ALGORTMICAS

6 PERIODOS

- Data display - Equipos de computacin - Pizarra acrlica - Data display - Equipos de computacin - Data display - Equipos de computacin - Pizarra acrlica

ESTRUCTURAS DE DATOS BSICAS

8 PERIODOS

PROGRAMACIN MODULAR

Tema 8. Procedimientos y Funciones

6 PERIODOS

MANEJO DE ARCHIVOS.

Tema 9. Archivos
8 PERIODOS

U N

I V E R S

I D A D

D 9

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

VII. CONTROL DE EVALUACIONES

1 evaluacin parcial Fecha Nota

2 evaluacin parcial Fecha Nota

Examen final Fecha Nota

APUNTES

U N

I V E R S

I D A D

E 10

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

WORK PAPER # 1

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS : 3

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL WORK PAPER : HISTORIA DE LAS COMPUTADORAS

DPTO.: Facultad de Ciencias y Tecnologia - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 1::Tema 1

FECHA DE DIFUSIN :

FECHA DE ENTREGA :

U N

I V E R S

I D A D

D 11

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

HISTORIA DE LAS COMPUTADORAS

Las computadoras aparecen a finales de la dcada de 1950. La computadora resulta ser un medio mecnico (electrnico, de hecho) para representar descripciones libre de ambigedad y obtener un resultado til. Ms an, podra decirse que la computadora aparece cuando los niveles tecnolgicos (electrnico fundamentalmente) alcanzan el grado de avance y refinamiento que ya tenan las ideas y conceptos matemticos, lo cual sucede a mediados del siglo XX. Uno de los problemas que siempre nos ha cautivado es el relacionado con la actividad de contar y con el concepto de nmero. De ah que las primeras herramientas que se inventaron en est ingenio mecnico capaz de liberarnos de la pesada tarea de calcular a mano. El abaco, es la primera calculadora mecnica, aunque no se puede llamar computadora porque carece de un elemento fundamental, el programa, que no se lograr hasta mucho tiempo despus. La maquina de calcular de Blaise Pascal (1623-1662). Se trata de engranes en una caja, que proporcionan resultados de operaciones de suma y resta en forma directa mostrando un numero a travs de una ventanitaLa mquina analtica de Charles Babbage, naci alrededor de 1830, esta podra considerarse la primer computadora. Este diseo, nunca llevado por completo a la prctica, contena todos los elementos que configuran una computadora moderna y la diferencian de una calculadora. La mquina analtica estaba dividida funcionalmente en dos grandes partes: una que ordenaba y otra que ejecutaba las ordenes. La que ejecutaba las ordenes era una versin muy ampliada de la mquina de Pascal, mientras que la otra era la parte clave. La innovacin consista en que el usuario poda, cambiando las especificaciones de control, lograr que la misma mquina ejecutara operaciones complejas, diferentes de las hechas antes. Esta verdadera antecesora de las computadoras contaba tambin con una seccin en donde reciban los datos para trabajar. La maquina segua instrucciones dadas por la unidad de control, las cuales indicaban qu hacer con los datos de entrada, para obtener luego resultados deseados. La aplicacin fundamental para la que se elaboro esta maquina era, elaborar tablas de funciones matemticas usuales (logaritmos, tabulaciones trigonometricas, etc.) que requeran mucho esfuerzo manual. Esta lea los datos por medio de tarjetas perforadas. No obstante esta nunca pudo entrar en circulacin porque cada que se quera calcular una funcin diferente se deban cambiar las especificaciones. Es valido referirse a esta maquina como la primera computadora digital, porque el termino digital no presupone el concepto electrnico, como ahora se explicar. Los procesos naturales comparten la caracterstica del tipo continuo; es decir, la escala de manifestaciones de un fenmeno cualquiera no tiene singularidades ni puntos muertos, sino que se extiende de manera continua desde la parte inferior a la superior. La altura de la columna de mercurio de un termmetro clnico puede variar entre las marcas, 30 y 45 grados, y en todo

U N

I V E R S

I D A D

E 12

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

momento puede estar en cualquier punto de la escala. Este se conoce como un fenmeno analgico. No ocurre lo mismo, sin embargo, con otro tipo de fenmenos. Si averigua la cantidad de ventanas que hay en un edificio, por ejemplo puede llegar a la conclusin que son 140, pero no 140 . Estos fenmenos reciben el nombre de digitales, talvez porque se pueden contar con los dedos de la mano. En estos fenmenos se habla de estados (posiciones o manifestaciones discretas) y de transicin entre ellos, y puede ser representado mediante un modelo matemtico conocido como autmata finito. Resumiendo, un fenmeno se llama analgico o continuo cuando entre dos manifestaciones cualesquiera de el siempre puede haber una tercera. En contraposicin, un fenmeno se conoce como digital o discontinuo cuando entre dos de sus manifestaciones no existe nada, si no solo una transicin entre ambos estados. As, puede hablarse de computadoras analgicas y computadoras digitales: son computadoras digitales aquellas que manejan informacin de manera discreta (en bits dgitos binarios-) y son analgicas las que trabajan por medio de funciones continuas generalmente representacin de seales elctricas-. A continuacin se describen algunas caractersticas de la maquina inventada por Charles Babbage. Almacn o Memoria Entrada(Tarjetas perforadas) Calculos Salida Control

Cien aos despus de Babbage, en 1947 se diseo la primera computadora electrnica digital, que tenia gran parecido funcional con la maquina analtica de Babbage, aunque antes hubo algunos esfuerzos. o En 1932 Vannevar Bush construyo en el Instituto Tecnolgico de Massachussets (MIT) una calculadora electromecnica conocida como el analizador diferencial, pero era de propsito especifico y no tenia capacidad de programacin. Igualmente en 1944 se construyo en la Universidad de Harvard la computadora MARK I, diseada por un equipo encabezado por Howard H. Aiken. No obstante no era de propsito general y su funcionamiento estaba basado en relevadores.

Un equipo dirigido por los Doctores John Mauchly y John Ecker de la Universidad de Pennsylvania, termino en 1947 la ENIAC (Electronic Numerical Integrator And Computer) que puede ser considerada como l a primera computadora digital, electrnica de la historia. Esta maquina era enorme media 10 x 16 metros, ocupaba el stano de una Universidad, pesaba 30 tonelada, tenia 17,468 tubos de vaci y 60000 relevadores, consuma 140 Kw y requera un sistema de aire acondicionado industrial. Pero era capaz de efectuar alrededor de 5000 sumas o 2800

U N

I V E R S

I D A D

D 13

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

multiplicaciones en un segundo, calculo el valor de la constate pi. Como entre otras cosas iba a reemplazar a un grupo de matemticas que hacia cmputos numricos para una oficina especializada, recibi el nombre de computadora. El proyecto concluyo 2 aos despus cuando se integro al equipo John Von Neuman (1903-1957), quien es considerado el padre de las computadoras. El nuevo equipo diseo la EDVAC (Electronic Discrete Variable Automatic Computer), tenia cerca de 40,000 bulbos y usaban un tipo de memoria basado en tubos de mercurio donde circulaban seales elctricas sujetas a retardos. La nueva idea fundamental resulta muy sencilla, pero de vital importancia: permitir que en la memoria coexistan datos con instrucciones, para que entonces la computadora pueda ser programada de manera suave y no por medio de alambres que elctricamente interconectaban varias secciones de control, como la ENIAC. Esta idea, que incluso obliga a una completa revisin de la arquitectura de las computadoras , recibe desde entonces el nombre del modelo de Von Neuman. Alrededor de este concepto gira toda la evolucin posterior de la industria y la ciencia de la computacin. Comparacin entre la ENIAC y un procesador ya obsoleto ENIAC 1947 Casi 18,000 bulbos 160 m. 140 Kilowatts 100 KHz Varios millones de Intel 8080 1974 Un circuito integrado con mas de 6000 transistores Menos de 1cm Pocos miliwatts 2 MHz 150 dls

Ao Componentes electrnicos Tamao Requerimientos de Potencia Frecuencia de Reloj Costo

NOTA se proporcionara video sobre la evolucin de las computadoras

U N

I V E R S

I D A D

E 14

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

WORK PAPER # 2

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS :

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL WORK PAPER : GENERACIONES DE LAS COMPUTADORAS

DPTO.: Facultad de Ciencias y Tecnologia - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 1::Temas 1 y 2

FECHA DE DIFUSIN :

FECHA DE ENTREGA :

U N

I V E R S

I D A D

D 15

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

GENERACIONES DE LAS COMPUTADORAS

Esta clasificacin se emplea poco ya, y adems el criterio para determinar cuando se dio el cambio de una generacin a otra no est claramente definido, aunque proponemos que al menos debieran cumplirse los dos requisitos estructurales : Cambios estructurales en su construccin. Avances significativos en la forma de comunicacin con las computadoras. Primera Generacin. El arranque de la industria de la computacin se caracteriza por un gran desconocimiento de las capacidades y alcances de las computadoras. Por ejemplo, segn un estudio de esa poca, se supona que iban a ser necesarias alrededor de 20 computadoras para saturar la capacidad del mercado de Estados Unidos en el campo del procesamiento de datos. Esta primera etapa abarc la dcada de 1950 y se conoce como la primera generacin de computadoras. Las maquinas de esta generacin cumplen los requisitos antes mencionados de la siguiente manera: Su construccin estaba basada en circuitos de tubos de vaco o bulbos. La comunicacin se estableca por medio de programacin en lenguaje mquina (binario). Estos aparatos son grandes y costosos (Decenas o cientos de miles de dolares). En 1951 aparece la primera computadora comercial, es decir fabricada para ser vendida: La INIVAC I (UNIVersal Computer). Esta maquina, que dispona de 1000 palabras de memoria central y poda leer cintas magnticas, se utiliz para procesar los datos del censo de 1950 en Estados Unidos. Durante la primera generacin ( y hasta parte de la tercera), las unidades de entrada estaban por completo dominadas por las tarjetas perforadas. A la UNIVAC I sigui una mquina desarrollada por IBM(Internacional Bussiness Machines), que apenas incursionaba en el campo; es la IBM 701. Hubo otras mquinas que competan con ella, de diferentes compaas. La ms exitosa de las computadoras fue el modelo 650 de IBM, de la cual se produjeron varios cientos. Esta tena un sistema de memoria secundaria llamado tambor magntico, antecesor de los discos empleados actualmente. La competencia contest con modelos UNIVAC 80 y 90, que pueden situarse ya en los inicios de la segunda generacin. Segunda generacin Cerca de la dcada de 1960 las computadoras seguan en constante evolucin, reduciendo su tamao y aumentado sus capacidades de procesamiento. Al mismo tiempo se iba definiendo con mayor claridad una nueva ciencia: la de comunicarse con la computadora, que reciba el nombre de programacin de sistemas (software de base). En esta etapa puede hablarse ya de la segunda generacin de computadoras, que se caracteriza por los siguientes aspectos primordiales. Estaban construidas por circuitos de transistores. Se programaban con nuevos lenguajes llamados de alto nivel.
U N I V E R S I D A D D E 16 A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

En general las computadoras de la segunda generacin son de tamao ms reducido y menor costo que las anteriores. En la segunda generacin hubo mucha competencia y muchas compaas nuevas, y se contaba con maquinas bastante avanzadas para su poca, como la serie 5000 de Burroughs y la mquina ATLAS, de la Universidad de Manchester. Entre los primeros modelos que se pueden mencionar esta la Philco 212 y la UNIVAC M460. IBM mejoro la 709 y produjo la 7090 (luego ampliada a la 7094), que gano el mercado durante la primera parte de la segunda generacin. UNIVAC continuo con el modelo 1107, mientras NRC (National Cash Register) empez a producir maquinas ms pequeas para proceso de datos comercial como la NCR 315. RCA (Radio corporation of America) introdujo el modelo 501 y ms tarde el RCA 601. Esta generacin no duro mucho, solo cinco aos. Tercera Generacin A mediados de la dcada de 1960, con la aparicin de nuevas y mejores formas de comunicarse con la mquina, adems de procesos adicionales en electrnica, surge la tercera generacin de computadoras. Se inaugura con la presentacin, en abril de 1964 , de la serie 360 de IBM, como culminacin de una enorme estrategia comercial y de mercadotecnia. Las caractersticas de la tercera generacin consisten en : Su fabricacin electrnica est basada en circuitos integrados: agrupamiento de circuitos de transistores grabados en milimtricas placas de silicio. Su manejo es por medio de los lenguajes de control de los sistemas operativos. Las computadoras de la serie IBM 360 (modelos 20, 22,30,40,50,65,75, 85, 90, 195 ) incluan tcnicas especiales del manejo de procesador, unidades de cinta magntica para nueve canales, paquetes de discos magnticos y otras caractersticas ahora usuales. El sistema operativo de esta serie, llamado OS (Operative System), en varias configuraciones, incorporaba un conjunto de tcnicas de manejo de memoria y del procesador que pronto se convirtieron es estndares. Esta serie alcanzo un xito enorme de tal forma que la gente en general, pronto llego a identificar el concepto de computadora con IBM. Sin embargo sus maquinas no fueron las nicas, ni necesariamente las mejores. Tambin existan CDC serie 600 modelo 6600, que durante varios aos fue considerada la mas rpida. A mediados de 1970, IBM produjo la serie 370 (modelos 115, 125, 135, 145, 158, 168) como mejora de la serie 360. UNIVAC compitio con los modelos 1108 y 1110, CDC inauguro se serie 7000 con el modelo 7600, reformando despus para introducir el modelo Cyber. Y as varias empresas continuaron compitiendo con nuevas aportaciones. Minicomputadoras. A mediados de la dcada de 1970, surgi un gran mercado para computadoras de tamao mediano, o minicomputadoras, no tan costosas como las grandes mquinas y con una gran capacidad de proceso. En un principio, el mercado de estas maquinas fue dominado por la serie PDP-8 de DEC (Digital Equipment Corporation).

U N

I V E R S

I D A D

D 17

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Las computadoras de la serie IBM 360 (modelos 20, 22,30,40,50,65,75, 85, 90, 195 ) incluyan tcnicas especiales del manejo de procesador, unidades de cinta magntica para nueve canales, paquetes de discos magnticos y otras caractersticas Haza usuales. El sistema operativo de esta serie, llamado OS (Operative System), en varias configuraciones, incorporaba un conjunto de tcnicas de manejo de memoria y del procesador que pronto se convirtieron es estndares. Esta serie alcanzo un xito enorme de tal forma que la gente en general, pronto llego a identificar el concepto de computadora con IBM. Sin embargo sus maquinas no fueron las nicas, ni necesariamente las mejores. Tambin existan CDC serie 600 modelo 6600, que durante varios aos fue considerada la mas rpida. A mediados de 1970, IBM produjo la serie 370 (modelos 115, 125, 135, 145, 158, 168) como mejora de la serie 360. UNIVAC compiti con los modelos 1108 y 1110, CDC inauguro se serie 7000 con el modelo 7600, reformando despus para introducir el modelo Cyber. Y as varias empresas continuaron compitiendo con nuevas aportaciones. Minicomputadoras. A mediados de la dcada de 1970, surgi un gran mercado para computadoras de tamao mediano, o minicomputadoras, no tan costosas como las grandes mquinas y con una gran capacidad de proceso. En un principio, el mercado de estas maquinas fue dominado por la serie PDP-8 de DEC (Digital Equipment Corporation). Otras minicomputadoras fueron la serie PDP-11 de DEC , remplazada luego por las mquinas VAX (Virtual Addres eXtended) de la misma compaia: los modelos Nova y Eclipse de Data General; las series 3000 y 9000 de Hewlett-Packard, en varias configuraciones y el modelo 34 de IBM, que luego fue remplazado por los modelos 36 y 38. En la ahora ex Unin Sovitica fueron de amplio uso las computadoras de la serie SU (sistema unificado Ryad), as mismo los pases ahora ex socialistas desarrollaron una serie de computadoras dedicadas al control industrial, adems de las mquinas de la serie Mink y BESM. En la actualidad el mercado de las minicomputadoras es muy dinmico, sobre todo para el uso de servidores. Cuarta generacin El adelanto de la microelectrnica prosigui a una velocidad impresionante, y por el ao de 1972, surgi en el mercado una nueva familia de circuitos integrados de alta densidad, que recibieron el nombre de microprocesadores. Las microcomputadoras diseadas con base en estos circuitos de semiconductores eran extremadamente pequeas y baratas, por lo que su uso se extendi al mercado de consumo. Sin embargo desde el punto de vista estricto, hace poco ingresamos a la cuarta generacin , porque en la que poda llamarse la segunda parte de la tercera generacin solo hubo adelantos significativos en el punto A y no en el punto B. Con el uso masivo de internet ya tambin ya se puede hablar de un cambio sustancial en el punto B. Por los que criterios son:

U N

I V E R S

I D A D

E 18

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Microelectrnica de alta integracin y distribucin de tareas especficas mediante microprocesadores acoplados. Acceso a la red desde una computadora personal, tanto en forma local como global. La siguiente generacin Japn lanz en 1983 el llamado "programa de la quinta generacin de computadoras", con los objetivos explcitos de introducir maquinas con innovaciones reales en los dos criterios mencionados, aunque a su termino en 1993 los resultados fueron bastante pobres. La ACM Association for Computing Machering, que junto con la Computer Society de la IEEE (Institute of Electrical and Electronics Engineers), despus de leer detallados artculos, concluye que esta es una generacin perdida. En Estados Unidos estuvo en actividad un programa de desarrollo que persegua objetivos semejantes, que pueden resumirse de la siguiente forma: Procesamiento en paralelo mediante arquitecturas y diseos especiales. Manejo de lenguaje natural y sistemas de inteligencia artificial. El futuro de la computacin es muy interesante, y se puede esperar que esta ciencia sigua siendo objeto de atencin prioritaria de gobiernos y de la sociedad en conjunto. Talvez las dos tecnologas que definirn los inicios del siglo XXI sern la computacin y la ingeniera gentica, y esta ltima depende en buena medida de las tecnologas de computo para proceder

U N

I V E R S

I D A D

D 19

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

WORK PAPER #3

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS :

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL WORK PAPER : HISTORIA DE LA PROGRAMACION

DPTO.: Facultad de Ciencias y Tecnologia - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 2::Temas 5 Y 6

FECHA DE DIFUSIN :

FECHA DE ENTREGA :

U N

I V E R S

I D A D

E 20

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Historia de la Programacin Pasos importantes de las lenguajes de programacin Historia de las lenguajes de programacin Perder el miedo del cdigo Bibliografa Definiciones Hardware: Componentes fsicos de un ordenador, por ejemplo: monitor, ratn, teclado, ordenador, impresora, ... Software: Programas o elementos lgicos que hacen funcionar un ordenador o que se ejecutan en ellos, distinguir: sistema operativa, programa

Sistema Operativa (OS): un sistema operativo es un programa especial que se carga en un ordenador tras ser encendido y cuya funcin es gestionar los dems programas/aplicaciones que se ejecutarn en dicho ordenador, como, por ejemplo un procesador de texto o una hoja de clculo, o la impresin de un texto en una impresora o una conexin a Internet. por ejemplo: DOS, Windows, MacOS, Unix, Linux, ... Aplicacin/Programa: (dice a un ordenador que hacer) conjunto de instrucciones escritas en un determinado lenguaje que dirigen a un ordenador para la ejecucin de una serie de operaciones, con el objetivo de resolver un problema que se ha definido previamente, por ejemplo: aadir dos nmeros, compara dos nmeros, ordenador interpreta instrucciones: ensear una pelcula en la pantalla, implementar un procesador de texto Lenguaje de programacin: lenguaje que un ordenador entiende, muchas diferentes lenguajes, como mundo real muchas idiomas: Basic, C, C++, java, ... tiene que estar traducida a un cdigo que ordenador entiende -> .exe Compilador: transforma el cdigo escrito en un lenguaje de programacin a un cdigo que un ordenador pueda ejecutar -> bit / byte, ensamblador (assembler)

U N

I V E R S

I D A D

D 21

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Lenguaje de script: lenguaje que un ordenador entiende, esta traducida a un cdigo que el ordenador entiende durante su ejecucin, por ejemplo: vbs (Visual Basic Script), JavaScript, asp, jsp, php, perl, ActionScript, ... Bit: Unidad mnima de informacin digital que puede ser tratado por un ordenador. Proviene de la contraccin de la expresin binary digit (dgito binario). Byte: Conjunto significativo de ocho bits que representan un carcter por ejemplo la letra "a", en un sistema informtico.

Historia de la Programacin Sobre los ltimos 50 aos, los idiomas que programan han evolucionado del cdigo binario de mquina a herramientas poderosas que crean las abstracciones complejas. Es importante entender por qu los

U N

I V E R S

I D A D

E 22

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

idiomas han evolucionado, y qu capacidades que los idiomas ms nuevos nos dan. "Tan largo como no haba mquinas, programar era ningn problema; cuando tuvimos unos pocas computadoras dbiles, programar lleg a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un problema igualmente gigantesco. En este sentido que la industria electrnica no ha resuelto un solo problema, tiene slo los cre - ha creado el problema de usar su producto". [Edsger. W. Dijkstra. "El Programista Humilde" (la Conferencia del Premio de Turing), Comunicaciones del ACM, Vol 15, No. 10 (el octubre 1972).] E. W. Dijkstra habl estas palabras profticas casi hace 28 aos en su es la conferencia del Premio de Turing. En aquel momento, el 'las computadoras gigantescas l radio de probablemente tenido entre 64 y 128 kilobytes de la memoria verdadera, y a lo ms unos pocos megaoctetos de artefactos de almacenamiento de acceso directo. Si l pens que el problema era gigantesco entonces... Uno de las llaves a programar exitoso son el concepto de la abstraccin. La abstraccin es la llave a la construccin sistemas complejos de software. Como el tamao de nuestros problemas crece, la necesidad para la abstraccin dramticamente aumentos. En sistemas sencillos, caracterstica de idiomas usados en el 1950s y '60s, un solo programista podra entender el problema entero, y por lo tanto manipula todas estructuras del programa y datos. Los programistas son hoy incapaces de entender todos los programas y los datos - es apenas demasiado grande. La abstraccin se requiere a permitir que el programista para agarrar los conceptos necesarios. La mayora de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en trminos de generaciones. Esto es un arreglo til para clasificar los idiomas por la edad. Primera Generacin 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:

U N

I V E R S

I D A D

D 23

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

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. Segunda Generacin 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. ejemplo ensamblador: Hola Mundo!

U N

I V E R S

I D A D

E 24

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Tercera Generacin 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 TRANslation), que, como su nombre indica, inici como un "simple" esfuerzo de traducir un lenguaje de frmulas, al lenguaje ensamblador y por consiguiente al lenguaje de mquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la mayor abstraccin posible, y facilitar la vida al programador, aumentando la productividad, encargndose los compiladores o intrpretes de traducir el lenguaje de alto nivel, al lenguaje de computadora. Hay que notar la existencia de lenguajes que combinan caractersticas de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C: contiene estructuras de programacin de alto nivel, y la facilidad de usar libreras que tambin son caractersticas de alto nivel; sin embargo, fue diseado con muy pocas instrucciones, las cuales son sumamente sencillas, fciles de traducir al lenguaje de la mquina; y requiere de un entendimiento apropiado de cmo funciona la mquina, el uso de la memoria, etctera. Por ello, muchas personas consideramos a lenguajes como C (que fue diseado para hacer sistemas operativos), lenguajes de nivel medio.

Cuarta Generacin Los idiomas de la cuarta generacin parecen segn las instrucciones a las de la tercera generacin. Lo nuevo de estas lenguajes son conceptos como clases, objetos y eventos que permiten soluciones ms fciles y lgicos. Lenguajes como C++, java y C# se llaman lenguajes orientadas al objeto. Los idiomas modernos, tal como C++ y Java, no slo permite las abstracciones, pero permite la implementacin impuesta de restricciones en abstracciones. La mayora de los idiomas modernos son objetivas orientado, que permite que m modele el mundo verdadero que usa mi idioma. Adems, puedo limitar el acceso para modelar las restricciones de mundo verdadero en datos. La llave es que us el trmino "mundo verdadero." Por la primera vez, yo modelo mi solucin en trminos del problema. Quiero que mi solucin sea orientado de problema, para que la solucin refleje el mundo verdadero en trminos de estructuras de datos y acceso a los datos. Yo tambin puedo aplicar directamente y para poder modelar objetos de mundo verdadero usando las clases (en C + + o Java).

U N

I V E R S

I D A D

D 25

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Quinta Generacin Como la quinta generacin estn conocidos los Lenguajes de inteligencia artificial. Han sido muy valorados al principio de las noventa - mientras ahora el desarrollo de software toma otras caminos. Lo que veremos en el futuro es menos dependencia en el idioma, y ms en el modelando herramientas, tal como el Unificado Modelando el Idioma (UML). La salida del modelando herramienta producir mucho de nuestro cdigo para nosotros; en el muy menos, producir arquitectnico y los modelos del diseo y la estructura de nuestro cdigo. Esto producir un diseo (y posiblemente cdigo) eso puede ser validado por el cliente antes de completar la implementacin y probar. Cuando los problemas diarios que resolvemos llegan a ser ms grande, nosotros tenemos cada vez menos tiempo "volver a hacer" el cdigo. Los das de decir, "acabamos de escribir una versin de Beta y el cliente entonces pueden decir nosotros lo que ellos quieren realmente," son pasados. Las organizaciones que fallan de obtener completa y corrige los requisitos de cliente antes de escribir el cdigo saldr del negocio. Por qu? Porque toma demasiado largo, y cuesta tambin mucho, para escribir cdigo dos o ms vez. Las organizaciones que tienen un compromiso a la comprobacin y la validacin antes de producir cdigo prosperarn - los otros fallarn. ejemplo Flowchart

U N

I V E R S

I D A D

E 26

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

WORK PAPER # 4

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS :

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL WORK PAPER : ESTRUCTURAS MATRICIALES

DPTO.: Facultad de Ciencias y Tecnologia - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 3::Tema 6

FECHA DE DIFUSIN : 2011

FECHA DE ENTREGA :

U N

I V E R S

I D A D

D 27

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Una estructura de datos es "una coleccin de datos organizados de un modo particular." Las estructuras de datos pueden ser de dos tipos: estticas y dinmicas. Las estructuras de datos estticas son aquellas a las que se le asigna una cantidad fija de memoria cuando se declara la variable. Las estructuras de datos dinmicas son aquellas cuya ocupacin de memoria puede aumentar o disminuir durante el tiempo de ejecucin. Entre las estructuras de datos estticas podemos encontrar los vectores y los arreglos, tema que estudiaremos a continuacin. Un array (se suele traducir como arreglo) es una estructura de datos en la que se almacena una coleccin de datos del mismo tipo, por ejemplo, los salarios de los empleados de una Un array es una lista de un nmero determinado de elementos del mismo tipo. Se caracteriza por: Almacenar los elementos del array en posiciones de memoria continua. Tener un nico nombre de variable (por ejemplo salarios) que represente a todos los elementos. stos a su vez se diferencian por un ndice o subndice. Se puede accesar directa o aleatoriamente los elementos del array. Por ejemplo, si deseamos conservar las puntuaciones de los 50 estudiantes de un examen de informtica, se necesita reservar cincuenta posiciones de memoria, dar un nombre al arreglo y a cada uno de los 50 estudiantes asignarles una posicin o ndice del arreglo.

Declaracin de un array o vector Siempre se deben declarar luego de las constantes (si existen). Un array o vector se declara por medio del tipo de array. La sintaxis es la siguiente:

U N

I V E R S

I D A D

E 28

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Type Nombre_array = array [rango del subndice] of tipo; Nombre_array: Se refiere a un nombre de identificador vlido. Tipo_subndice: Puede ser boolean, char o un rango de tipo enumerado. Tipo: Se refiere al tipo de los elementos del vector. Todos los elementos deben ser del mismo tipo. Ejemplos: Type X = array [1..8] of real; Type Luces = (Rojo, Verde, mbar); Type DiasDeSemana=(Lunes, Martes, Mircoles, Jueves, Viernes, Sabado, Domingo); ConjuntoDias = array Type Salarios = array [A..Z] of real; (En este caso es de tipo real porque el salario es de ese tipo. El subndice indica que los salarios van de los empleados cuya inicial es A hasta la Z). Las declaraciones de tipo array no crea ninguna variable especfica de tipo array, sino que proporciona informacin del array como un todo. Para declarar una variable tipo array, se utiliza la siguiente sintaxis:

Type Valores = array [1..10] of real; Var Precios : Valores; Primeramente se crea el tipo del array y luego se declara la o las variables referenciadas al array. Otro ejemplo de aplicacin puede ser el siguiente:
U N I V E R S I D A D D 29 E A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Const Max = 500; Type Texto = array [1..Max] of char; Var Palabras, Letras: Texto; En este ejemplo se crean dos variables arrays: Palabras y Letras. Las posiciones del array van de 1 a 500 y contendrn un valor tipo caracter. Lectura y escritura de un vector Lectura Para leer un vector se debe hacer elemento a elemento y se requiere de alguna estructura repetitiva, ya sea un while, repeat o for. Ejemplos: For I:= 1 to n do Begin Read (Notas[I]); End; Escritura Para visualizar un vector, igualmente, es necesario situarlo dentro de una estructura repetitiva. For I := 1 to Numero do Writeln (Notas [I]:3); Writeln; (* Evita que todas las salidas del vector aparezca en la misma lnea *) Un array bidimensional (tambin llamado tabla o matriz) es un array con dos ndices. Al igual que los vectores deben ser ordinales. Se declaran de igual manera que los arrays de una dimensin. Declaracin de un array bidimensional Al igual que en los arrays unidimensionales o vectores, se crean con declaraciones type y var y deben ser de tipo ordinales o subrango. Se deben indicar: El nombre del array

U N

I V E R S

I D A D

E 30

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Tipo del array Rango permitido

Ejemplo: Type Tabla = array [1..25,1..4] of real; Var Grados : Tabla; Para localizar o almacenar un valor en el array se deben especificar dos posiciones o subndices, uno para la fila y otro para la columna. Escritura de una matriz Para escribir un vector, se debe hacer referencia tanto a la fila como a la columna. As: For fila := 1 to 3 do Begin For Columna := 1 to 4 do Write (A[Fila, Columna]:4); End; Ejemplo: Calcular el promedio de cada estudiante de una lista de veinticinco alumnos de una clase de informtica con notas en cuatro asignaturas. Program Promedio; Var Notas I,J : Array [1..25,1..4] of real; : Integer;

Suma,Prom: Real; Begin For I := 1 to 25 do Begin


U N I V E R S I D A D D 31 E A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Write (`Notas del estudiante: ,I:1); Writeln (`En una misma lnea digite todas las notas); Suma := 0; For J := 1 to 4 do Begin Read (Notas[I,J]); Suma := Suma + Notas[I,J] End; Readln; Prom := Suma/4; Writeln (`La nota promedio del estudiante `,I:1, es `,Prom:1:1) End End.

U N

I V E R S

I D A D

E 32

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

WORK PAPER # 5

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS :

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL WORK PAPER : HERRAMIENTAS DE DESARROLLO RAPIDO

DPTO.: Facultad de Ciencias y Tecnologia - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 3:: Tema 5::

FECHA DE DIFUSIN :

FECHA DE ENTREGA :

U N

I V E R S

I D A D

D 33

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

El desarrollo rpido de aplicaciones o RAD (acrnimo en ingls de rapid application development) es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en 1980. El mtodo comprende el desarrollo iterativo, la construccin de prototipos y el uso de utilidades .Tradicionalmente, el desarrollo rpido de aplicaciones tiende a englobar tambin la usabilidad, utilidad y la rapidez de ejecucin. Hoy en da se suele utilizar para referirnos al desarrollo rpido de interfaces grficas de usuario tales como Glade, o entornos de desarrollo integrado completos. Algunas de las plataformas ms conocidas son Visual Studio, Delphi, Foxpro , Anjuta,Game maker, multimedia fusion o Velneo. Un entorno de desarrollo integrado (en ingls integrated development environment) es un programa informtico compuesto por un conjunto de herramientas de programacin. Puede dedicarse en exclusiva a un slo lenguaje de programacin o bien, poder utilizarse para varios.

Dev C++, un IDE para el lenguaje de programacin C++..

U N

I V E R S

I D A D

E 34

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

WebDevStudio, un IDE en lnea para el lenguaje de programacin C/C++. Un IDE es un entorno de programacin que ha sido empaquetado como un programa de aplicacin, es decir, consiste en un editor de cdigo, un compilador, un depurador y un constructor de interfaz grfica (GUI). Los IDEs pueden ser aplicaciones por s solas o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word. Los IDE proveen un marco de trabajo amigable para la mayora de los lenguajes de programacin tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecucin, en donde se permite utilizar el lenguaje de programacin en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u Objective-C. Es posible que un mismo IDE pueda funcionar con varios lenguajes de programacin. Este es el caso de Eclipse, al que mediante plugins se le puede aadir soporte de lenguajes adicionales.

** Ver estudios de Casos.

U N

I V E R S

I D A D

D 35

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

DIF # 1

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS : 2

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL DIF : Carta de un Hacker

DPTO.: Facultad de Ciencias y Tecnologia - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad

FECHA DE DIFUSIN : 2011

FECHA DE ENTREGA :

U N

I V E R S

I D A D

E 36

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Carta de un Hacker Hola, soy Cybor. Probablemente no me conozcan. Tampoco pretendo salir en la prensa. Eso no me importa, sin embargo si hay otras cosas que me interesan mas que mi identidad. Por ejemplo, me interesan las aperturas de sistemas cifrados. Pero eso es algo que nadie te ensea. Eso tienes que aprenderlo por ti mismo. Tambin me interesa que todos sepis quienes somos y que no estamos solos en este peculiar mundo. Me interesa que sepan que no todos los Hackers somos iguales. Tambin me interesa saber que la palabra Hacker tiene un significado muy curioso. En un articulo reciente se public que se nos conocan como piratas informticos. es probable, pero creo que estn tremendamente equivocados. Quiero reivindicar mi posicin. Pero lo cierto es que cada vez que hablan de nosotros es para decir que hemos reventado el ordenador de tal multinacional con grandes perdidas o que hemos robado cierta informacin. estas cosas suceden, y particularmente tengo que decir que estas cosas estn al alcance de otros personajes mas peligrosos que nosotros. En nuestro mundo habitan los crackers y los phreackers. Tambin estn los snickers y cada uno de ellos tiene su cometido, pero para la mayora todos somos iguales y todos somos piratas informticos. Pero quiero ir por pasos. que te parece saber de donde procede la palabra Hacker ?. En el origen de esta palabra esta el trmino Hack - algo as como golpear con un hacha en ingles-, que se usaba como forma familiar para describir como los tcnicos telefonicos arreglaban las cajas defectuosas, asestndoles un golpe seco. Tambin mucha gente arregla el televisor dndole una palmada seca en el lateral. Quien hacia esto era un hacker. Otra historia relata como los primeros ordenadores grandes y defectuosos, se bloqueaban continuamente y fallaban. Los que las manejaban se devanaban los sesos creando rutas para aumentar la velocidad y cosas parecidas. Estas cosas se denominaban Hacks y a los que lo hacan se les llamaban Hackers. Otra denominacin se le hacia a aquel experto en cualquier campo que disfrutaba modificando el orden de funcionamiento del aparato. De esta forma siempre superaba las limitaciones y esto le produca una alta satisfaccin. A estas personas tambin se les llamaban Hackers. Pero pronto surgieron otros acrnimos como Crackers. este acrnimo surgi all por el ao 1985, y fue inventado por los propios Hackers para diferenciar a aquel que fisgaba en un ordenador con aquel que creaba un virus daino o copiaba un software. As, frente a un ordenador ajeno un Hacker y un Cracker no son la misma cosa. Por otro lado en algunas ocasiones un Hacker es muy til porque siempre detecta un agujero en cualquier programa nuevo. Esto es bueno para ponerlo en conocimiento de la empresa que ha creado el programa. El Cracker aprovechara este error para entrar en el programa y copiarlo. Aparte del Cracking existen otras formas de vandalismo tecnolgico. As, el Phreacking, por ejemplo es la manipulacin de las redes telefnicas para no pagar las llamadas. El Carding se refiere al uso ilegal de las tarjetas de credito. Y el Trashing consiste en rastrear la basura o residuos de los sistemas informticos en busca de informacin como contraseas. Pero, volviendo a los Hackers. Como son ? Que aspecto tienen ?. Cuando alguien oye mencionar la palabra Hacker rpidamente se le viene a la cabeza un adolescente ojeroso, con los ojos inyectados en sangre que ha pasado las ultimas 24 horas delante del ordenador. Esta imagen esta estereotipada. No es as. Un Hacker puede ser cualquier estudiante de informtica o electrnica, que sale con los amigos y que tiene novia. Un Hacker es una persona normal como tu. Los Hackers son casi siempre gente joven. Quizs somos los que mas nos interesamos por la tecnologa. Un Hacker normalmente despierta el gusanillo a temprana edad. Y no se hace de la noche a la maana. Cuando logra serlo despus de realizar un Hack, se busca un apodo y no da la cara por cuestin de seguridad. La gente todava no confa en nosotros y nos ven con ojos malos. Normalmente al final de todo somos contratados por empresas importantes para ayudarles en su trabajo. y otra cosa que hacemos es contar como funciona la tecnologa que se nos oculta. Este mtodo se llama ensear y creo que no es nada malo. De modo que si un Hacker escribe un libro es porque tiene algo que ensear y nada mas.
U N I V E R S I D A D D 37 E A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Bueno, creo que ya he escrito bastante. son las doce y media de la noche y mis padres ya se han acostado. Maana tengo que madrugar. Y sobre todo quiero que quede buena constancia de lo que somos. Cybor, Bangor Diciembre del 96 Maine CUESTIONARIO

1. 2.

Como estudiante de Ingeniera de sistemas que le ha parecido el articulo? Cul seria su motivacin para tratar de ser un hacker (inofensivo)?

3. Cree usted que en nuestro medio (Bolivia) los hackers emplean tcnicas como las que se describen en la carta o solo se aplican en pases altamente sofisticados. 4. Cuales cree que deben ser los pasos basicos a seguir para llegar a ser un hacker?

5. Ha escuchado alguna noticia de alguna organizacin donde se haya violado la seguridad informtica?

U N

I V E R S

I D A D

E 38

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

DIF # 2

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS : 3

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL DIF : Cronologa de la Computadoras

DPTO.: Facultad de Ciencias y Tecnologa - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad

FECHA DE DIFUSIN : 2011

FECHA DE ENTREGA :

U N

I V E R S

I D A D

D 39

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Las Primeras Mquinas de Calcular 142fc496eac1104b24ae30fdcb1cffa1 Hace mucho tiempo atrs el hombre descubri que podra hacer cuentas con los dedos, o con otros objetos, tales como piedras o pedazos de madera, en esa misma poca el hombre se dio cuenta que ya no podra usar solamente las manos o los objetos para calcular. Hace aproximadamente 4.000 a.C fue creado un aparato muy simple, llamado baco, en los comienzos el baco era fabricado de placas de arcilla. Cerca de ao 200 a.C., el baco era fabricado con pequeas varillas de madera todas paralelas y piedras con un agujero en el centro que se deslizaban en esas varillas, hasta hoy el baco an es utilizado en el aprendizaje de clculos matemticos, para deficientes visuales. Haciendo una lnea del tiempo quedara as: 1614. Scotsman John Napier (1550-1617) public un texto sobre el descubrimiento del logaritimo. Napier tambin invent el sistema de Rods ( referido como Rods de Napier o los huesos de Napier). Esto hizo que fuera posible multiplicar, dividir, calcular la raz cuadrada y cubica girndo los rods, y colocndolos en placas especiales. 1623. Wilhel Schickard (1592-1635), en Tuebingen, Wuerttemberg (ahora Alemania), Cre el "Reloj Calculador". Este instrumento era capaz de sumar y restar 6 digitos, y en el caso de que el resultado sea mayor que 6 digitos, tocaba una campana. Las operaciones eran hechas mediante una manivela, que giraba y los nmeros cambiaban, como en el contador K7 de los nuestro das. 1642. Francs matemtico, Blaise Pascal construy la mquina que sumaba ( la " Pascalina" A pesar de ser inferior al "Reloj Calculador" del Schickard (ver 1623), la mquina de Pascal se hizo ms famosa. l vendi docenas de ejemplares de la mquina en varias formas, logrando procesar hasta 8 dgitos. 1672. Despus de muchas tentativas, finalmente es inventada en 1672 la primera mquina de calcular capaz de desarrollar las cuatro operaciones matemticas (suma, resta, divisin y multiplicacin) y adems la raz cuadrada. Esa gran conquista fue atribuida al matemtico Gottfried Wilhelm Von Leibnitz que mejor la mquina de Pascal y obtuvo la calculadora universal. 1801. El telar automtico era un telar con entrada de datos por medio de tarjetas perforadas para controlar la confeccin de tejidos y sus respectivos dibujos. Fue creado en 1801 por Joseph Marie Jackuard y puede ser considerada la primera mquina mecnica programable de la historia. 1822. La Mquina Diferencial fue idealizada por el profesor y matemtico de la Universidad de Cambridge, Charles Babbage, en 1822. Era un dispositivo mecnico basado en ruedas dentadas capaz de computar e imprimir extensas tablas cientficas. A pesar de tantas ventajas, esta mquina nunca lleg a ser construida a causa de las limitaciones tecnolgicas de la poca. 1834. George Scheutx, de Estocolmo, produjo una pequea mquina de madera, despus de leer una pequea descripcin del proyecto de Babbage. 1844. El Ingls Matemtico George Boole inventa el lgebra binaria booleana, abriendo el camino para el desarrollo de computadoras casi 100 aos despus

U N

I V E R S

I D A D

E 40

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

1878. Ramon Verea, viviendo en Nueva York, inventa una calculadora con una tabla de multiplicacin interna; es decir mas fcil que girar engranajes u otros mtodos. El no estaba interesado en producirla, slo quiso mostrar que los espaoles podan inventar como los Americanos. 1885. Una calculadora de multiplicacin ms compacta entra en produccin masiva . La produccin es ms o menos simultnea con la invencin de Frank S. Baldwin, de Estados Unidos, y T. Odhner, suizo viviendo en Rusia. 1890. En 1880 el censo llev siete aos para ser completado , ya que todos los clculos fueron hechos la mano en papel de peridico. Por el aumento de la poblacin se imagin que el censo de 1890 llevara ms de 10 aos - entonces fue realizado un concurso para hallar el mejor mtodo. Este concurso fue ganado por un empleado del Censo, Herman Hollerith, quien fundara la Tabulating Machine Company, que luego se transform en IBM. Herman tom prestada la idea de Babbage de usar tarjetas perforadas (vea 1801) para hacer el sistema de memoria. Con este mtodo usado en 1890, el resultado (62,622,250 personas) estuvo listo en slo 6 semanas. Con el sistema de memoria el anlisis de los resultados fue muy fcil pero, a pesar de ser ms eficiente, el costo del Censo de 1890 fue un 198% mas costoso que el de 1880. 1941. El z3 fue construido en 1941,est relacionada con el colossus,que fue usado para descifrar cdigo aleman durante la Segunda guerre mundial y destruido tras su uso para evitar dejar pruebas.Era totalmente digital , es decir , que ejecutaba sus procesos y operaciones mediante instrucciones en leguanje mquina, a diferencia de otros de la poca analgicos 1943. As como los alemanes, los ingleses tambin fueron en bsqueda de tecnologas para descifrar cdigos secretos construyendo entonces el Colossus (Servicio de Inteligencia Britnico). Poseyendo dimensiones gigantescas, el Colossus funcionaba por medio de vlvulas llegando a procesar cerca de 5 mil caracteres por segundo. Fue inventado por Alan Turing. 1944. Mark I (Howard Aiken) fue la primer computadora eletromecnica construida. Bastante diferente de las computadoras actuales, Mark I meda 18 metros de largo, dos metros de ancho y pesaba 70 toneladas. Estaba constituida por 7 millones de piezas mviles y su cableado alcanzaba los 800 Km. Con la llegada de las computadoras electrnicas Mark I fue inmediatamente sustituida. 1945. John von Neumann, ingeniero matemtico hngaro y naturalizado americano desarroll un proyecto de computadora basado en la lgica, con almacenamiento electrnico de la informacin y de datos de programacin. La computadora procesara los datos de acuerdo con las necesidades del usuario, o sea, las instrucciones no vendran predeterminadas. Ms tarde esa computadora fue construida recibiendo el nombre de Edvac. El primer BUG de computadora fue relatado por la Oficial Naval y Matematica Grace Murray Hopper, el BUG era una polilla dentro de la computadora, la cual hizo que la computadora tuviera un desperfecto en sus clculos. 1946. John W. Mauchly y J. Prester Eckert Jr., junto con cientficos de la Universidad de la Pensilvania, construyeron la primera computadora electrnica, conocido como ENIAC (Eletronic Numerical Integrator and Calculator). La ENIAC tena aproximadamente 18 mil vlvulas, pesaba 30 toneladas y llegaba a consumir 150 KW. En contrapartida superaba mil veces la velocidad de las otras computadoras, llegando a realizar 5 mil operaciones por segundo.
U N I V E R S I D A D D 41 E A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

1947. Presper Eckert y John Mauchly, pioneros en la historia de la computadora, fundaron la Ca. EckertMauchly Computer Corporation, con el objetivo de fabricar mquinas basadas en sus experiencias como el ENIAC y el EDVAC. ENIAC EDVAC 1948. La primera computadora comercial es inventada, llamada UNIVAC. John Bardeen, Walter Brattain y William Shockley de Bell Labs patentaran el primer transistor. 1949. Thomas Watson Jr. en una charla en un encuentro de ventas de IBM preanunci que todas las partes mviles en las computadoras seran sustituidas por componentes electrnicos en una dcada. 1951. El Univac fue la primera computadora comercializada. Proyectada por J. Presper Ecker y John Mauchly, ejecutaba 1905 operaciones por segundo y su precio lleg a US$ 1.000.000. 1952. Heinz Nixdorf fund la Ca. Nixdorf Computer Corporation, en Alemania. Esta permaneci como una corporacin independiente hasta su unin con Siemens, en 1990. 1953. La Internation Business Machines IBM lanza su primera computadora digital, la IBM 701. Como primera computadora de la marca comercializada, fueron vendidas 19 mquinas en tres aos. 1954. El genio de la matemtica Alan Turing public el libro "On Computable Numbers" proponiendo cuestiones significativas sobre programacin e inteligencia humana. Utiliz sus aplicaciones de lgica en el desarrollo del concepto de mquina Universal. Texas Instruments anunci el inicio de la produccin de los transistores. 1955. Anunciado por los laboratorios AT&T Bell, la Tradic fue la primera computadora transistorizada, teniendo aproximadamente 800 transistores en el lugar de los antiguos tubos de vaco, lo que le permita trabajar con menos de 100 Watts de consumo de energa. 1956. En el MIT (Massachussets Institute of Technology) investigadores comenzaron a probar la entrada de datos en teclados de computadoras En el mismo lugar comenzaron las pruebas con la primera computadora con transistores (Transistorized Experimental computer).

U N

I V E R S

I D A D

E 42

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

DIF # 3

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS : 3

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 117

TTULO DEL DIF :Lenguajes de programacin mas populares

DPTO.: Facultad de Ciencias y Tecnologia - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 3 y 4

FECHA DE DIFUSIN : 2011

FECHA DE ENTREGA :

U N

I V E R S

I D A D

D 43

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Pascal Pascal es un lenguaje de programacin desarrollado por el profesor suizo Niklaus Wirth a finales de los aos 60. Su objetivo era crear un lenguaje que facilitara el aprendizaje de la programacin a sus alumnos. Sin embargo con el tiempo su utilizacin excedi el mbito acadmico para convertirse en una herramienta para la creacin de aplicaciones de todo tipo. Pascal se caracteriza por ser un lenguaje de programacin estructurado fuertemente tipificado. Esto implica que: El cdigo esta dividido en porciones fcilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilizacin de la programacin estructurada en oposicin al antiguo estilo de programacin monoltica. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado. El nombre de Pascal fue escogido en honor al matemtico Blaise Pascal. Implementaciones Las primeras versiones del compilador de Pascal, entre ellas la ms distribuida fue UCSD Pascal, traducan el lenguaje en cdigo para una mquina virtual llamada mquina-P. La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de mquina solo haca falta reimplementar la mquina-P. Como consecuencia de esto, solo una pequea parte del interprete tena que ser reescrita hacia muchas arquitecturas. En los aos 1980, Anders Hejlsberg escribi el compilador Blue Label Pascal para la Nascom-2. Ms tarde fue a trabajar para Borland y reescribi su compilador que se convirti en Turbo Pascal para la IBM PC. Este nuevo compilador se vendi por $49, un precio orientado a la distribucin masiva. El econmico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenz a utilizar principalmente en el IBM PC. En busca de un lenguaje estructurado muchos aficionados al PC reemplazaron el BASIC por este producto. Dado que Turbo Pascal, solo estaba disponible para una arquitectura, traduca directamente hacia el cdigo mquina del Intel 8088, logrando construir programas que se ejecutaban mucho ms rpidamente que los producidos en los esquemas interpretados. Durante los aos 1990, estuvo disponible la tecnologa para construir compiladores que pudieran producir cdigo para diferentes arquitecturas de hardware. Esto permiti que los compiladores de Pascal tradujeran directamente al cdigo de la arquitectura en que corrieran. Con Turbo Pascal versin 5, Borland, agreg programacin orientada a objetos a Pascal. Sin embargo, Borland despus decidi mejorar esa extensin del lenguaje introduciendo su producto Delphi, diseado a partir de estndar Object Pascal propuesto por Apple como base. Borland tambin lo llam Object Pascal en las primeras versiones, pero cambio el nombre a lenguaje de programacin Delphi en sus ltimas versiones. Delphi Delphi es un entorno de desarrollo de software diseado para la programacin de propsito general con nfasis en la programacin visual. En Delphi se utiliza como lenguaje de programacin una versin moderna de Pascal llamada Object Pascal. Fue producido comercialmente por la empresa estadounidense CodeGear y actualmente por Embarcadero. En sus diferentes variantes, permite producir archivos ejecutables para Windows, Linux y la plataforma .NET. CodeGear ha sido escindida de la empresa Borland, donde Delphi se cre originalmente, tras un proceso que pretenda en principio la venta del departamento de herramientas para desarrollo

U N

I V E R S

I D A D

E 44

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Delphi est basado en una versin moderna de Pascal, denominada Object Pascal. Borland en los ltimos aos defenda que el nombre correcto del lenguaje es tambin Delphi, posiblemente debido a pretensiones de marca, aunque en sus mismos manuales el nombre del lenguaje apareca como Object Pascal, por lo que la comunidad de programadores no ha adoptado mayoritariamente este cambio (supuesta aclaracin, segn Borland). Object Pascal expande las funcionalidades del Pascal estndar: Soporte para la programacin orientada a objetos (habitualmente llamada POO) tambin existente desde Turbo Pascal 5.5, pero ms evolucionada en cuanto a: Encapsulacin: declarando partes privadas, protegidas, pblicas y publicadas de las clases Propiedades: concepto nuevo que luego han adaptado muchos otros lenguajes. Las propiedades permiten usar la sintaxis de asignacin para setters y getters. Simplificacin de la sintaxis de referencias a clases y punteros. Soporte para manejo estructurado de excepciones, mejorando sensiblemente el control de errores de usuario y del sistema. Programacin activada por eventos (event-driven), posible gracias a la tcnica de delegacin de eventos. Esta tcnica permite asignar el mtodo de un objeto para responder a un evento lanzado sobre otro objeto. Fue adoptada por Niklaus Wirth, autor del Pascal Original, e incorporada a otros de sus lenguajes como Component Pascal. Ada Ada es un lenguaje de programacin estructurado y fuertemente tipado de forma esttica que fue diseado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje multipropsito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++. Fue diseado con la seguridad en mente y con una filosofa orientada a la reduccin de errores comunes y difciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucin (desactivables en beneficio del rendimiento). La sincronizacin de tareas se realiza mediante la primitiva rendezvous. Ada se usa principalmente en entornos en los que se necesita una gran seguridad y confiabilidad como la defensa, la aeronutica (Boeing o Airbus), la gestin del trfico areo (como Indra en Espaa) y la industria aeroespacial entre otros. El lenguaje fue diseado bajo encargo del DoD. Durante los aos 1970, este departamento tena proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software. Para solucionarlo se busc un lenguaje nico que cumpliese unas ciertas normas recogidas en el documento Steelman. Despus de un estudio de los lenguajes existentes en la poca se decidi que ninguno las cumpla totalmente, por lo que se hizo un concurso pblico al que se presentaron cuatro equipos, cuyas propuestas se nombraron con un color: Rojo (Intermetrics), Verde (CII Honeywell Bull), Azul (SofTEch) y Amarillo (SRI International). Finalmente en mayo de 1979 se seleccion la propuesta Verde diseada por Jean Ichbiah de CII Honeywell Bull, y se le dio el nombre de Ada. Esta propuesta era un sucesor de un lenguaje anterior de este equipo llamado LIS y desarrollado durante los aos 1970. El nombre se eligi en conmemoracin de lady Ada Augusta Byron (1816-1852) Condesa de Lovelace, hija del poeta Lord George Byron, a quien se considera la primera programadora de la Historia, por su colaboracin y relacin con Charles Babbage, creador de la mquina analtica. El lenguaje se convirti en un estndar de ANSI en 1983 (ANSI/MIL-STD 1815) y un estndar ISO en 1987 (ISO-8652:1987). El DoD y los ministerios equivalentes de varios pases de la OTAN exigan el uso de este lenguaje en los proyectos que contrataban (el Ada mandate). La obligatoriedad en el caso de Estados Unidos termin en 1997, cuando el DoD comenz a usar productos COTS (commercial off the shelf). Ada ha sido utilizado por la NASA en sistemas VAX. Wikisource

U N

I V E R S

I D A D

D 45

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

C C es un lenguaje de programacin creado en 1969 por Ken Thompson y Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones. Se trata de un lenguaje dbilmente tipado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos. La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es portable entre plataformas y/o arquitecturas. En la prctica, los programadores suelen usar elementos no-portables dependientes del compilador o del sistema operativo. El desarrollo inicial de C se llev a cabo en los Laboratorios Bell de AT&T entre 1969 y 1973; segn Ritchie, el periodo ms creativo tuvo lugar en 1972. Se le dio el nombre "C" porque muchas de sus caractersticas fueron tomadas de un lenguaje anterior llamado "B". Hay muchas leyendas acerca del origen de C y el sistema operativo con el que est ntimamente relacionado, Unix. Algunas de ellas son: El desarrollo de C fue el resultado del deseo de los programadores de jugar con Space Travel. Haban estado jugando en el mainframe de su compaa, pero debido a su poca capacidad de proceso y al tener que soportar 100 usuarios, Thompson y Ritchie no tenan suficiente control sobre la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un PDP-7 de la oficina que no se utilizaba; pero esa mquina no tena sistema operativo, as que decidieron escribir uno. Finalmente decidieron portar el sistema operativo del PDP-11 que haba en su oficina, pero era muy costoso, pues todo el cdigo estaba escrito en lenguaje ensamblador. Entonces decidieron usar un lenguaje de alto nivel y portable para que el sistema operativo se pudiera portar fcilmente de un ordenador a otro. Consideraron usar B, pero careca de las funcionalidades necesarias para aprovechar algunas caractersticas avanzadas del PDP-11. Entonces empezaron a crear un nuevo lenguaje, C. La justificacin para obtener el ordenador original que se us para desarrollar Unix fue crear un sistema que automatizase el archivo de patentes. La versin original de Unix se desarroll en lenguaje ensamblador. Ms tarde, el lenguaje C se desarroll para poder reescribir el sistema operativo. En 1973, el lenguaje C se haba vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. ste fue uno de los primeros ncleos de sistema operativo implementados en un lenguaje distinto al ensamblador. (Algunos casos anteriores son el sistema Multics, escrito en PL/I, y Master Control Program para el B5000 de Burroughs, escrito en ALGOL en 1961). En 1978, Ritchie y Brian Kernighan publicaron la primera edicin de El lenguaje de programacin C. Este libro fue durante aos la especificacin informal del lenguaje. El lenguaje descrito en este libro recibe habitualmente el nombre de "el C de Kernighan y Ritchie" o simplemente "K&R C" (La segunda edicin del libro cubre el estndar ANSI C, descrito ms abajo.) Kernighan y Ritchie introdujeron las siguientes caractersticas al lenguaje: El tipo de datos struct.

U N

I V E R S

I D A D

E 46

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

El tipo de datos long int. El tipo de datos unsigned int. Los operadores =+ y =- fueron sustituidos por += y -= para eliminar la ambigedad semntica de expresiones como i=-10, que se podra interpretar bien como i =- 10 o bien como i = -10. El C de Kernighan y Ritchie es el subconjunto ms bsico del lenguaje que un compilador debe de soportar. Durante muchos aos, incluso tras la introduccin del ANSI C, fue considerado "el mnimo comn denominador" en el que los programadores deban programar cuando deseaban que sus programas fueran transportables, pues no todos los compiladores soportaban completamente ANSI, y el cdigo razonablemente bien escrito en K&R C es tambin cdigo ANSI C vlido. En estas primeras versiones de C, las nicas funciones que necesitaban ser declaradas si se usaban antes de la definicin de la funcin eran las que retornaban valores no enteros. Es decir, se presupona que una funcin que se usaba sin declaracin previa devolvera un entero. A finales de la dcada de 1970, C empez a sustituir a BASIC como lenguaje de programacin de microcomputadores predominante. Durante la dcada de 1980 se empez a usar en los IBM PC, lo que increment su popularidad significativamente. Al mismo tiempo, Bjarne Stroustrup empez a trabajar con algunos compaeros de Bell Labs para aadir funcionalidades de programacin orientada a objetos a C. El lenguaje que crearon, llamado C++, es hoy en da el lenguaje de programacin de aplicaciones ms comn en el sistema operativo Microsoft Windows; mientras que C sigue siendo ms popular en el entorno Unix. Otro lenguaje que se desarroll en esa poca, Objective C, tambin aadi caractersticas de programacin orientada a objetos a C. Aunque hoy en da no es tan popular como C++, se usa para desarrollar aplicaciones Cocoa para Mac OS X. En 1983, el Instituto Nacional Estadounidense de Estndares organiz un comit, X3j11, para establecer una especificacin estndar de C. Tras un proceso largo y arduo, se complet el estndar en 1989 y se ratific como el "Lenguaje de Programacin C" ANSI X3.159-1989. Esta versin del lenguaje se conoce a menudo como ANSI C, o a veces como C89 (para distinguirla de C99). En 1990, el estndar ANSI (con algunas modificaciones menores) fue adoptado por la Organizacin Internacional para la Estandarizacin (ISO) en el estndar ISO/IEC 9899:1990. Esta versin se conoce a veces como C90. No obstante, "C89" y "C90" se refieren en esencia al mismo lenguaje. Uno de los objetivos del proceso de estandarizacin del ANSI C fue producir una extensin al C de Kernighan y Ritchie, incorporando muchas funcionalidades no oficiales. Sin embargo, el comit de estandarizacin incluy tambin muchas funcionalidades nuevas, como prototipos de funcin, y un preprocesador mejorado. Tambin se cambi la sintaxis de la declaracin de parmetros para hacerla semejante a la empleada habitualmente en C++: Tras el proceso de estandarizacin de ANSI, la especificacin del lenguaje C permaneci relativamente estable durante algn tiempo, mientras que C++ sigui evolucionando. Sin embargo, el estndar continu bajo revisin a finales de la dcada de 1990, lo que llev a la publicacin del estndar ISO 9899:1999 en 1999. Este estndar se denomina habitualmente "C99". Se adopt como estndar ANSI en marzo de 2000. Las nuevas caractersticas de C99 incluyen: Funciones inline. Las variables pueden declararse en cualquier sitio (como en C++), en lugar de poder declararse slo tras otra declaracin o al comienzo de una declaracin compuesta. Muchos tipos de datos, incluyendo long long int (para reducir el engorro de la transicin de 32 bits a 64 bits), un tipo de datos booleano, y un tipo complex que representa nmeros complejos. Arrays de longitud variable. Soporte para comentarios de una lnea que empiecen con //, como en BCPL o en C++, caracterstica para la que muchos compiladores haban dado soporte por su cuenta. muchas funciones nuevas, como snprintf()

U N

I V E R S

I D A D

D 47

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

muchos headers nuevos, como stdint.h. Una consideracin importante es que hasta la publicacin de este estndar, C haba sido mayormente un subconjunto estricto del C++. Era muy sencillo "actualizar" un programa de C hacia C++ y mantener ese cdigo compilable en ambos lenguajes. Sin embargo, el nuevo estndar agrega algunas caractersticas que C++ no admite, como por ejemplo los inicializadores estticos de estructuras. Tambin define al tipo "bool" de una manera que no es exactamente la del C++. El compilador GCC, entre muchos otros, soportan hoy en da la mayora de las nuevas caractersticas de C99. Sin embargo, este nuevo estndar ha tenido peor acogida entre algunos desarrolladores de compiladores, como Microsoft y Borland, que se han centrado en C++. Brandon Bray, de Microsoft, dijo a este respecto: "En general, hemos visto poca demanda de muchas caractersticas de C99. Algunas caractersticas tienen ms demanda que otras, y consideraremos incluirlas en versiones futuras siempre que sean compatibles con C++." Fortran Fortran (o ms bien FORTRAN hasta principios de los aos 90) es un lenguaje de programacin desarrollado en los aos 50 y activamente utilizado desde entonces. Acrnimo de "Formula Translator". Fortran se utiliza principalmente en aplicaciones cientficas y anlisis numrico. Desde 1958 ha pasado por varias versiones, entre las que destacan FORTRAN II, FORTRAN IV, FORTRAN 77, Fortran 90, Fortran 95 y Fortran 2003. Si bien el lenguaje era inicialmente un lenguaje imperativo, las ltimas versiones incluyen elementos de la programacin orientada a objetos. El primer compilador de FORTRAN se desarroll para una IBM 704 entre 1954 y 1957 por la empresa IBM, por un grupo liderado por John W. Backus. En la poca se consider imprescindible que los programas escritos en FORTRAN corrieran a velocidad comparable a la del lenguaje ensamblador; de otra forma, nadie lo tomara en cuenta. El lenguaje ha sido ampliamente adoptado por la comunidad cientfica para escribir aplicaciones con cmputos intensivos. La inclusin en el lenguaje de la aritmtica de nmeros complejos ampli la gama de aplicaciones para las cuales el lenguaje se adapta especialmente y muchas tcnicas de compilacin de lenguajes han sido creadas para mejorar la calidad del cdigo generado por los compiladores de Fortran. Basic El lenguaje BASIC original fue inventado en 1964 por John George Kemeny (1926-1993) y Thomas Eugene Kurtz (1928-) en el Dartmouth College. En los aos subsiguientes, mientras que otros dialectos de BASIC aparecan, el BASIC original de Kemeny y Kurtz era conocido como BASIC Dartmouth. BASIC fue diseado para permitir a los estudiantes escribir programas usando terminales de computador de tiempo compartido. BASIC estaba intencionado para facilitar los problemas de complejidad de los lenguajes anteriores, con un nuevo lenguaje diseado especficamente para la clase de usuarios que los sistemas de tiempo compartido permitan: un usuario ms sencillo, a quien no le interesaba tanto la velocidad, sino el hecho de ser capaz de usar la mquina. Los diseadores del lenguaje tambin queran que permaneciera en el dominio pblico, lo que contribuy a que se diseminara. Los ocho principios de diseo de BASIC fueron: Ser fcil de usar para los principiantes. Ser un lenguaje de propsito general. Permitir que los expertos aadieran caractersticas avanzadas, mientras que el lenguaje permaneca simple para los principiantes. Ser interactivo.

U N

I V E R S

I D A D

E 48

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Proveer mensajes de error claros y amigables. Responder rpido a los programas pequeos. No requerir un conocimiento del hardware de la computadora. Proteger al usuario del sistema operativo. El lenguaje fue en parte basado en FORTRAN II y en parte en Algol 60, con adiciones para hacerlo apropiado para tiempo compartido y aritmtica de matrices, BASIC fue implementado por primera vez en la mainframe GE-265[2] , que soportaba mltiples terminales. Contrario a la creencia popular, era un lenguaje compilado al momento de su introduccin. Casi inmediatamente despus de su lanzamiento, los profesionales de computacin comenzaron a alegar que BASIC era muy lento y simple. Tal argumento es un tema recurrente en la industria de las computadoras. Aun as, BASIC se expandi hacia muchas mquinas, y se populariz moderadamente en las minicomputadores como la serie DEC PDP y la Data General Nova. En estos casos, el lenguaje era implementado como un intrprete, en vez de un compilador, o alternativamente, de ambas formas. Sin embargo, fue con la introduccin de la Microcomputador Altair 8800 en 1975 que BASIC se disemin ampliamente. La mayora de los lenguajes de programacin eran demasiado grandes para caber en la pequea memoria que la mayora de los usuarios poda pagar para sus mquinas, y con el lento almacenamiento que era la cinta de papel, y ms tarde la cinta de audiocasete (los discos magnticos an no existan), y la falta de editores de texto adecuados, un lenguaje pequeo como BASIC era una buena opcin. Uno de los primeros en aparecer fue Tiny BASIC, una implementacin simple de BASIC escrita originalmente por el Dr. Li-Chen Wang, y portada ms tarde a la Altair por Dennis Allison, a peticin de Bob Albrecht (quien despus fund el Dr. Dobbs Journal). El diseo de Tiny BASIC y el cdigo fuente completo fue publicado en 1976 en DDJ. En 1975 Microsoft (entonces constaba de dos personas: Bill Gates y Paul Allen) lanz Altair BASIC. Luego comenzaron a aparecer bajo licencia versiones para otras plataformas, y millones de copias y variantes pronto estaran en uso. Se convirti en uno de los lenguajes estndar en la Apple II. Para 1979 Microsoft estaba negociando con varios vendedores de microcomputadores, incluyendo a IBM, para licenciar un intrprete de BASIC para sus computadores. Una versin se incluy en los chips ROM de las PCs IBM, para PCs sin discos, y en las que disponan de unidad de diskettes el BASIC era iniciado automticamente si es que no se colocaba ningn diskette de arranque de sistema operativo. Mientras que las nuevas compaas intentaban seguir los pasos del xito de Altair, IMSAI, North Star, y Apple, creando la revolucin de la computadora casera. BASIC se convirti en una caracterstica estndar para casi todas las computadores caseras; la mayora vena con un intrprete de BASIC en ROM (algo hecho por primera vez por la Commodore PET en 1977). Pronto haba muchos millones de computadores corriendo BASIC alrededor del mundo, un nmero mucho ms grande que el de todos los usuarios de otros lenguajes juntos. Muchos programas, especialmente los de la Apple II e IBM PC, dependan de la presencia del intrprete de BASIC de Microsoft y no correran sin ste; por lo que Microsoft us la licencia de copyright en los intrpretes de BASIC para influir en las negociaciones con los vendedores de computadores. El BASIC fue tambin el lenguaje prefijado en los computadores caseros europeos de la dcada de los 80 como el ZX Spectrum, Amstrad CPC, MSX o el Commodore 64, haciendo muchas veces la funcin de intrprete y sistema operativo primitivo ya que venan implementados en ROM. En este perodo se crearon versiones de BASIC nuevas y ms poderosas. Microsoft vendi varias versiones de BASIC para MS-DOS/PC-DOS, incluyendo BASICA, GW-BASIC (una versin compatible con BASICA que no necesitaba la ROM de IBM), y Quick BASIC. El fabricante de Turbo Pascal, Borland, public Turbo BASIC 1.0 en 1985 (versiones sucesoras an se venden bajo el nombre de PowerBASIC por otra compaa). Aparecieron varias extensiones de BASIC para computadores caseras, tpicamente con grficos, sonido, y comandos DOS, as como facilidades para Programacin estructurada. Otros lenguajes usan la sintaxis de BASIC como base para otros sistemas totalmente diferentes, como por ejemplo GRASS.

U N

I V E R S

I D A D

D 49

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Sin embargo a finales de la dcada de 1980 las computadores nuevas eran mucho ms complejas, e incluan caractersticas (como la Interfaz grfica de usuario) que hacan a BASIC menos apropiado para programarlas. Al mismo tiempo las computadores progresaban de ser un inters para aficionados a herramientas usadas principalmente para ejecutar aplicaciones escritas por otros, y la programacin en s se fue haciendo menos importante para una creciente mayora de usuarios. BASIC comenz a desvanecerse, aunque numerosas versiones an estaban disponibles. La suerte de BASIC dio un giro nuevamente con la introduccin de Visual Basic de Microsoft. Aunque es algo difcil considerar este lenguaje como BASIC (a pesar de que usa muchas palabras clave conocidas de BASIC) se ha convertido en uno de los lenguajes ms usados en la plataforma Windows, y se dice que representa del 70 al 80% del desarrollo comercial de aplicaciones. Visual Basic for Applications (VBA) fue aadido a Microsoft Excel 5.0 en 1993 y al resto de la lnea de productos de Microsoft Office en 1997. Windows 98 incluy un intrprete de VBScript. La versin ms reciente de Visual Basic es llamada VB.NET. La suite OpenOffice.org incluye una variante de BASIC menos poderosa que su contraparte de Microsoft.

U N

I V E R S

I D A D

E 50

A Q U

I N

B O L

I V

I A

You might also like