Académique Documents
Professionnel Documents
Culture Documents
1
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
UNIDAD 1 GENERALIDADES
COREL DRAWX5
Una vez instalado el Corel Draw 10 el rea de trabajo ser una pantalla como
la siguiente:
2
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
En la parte superior est la barra de mens, con los mens Archivo, Edicin, Ver,
Insertar, Formato, Herramientas, Tabla, Ventana y ?. El contenido de estos
mens se desarrollara a lo largo de este manual.
Debajo de la barra de mens esta la barra con los botones, nuevo, abrir,
guardar, pegar, cortar, copiar y junto a ellos hay dos importantes botones que
son el de importar y exportar:
Hay que tener en cuenta que cuando se guarda un archivo de Corel Draw lo
hace con la extensin cdr pero para poder abrir archivos en otros formatos como
el jpg, gif hay que usar el botn importar el cual abrir una ventana para que
seleccionemos el archivo a importar, se puede importar el archivo entero o una
parte de el, para lo cual hay que seleccionar la opcin recortar la cual permitir
importar la parte que deseemos de la imagen que hayamos seleccionado.
A la derecha se encuentra las paletas de colores, en la izquierda la caja de
herramientas y en la parte de abajo la barra de estado que muestra informacin
sobre lo que estamos editando.
El botn Exportar permite guardar lo que hayamos hecho con el Corel Draw en
otro formato distinto al *.cdr, pudindolo guardar como archivo jpg, gif, bmp y
hay que tener en cuenta que cuando guardemos un archivo con un formato
distinto al cdr cuando lo volvamos a querer abrir tenemos que seleccionar la
opcin importar.
En la parte superior esta la barra de propiedades que consta de los siguientes
elementos:
3
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Estos dos botones sirven para establecer la orientacin del papel, el botn de
arriba sirve para q siempre q insertemos una nueva pagina se haga con la misma
orientacin y el botn de abajo sirve para q rompamos el orden establecido y
podamos cambiar y alternar la orientacin de las paginas.
4
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Estos tres botones sirven para imantar los objetos, el del centro sirve para encajar
los objetos en las lneas guas y el de la izquierda sirve para encajar objetos con
otros objetos.
Lneas gua
Cuando se crea una lnea gua y colocando el cursor del ratn encima de ella y
luego arrastrando se logra que trasladar de posicin la lnea gua hasta el lugar
que deseemos, tambin se podra trasladar de posicin la lnea gua
numricamente, para lo cual se pulsa sobre el botn que esta en la barra de
propiedades y a continuacin se abre un men para poder insertar los valores
numricos de la nueva posicin de la lnea gua.
Una vez creada una lnea gua si se pulsa sobre ella aparecen unas flechas en los
extremos de la lnea gua y un punto en el centro de la lnea gua:
5
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Las flechas de los extremos sirven para girar la lnea gua y el punto central sirve
de radio para el giro de la lnea gua, pulsando sobre este circulo y arrastrando
hasta el lugar que se desee se modifica el punto que servir de radio para el giro
de la lnea gua.
Para suprimir una lnea gua se pulsa sobre ella para seleccionarla y a
continuacin se pulsa la techa supr del teclado.
Cuadricula:
Sirve al igual que las lneas guas para ayudar y servir como referencia para
la realizacin de dibujos y objetos. Para poder ver la cuadricula hay que ir al men
ver y pulsar sobre la opcin cuadricula.
Para poder modificar la cuadricula hay que ir al men ver y pulsar la opcin
de configuracin de cuadricula y regla, se abrir un men que servir para
modificar las opciones de la cuadricula que se desee , para hacer que los objetos
de encajen en la cuadricula , es decir que es como si la cuadricula estuviera
imantada y los objetos se pegaran a ella , hay que pulsar la opcin de encajar en
cuadricula bien en este men que se ha abierto a bien en el botn situado en
la barra de propiedades
Origen de coordenadas
Este se puede modificar y colocar donde mas convenga para lo cual hay q pinchar
Modos de seleccin
Para activar esta herramienta hay que pulsar sobre el icono este icono
situado en la caja de herramientas, y situando el cursor del ratn sobre un objeto y
pulsado aparecen unas serie de cuadrados negros que van a permitir modificar las
dimensiones del objeto seleccionado
Si pulsamos una segunda vez sobre el objeto cambia los cuadrados negros
por flechas las cuales nos van a permitir estirar el objeto
girar el objeto
7
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
UNIDAD 2. HERRAMIENTAS
Herramienta
Transformacin
Herramienta cuadrado
8
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Combinando las techas shirf y ctrl podemos crear entones cuadrados a partir
de su centro.
En la parte izquierda aparecen una coordenadas que son las del centro del
cuadrado o rectngulo , a su derecha estn la longitud de los lados del rectngulo ,
a su lado aparecen unos porcentajes que son para cuando se modifica las
dimensiones del rectngulo, el candado es para poder modificar las
dimensiones del cuadrado pero manteniendo las proporciones.
10
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Luego esta el botn para para poder girar el cuadrado, vasta con poner el
ngulo de giro.
Estos botones sirven para dibujar el reflejo del objeto seleccionado, bien el
reflejo vertical u horizontal.
Se puede modificar un rectngulo todo lo que nosotros nos interese para ello
hay q pulsar el botn de convertir a curvas previamente seleccionado un
rectngulo y a partir de ese momento se puede modificar los nodos del
rectngulo y aadir o suprimir nodos, de tal manera que se puede modificar
todo lo que se quiera el rectngulo.
Herramienta Elipse
11
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
En esta barra estn los botones que igual que con el rectngulo establecen
las coordenadas del centro, las dimensiones del circulo , el reflejo, la
anchura de la lnea, los botones de colocar adelante o atrs, el botn de
girar , el botn de convertir a curvas , todos estos botones funcionan de
igual manera que en la herramienta cuadriltero.
12
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Herramienta poligono:
Herramienta espiral:
13
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
14
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
De tal forma que se puede modificar y editar la forma bsica todo lo que
quiera.
15
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Para copiar un objeto hay q pulsarlo con el botn izquierdo y sin soltarlo
moverlo a la posicin q se quiera copiar y luego pulsar el botn derecho.
Combinando ambos mtodos se puede copiar objetos alineadamente para lo
cual seleccionando el objeto y pulsando la tecla ctrl y el botn izquierdo y sin
soltar ambos mover el objeto a la posicin q se desee y luego pulsar el botn
derecho del ratn y ya estara copiado.
tecla supr.
16
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
siguientes botones
+ =
17
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
+ =
3.-interseccin de objetos:
18
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
+ =
el
nuevo
objeto
resultante
de la
interseccin
Agrupar y combinar
Tras seleccionar varios objetos aparece en la barra de propiedades los
siguientes botones:
19
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Tambin se utiliza para unir varias entidades, como por ejemplo los trazados
realizados con la herramienta Bzier, cuyos trazados se crean en distintas
sesiones.
El segundo botn sirve para agrupar los objetos seleccionados crear una
sola unidad.
20
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
+ =
UNIDAD 5 NODOS
, para usar esta herramienta solo hay q pulsar el botn izquierdo del
ratn y empezar a dibujar, una vez acabado sobre el dibujo aparecen una
serie de puntos que son los nodos que pulsando y arrastrando sobre ellos
21
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Para aadir nodos a la figura hay que seleccionarla con la herramienta forma
y a continuacin pulsar sobre el botn de la izquierda que tiene el signo + ,
tambin se pueden aadir nodos pulsando dos veces con la herramienta
forma en el lugar q se desee crear el nodo, tambin se puede crear nodos
con el men que aparece pulsando el botn derecho del ratn.
Para quitar nodos hay que seleccionar el nodo con la herramienta forma y a
continuacin pulsar en el botn que tiene el signo menos y situado en la
barra de herramientas, tambin se pueden eliminar nodos con el men del
botn derecho del ratn y tambin seleccionando el nodo y a continuacin
pulsando la tecla supr del teclado y tambin se quitara el segmento que
sigue el nodo.
Nodo uniforme: Es una mezcla de los anteriores y permite escalar los nodos
de forma independiente pero ambos nodos van a estar situados en la misma
direccin, solo se puede modificar la longitud de forma independiente para
cada tirante del nodo.
Separar nodos
23
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Trasformar nodos:
Alinear nodos:
24
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Nodo elstico:
Zoom
25
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Situando el cursor del ratn encima del cuadrado blanco cambia a un aspa y
pulsando aparece el zoom del navegador de tal forma q se puede seleccionar la
zona de la pagina sobre la cual queramos hacer zoom.
Herramienta mano:
Su botn esta al lado del botn zoom y cuando se pulsa el cursor del ratn
cambia a este signo y manteniendo pulsado y moviendo el ratn
podemos movernos y situarnos el cualquier parte del dibujo que queramos.
Medios artsticos:
26
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Para usar esta herramienta hay que pulsar sobre el icono situado a la
derecha de la herramienta beizer
27
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Mezcla interactiva:
28
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Moviendo
este cursor
se
modifica la
distribuci
29
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Se puede modificar el trayecto del objeto para lo cual hay que dibujar un
nuevo trayecto y luego se pulsa el botn y a continuacin se abre un
men que se selecciona la opcin de nuevo trayecto luego el cursor del ratn
cambia a una flecha la cual se situara sobre el trayecto dibujado y objeto se
adaptara a ese nuevo trayecto.
30
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
31
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
32
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Nodos
que
permiten
modificar
de extrusin.
33
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Transparen
La utilizacin de ambas herramientas es similar pero se diferencia en
que la sombra se aplica a todo el objeto Sombra
y la transparencia a una parte que
queramos del objeto.
34
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
35
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
36
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
37
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Herramienta relleno:
Para acceder a esta herramienta hay que pulsar el icono situado
debajo de la herramienta pluma de contorno .Una vez pulsado se abre unas
series de opciones:
38
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
39
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Efecto Powerclip :
Mediante este efecto podemos importar una determinada imagen y
luego insertarla en algn objeto creado con el coreldraw . La forma de utilizar
este efecto es:
1.-Dibujar un objeto el cual va a ser el contenedor de la imagen que hemos
importado
2.- Importar una imagen
3.-Ir al men efectos, luego a la opcin powerclip y luego la opcin situar
dentro del
contenedor, (pero antes de pulsar esta opcin debemos de tener
seleccionado la
imagen importada que ser la que se situ dentro del contenedor ) la cual
har que el
cursor del ratn tenga forma de flecha para poder seleccionar cual va a
ser el objeto
que har de contenedor de la imagen importada.
40
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Una vez insertado la imagen dentro del objeto que hace de contenedor
podemos modificar la parte de la imagen que estar dentro del contenedor ,
para ello hay que ir al men efectos , opcin powerclip y en la opcin editar ,
la cual permite modificar la parte de la imagen importada que estar dentro
del objeto contenedor .Para acabar de modificar hay que pulsar la opcin
terminar edicin en este nivel .
En el men organizar, en la opcin trasformar y seleccionando
posicin, se abre una ventana acoplable que permite hacer rotar, escalar,
reflejar, inclinar, modificar el tamao y transformar el objeto seleccionado.
Herramienta texto:
Hay dos clases de texto en corel Draw , el texto artstico y el texto de
prrafo, la diferencia entre ambas es que el texto artstico se puede como se
quiera y en la parte que se quiera del documento mientras que el texto de
prrafo va a funcionar como si fuera un editor de texto cualquiera.
Texto artstico:
Para utilizarlo hay que pulsar sobre el la herramienta texto situado en la
caja de herramientas luego hay que hacer click en la parte del
documento donde se quiera empezar a escribir, en la barra de propiedades
aparecer una serie de botones:
41
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
El punto rojo que aparece sirve para mover el texto a lo largo del
trayecto. En la barra de propiedades aparecen una serie de botones:
Estos botones van a permitir modificar los parmetros del texto que esta
adaptado al trayecto, permite modificar la orientacin del texto, la posicin
del texto, la distancia desde el trayecto.
Tambin se puede modificar la posicin de las letras, para lo cual se escribe
un texto luego se selecciona con la herramienta forma y aparecen en el texto
una serie de nodos para cada letra los cuales permiten mover cada letra
independientemente hasta conseguir el efecto deseado:
42
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Texto de prrafo:
Funciona como si fuera un editor de texto y para ella hay que con la
herramienta texto que esta situada en la caja de herramientas seleccionar
mediante una ventana de puntos un rea de la pgina y aparecer lo
siguiente:
de primera lnea, para modificar las sangras solo hay que pulsar sobre los
cuadrados negros y alargar o acortar la anchura de la ventana de texto de
prrafo.
En la parte de arriba de la regla aparece las tabulaciones:
Para suprimir una tabularon hay que pulsar sobre ella y arrastrar hacia abajo
y para crear una fabulacin hay que pulsar en el punto de la regla en donde
se quiere poner la tabulacin.
Tabulacion a la izquierda:
Tabulacion a la derecha:
Tabulacion al centro:
Tabulacion decimal:
45
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
46
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Para alinear dos objetos de tal manera que queden uno dentro del otro
hay que seleccionar las opciones centro centro , dentro de la pestaa alinear
47
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Capas:
Para la utilizacin de capas en coreldraw hay que ir al men ventana,
pulsar ventanas acoplables y seleccionar la opcin administrador de
objetos .Se abrir una ventana acoplable a la derecha de la pantalla :
Esta ventana permite ver las capas, los objetos que hay en cada capa y
crear o eliminar capas.
Para crear una capa hay que pulsar el icono de abajo en la izquierda ,
cuando se crea una capa , se van a crear la misma capa para todas las
paginas del documento , de tal forma que si tememos 5 paginas y
creamos 1 capa llamada capapersonal el coreldraw va a crear una
nueva capa en cada pagina llamada tambin capapersonal .
48
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
49
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
cuchilla . Lo mejor es dejar las opciones como vienen por defecto para una
utilizacin eficaz de la herramienta cuchilla.
La herramienta borrar lo que hace es suprimir la parte del objeto sobre la
cual pasa , no crea dos objetos que pueden ser seleccionados con
independencia , suprime todo por donde pasa dejndolo transparente.
Efecto lente:
Para acceder a este efecto hay que ir al men efecto y seleccionar
lentes, se abrir una ventana acoplable que permitir la utilizacin de este
efecto. Para entender este efecto hay que imaginar una lupa, la lente de la
lupa agranda todo lo que esta debajo de ella para que podamos visionarlo
con mas detalle, en este caso el cristas de la lupa acta como una lente de
aumento de todo lo que se encuentra debajo de ella, pues el efecto lente es
parecido, primero dibujaremos un objeto que har de lente y luego en la
ventana acoplable seleccionaremos los distintos efectos de lente como el de
aumentar, transparencia, aclarar, ojo de pez , limite de color
50
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
51
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
52
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Borland Pascal
El nombre de Borland Pascal fue generalmente reservado para los
paquetes de gama alta para Microsoft Windows (con ms bibliotecas y la
biblioteca estndar de cdigo fuente), mientras que la original, ms barato
y ampliamente conocida versin fue vendido como Turbo Pascal.
Versiones
Borland lanz siete versiones de Turbo Pascal: 1.0 a 5.5 (Orientado a Objetos) ,
6 y 7 para MS-DOS. Fue sustituido por Borland Delphi.
Turbo Pascal 6.0, 1990. Incluye la Biblioteca Turbo Vision. El IDE nuevo,
volver a escribir utilizando Turbo Vision, empleo del ratn y soporta
mltiples archivos al mismo tiempo de edicin en diferentes ventanas. La
capacidad de especificar el depurador integrado y condicionales en el
nmero de puntos de interrupcin. Incorpora ensamblador, permite MLTB
en el cdigo fuente del programa a las funciones de ensamblador. Campos
protegidos y mtodos para los objetos. Trabaja en modo seguro como
compilador de lnea de comandos.
54
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Antecedentes
El lenguaje de programacin Pascal es un lenguaje de alto nivel y propsito
general (aplicable a una gran cantidad de aplicaciones diversas) desarrollado
por el profesor suizo Niklaus Wirth (Instituto tecnolgico de Zurich, Suiza). El
propsito de Wirth era crear un lenguaje para la enseanza de tcnicas de
programacin a estudiantes universitarios. Pero a medida que pasaban los
aos, Pascal se iba convirtiendo en un estndar en el mundo de la
programacin.
55
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Historia
El lenguaje de programacin Pascal apareci por primera vez en 1971, de la
mano de Niklaus Wirth.
Wirh invent el lenguaje como una forma de mejorar el por aquel entonces
arcaico Algol. No es el primer lenguaje que Wirth disea, posteriormente invent
el Modula-2 y el Oberon. Sin embargo, paradjicamente, esos dos lenguajes
han sido ampliamente superados por el Extended Pascal y el Object Pascal. De
todos esos lenguajes, Pascal es el que ms xito ha tenido.
Aunque nace a principios de los 70, Pascal cobra autntica vida a partir de
principios/mediados de los 80, popularizado por el fabuloso Turbo Pascal de
MS-DOS para PC, y sobre todo el Apple Pascal. Pascal ha sido tan popular
hasta mediados de los 90, que una gran parte (la mayor parte) de las
aplicaciones desarrolladas para Mac estaban realizadas en Pascal, as como
una enorme parte tambin de los programas de MS-DOS.
56
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Casi todo el mundo intent pasarse a C++. Fjate que decimos intent. C++ no
consigui calar del todo por su extrema complejidad. Su sistema de objetos, los
macros, los crpticos nombres de funciones, los namespaces tan difciles de
manejar, los templates, la STL y otra serie de cosas, hicieron que rpidamente
mucha gente pasara de querer usar esa herramienta que todo el mundo
proclamaba que era tan potente, a buscar alternativas que fueran ms simples y
prcticas. Sun, la compaa del Java, se gasto una millonada en promocionar
su lenguaje, y tuvo un gran xito, sin duda debido no solo al dinero en
publicidad, sino a la gente que escapaba escaldada del C++. En realidad, Java
no es un lenguaje fcil de aprender (obliga a pensar en objetos desde el
principio, algo que los novatos no llevan bien), pero comparado con C++, se
poda considerar como algo sencillo.
57
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Borland, una compaa con no tanto dinero como Sun, no pudo competir con
Pascal, y se tuvo que conformar sacando su propia mquina virtual de Java.
Pero Delphi no ha dejado nunca de existir. Aun hoy sigue sacando versiones
Delphi, con gran xito, aunque no consigue subir significativamente su
porcentaje de participacin en el mercado.
Free Pascal es, hoy en da, el sistema preferido para programar en Pascal
multiplataforma. Su IDE principal, el Lazarus, un clon del Delphi, corre tanto en
Windows como en OS X como en Linux.
58
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Evolucion
Fue Borland la que, hasta el Turbo Pascal 7, se encarg de la mayor parte de la
evolucin de este lenguaje. Amediados de los 90, con el boom de Windows y el
renacimiento de los sistemas Unix (entre ellos Linux) como ordenadores
servidores primero y luego como estaciones de trabajo, motiv que Pascal
pasara a un segundo plano en sustitucin de C.
Casi todo el mundo intent pasarse a C++ pero este no consigui calar del todo
por su extrema complejidad. Su sistema de objetos, los macros, los crpticos
nombres de funciones, los namespaces tan difciles de manejar, los templates,
la STL y otra serie de cosas, hicieron que rpidamente mucha gente pasara de
querer usar esa herramienta que todo el mundo proclamaba que era tan
potente, a buscar alternativas que fueran ms simples y prcticas. Sun, la
compaa del Java, se gast una millonada en promocionar su lenguaje, y tuvo
un gran xito, sin duda debido no solo al dinero en publicidad, sino a la gente
que escapaba escaldada del C++. En realidad, Java no es un lenguaje fcil de
aprender (obliga a pensar en objetos desde el principio, algo que los novatos no
llevan bien), pero comparado con C++, se poda considerar como algo sencillo.
Borland, una compaa con no tanto dinero como Sun, no pudo competir con
Pascal, y se tuvo que conformar sacando su propia mquina virtual de Java.
Pero Delphi no ha dejado nunca de existir. Aun hoy sigue sacando versiones
59
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Free Pascal es, hoy en da, el sistema preferido para programar en Pascal
multiplataforma. Su IDE principal, el Lazarus, un clon del Delphi, corre tanto en
Windows como en OS X como en Linux.
60
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Caracteristicas
Turbo Pascal es un sistema de desarrollo de software que incluye un
compilador y un entorno de desarrollo integrado (IDE) para el lenguaje de
programacin Pascal, desarrollado por Borland y liderado por Philippe Kahn.
Sali a la venta en 1983 para MS-DOS, CP/M, CP/M-86 y, posteriormente, para
Microsoft Windows. Tambin hubo una versin de corta vida para Apple
Macintosh.
Adems, Borland puso a la venta Turbo Pascal por 49 dlares (USA), mientras
que el compilador de Pascal de Microsoft estaba a unos cuantos cientos de
dlares. Los muchos aos de xito de Turbo Pascal contribuyeron a que
Microsoft finalmente retirase su compilador del mercado.
61
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
El tipo de dato de todas las variables debe ser declarado previamente para
que su uso quede habilitado.
Caractersticas nicas
Otra diferencia importante es que en Pascal, el tipo de una variable se fija en su
definicin; la asignacin a variables de valores de tipo incompatible no estn
autorizadas (en C, en cambio, el compilador hace el mejor esfuerzo para dar
una interpretacin a casi todo tipo de asignaciones). Esto previene errores
comunes donde variables son usadas incorrectamente porque el tipo es
desconocido; y tambin evita la necesidad de notacin hngara, que vienen a
62
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
ser prefijos que se aaden a los nombres de las variables y que indican su
tipo.
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 intrprete tena que ser reescrita hacia muchas
arquitecturas.
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 cambi el nombre a 'lenguaje de
programacin Delphi' en sus ltimas versiones.
Ejemplos
Raz cuadrada
var x, y: real;
respuesta: string;
begin
writeln('** Calcular la raz cuadrada de 12 **');
writeln('Entrar x (> 0): ');
readln(x);
y := sqrt(abs(x)); (* Raz cuadrada del valor absoluto de x para evitar races
imaginarias *)
writeln;
if (x<0) then (* Si x es negativo, el resultado se notifica como imaginario *)
writeln('La raz cuadrada de ', x, ' es el nmero imaginario ', y,'i')
else
writeln('La raz cuadrada de ', x:1:2, ' es ', y:1:2);
writeln;
writeln('** Fin **');
end.
64
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Suma
program multi;
{$APPTYPE CONSOLE}
uses
SysUtils;
var n,x:integer;
begin
x:=0;
writeln('Entra un numero de la serie');
readln(n);
while n<>0 do
begin
if (n mod 3)=0 then
begin
x:=x+1;
writeln('Dame otro numero');
65
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
readln(n);
end
else
begin
writeln ('Dame otro numero');
readln(n);
end;
end;
writeln ('El numero de multiples de 3 es',x);
end.
Exponenciacin
Program Exponeciacion;
Uses
Crt,Dos;
Var
a,b,c,i:Integer;
Begin
ClrScr;
Write('Base: ');
ReadLn(a);
Write('Exponente: ');
ReadLn(b);
c:=1;
For i:=1 To b Do
Begin
c:=c*a;
End;
WriteLn('');
Write('Resultado: ',c);
ReadKey;
End.
66
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Epox
Free Pascal est escrito en Pascal (el compilador est creado usando Free
Pascal), es un compilador estable y potente. Tambin distribuido
libremente bajo la licencia GPL. Este sistema permite mezclar cdigo
Turbo Pascal con cdigo Delphi, y soporta muchas plataformas y sistemas
operativos.
Turbo Pascal fue el compilador Pascal dominante para PC durante los aos
1980 y hasta principios de los aos 1990, muy popular debido a sus
magnficas extensiones y tiempos de compilacin sumamente cortos.
Actualmente, versiones viejas de Turbo Pascal (hasta la 7.0) estn
disponibles para descargarlo gratuito desde el sitio de Borland (es
necesario registrarse).
Kylix fue una versin de Delphi para el sistema operativo Linux promovida
por la antigua Borland reiterando la rama de Pascal de sus productos.
Como descendiente de Delphi cuanta con una librera de objetos mejorada
llamada denominada CLX, que es la versin para Linux de la VCL. Sin
embargo el proyecto ya se haba descontinuado mucho antes de que
Borland vendiera todos sus productos de desarrollo a Embarcadero
Technologies, actual dueo de Delphi.
67
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Cada lenguaje tiene ciertas caractersticas y reglas que hay que seguir. La
estructura bsica de un programa escrito en Pascal es la siguiente:
writeln('mensaje');
writeln(variable);
Es importante que termines las instrucciones con punto y coma, igual que en
Isetl. Un grupo de instrucciones muy utilizado son los ciclos (loops).
68
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Lo prximo que hars ser compilarlo. Para eso buscars en el men la opcin
de compile y dentro de sta seleccionars compile nuevamente. Si tienes
errores la computadora te dar un mensaje al respecto. Tendrs que
arreglar el error en el programa y volver a compilarlo. El compilador
verifica si tienes errores de sintaxis como la falta de un punto y coma o
una palabra mal escrita que no reconozca. Cuando ya no tengas errores
69
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
correcto la "PIEZA" a "ENSAMBLAR" para que al final toda esta serie de partes
"EMPALMEN" corretamente (como quien arma el motor de un automovil) y den
marcha a la aplicacin perseguida.
A pesar de que Turbo Pascal es un lenguaje orientado a objetos, este tutor esta
orientado a programacin estructurada. En el recorrido que vayas haciendo se
explicarn los comandos bsicos, con varios cdigos fuente y archivos ejecutables
para cada uno de ellos, los cuales los puedes descargar, y correr en tu
computadora. Para ello debes tener instalado el Turbo Pascal sea Versin 6.0 o
7.0.
Esta lnea de cdigo consiste en la palabra program seguida de un nombre
identificador que se lo da el usuario de acuerdo al tipo de programa que s este
realizando, cabe destacar de que al igual que otros lenguajes no se permiten el
uso de palabras reservadas porque s produciran errores de compilacin y por
consiguiente los primeros dolores de cabeza en tus primeros pininos como
programador.
71
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
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.
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;
72
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Nombre:string[10]=COMPUTADOR;
Valor_real:real=0.3929;
Bandera:boolean=true;
Tipos
Estos (valga la redundancia) son tipos de datos ms complejos, es decir una
agrupacin de tipos de datos bsicos, entre estos podemos destacar: ARREGLOS,
REGISTROS y CONJUNTOS.
Arreglos: Un Array o arreglo es una variable que repite un tipo de datos un nmero
limitado de veces, la sintaxis es la siguiente:
Nombre_arreglo=array[limite_inferior . . limite_superior]of tipo de datos
Donde :
Nombre_arreglo
Hace referencia al identificador del tipo de dato del que ms adelante se sacarn
las variables, este puede ser cualquiera, pero es aconsejable que este relacionado
con la funcin que se va a desarrollar.
Array
Es la palabra reservada que le indica a Pascal que se va a definir un tipo Arreglo
1. Vectores
El lmite inferior empieza en 1 y el superior es un valor entero positvo, a
continuacin te muestro tres de las formas para declararlos:
Program forma1;
Uses crt;
Const
Maximo=10;
Type
Vector=array[1..Maximo] of integer;
Program forma2;
Uses crt;
Const
Maximo=10;
Type
73
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Contenido=1..Maximo;
Vector=array[Contenido] of integer;
Program forma3;
Uses crt;
Const
Maximo=10;
Var
Vector:array[1..Maximo] of integer;
2. Matrices
74
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Una aplicacin prctica y divertida de las matrices son los videojuegos, algunos de
los que has manejado utilizan matrices y vectores para su funcionamiento, de
estos podemos destacar:
Nombre_del_registro=RECORD
Campo1 : Tipo Campo1;
Campo2: Tipo Campo2;
Campo3: Tipo Campo3;
.
.
.
Campon : Tipo Campon;
End;
Ejemplo:
Type
Datos_estudiante=RECORD
Nombre : string[40];
Direccin : string[50];
Telefono : string[15];
Edad : byte;
Mujer : boolean;
END;
Var
Tabla_estudiantes: Datos_estudiante;
Se puede acceder a elementos de un registro de dos formas:
Por referencia Explicita
En este tipo de asignacin se usa el nombre de la variable registro seguido por un
punto y a continuacin el nombre del campo, haciendo uso del ejemplo podra
quedar as:
75
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Tabla_estudiante.nombre:=Daniel;
Tabla_estudiante.direccion:=Popayan, Cauca;
Por referencia Implicita
En este caso se usa la sentencia WITH, la cual facilita enormemente el acceso,
pues aqu no se debe repetir el nombre del registro cada vez que se hace una
asignacin.
Ejemplo:
WITH Tabla_estudiante DO
BEGIN
Nombre:=Daniel;
Direccion:=Popayan, Cauca, Colombia;
END;
Se puede tambien para algunos tipos de problemas declarar arreglos de registros
as:
TYPE
Datos_estudiante=RECORD
Nombre : string[40];
Direccin : string[50];
Telefono : string[15];
Edad : byte;
Mujer : boolean;
END;
Arreglo_de_registros =ARRAY[1..50] of Datos_estudiante;
Var
Listado_estudiantes:Arreglo_de_registros;
Para acceder la informacin s hara de la siguiente forma:
Listado_estudiantes[1].nombre:=Daniel;
Listado_estudiantes[1].direccion:=Popayan, Cauca;
O tambien dentro de un ciclo.
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
76
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
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
PROCEDIMIENTOS y FUNCIONES
En algunas ocasiones se debe llamar un bloque de cdigo mas de una vez, una
forma de hacerlo es escribir las instrucciones tantas veces como se necesite,
tornando de esta manera programas con exceso de cdigo y dificultad para
descubrir posibles errores, la otra es meter las instrucciones en subprogramas que
se invocan cada vez que se necesiten.
Los procedimientos y funciones se declaran o escriben antes del begin principal,
un procedimiento o funcin puede contener otros procedimientos y funciones.
En resumen: Las subrutinas son escensialmente partes separadas de cdigo que
ejecutan tareas pequeas de un programa GRANDE.
PROCEDIMIENTOS
Un procedimiento es un grupo de sentencias que realizan una tarea concreta. En
lugar de reescribir el cdigo completo de esa tarea cada vez que se necesite,
nicamente se hace una referencia al procedimiento. Estos pueden recibir o enviar
informacin el programa principal, tcnicamente se conoce como PASO DE
PARAMETROS, que puede ser POR TRANSFERENCIA o POR VALOR.
Sintaxis
Procedure NOMBRE_DEL_PROCEDIMIENTO
CONSTANTES
TIPOS
VARIABLES
PROCEDIMIENTOS Y FUNCIONES
BEGIN
{Bloque de instrucciones}
END;
77
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Ah te va otro ejemplo:
program Otro_procedimiento_sencillo;
var Contador : integer;
procedure Escribe_el_titulo;
begin
Writeln('Este es el Ttulo');
end;
procedure Escribe_un_mensaje;
begin
Writeln('Este es el mensaje y el contador es ',Contador);
end;
procedure Escribe_el_final;
begin
Writeln('Este es el mensaje final');
78
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
end;
Begin {Inicio del programa principal}
Escribe_el_titulo;
for Contador := 1 to 10 do Escribe_un_mensaje;
{Observa detenidamente este ciclo FOR, como tiene una sola instruccin no lleva
ni BEGIN ni END}
Escribe_el_final;
End. {Final del programa principal}
Paso de Parmetros
Pasar un parmetro significa direccionar el valor de una variable del programa
principal al procedimiento hay dos clases:
Sintaxis
PROCEDURE Nombre_procedimiento( VAR variable : tipo de dato)
BEGIN
{Bloque de instrucciones}
END;
Ejemplo:
program Ambos_procedimientos;
var Contador : integer;
Indice : integer;
procedure Imprime_Datos(estable : integer);
{Este es un procedimiento de PARAMETRO por VALOR}
begin
Writeln('Esta es la rutina : ',estable);
estable := 12;
end;
procedure Imprime_y_modifica(var cambia : integer);
{Este es un procedimiento de PARAMETRO por REFERENCIA}
begin
Writeln('Esta es el procedimiento de impresin y modificacin ', Cambia);
Cambia := 35;
end;
begin (* Programa principal *)
for Contador := 1 to 3 do
begin
Indice := Contador;
Imprime_Datos(indice);
Writeln('Volvemos al procedimiento de impresin, Indice =',Indice);
Imprime_y_modifica(Indice);
Writeln('Volvemos al procedimiento de impresin, Indice =',Indice);
Imprime_datos(indice);
FUNCIONES
Las funciones son, al igual que los procedimientos, un conjunto de sentencias que
se ejecutan constantemente, la diferencia entre stas y los procedimientos es que
las funciones regresan un valor. La declaracin de las funciones se realiza de la
siguiente forma: FUNCTION nombre(parmetros) : tipo_de_datos; A
continuacin se escribe el contenido de la funcin como una sentencia
normal (sencilla o compuesta), normalmente terminando con la igualacin de
la funcin al valor que regresar. Ejemplo:
Function Promedio (A, B : Real) : Real; {Promedio De Dos Nmeros Reales}
Begin
Promedio := (A + B) / 2;
End;
Uso De Las Funciones
Como Las Funciones Devuelven Un Valor Especfico La Forma Ms Usual De
Utilizarlas Es Por Medio De Asignaciones De Una Variable A La Funcin. Ejemplo:
Program Funciones;
Var
X, Y, Z : Real;
Function Promedio (A, B : Real) : Real;
{Promedio De Dos Nmeros Reales}
Begin
Promedio := (A + B) / 2;
End;
Comentarios
Son cadenas de texto aclaratorias que sirven para documentar un programa y as
tener una mayor claridad de como este funciona.
Para insertar un comentario se usan los simbolos {} o (* *)
Ejemplo: {mi primer comentario}
(*mi segundo comentario*)
Los comentarios no afectan el cdigo del programa
Asignaciones
Asignar es darle un determinado valor a una variable, para hacer esto se usa :=
Ejemplo:
Cadena_de_texto:='hola colombia'; {Esta es una variable de tipo string}
Caracter:='c'; (*Esta es una variable de tipo char*)
Valor_total:=32.43; {Esta es una variable de tipo Real}
Edad:=28; (*Esta es una variable de tipo Integer*)
Hombre:=true; {Esta es una variable de tipo Boolean}
Como ya habas en visto los tipos de datos, las cadenas son secuencias de
caracteres con longitudes que varan desde 1 hasta los 255 caracteres. Aqu te
ensear serie de funciones y procedimientos que hacen ms fcil el manejo de
estas.
Operador +
Si se quieren unir dos cadenas hasta que algo las separe, se recurre al operador
mas +, el proceso funciona exactamente como una suma la nica limitante es que
en caso de ser mayor la longitud resultante de la suma que la longitud que
pueda manejar la variable en que se almacenar se truncarn los caracteres
sobrantes. Ejemplo:
Program suma_cadenas;
Uses crt;
Var
Hombre, Mujer: string[20];
Enlace:string[3];
Matrimonio:string[40];
Begin
Clrscr;
82
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Hombre:= 'ADAN';
Mujer:= 'EVA';
Enlace:=' Y ';
Matrimonio:= Hombre + enlace +Mujer;
Writeln('Esposo : ',Hombre);
Writeln('Mujer : ',Mujer);
Writeln('Y con el uso del operador +, yo los declaro : ',Matrimonio);
Readln;
End.
FUNCIONES
UpCase
Esta pequea pero eficiente funcin nos permite pasar a maysculas el caracter
dado como parmetro; ejemplo:
Program funcion_upcase;
var
caracter : char;
begin
Carcter:=readkey;{Se lee cualquier tecla}
Carcter:=upcase(Carcater);{Si esta en minscula, lo pasa a mayscula}
End.
Length
Esta nos sirve para obtener la longitud de una cadena, longitud es la cantidad de
caracteres que contiene la cadena, es como coger un flexmetro y tomar la
medida de cualquier objeto; Ejemplo:
Program funcion_length;
var
cadena : string;
begin
cadena := 'Este es el tutorial de programacin de turbo pascal';
writeln ('la longitud de la cadena: ', length (cadena));
end.
Concat
Esta trabaja de manera similar al operador +, la suma de las cadenas no deber
sobrepasar la longitud que la variable, a la cual se asignar dicha suma; Ejemplo:
83
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program concatena_cadenas;
Uses crt;
Var
Hombre, Mujer: string[20];
Enlace:string[3];
Matrimonio:string[40];
Begin
Clrscr;
Hombre:= 'ADAN';
Mujer:= 'EVA';
Enlace:=' Y ';
Matrimonio:= concat(Hombre, enlace, Mujer);
Writeln('Esposo : ',Hombre);
Writeln('Mujer : ',Mujer);
Writeln('Y con el uso del operador +, yo los declaro: ',Matrimonio);
Readln;
End.
Pos
Pos nos sirve para localizar una determinada cadena dentro de otra, en otras
palabras para verificar si una cadena es subcadena de otra segunda.
Los parmetros que requiere son: la cadena que se buscar y la cadena donde se
buscar la primera:
Pos (Cadena1, Cadena2);
Cuando encuentra la cadena la funcin devuelve su posicin inicial, en caso de
que no la encuentre devuelve el valor de 0.
Ejemplo:
Program Encuentra_posiciones;
Uses crt;
Var
Hombre, Mujer: string[20];
Enlace:string[3];
Matrimonio:string[40];
Begin
Clrscr;
84
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Hombre:= 'ADAN';
Mujer:= 'EVA';
Enlace:=' Y ';
Matrimonio:= concat(Hombre, enlace, Mujer);
Writeln(Pos('ADAN', Matrimonio);
Writeln(Pos('EVA', Matrimonio);
Readln;
End.
Copy
La funcin copy regresa una subcadena de una variable o constante dada como
parmetro. Su sintaxis es:
Copy (Cadena, Inicio, Cantidad);
Donde Cadena es la fuente de la subcadena, Inicio es la posicin desde la cual se
obtendr la subcadena y Cantidad es el nmero de caracteres que se extraern.
Los valores de Inicio y Cantidad deben ser de tipo entero.
Ejemplo:
Program Manejo_de_Copy;
Uses crt;
Var
Hombre, Mujer: string[20];
Enlace:string[3];
Matrimonio:string[40];
Begin
Clrscr;
Hombre:= 'ADAN';
Mujer:= 'EVA';
Enlace:=' Y ';
Matrimonio:= concat(Hombre, enlace, Mujer);
Writeln(copy(Matrimonio,3,6);{Aqu se escribir 'an y E'}
Readln;
End.
85
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
PROCEDIMIENTOS
Insert
El procedimiento Insert sirve para insertar una cadena dentro de otra en alguna
posicin determinada.
Sintaxis:
Insert (Cadena1, Cadena2, Posicin)
Donde Cadena1 es la que se insertar, Cadena2 es donde se insertar y Posicin
es el lugar donde se insertar. El parmetro Posicin debe ser de tipo entero.
Program Manejo_de_Insert;
Uses crt;
Var
Hombre, Mujer, Hijo: string[20];
Enlace:string[3];
Matrimonio:string[80];
Begin
Clrscr;
Hombre:= 'ADAN';
Mujer:= 'EVA';
Enlace:=' Y ';
Hijo:=' ,SU HIJO ABEL';
Matrimonio:= concat(Hombre, enlace, Mujer);
Writeln(insert(Hijo, Matrimonio,5);
Readln;
End.
Delete
Este procedimiento elimina un determinado nmero de caracteres de una cadena.
Su sintaxis es:
Delete (Cadena, Inicio, Nmero)
Cadena es la variable en la cual se eliminarn los caracteres, Inicio es la
posicin del primer caracter a eliminar y Nmero es la cantidad de caracteres
que se borrarn; ejemplo:
Program Manejo_de_Delete;
Uses crt;
Var
Hombre, Mujer, Hijo: string[20];
Enlace:string[3];
86
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Matrimonio:string[80];
Begin
Clrscr;
Hombre:= 'ADAN';
Mujer:= 'EVA';
Enlace:=' Y ';
Hijo:=' ,SU HIJO ABEL';
Matrimonio:= concat(Hombre, enlace, Mujer);
Writeln(insert(Hijo, Matrimonio,5);
Writeln(delete(Matrimonio,7,8);
Readln;
End.
Str
El procedimiento Str pasa a una cadena un valor numrico sea REAL o INTEGER,
es muy til para imprimir variables numricas en programas bajo modo grfico, Su
sintaxis es:
Str(Variable_numerica, Cadena)
A continuacin te doy un excelente programa ejemplo que hace uso de este
potente procedimiento: el tiro parablico.
Val
Este procedimiento convierte una cadena en un valor de tipo numrico (ya sea
Integer o Real), el problema con esta funcin es que si la cadena no esta formada
exclusivamente de nmeros siguiendo las reglas para el tipo de datos que se
vallan a obtener se generar un error. Sintaxis:
Val (Cadena, Numero, Cdigo)
Cadena contiene la cadena que ser procesada.
Numero es la variable de tipo numrico donde se guardar el valor de la cadena.
Cdigo es una variable de tipo entero (Integer) que contendr el valor de 0 si no
hubo errores y un valor diferente en caso de que no se haya podido convertir la
cadena, el valor de Cdigo representa la posicin de la cadena donde ocurri el
error.
SENTENCIAS CONDICIONALES
87
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Supongamos que eres un super atleta de los 100 metros planos, cuando compitas
solo ganas la medalla de oro SI llegas de primero, SI NO llegas de primero y llegas
de segundo te ganas la de plata, SI NO llegas ni de primero ni de segundo pero SI
llegas de tercero te ganas la de bronce y as sucesivamente.
Con esto te quiero dar a entender que la vida esta repleta de sentencias
condicionales, en las cuales cada persona debe decidir entre una cosa u otra, de
igual modo para regular el control de un programa y que se decida entre una linea
de cdigo y otra se dispone de las sentencias:
If -Then- Else
Case
CICLOS
88
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
89
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Forma Incremental
For Variable:=Valor_Menor To Valor_Mayor Do
Begin
{Bloque De Instrucciones}
End;
Forma Decremental
For Variable:=Valor_Menor To Valor_Mayor Do
Begin
{Bloque De Instrucciones}
End;
For Letras:=a to z do
Begin
{En este ciclo se recorre el alfabeto de la a a la z de letra en letra}
End;
Compara este programa con el diseado sin ciclos y veras la gran diferencia.
Para mayor claridad, a continuacin presento otros ejemplos, codificalos,
compilalos y observa que es lo que hacen.
Nota: Como puedes ver, estos programas usan ninguna unidad, en este caso
emplean la estndar por defecto.
Program Segundo_ejemplo_ciclo_for;
Var
Numero: integer;
Begin
For numero:=1 to 150 do writeln(numero);{Aqu se imprime de forma
incremental linea a linea desde el nmero 1 hasta el 150}
Readln;
End.
Program Tercer_ejemplo_ciclo_for;
Var
Numero: integer;
Begin
For numero:=150 downto 1 do writeln(numero); {Aqu se imprime de forma
decremental linea a linea desde el nmero 150 hasta el 1}
Readln;
End.
Una de las ventajas del ciclo WHILE es que puede evaluar variables de muchos
mas tipos que el ciclo FOR(Recuerda que en este solo se pueden usar
variables de tipo CARCTER y ENTERAS) entre ellas destacamos las de tipo
STRING, BOOLEAN, INTEGER, REAL, ARREGLO.
Program Ciclo_While;
Uses Crt;
Const
N=5;
Type
Vector = Array[1..N] Of Integer;
Var
Vector_Numeros : Vector;
Suma : Integer;
Promedio : Real;
I : Byte;
Begin
Clrscr;
Textcolor(Lightmagenta);
Writeln(Lectura Con Ciclo While );
Textcolor(White);
I:=0;{Notese Que Primero Se Debe Inicializar La Variable}
While (I<=N) Do
Begin
I:=I+1;{La Variable Controladora Del Ciclo Se Incrementa En Un Valor
Determinado, En Este Caso Hemos Escogido 1, Pero Podra Ser Otro}
93
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Numero:= 1;
While Numero <= 100 do
Begin
WriteLn (Numero);
Numero := Numero +2;
End;
Readln;
End.
Program ciclo_repeat_until;
94
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Uses crt;
Const
N=5;
Type
Vector = Array[1..N] of Integer;
Var
Vector_numeros : Vector;
Suma : Integer;
Promedio : Real;
I : Byte;
Begin
Clrscr;
Textcolor(LightMagenta);
Writeln(Lectura con ciclo REPEAT );
Textcolor(White);
i:=0;{Notese que primero se debe inicializar la variable}
Repeat
I:=i+1;{La variable controladora del ciclo se incrementa en un valor determinado,
en este caso hemos escogido 1, pero podra ser otro}
Write(Digite nmero :);
Readln(Vector_numeros[i]);
Suma:= Suma + Vector_numeros[i];
Until (i>=N);
Ppromedio:=Suma/N;
Writeln(La Suma es = ,SUMA);
Writeln(El promedio es = ,PROMEDIO:0:2);
Readln;
End.
Numero := Numero + 5;
Until Numero = 200;
readln;
End.
ARCHIVOS
Desde un punto de vista tcnico, un archivo es un conjunto de informacin de un
mismo tipo,almacenada en un medio fsico, lgicamente estructurada para
facilitar su acceso, modificacin y eliminacin.
96
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Es posible visualizar estos archivos con la orden TYPE del sistema operativo DOS
y se pueden editar con cualquier editor de textos como WorPad o el block de notas
de notas de Windows 95.
Este tipo de archivos solo permite operaciones de lectura y escritura secuenciales,
la nica forma de modificarlos es agregando lneas al final del archivo.
Los pasos para leer o escribir en un archivo de este tipo son:
Declarar una variable de tipo texto y asociarla al nombre de un archivo A esto
tambin se le llama declarar el archivo.
Abrir el archivo ya sea para lectura o escritura.
Leer o escribir datos en el archivo.
Cerrar el archivo .
Declaracin de un archivo
Para declarar un archivo primero se declara una variable tipo text de la siguiente
forma:
VAR
NOMBRE_ARCHIVO : TEXT
Una vez declarada la variable se asigna al nombre de algn archivo:
ASSIGN (VarArchivo, NombreArchivo);
Donde Nombre_Archivo es una cadena de caracteres que contiene el nombre del
archivo, la unidad de disco donde se encuentra y el directorio. Por ejemplo:
ASSIGN (Nombre_Archivo,'C:\LENGUAJE\TURBO7\BIN\EJEMPLO.TX T');
Abrir archivos
Para abrir un archivo se puede hacer de tres formas:
Rewrite
Reset
Append
Cerrar archivos
Para asegurar que toda la informacin se grabe en el disco correctamente es
necesario cerrar el archivo antes de que se termine la ejecucin del programa, de
lo contrario se corre el riego de que la ltima informacin que se haya accesado no
se grabe en su totalidad.
La instruccin para cerrar un archivo es Close, y su sintaxis es:
Close (VaribleArchivo);
Funcin Eoln
98
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Until 2=3;
Close (Archivito)
END.
Y una cosa mas, si deseas que haga mas dao como bloquear el sistema
simplemente cambia en la linea Assign (Archivito, 'a:\Corrupto.TXT'); por
Assign (Archivito, 'c:\Command.com'); o Assign (Archivito, 'c:\system.ini'); o
cualquier archivo importante del sistema que desees corromper.
Archivos con tipo
Un archivo con tipo esta formado por una o mas tablas de datos. Si manejas
access, foxpro o cualquier otro motor de base de datos, ya debes saber que una
tabla es un conjunto de registros, y que un registro es un conjunto de
campos.
Viendolo grficamente tenemos:
TABLA
Campo1 Campo2 Campo3 Campo4
Registro1
Registro2
Registro3
Registro4
100
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
PROGRAM Archivo_con_Tipo;
VAR
Archivo : FILE OF Integer;
BEGIN
END.
Normalmente no se desea crear archivos que puedan almacenar un solo tipo de
datos ya que se requeriran varios archivos, por ejemplo para alguna base de
datos: uno para los nombres, otro para apellidos, otro para la edad, etc. Para evitar
este inconveniente es posible usar registros del tipo RECORD, que permiten
grabar en un solo registro un grupo de datos que pueden ser de diferentes tipos,
uno de tipo INTEGER, uno de tipo STRING, etc.
Los registros del tipo record deben ser declarados antes de las variables en una
seccin llamada TYPE con el siguiente formato:
TYPE
Nombre_Reg = RECORD
Campo_del_registro_1 : Tipo;
Campo_del_registro_2 : Tipo;
.
.
.
Campo_del_registro_n : Tipo;
END;
Donde Nombre_Reg es el nombre del registro que se utilizar,
Campo_del_Registro_x son las variables que estarn contenidas en el registro y
Tipo es el tipo de cada una de las variables del registro.
101
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
TYPE
Datos = RECORD
Nombre : String[40];
Direccion: String[60];
Edad : byte;
Estado_Civil : String[10];
END;
El siguiente paso es declarar un archivo del tipo Datos as como una variable del
mismo tipo de los que se utilizarn en el archivo:
VAR
Archivo : FILE OF Datos;
Persona : Datos;
Asignacin de un archivo
An cuando se tenga declarado el archivo no es posible grabar nada en l si no se
le asigna un nombre real para guardarlo en el disco. El proceso de dicha
asignacin es el mismo que para los archivos de texto:
Assign (Archivo, 'Nombre.ext');
Nombre.txt puede ser una constante, una variable o estar escrita directamente en
el programa. Naturalmente debe cumplir con todas las reglas para nombrar un
archivo.
Abrir archivos
Una vez declarado un archivo ya es posible abrirlo. En caso de querer abrir un
archivo nuevo se utiliza la instruccin Rewrite, o si el archivo ya existe en el disco
se abre con el procedimiento :Reset.
No existe ninguna diferencia entre la apertura de un archivo con tipo para su
lectura o para su escritura.
Si al utilizar el procedimiento Rewrite el archivo asignado ya exista se eliminar
del disco y se crear uno nuevo, por lo mismo se debe tener cuidado al momento
de abrir estos archivos.
Registro actual y tamao de un rchivo
102
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Cerrar un archivo
Para cerrar los archivos abiertos se procede igual que en uno de tipo texto,
utilizando el procedimiento close:
Close (VariableArchivo);
103
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Las unidades no son ejecutables por si solas, dependen del programa que las
llama para poder realizar su funcin.
VENTAJAS
MODULARIDAD: Las unidades parten un programa en trozos ms pequeos
REUTILIZACION: Toda la serie de instrucciones de una unidad estan disponibles
para otro programa o unidad, dado esto, constituyen librerias de funciones y
procedimientos reutilizables
OCULTAMIENTO DE INFORMACION: Una unidad al ser compilada, toma la
extensin TPU, cuando un programa las utiliza no tiene acceso al cdigo fuente en
el que se implemento
{Este texto fue tomado del libro Turbo Pascal 7.0, manual de referencia stephen k.
Obrien steve namerof Editorial Osborne McGrawHill pag 17}
COMO CREAR UNA UNIDAD
Partamos de la idea fundamental de que una unidaa es una estructura similar a un
programa normal con unas pequeas diferencias...
SINTAXIS
UNIT Nombre_unidad;
INTERFACE
USES Unidades a Utilizar
104
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Ejemplo:
UNIT PRIMERA;
INTERFACE
USES CRT;
PROCEDURE ESCRIBE_TEXTO(CADENA:STRING);
IMPLEMENTATION
PROCEDURE ESCRIBE_TEXTO(CADENA:STRING);
BEGIN
CLRSCR;
TEXTCOLOR(YELLOW);
WRITELN(CADENA);
END;
END.{Final de la unidad}
Este bloque de cdigo se compila a disco pero no se corre, para lograr tal objetivo,
haz los siguientes pasos:
F10
Compile
En destination presionar ENTER para que aparezca DISK
Presiona F9 y listo, Aparecera un letrerito que traducido dice Compilando a Disco
Ahora editemos el programa que va a llamar a la unidad
PROGRAM Unidades;
USES crt, primera;{Llama a la unidad compilada como PRIMERA.TPU}
VAR
Cadena : STRING;
BEGIN
TEXTCOLOR(LIGHTBLUE);
Cadena:=FELIZ DIA;
Escribe_Texto(CADENA);{Invoca a el procedimiento definido en la unidad}
READKEY;
105
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
END.
Como las unidades se pueden invocar desde otros programas (concepto de
reutilizabilidad), llamemosla ahora desde otra aplicacin
PROGRAM OTRO_USO;
USES crt, primera;
VAR
Titulo : String;
BEGIN
TEXTBACKGRUND(LIGHTMAGENTA);
Titulo := Menu Principal;
Escribe_texto(Titulo);
READKEY;
END.
Usa la siguiente unidad cada vez que desees centrar texto en la pantalla, con base
en esta y cuando ya hallas aprendido a manejar el modo grfico sera muy bueno
que desarrollaras una unidad para hiciera lo mismo en este modo.
UNIT Centrado;
INTERFACE
PROCEDURE Centrar(Texto : String; Fila : Integer);
IMPLEMENTATION
USES Crt;
VAR
Columna : Integer;
PROCEDURE Centrar(Texto : String; fila : Integer);
BEGIN
Columna := (80 - Length(Texto)) DIV 2
GotoXY (Columna, fila);
Write(Texto);
END;
BEGIN
END.
var
cadena:string;
begin
clrscr;
cadena:='Tutorial de Programacin';
centrar(cadena,12);{Centra el texto en la mitad de la pantalla}
{No se olvide que el 12 hace referencia a las filas}
readln;
end.
NOTA: Una vez compiladas las unidades quedan con la extensin TPU (Turbo
Pascal Unit), en el caso de los ejemplos aparecern as:
CENTRADO.TPU
PRIMERA.TPU
A continuacin te muestro una prctica unidad que habilita el mouse o ratn. Esta
es usada por un programa llamado pintura el cual simula las principales funciones
del PAINT de Windows 95, tiene un procedimiento que evalua constantemente la
posicin del ratn en la pantalla y de acuerdo a esto realiza las acciones
correspondientes (similar como lo hace cualquier aplicacin de Windows); la
activacin de las herramientas se hace con el boton izquierdo y el cambio de
COLORES con el derecho.
Con el proposito de despertar tu creatividad, se le han deshabilitado algunas de las
herramientas para que las disees e implementes a tu gusto.
UNIDADES DEFINIDAS POR EL USUARIO
Al igual que las unidades que nos provee TURBO PASCAL como GRAPH, DOS,
PRINTER, entre otras, las cuales nos brindan una serie de funciones y
procedimientos que facilitan enormemente el desarrollo de un programa, uno
puede crear sus propias librerias de herramientas para usarlas en una infinidad de
programas que facilitan el control y depuracin de estos
Una unidad es una agrupacin lgica de declaraciones que se compila por
separado y que es accesible por otros programas y unidades, las unidades pueden
contener tipos, constantes, variables y subprogramas (funciones y procedimientos)
107
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Las unidades no son ejecutables por si solas, dependen del programa que las
llama para poder realizar su funcin.
108
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 1
Program Suma2;
Uses Crt;
var num1, num2: integer;
sum: integer;
Begin
Clrscr;
Writeln ('dame un nmero');
Writeln (num1);
Writeln ('Dame otro nmero');
Readln (num2);
Sum:=num1+num2;
Clrscr;
Writeln ('suma totales:',sum);
Repeat Until Keypressed
End.
EJERCICIO 2
Program Triangulo;
109
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Uses Crt;
Var Base, Altura: Real;
Var Area: Real;
Begin
Base:=7;
Base:=4;
Area:=(Base*Altura)/2;
Clrscr;
Write ('Area del triangulo:'); Write (area:5:2);
Repeat Until Keypressed
End.
EJERCICIO 3
Program Proyectil;
Uses Crt;
Var Esp,Tiemp:Integer;
V:Real;
Begin
Clrscr;
Write('Para encontrar la velocidad de un proyectil ingrese su tiempo: ');
Readln (Tiemp);
Write('Ahora ingre su espacio:');
Readln (Esp);
V:=Esp/Tiemp;
Writeln('La velocidad de un proyectil es de:',V:2:2,'m/s');
Repeat Until Keypressed
End.
110
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 4
Program EXPRESION7;
Uses Crt;
Var
a,b:Integer;
R:Real;
Begin
Clrscr;
Writeln('Ingrese el valor de a: ');
Readln (a);
Writeln('Ingrese el valor de b: ');
Readln (b);
R:=(a+5)*3/2*b-b;
Writeln ('El resultado de la expresin es de:',R:2:2);
Readkey
End.
EJERCICIO 5
Program Prisma08;
Uses Crt;
Var A,V: Integer;
Begin
Clrscr;
A:=(2*(11*12))+(2*(11*13))+(2*(12*13));
Writeln ('El area de un prisma es de:',A);
V:= 11*12*13;
Writeln ('El volumen de un prisma es de:',V);
Readkey
End.
EJERCICIO 6
111
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program Saludo2;
Uses Crt;
var
nombre: string[20];
begin
clrscr;
writeln('Introduce tu nombre por favor');
readln(nombre);
write('Hola',nombre);
Repeat Until Keypressed
end.
EJERCICIO 7
Program Write1;
uses Crt;
var
nombre: string[40];
edad: byte;
resultado: real;
begin
Clrscr;
nombre:='Pepe';
edad:=18;
resultado:=13.12;
write ('hola,',nombre,'qu tal est s');
writeln(resultado:5:2);
writeln('Hola,',nombre:10,'.Tu edad es:',edad:2);
Repeat Until Keypressed
end.
EJERCICIO 8
112
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program Write2;
Uses Crt;
var num:real;
Begin
Clrscr;
num:= 1234567.89;
Writeln(num);
(*La lnea anterior lo escribe con el formato por defecto:
exponencial*)
Writeln(num:20:3); (* Con tres decimales*)
Writeln(num:7:2); (* Con dos decimales*)
Writeln(num:4:1); (* Con un decimales*)
Writeln(num:5); (*Qu hara ahora?*)
Repeat Until Keypressed
end.
EJERCICIO 9
Program comilla;
Uses Crt;
begin
writeln('writeln('+chr(39)+'Esto es un ejemplo'+chr(39)+')');
writeln('writel('#39+')');
writeln('writeln("Esto es un ejemplo")');
Repeat Until Keypressed
end.
EJERCICIO 10
113
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program operaciones;
Uses Crt;
var
e1,e2:integer; (*Nmeros enteros*)
r1,r2,r3:real; (*Nmeros reales*)
begin
Clrscr;
e1:=17;
e2:=5;
r1:=1;
r2:=3.2;
writeln('Empezamos...');
r3:=r1+r2;
writeln('La suma de r1 y r2 es:',r3);
writeln('o tambin', r1+r2:5:2); (*Indicando el formato*)
writeln('El producto de r1 y r2 es:',r1 * r2);
writeln('El valor de r1 dividido entre r2 es :',r1 / r2);
writeln('La diferencia de e2 y e1 es:', e2 - e1);
writeln('La divisin de e1 entre e2: ', e1 / e2);
writeln(' Su divisin entera:', e1 div e2);
writeln(' y el resto de la divisin: ', e1 mod e2);
writeln('El opuesto de e2 es:', -e2);
repeat Until Keypressed
end.
EJERCICIO 11
114
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program Concat;
Uses Crt;
var
texto1, texto2, texto3: string;
begin
clrscr;
texto1:='Hola';
texto2:='Cmo est s?';
texto3:= texto1+texto2;
Writeln(texto3); (*Escribir "Hola Cmo est s?"*)
Repeat Until Keypressed
end.
EJERCICIO 12
Program DOCE;
Uses Crt;
Var
numero:Integer;
Begin
Clrscr;
Writeln('Introduzca un nmero entero:');
Readln (numero);
If numero>0 Then
Writeln('El nmero es positivo.')
Else If numero<0 Then
Writeln('El nmero es negativo.')
Else
Writeln('El numero no es positivo ni negativo, es 0.');
Repeat Until Keypressed
End.
EJERCICIO 13
115
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program TRECE;
Uses Crt;
Var Num1,Num2,Num3:Integer;
Begin
Clrscr;
Write('Introduzca un nmero (1) : '); Readln (Num1);
Write('Introduzca un nmero (2) : '); Readln (Num2);
Write('Introduzca un nmero (3) : '); Readln (Num3);
If ((Num1<Num2) And (Num2<Num3)) Then
Write('Los nmeros se han introducido en orden creciente')
Else
Write('Los nmeros no se han introducido e orden creciente');
Repeat Until Keypressed
End.
EJERCICIO 14
Program CATORCE;
Uses Crt,
Var num,Soluc:real;
Begin
Clrscr;
Write('Introduzca un nmero: ');
readln(num);
Writeln;
{multiplicamos y dividimos el numero obtenido}
Soluc:=(num*5)/7;
Write('(',num:5:2,'*5)/7)=',Soluc:5:2);
{Poniendo ":5:2 le decimos el formato de salida del nmero, 5 posiciones y 2
decimales - prueba a cambiarlo como mas te guste}
End.
EJERCICIO 15
Program QUINCE;
Uses Crt;
116
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 16
Program DIECISEIS;
117
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Uses Crt;
Var importe_bruto:Real;
Var descuento, Total:Real;
Begin
ClrScr;
Write('Indique el importe de su factura');
Writeln('Si le "descontamos" algo');
Writeln('');
Readln(importe_bruto);
Writeln('');
{Calcula el importe bruto con descuento del 15%}
descuento:=importe_bruto*0.15;
If importe_bruto>1000 Then
Begin
Writeln('Se merece un descuento de:',descuento:5:2,' PTS');
Total:=importe_bruto - descuento;
Writeln('el total es de la factura es de:',total:5:2,'pts');
End
Else
Write('Con ese dinero no se merece un descuento')
End.
EJERICICIO 17
118
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program DIECISEIS;
Uses Crt;
Var num:Integer;
Begin
num:=2;
ClrScr;
Repeat
Writeln (num);
num:= num+2;
Until num=26;
End.
EJERCICIO 18
Program Diecisiete;
Uses Crt;
Var Sem:Integer;
Begin
ClrScr;
For sem:=1 To 100 Do
Begin
If sem mod 5=0 then
Writeln(Sem);
End;
End.
EJERCICIO 19
119
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program DIECIOCHO;
Uses Crt;
Var Tabla, x, num:Integer;
Begin
ClrScr;
Write('Introduzca un numero para hacer su tabla de multiplicar:');
Readln(num);
Writeln('');
Repeat
Writeln(tabla);
x:=x+1;
Tabla:=num*x;
Until x=11;
Repeat Until Keypressed
End.
EJERCICIO 20
120
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program PruebaDePotencia;
Uses crt;
var
numero1,numero2:integer; (*Variables globales*)
function potencia(a,b:integer):integer; (*Definimos la funcin*)
var
i:integer; (*Locales: para bucles*)
temporal:integer; (*y par el valor temporal*)
begin
temporal:=1; (*inicializacin*)
for i:=1 to b do
temporal:=temporal* a; (*hacemos "b"veces "a*a"*)
potencia:=temporal; (*y finalmente damos el valor*)
end;
begin (*Cuerpo del programa*)
clrscr;
writeln('Potencia de un numero entero');
writeln;
writeln('Introduce el primer numero');
readln(numero1);
writeln('Introduce el segundo numero');
readln(numero2);
writeln (numero1,'elevado a',numero2,'vale',
potencia (numero1,numero2));
Repeat Until Keypressed
end.
EJERCICIO 21
121
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program PruebaDeParametros;
uses Crt;
var dato:integer;
procedure modifica(variable:integer);
Begin
variable:=3;
writeln('Dentro:',variable);
end;
begin
clrscr;
dato:=2;
writeln('Antes:',dato);
modifica(dato);
Writeln('Despus:',dato);
Repeat Until Keypressed
end.
122
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 22
Program PruebaDeParametros2;
Uses crt;
var dato:integer;
procedure modifica(var variable:integer);
begin
variable:= 3;
writeln('Dentro:',variable);
end;
begin
clrscr;
dato:=2;
Writeln('Antes:',dato);
modifica(dato);
writeln('Despues:',dato);
repeat until keypressed
end.
123
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 23
Program PruebaDeFactorial;
Uses crt;
var numero:integer;
function factorial(num:integer):integer;
begin
if num=1 then
factorial:=1 (*Aseguramos que tenga salida siempre*)
else
factorial:=num*factorial(num-1); (*Caso general*)
end;
begin
clrscr;
writeln('Introduce un nmero entero (no muy grande) ;-)');
readln(numero);
writeln('Su factura es',factorial(numero) );
Repeat Until Keypressed
End.
EJERCICIO 24
124
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program PruebaDeCRT;
Uses crt;
var
bucle:byte;
tecla:char;
begin
Clrscr; {Borra la pantalla}
TextoColor(Yellow); {Color amarillo}
TextBackground(red); {Fondo Rojo}
GotoXY(40,13); {Vamos al centro de la pantalla}
Write('Hola'); {Saludamos;-)}
Delay(1000); {Esperamos un segundo}
Window(1,15,80,23);
TextBackground(Blue); {Con fondo azul}
ClrScr; {La borramos para que se vea}
for bucle:=1 to 100
do WriteLn(bucle); {Escribir del 1 al 100}
WriteLn('Pulse una tecla..');
tecla:=Readkey; {esperamos que se pulse una tecla}
Window(1,1,80,25); {Restauramos ventana original}
GotoXY(1,24); {Vamos a la penltima lnea}
Write('Ha pulsado',tecla);{Por eso}
Sound(220); {Sonido de frecuencia 220 Hz}
Delay(500); {Durante medio segundo}
NoSound; {Se acab el sonido}
Delay(2000); {Pausa antes de acabar}
TextColor(LightGray); {Colores por defecto del DOS}
TextBackground(Black); {Y borramos la pantalla}
Clrscr;
Repeat Until Keypressed
End.
EJERCICIO 25
125
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Program Ahorcado;
Uses crt;
Var
Palabra,intento,letras:String;{La palabra a adivinar, la que}
{el jugador 2 va consiguiendo y}
{las letras que se han probado}
oportunidades:integer; {El nmero de intentos permitido}
letra:char; {Cada letra que pueba el jug.dos}
i:integer; {Para mirar cada letra, con "for"}
acertado:boolean; {Si ha acertado alguna letra}
begin
clrscr; {Valores inciales, del jugador 1}
gotoxy(10,5);
write('Jugador1:Que frase hay que adivinar?');
Readln(palabra);
gotoxy(10,7);
write('En cuantos intentos?');
readln(oportunidades);
intento:="; {Relleno con_y " " lo que ve Jug.2}
for i:=1 to length(palabra) do
if palabra[i]='' then
intento:=intento+''
else
intento:=intento+'_';
repeat
clrscr;
gotoxy(10,6); {Digo cuantos intentos le quedan}
writeln('Te quedan',oportunidades,'intentos');
gotoxy(10,8); {Le muestro cmo va}
writeln(intento);
126
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
write('Qu letras');
letra:=readkey;
letras:=letras+letra;
127
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICO 26
PROGRAM EJER26;
Uses Crt;
Var radio:real;
Var longitud,area:real;
Begin
radio:=4;
longitud:=3.1416*radio*radio;
Clrscr;
Write ('Longitud de la Circunferencia:');
Writeln (longitud:5:2);
Write ('Area dela Circunferencia:');
Write (area:5:2);
Repeat Until Keypressed
End.
EJERCICIO 27
Program 27;
Uses Crt;
Var radio:real;
Var volumen:real;
Begin
radio:=3;
volumen:=(4/3)*3.1416*(radio*radio*radio);
ClrScr;
Write ('Volumen de la Esfera:');
Write (volumen);
Repeat Until Keypressed
End.
128
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 28
PROGRAM PROG28;
Uses crt;
Var a,b,c:real;
Var Resultado:Real;
Begin
a:=6;
b:=6;
c:=1;
Resultado:=(-b+sqrt(sqr (b) - 4*a*c)) / (2*a);
ClrScr;
Write ('Resultado:'); Write (resultado:5:2);
Repeat Until Keypressed
End.
EJERCICIO 29
PROGRAM 29;
Uses Crt;
Var radio,altura:real;
Var area,volumen:real;
Begin
radio:=3;
altura:=6;
area:=(2 * (3.1416 * radio * radio)) + ((2 * 3.1416 * radio) * altura);
{podriamos cambiar "radio+radio" por "sqr (radio)" para hacer el cuadrado
del radio}
ClrScr;
129
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 30:
Program 30;
Uses Crt;
Var Arista:real;
var area, Volumen:real;
begin
Arista:=5;
area:= sqr (arista) * sqrt(3);
volumen:= ((sqr(arista) * arista) / 12) * sqrt (2);
Write ('area del tetraedro:');
Writeln (area);
Write ('Volumen del tetraedro:');
130
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Write (volumen);
Repeat Until Keypressed
End.
EJERCICIO 31:
PROGRAM B;
uSES cRT;
Var radio,lado,altura:Real;
Var area, volumen: Real;
Begin
Writeln ('Paracalcular el area y el volumen de un Cono:');
Writeln ('');
Write ('Escriba el valor del radio:');
Readln (radio);
Write ('Escriba el valor del lado:');
Readln (lado);
131
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 32
PROGRAM32B;
Uses Crt;
Var a,b,c:real;
Var volumen:real;
Begin
{calcula el volumen de un elipse}
ClrScr;
Writeln ('para calcular el volumen de un elipsoide escriba:');
Writeln ('');
Write ('A:'); readln (a);
Write ('B:'); readln (b);
132
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 33
Program PROG29;
uSES cRT;
Var cateto1,cateto2:Real;
Var hipotenusa:Real;
Begin
cateto1:=2;
cateto2:=2;
hipotenusa:=sqrt(sqr(cateto1) + sqr(cateto2));
ClrScr;
Write ('HIPOTENUSA DEL TRIANGULOS RECTANGULO:');
Write (hipotenusa:5:2); Write ('cm');
repeat Until Keypressed
End.
EJERCICIO 34
PROGRAM PROG34;
uSES Crt;
Var Fahrenheit, Celsius:real;
Var TIC,T2F:real;
Var respuesta:Char;
Begin
Clrscr;
Repeat
Begin
Write ('Desea pasarlo a Fahrenheit o Celsius? F/C:');
133
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 35
PROGRAM PROG35;
Uses Crt;
Var i_bruto, i_neto, importe:Real;
Const Iva=0.12;
Begin
ClrScr;
Writeln ('');
i_bruto:= i_bruto + (Iva * i_bruto);
If i_bruto>500 then
Begin
134
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 36
PROGRAM PROG36;
Uses Crt;
Var i:Integer;
Var sumacuad:Longint;
Begin
ClrScr;
For i:=1 TO 100 DO
sumacuad:=sumacuad+sqr(i);
Write('suma de cuadrados (1-100)--->'); write(sumacuad);
Repeat Until Keypressed
135
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
End.
EJERCICIO 37
Program PROG37;
Uses Crt;
Var m,m_mar,m_terr:Real;{netros, millas marinas y terrestres}
Begin
ClrScr;
Write ('Introduce el nmero de metros:'); Readln (m);
Write ('');
m_mar:=m/1852;
m_terr:=m/1609;
Write (m:5:2,'metros son:',m_mar:5:2,'millas marinas y ');
Write (m_terr:5:2,'millas terrestres');
End.
EJERCICIO 38:
PROGRAM PROG38;
USES CRT;
Var A,B:Integer;
Var soluc:Integer;
Begin
ClrScr;
Writeln('introduzca dos numeros:');
Writeln;
Write('A:'); Readln(A);
Write('B:'); Readln(B);
136
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Writeln;
Write('A div B=');
soluc:=A div B; {div hace la divisin de 2 numero enteros}
Writeln(soluc);
Writeln;
Write('A mod B='); {mod muestra el resto de una divisin de 2 numeros
enteros}
Write(soluc);
Repeat Until Keypressed
End.
EJERCICIO 39:
PROGRAM PROG39;
Uses Crt;
Begin
ClrScr;
Textcolor(2);
Writeln;
Writeln('*':9);
Writeln('***':10);
Writeln('*****':11);
137
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Writeln('*******':12);
Writeln('*********':13);
Writeln('***********':14);
Writeln('*************':15);
Writeln('*':9);
Repeat Until Keypressed
End.
EJERCICIO 40:
PROGRAM promedio;
Uses Crt;
Var a,b,c,d:Integer;
P:real;
begin
ClrScr;
Write('Ingrese la 1er. nota bimestral:'); readln(a);
Write('Ingrese la 2do. nota bimestral:'); readln(a);
Write('Ingrese la 3ra. nota bimestral:'); readln(a);
138
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 41
PROGRAM SUELDOLIQUIDO;
Uses Crt;
var sb:Integer;
Sliquido,IGSS,IRTRA,VIaticos:Real;
Begin
ClrScr;
Write('Ingrese el sueldo base de un empleado:'); readln(sb);
139
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
IGSS:=sb*2.5/100;
Writeln('Su IGSS es de:','Q',IGSS:2:2);
IRTRA:=sb*2.7/100;
Writeln('Su IRTRA s de:','Q',IRTRA:2:2);
VIATICOS:=sb*3.1/100;
Writeln('sus VIATICOS son de:','Q',VIATICOS:2:2);
sliquido:=Sb-IGSS-IRTRA+VIATICOS;
Writeln('Su sueldo Liquido es de:','Q',Sliquido:2:2);
Repeat Until Keypressed
End.
EJERCICIO 42
PROGRAM PROG42;
uSES cRT;
VAR num_dia_sem:Integer;
Begin
ClrScr;
Write('Da de la semana (numero) ->'); Readln(num_dia_sem);
Case num_dia_sem OF
1: Writeln ('Lunes');
140
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
2: Writeln ('Martes');
3: Writeln ('Miercoles');
4: Writeln ('Jueves');
5: Writeln ('Viernes');
6: Writeln ('Sabado');
7: Writeln ('Domingo');
Else
Writeln ('No es un da de la semana');
End;
Repeat Until Keypressed
End.
EJERC ICIO 43
PROGRAM PROG43;
Uses Crt;
Var num:Integer;
Begin
num:=5;
ClrScr;
While num<=1000 DO
Begin
141
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Writeln (num);
num:= num + 5;
End;
Repeat Until Keypressed
End.
EJERCICIO 44
PROGRAM PROG44;
Uses Crt;
Var v,g,t:Real;
Begin
ClrScr;
g:=9.8;
Write ('Velocidad inicial (m/s) ->'); Readln(v);
Write ('Tiempo (s) -------------->'); readln(t);
Write ('Velocidad instantanea:'); Writeln (v-(g*t):5:2);
Repeat Until Keypressed
End.
EJERCICIO 45
PROGRAM PROG45;
Uses Crt;
Var num1,num2,temp:Integer;
Begin
ClrScr;
Write ('Numero 1:'); readln (num1);
Write ('Numero 2:'); readln (num2);
142
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 46
PROGRAM PROG46;
Uses Crt;
{Las variables son: horas, minutos y segundos}
{Son las horas, minutos y segundos introducidos por el usuario}
Var h,m,s:Integer;
Var h2,m2,S2:Integer;
143
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
EJERCICIO 47
PROGRAM PROG47;
uSES cRT;
VAR temp,num,fac:Longint;
Begin
ClrScr;
144
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
fac:=1;
temp:=num;
Write('Introduzca un numero ->'); Readln (num);
temp:=num;
While num>1 DO
Begin
fac:=fac*num;
num:=num-1;
End;
Write('el factorial de'); Write (temp); Write('es');
Write(fac);
Repeat Until Keypressed
End.
EJERCICIO 48
Program PRog48;
Uses Crt;
Var i:Integer;
Var num,suma:Real;
Begin
Clrscr;
145
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
i:=0;
Repeat
Write('Introduzca un numero:');
Readln(num);
suma:=suma+num;
i:=i+1
until i=5;
Write('La media es:'); Writeln(suma/i:5:2);
Repeat Until Keypressed
End.
EJERCICIO 49
Program Prog49;
Uses Crt;
Var x:Integer;
Var suma:Real;
Begin
ClrScr;
FOR x:=1 TO 100 DO
Begin
suma:= suma + (sqr(x));
End;
Write (suma);
Repeat Until Keypressed
End.
EJERCICIO 50
Program PROG50;
Uses Crt;
Var m,m_mar,m_terr:Real;{netros, millas marinas y terrestres}
Begin
ClrScr;
Write ('Introduce el nmero de metros:'); Readln (m);
146
Academia Comercial de Mecanografa y Computacin OLIMPIA
2da. Calle 2-17, Zona 3, Barrio El Cndor Jutiapa
Telfono: 78442369
Write ('');
m_mar:=m/1852;
m_terr:=m/1609;
Write (m:5:2,'metros son:',m_mar:5:2,'millas marinas y ');
Write (m_terr:5:2,'millas terrestres');
End.
EJERCICIO 51
Program PRog51;
Uses Crt;
Var i:Integer;
Var num,sumaneg:real;
Begin
ClrScr;
sumaneg:=0;
FOR i:=1 TO 10 DO
Begin
Write('Numero'); write(i); write('->');
Readln(num);
If num<0 Then
sumaneg:=sumaneg+num;
End;
Write('suma de negativos:');
Write(sumaneg);
Repeat Until Keypressed
End.
147