You are on page 1of 45

UNIVERSIDAD MAYOR DE SAN SIMON

FACULTAD DE CIENCIAS Y TECNOLOGIA


COMPUTACION PARA INGENIERIA

CAPITULO I.- ENTORNO DE DELPHI 7

BARRA DE MENUS

BARRA DE HERRAMIENTAS O COMPONENTES


Es desde la cual se selecciona los componentes que se colocan en el diseador visual

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

FORMULARIO O AREA DE TRABAJO


Permite ver en tiempo de diseo como se vern las cosas en tiempo de ejecucin

INSPECTOR DE OBJETOS
Nos permite cambiar las caractersticas de un componente

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

EDITOR DE CODIGO UNIT (F11)


Contiene todo un arsenal de herramientas para facilitar y acelerar la escritura de cdigo
fuente con el uso del formulario (utilizando componentes)

EDITOR DE CODIGO PROJECT


Contiene todo un arsenal de herramientas para facilitar y acelerar la escritura de cdigo
fuente sin el uso del formulario (sin utilizar componentes, solo cdigo)

PASO 1

PASO 2

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

TIPOS DE CUADROS DE MENSAJES


SALIDA
SHOWMESSAGE
Showmessage(Expresion_de_texto);
Ejemplo:
Showmessage(Hola es mi primer Programa);

SHOWMESSAGEPOS

ShowmessagePos(Expresion_de_texto, Posicin en X, Posicin en Y);


Ejemplo:
ShowmessagePos(Hola es mi Primer Programa,100,30);

ENTRADA
INPUTBOX
Inputbox(Nombre_de_la_ventana,Mensaje,Valor de campo);
Ejemplo:
InputBox('suma de datos','ingrese un numero','10') ;

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

CAPITULO 2.- VARIABLES Y CONSTANTES


QUE ES UNA VARIABLE?
Es un espacio de memoria reserva que almacena un tipo de dato, tiene que tener un
nombre cualquiera por ejemplo nombre, variable, dato, x, y, etc.

DECLARACION DE VARIABLES
Para poder declarar las variables o indicar que tipo de variables vamos a utilizar en el
programa se debe definir despus de la palabra reservada VAR y antes de BEGIN
VAR
NomVar:=TipoDeDato;
BEGIN

Ejemplo:
VAR
edad : integer;
nombre : string;
sis : long;
estatura : double;
puntuacin : real;
varon : boolean;
a,b,c:integer;
BEGIN

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

TIPOS DE DATOS

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

ASIGNACION
Una vez definida la variable y el tipo de dato, hay que darle un valor y para eso se sigue la
siguiente sintaxis.
NomVar:=Expresion;
Ejemplo:
Edad:=12;
Nombre:=joseph;
Estatura:=1.65;

Tambien se puede realizar operaciones en una asignacin

Ejemplo:
Suma:=2+8;

DECLARACION DE CONSTANTES
Para poder declarar una constantes primero se pone la palabra reservada CONST y
seguida del nombre de la constante y su respectivo valor.

CONST
NomConst:=valor;
Ejemplo:
CONST
Pi:=3.1416;
ConstA:=10000;

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

OPERADORES
OPERADORES MATEMATICOS

OPERADORES LOGICOS

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

FUNCIONES MATEMATICAS
Delphi tiene funciones que permiten cambiar tipos de datos, para poder utilizarlas
debemos escribir el nombre de la unidad Sysutils, debajo de la instruccin Uses. A
continuacin se mencionan las funciones mas utilizadas.

TRUNC.- Esta funcin permite asignar un nmero real (decimal) a una variable de tipo
byte, Word o integer. Recibe como parmetro un nmero real y retorna dicho nmero sin
parte decimal. No hace redondeo, solo elimina la parte que est despus del punto
decimal.

Ejemplo:
a : integer;
f : real;
f : =1.8934;
a := TRUNC (f); // Resultado a = 1

STRTOINT.- Permite asignar un tipo string (cadena de caracteres) que contiene en su


interior un nmero a una variable de tipo entero. Si la cadena no contiene un nmero, sino
letras, se produce un error.

Ejemplo:
a : string;
b : integer;
a := 123;
b .= STRTOINT (a); // Resultado b=123

INTTOSTR.- Es la contraria de la funcin anterior. Permite convertir un nmero entero


a cadena.

Ejemplo:
a : integer;
b : string;
a := 12;
b := el valor de a es + INTTOSTR (a); // b= el valor de a es 12

STRTOFLOAT.- Permite asignar un string que contiene en su interior un nmero a una


variable de tipo real. Si la cadena no contiene un nmero, sino letras, se produce un
error.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Ejemplo:
a:string;
b:double;
a : = 123.45;
b : = STRTOINT (a); // Resultado b=123.45

FLOATTOSTR.- Es la contraria de la funcin anterior. Permite convertir un nmero


real a string.

Ejemplo:
a : = FLOATTOSTR (b); // Resultado b=123.45

DEGTORAD().- Es una funcin que convierte de grados a radianes


Ejemplo:
a : = sin(degtorad(30)) // Resultado a=0.5
a : = sin(30) // Resultado a=-0.9880316241
// el ultimo a es un resultado en radianes

COMENTARIOS
Es posible incluir en el cdigo, texto aclarativo que ayude a entender lo que la instruccin
esta realizando. A ese texto se le denomina comentario.
En Delphi hay 3 formas distintas de poner comentarios:
_ Encerrando el texto aclarativo entre llaves { })
_ Encerrando el texto aclarativo entre parntesis y asterisco (* *)
_ Anteponiendo al texto dos smbolos de diagonal (//). nicamente una lnea de
texto.

Ejemplo:
(*
Todo esta parte es un comentario
*)
BEGIN {Esto tambin es un comentario}
a := b + c; // Aqu se realiza una suma
showmessage(a);
END;
Nota.- Los comentarios no son considerados por Delphi como parte del cdigo. Su nica
funcin es la de aclarar el cdigo.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
EJEMPLO:
PROGRAMA QUE SUMA 2 NUMEROS ENTEROS

program Sum;
uses
forms, dialogs, sysutils;
var
suma,a,b:integer;
begin
a:=strtoint(inputbox('A','Ingrese el valor de A',' '));
b:=strtoint(inputbox('b','Ingrese el valor de b',' '));
suma:=a+b;
showmessage('La suma es: '+inttostr(suma));
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Ejemplo1:
PROGRAMA PARA SUMAR 2 NUMEROS
procedure TForm1.Button1Click(Sender: TObject);
var
valor1,valor2,suma:integer;
begin
valor1:=strtoint(edit1.text);
valor2:=strtoint(edit2.text);
suma:=valor1+valor2;
showmessage('la suma es: '+inttostr(suma));
end;
end.

Ejemplo 2:
PROGRAMA PARA CALCULAR LA DISTANCIA ENTRE 2 PUNTOS
procedure TForm1.Button1Click(Sender: TObject);
var
x1,y1,x2,y2:integer;
distancia:double;
begin
x1:=strtoint(edit1.text);
y1:=strtoint(edit2.text);
x2:=strtoint(edit3.text);
y2:=strtoint(edit4.text);
distancia:=sqrt(sqr(x2-x1)+sqr(y2-y1));
edit5.Text:=floattostr(distancia);
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

CAPITULO III.- ESTRUCTURAS DE


SELECCION
IF THEN ELSE
Esta instruccin permite evaluar una condicin y realizar distintas operaciones, si la
condicin resulta verdadera o falsa; es decir en caso que la condicin resulte verdadera se
har un codigo1, si es falsa se ejecutar un codigo2
If (condicin)then
begin
codigo1
end
else
begin
codigo2
end;

Ejemplo3:
DADO UN NMERO DETERMINAR SI ES POSITIVO O NEGATIVO
procedure TForm1.Button1Click(Sender: TObject);
var
numero:integer;
begin
numero:=strtoint(edit1.Text);
if(numero>0)then
begin
showmessage('Positivo');
end
else
begin
showmessage('Negativo');
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

IF THEN ELSE ANIDADO


A continuacin de la palabra reservada THEN se pueden ejecutar secuencias de
instrucciones las cuales pueden ser de cualquier tipo. Es posible colocar un IF dentro del
bloque THEN de otro, a estas instrucciones de IFs encadenados se le denomina
anidamiento.
Es muy importante a tomar en cuenta que cuando se colocan anidamientos es
recomendable colocar las instrucciones BEGIN y END entre THEN y ELSE de este modo se
sabe exactamente a que IF pertenece cada ELSE.
Ejemplo4:
INDICAR SI UN NUMERO ES POSITIVO Y PAR AL MISMO TIEMPO
procedure TForm1.Button1Click(Sender: TObject);
var
num:integer;
begin
num:=strtoint(edit1.text);
if(num>0)then
begin
if(num mod 2=0)then
showmessage('Es un numero positivo y par')
else
showmessage('Es un numero positivo pero no es par');
end
else
begin
showmessage('No es un numero positivo');
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Ejemplo5:
DADO 2 NUMEROS INDICAR EL MAYOR
procedure TForm1.Button1Click(Sender: TObject);
var
numero1,numero2,mayor:integer;
begin
numero1:=strtoint(edit1.Text);
numero2:=strtoint(edit2.Text);
if(numero1=numero2)then
begin
label4.caption:='Son iguales';
end
else
if(numero1>numero2)then
begin
label4.caption:='El mayor es: '+inttostr(numero1);
end
else
begin
label4.caption:='El mayor es: '+inttostr(numero2);
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Ejemplo 6:
DADA LA EDAD DE UNA PERSONA INDICAR SI:
0-12
nio
13-21
Adolescente
22-35
Joven
36-50
Adulto
>50
Adulto Mayor
procedure TForm1.Button1Click(Sender: TObject);
var
edad:integer;
begin
edad:=strtoint(edit1.text);
if(edad<0)then
begin
edit2.text:=('Error...!');
end;
if(edad>=0) and (edad<=12)then
begin
edit2.text:=('Nio');
end;
if(edad>=13) and (edad<=21)then
begin
edit2.text:=('Adolescente');
end;
if(edad>=22) and (edad<=35)then
begin
edit2.text:=('Joven');
end;
if(edad>=36) and (edad<=50)then
begin
edit2.text:=('Adulto');
end;
if(edad>=51)then
begin
edit2.text:=('Adulto Mayor');
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

CASEOF
Donde variable es el identificador de la variable que ser comprobada y valor1,
valor2... son los diferentes valores que puede tomar dicha variable.
Case (variable) of
valor1: begin codigo1;end;
valor2: begin codigo2;end;
valor3: begin codigo3;end;
.
.
.
valorN: begin codigo N;end;
Else begin codigo;end
End;
Ejemplo 7:
DADO UN NUMERO INDICAR EL DIA DE LA SEMANA
procedure TForm1.Button1Click(Sender: TObject);
var numero:integer;
begin
numero:=strtoint(edit1.text);
case numero of
1:begin showmessage('El dia de la semana es: Lunes');end;
2:begin showmessage('El dia de la semana es: Martes');end;
3:begin showmessage('El dia de la semana es: Miercoles');end;
4:begin showmessage('El dia de la semana es: Jueves');end;
5:begin showmessage('El dia de la semana es: Viernes');end;
6:begin showmessage('El dia de la semana es: Sabado');end;
7:begin showmessage('El dia de la semana es: Domingo');end;
else begin showmessage('Error...! Ingrese un Numero Valido');end
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Que es un Evento?
Es la accin que realiza el usuario sobre una herramienta o componente (button, label, edit, etc.)
Parmetro Sender
Este parmetro permite saber cul es la componente que recibi el evento.
(se refiere al Edit1 para el ejemplo)
FUNCION ORD(X)
La funcin Ord(); se usa para obtener el valor ASCII de un determinado nmero entero.
Ejemplo:
ord(a)=97
ord(key)=13
ord(t)=116

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Ejemplo 8:
REALIZAR UN PROGRAMA QUE CONVIERTA DE HORAS A MINUTOS Y SEGUNDOS
RESPECTIVAMENTE
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
horas,minutos,segundos:double;
begin
case ord(key) of
13:begin
if(sender=edit1)then
horas:=strtofloat(edit1.text);
minutos:=horas*60;
segundos:=horas*3600;
edit2.text:=floattostr(minutos);
edit3.text:=floattostr(segundos);
end;
end;
end;
procedure TForm1.Edit1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
var
horas,minutos,segundos:double;
begin
case ord(key) of
13:begin
if(sender=edit2)then
minutos:=strtofloat(edit2.text);
horas:=minutos/60;
segundos:=minutos*60;
edit1.text:=floattostr(horas);
edit3.text:=floattostr(segundos);
end;
end;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
var
horas,minutos,segundos:double;
begin
case ord(key) of

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
13:begin
if(sender=edit3)then
segundos:=strtofloat(edit3.text);
horas:=segundos/3600;
minutos:=segundos/60;
edit1.text:=floattostr(horas);
edit2.text:=floattostr(minutos);
end;
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

CAPITULO IV.- ESTRUCTURAS DE


REPETICION
En algunos programas, es necesario repetir la misma accin un nmero determinado de
veces, hasta que se cumpla una accin determinada.
En Delphi existen 3 tipos distintos de bucles o ciclos.

REPEATUNTIL
Se utiliza para repetir las mismas acciones o cdigos hasta que se cumpla una condicin
determinada.

Repeat
codigo
Until condicin;
Ejemplo9:
GENERAR LA TABLA DE MULTIPLICAR DEL 2

procedure TForm1.Button1Click(Sender: TObject);


var
i,j,res:integer;
begin
i:=2;
j:=1;
repeat
res:=i*j;
listbox1.Items.Add('2*'+inttostr(j)+ '= '+inttostr(res));
j:=j+1;
until j=10;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

WHILEDO
Se utiliza para repetir las acciones o cdigo mientras se cumpla una condicin.
En el momento que la condicin deje de cumplirse, el bucle terminar y seguir con la
siguiente instruccin del cdigo.
Su sintaxis es:
While (condicin)do
Begin
codigo
End;
Ejemplo10:
GENERAR LA TABLA DE MULTIPLICAR DEL 2
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,res:integer;
begin
i:=2;
j:=1;
while (j<11) do
begin
res:=i*j;
listbox1.Items.Add('2*'+inttostr(j)+ '= '+inttostr(res));
j:=j+1;
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

FOR..TO..DO
For variable:=valor inicial to valor final do
Begin
Codigo
End;
Ejemplo11:
GENERAR LA TABLA DE MULTIPLICAR DEL 2
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,res:integer;
begin
i:=2;
for j:=1 to 10 do
begin
res:=i*j;
listbox1.Items.Add('2*'+inttostr(j)+ '= '+inttostr(res));
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Ejemplo12:
PROGRAMA PARA UNA SUMA CUBICA
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,hallado:integer;
s:string;
begin
s:='a'+#9+'b'+#9+'c'+#9+'d'+#9+'N'+#13;
for a:=1 to 100 do
for b:=1 to 100 do
for c:=1 to 100 do
for d:=1 to 100 do
if(a*sqr(a)+b*sqr(b))=(c*sqr(c)+d*sqr(d))then
if(a<>b)and(a<>c)and(a<>d)and(b<>c)and(b<>d)and(c<>d)then
begin
s:=s+inttostr(a)+#9+inttostr(b)+#9+inttostr(c)+#9+inttostr(d)+#9+inttostr(c*sqr(c)+d*sqr(d));
showmessage(s);
hallado:=1;
if hallado=1 then
exit
end;
end;
end.

Ejemplo 13:
PROGRAMA PARA CALCULAR CUANTOS DIGITOS TIENE UN NUMERO
procedure TForm1.Button1Click(Sender: TObject);
var
num,cont:integer;
begin
num:=strtoint(edit1.text);
cont:=0;
while(num>0)do
begin
num:=num div 10;
cont:=cont+1;
end;
showmessage(' tiene '+inttostr(cont)+' digitos');
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

FOR..DOWNTO..DO
Se utiliza para efectuar un nmero concreto de repeticiones la misma secuencia de acciones, pero a
diferencia del anterior va decrementando el contador en una unidad. Su sintaxis es:
For variable:=valor inicial downto valor final do
Begin
Codigo
End;
Ejemplo 14
PROGRAMA PARA GENERAR NMEROS DEL 20 AL 1
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=20 downto 1 do
begin
listbox1.Items.Add(inttostr(i));
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

CAPITULO V.- INSTRUCCIONES


Una instruccin es la descripcin de una accin o proceso que se puede ejecutar.

CLASES DE EXCEPCIONES
Las excepciones en Delphi se pueden dividir en las siguientes cinco categoras:
Conversin de tipo.-Se producen cuando se trata de convertir un tipo de dato en otro, por
ejemplo utilizando las funciones INTTOSTR, STRTOINT, STRTOFLOAT. Delphi
dispara una excepcin EConvertError.

Tipo forzado (typecast).-Se producen cuando se trata de forzar el reconocimiento de una


expresin de un tipo como si fuera de otro usando el operador AS. Si no son compatibles,
se dispara la excepcin EInvalidCast.
Aritmtica de punto flotante.-Se producen al hacer operaciones con expresiones de tipo
real(numero decimal). Existe una clase general para este tipo de excepciones
EmathError, pero Delphi utiliza slo los descendientes de sta:
EinvalidOp: el procesador encontr una instruccin invlida.
EzeroDivide: divisin por cero.
Eoverflow: se excede en ms la capacidad aritmtica (nmeros demasiado grandes).
Eunderflow: se excede en menos la capacidad aritmtica (nmeros demasiados pequeos).
Aritmtica entera.-Se producen al hacer operaciones con expresiones de tipo entero.
Existe una clase general definida para este tipo de excepciones llamada EintError, pero
Delphi slo utiliza los descendientes:
EDivByZero: divisin por cero.
ERangeError: nmero fuera del rango disponible segn el tipo de dato.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

INSTRUCCIN TRYEXCEPT
Para proteger una porcin de cdigo se debe encerrar en un bloque TRY...EXCEPT.
Entre estas dos palabras reservadas se ubica el cdigo que est expuesto a errores
(excepciones), despus de EXCEPT se procesan estos ltimos, cerrando todo el bloque
con END.
La sintaxis es:
TRY
{Bloque de cdigo propenso a errores}
EXCEPT
ON <clase de excepcin> DO
{Una sola instruccin o un bloque BEGIN..END}
ON <otra excepcin diferente> DO
END;

Ejemplo 15:
PROGRAMA PARA DIVIDIR 2 NUMEROS
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:integer;
res:double;
begin
try
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
res:=a/b;
edit3.text:=floattostr(res);
except
on EZeroDivide do
showmessage('Error Division entre 0, ingrese otro denominador');
on EconvertError do
showmessage('Error el numero que ingreso es demasiado largo');
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

INSTRUCCIN TRYFINALLY
Hay ocasiones que es necesario ejecutar una porcin de cdigo suceda un error o no.
Para esto, existe en Delphi la estructura TRYFINALLY. Cuando se produce un error
dentro de este bloque, se suspende el tratamiento de la excepcin para ejecutar el cdigo
que sigue a FINALLY. Luego de terminado, se sigue con el proceso normal del proceso
de error.

Su sintaxis es la siguiente:
TRY
{Cdigo expuesto a errores}
FINALLY
{Cdigo de ejecucin obligatoria}
END;

CAPITULO VI.- PROCEDIMIENTOS Y


FUNCIONES
Delphi, utiliza un lenguaje estructurado como Object Pascal, lo cual indica que los
programas escritos en este lenguaje, pueden descomponerse en pequeos mdulos que
pueden ser llamados cuando se los necesite. Estos mdulos en Delphi se llaman funciones
y procedimientos, se identifican mediante un nombre.
Los procedimientos y las funciones, referidas colectivamente como rutinas, contienen
bloques de cdigo.
Un procedimiento es una rutina que no devuelve un valor.
Una funcin es una rutina que devuelve un valor cuando se ejecuta.
Toda funcin que no devuelve valores, o que no realiza operaciones matemticas o genera
resultados numricos, recibe el nombre de procedimiento.

DECLARACION DE FUNCIONES Y PROCEDIMIENTOS


Cuando se declara un procedimiento o funcin, se debe especificar su nombre, el nmero
y tipo de parmetros que toma, y, en el caso de una funcin, el tipo del valor que retorna,
esta parte de la declaracin es algunas veces llamado prototipo, encabezamiento, o

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
cabecera. A continuacin se escribe el bloque de cdigo que se ejecuta cuando la funcin
es llamada, esta parte es llamada el cuerpo de la rutina.
Declaracin de Procedimientos.Un procedimiento se declara utilizando la palabra reservada PROCEDURE, y al final de la
lista de argumentos no se pone ningn tipo de valor de respuesta, pues no arroja ningn
resultado.
La declaracin de un procedimiento tiene la siguiente forma:

PROCEDURE Procedurename (parameterList);


BEGIN
statements;
END;
Donde:
Procedurename es el nombre del procedimiento
parameterList es un tipo de dato de entrada
statements es una secuencia de lneas de cdigo que se ejecuta cuando es llamado.
Ejemplo 16: Hacer un procedimiento para mostrar mensajes
procedure di(mensaje:string);
begin
showmessage(mensaje);
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
di('hola');
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Ejemplo 17: Hacer un procedimiento para mostrar el cuadrado de un numero
procedure cuadrado(var n:integer);
begin
n:=n*n;
end;

procedure TForm1.Button1Click(Sender: TObject);


var
a,res:integer;
begin
a:=strtoint(edit1.text);
cuadrado(a);
res:=a;
showmessage(inttostr(res));
end;
end.

Declaracion de Funciones.La declaracin de una funcin es como la declaracin de procedimientos, excepto que se
utiliza la palabra reservada FUNCTION, se especifica un tipo de regreso y un valor de
regreso. La declaracin de una funcin tiene la siguiente forma:

FUNCTION functionName(parameterList): returnType;


BEGIN
statements;
END;
Donde:
functionName es el nombre de la funcin
parameterList son los datos de entrada
returnType es el tipo de dato a retornar
statements es una secuencia de lneas de cdigo que se ejecuta cuando la funcin es
llamada.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Ejemplo 18: Hacer una funcin para leer nmeros positivos


function Leernumero():integer;
var s:integer;
begin
s:=-1;
while(s<0)do
begin
s:=strtoint(inputbox('dato','ingrese numero',' '));
Leernumero:=s;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a,b,res:integer;
begin
a:=Leernumero();
showmessage(inttostr(a));
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Ejemplo 19: Hacer una funcin para sumar 2 numeros
function sum(a,b:integer):integer;
var s:integer;
begin
s:=a+b;
sum:=s;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a,b,res:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
res:=sum(a,b);
showmessage(inttostr(res));
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

ARCHIVOS
Un archivo o fichero es una estructura de datos que, normalmente, se almacena en la
memoria auxiliar (disco duro, cinta o disquete) de una computadora. No tiene un tamao
fijo, necesariamente. Se referencia por un nombre o identificador. La informacin se
traspasa de la memoria principal hacia l, de l a la memoria principal a travs de una
memoria intermedia (buffer), y por medio de procedimientos de lectura/escritura
(Entradas/Salidas).
Tratamiento de archivos de texto.- Los pasos para el tratamiento de un archivo de texto
son:

Declaracin del manipulador interno del archivo.


Asignacin del manipulador interno a un archivo externo.
Apertura del archivo para el modo de proceso que se iniciara.
Lectura o escritura de los datos desde o en el archivo (segn la apertura).
Cierre del archivo.

Declaracin del manipulador interno del archivo.- Declarar una variable de tipo TextFile
y asociar a esta variable (manipulador interno) un nombre de archivo externo.
Nombre_Archivo:TextFile;
Ejemplo:
PROGRAM archivodetexto;
USES Dialogs;
VAR
Documento:TextFile;

Asignacin del manipulador interno a un archivo externo.- Asociar una variable de tipo
archivo externo almacenado en el disco.
AssignFile( Nombre:Archivo, Direccion_Archivo_Nombre_y_Tipo_De_Archivo);
Ejemplo:

PROGRAM archivodetexto;
USES Dialogs;
VAR
Documento: TextFile;

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
BEGIN
AssignFile (documento, c:/prueba.txt );
END.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Arreglos o Vectores
Declarar una variable
Var
Nom_variable:array[1..n]of Integer;
Ejemplo 20:
PROGRAMA QUE LEA 5 NUMEROS Y LOS MUESTRE
procedure TForm1.Button1Click(Sender: TObject);
var
notas:array[1..5]of integer;
i:integer;
begin
for i:=1 to 5 do
begin
notas[i]:=strtoint(inputbox('Notas','Ingrese la nota',''));
end;
for i:=1 to 5 do
begin
listbox1.items.add(inttostr(notas[i]));
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Matrices
Declarar una variable
Var
Nom_variable:array[1..n,1..n]of Integer;

Ejemplo15
Programa para ingresar nmeros dentro una matriz de 3x3
procedure TForm1.Button1Click(Sender: TObject);
var
numero:array[1..3,1..3]of integer;
i,j:integer;
mostrar:string;
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
numero[i,j]:=strtoint(inputbox('Numeros','Ingrese Numero',' '));
end;
for i:=1 to 3 do
begin
for j:=1 to 3 do
mostrar:=mostrar+inttostr(numero[i,j])+#9;
mostrar:=mostrar+#13;
end;
showmessage(mostrar);
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

Ejemplo16 :
CRUCIGRAMA
program crucigrama;
uses
forms,dialogs,sysutils;
var
a:array[1..50,1..50]of string;
s,t:string;
i,j,n:integer;
begin
s:=inputbox('Ingrese Nombre','valor','juan');
n:=length(s);
for i:=1 to n do
begin
a[1,i]:=s[i];
a[i,1]:=s[i];
a[n,i]:=s[n+1-i];
a[i,n]:=s[n+1-i];
end;
for i:=1 to n do
begin
for j:=1 to n do
t:=t+a[i,j]+#9;
t:=t+#13;
end;
showmessage('crucigrama'+#13+t);
end.

GRAFICAS CON EVENTO ONPAINT


SIN IMAGE
Parametros
procedure TForm1.FormPaint(Sender: TObject);

begin
with canvas do
begin
codigo
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Pen.color:=clblack;
Pen.width:=2;
Brush.color:=clblue;
Brush.style:=bscross;

Color del Borde


Grosor del color de borde
Color de Fondo
Entramando de Fondo

GRAFICA CON RECTANGLE

Rectangle( X1, Y1, X2, Y2: Integer );


X1, Y1 -> Son las coordenadas de la esquina superior izquierda del rectngulo
X2, Y2 -> Son las coordenadas de la esquina inferior derecha del rectngulo

procedure TForm1.FormPaint(Sender: TObject);


begin
with canvas do
begin
pen.Color:=clblack;
pen.Width:=2;
brush.Color:=clblue;
Rectangle(100,100,250,250);
end;
end;
end.

GRAFICA CON ELLIPSE

Ellipse( X1, Y1, X2, Y2: Integer );


X1, Y1 -> Son las coordenadas de la esquina superior izquierda de la elipse
X2, Y2 -> Son las coordenadas de la esquina inferior derecha del la elipse

procedure TForm1.FormPaint(Sender: TObject);


begin
with canvas do
begin
pen.Color:=clblack;

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
pen.Width:=2;
brush.Color:=clblue;
brush.Style:=bscross;
ellipse(100,100,250,250);
end;
end;
end.

GRAFICA CON ROUNDRECT

RoundRect( X1, Y1, X2, Y2, X3, Y3: Integer );


X1, Y1 -> Son las coordenadas de la esquina superior izquierda
X2, Y2 -> Son las coordenadas de la esquina inferior derecha
X3, Y3 -> Es grado de redondeo de las esquinas (cuanto ms grande ms redondeado)

procedure TForm1.FormPaint(Sender: TObject);


begin
with canvas do
begin
pen.Color:=clblack;
pen.Width:=3;
brush.Color:=clred;
roundrect(300, 150, 380, 200, 30, 30);
end;
end;
end.

GRAFICA CON POLYLINE


procedure TForm1.FormPaint(Sender: TObject);
begin
with canvas do
begin
canvas.Polyline([point(50,50),point(100,50),point(100,100),point(50,100),point(50,50)]);
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

GRAFICAR CON POLYGON


procedure TForm1.FormPaint(Sender: TObject);
begin
with canvas do
begin
Polygon([point(50,50),point(100,50),point(100,100),point(50,100)]);
end;
end;
end.

GRAFICANDO CON POLYLINE


procedure TForm1.FormPaint(Sender: TObject);
begin
with canvas do
begin
pen.color:=clblue;
pen.width:=2;
polyline([point(20,30),point(20,50),point(20,40),point(30,40),point(30,30),point(30,50)]);
polyligon([point(40,30),point(40,50),point(50,50),point(50,30)]);
polyline([point(60,30),point(60,50),point(70,50)]);
polyline([point(80,50),point(80,30),point(90,30),point(90,50),point(90,40),point(80,40)]);
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
USANDO ARC
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with canvas do
begin
polyline([point(40,30),point(40,20),point(30,20)]);
polyline([point(20,30),point(20,40)]);
polyline([point(30,50),point(40,50),point(40,40),point(30,40)]);
arc(20,20,40,40,30,20,20,30);
arc(20,30,40,50,20,40,30,50);
end;
end;
end.

GRAFICAS CON IMAGE


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with image1 do
begin
canvas.Pen.Color:=clblue;
canvas.pen.Width:=2;
canvas.Polyline([point(50,50),point(100,50),point(100,100),point(50,100),point(50,50)]);
end;
end;
end.

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA
Estilos para el Brush.Style

Bscross

bsdiagcross

bshorizontal

bsvertical

bsbdiagonal

bsfdiagonal

Aux. Univ. Joseph Bill Salvatierra

UNIVERSIDAD MAYOR DE SAN SIMON


FACULTAD DE CIENCIAS Y TECNOLOGIA
COMPUTACION PARA INGENIERIA

SALARIO MENSUAL
procedure TForm1.Button1Click(Sender: TObject);
var
nhoras,tarifa,dif,sb1,sb2,sb,difsb,sneto:double;
begin
nhoras:=strtofloat(edit1.text);
tarifa:=strtofloat(edit2.text);
if( nhoras>45)then
begin
dif:=nhoras-45;
sb1:=45*tarifa;
sb2:=dif*tarifa*1.3;
sb:=sb1+sb2;
end
else
sb:=nhoras*tarifa;
if(sb>600)then
begin
difsb:=sb-600;
if(difsb>400)then
begin
sneto:=400*0.82+(difsb-400)*0.55+600;
end
else
sneto:=difsb*0.82+600;
end
else
begin
sneto:=sb;
end;
Edit3.text:=floattostr(sneto);
end;
end.

Aux. Univ. Joseph Bill Salvatierra