Documentos de Académico
Documentos de Profesional
Documentos de Cultura
5
ESTRUCTURAS REPETITIVAS – Repeat
LAZOS DE CONTROL
Los lazos nos permiten ejecutar una secuencia de instrucciones repetidamente usando
una condición de control o variable para determinar cuando debe detenerse la
ejecución. Object Pascal tiene tres tipos de lazos de control: Las Sentencias repeat,
while y for,
La Sentencia REPEAT
El formato de la sentencia Repeat es:
repeat
sentencia1;
……
sentencian;
until expresión;
La primera vez se ejecuta todo el cuerpo del ciclo. Luego se prueba la condición until. Si
la condición es falsa, se vuelve a ejecutar todo el ciclo y a probar la condición. Este
proceso se repite hasta que la condición resulta verdadera. La primera vez que la
condición es True, el flujo sale del ciclo. Al llegar en un programa a un ciclo repeat-until,
el cuerpo del ciclo se ejecutara al menos una vez, porque la condición de salida se
prueba ala final del ciclo.
El ultimo punto y coma de la palabra until es opcional.
La clausula begin después del repeat y end antes de until son innecesarias porque las
palabras reservadas repeat y until marcan el inicio y el final del cuerpo del ciclo.
Ciclos Anidados
Cuando un ciclo esta completamente contenido en el cuerpo del otro, se dice que los
ciclos están anidados.
1) Seno aproximado
Diseñe una aplicación que calcule el valor de la siguiente serie:
1
Hasta que el termino enésimo cumpla con
2
If key=#13 Then BitBtn1.SetFocus;
If not (key in ['0'..'9',#8]) Then key:=#0
end;
Asociemos un procedimiento al control BitBtn1 accionado por el evento OnClick.
Aquí se convertirá previamente el ángulo a radianes, se calculara el K-ésimo término
añadiéndolo finalmente al acumulador S hasta que supere a la cota.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s,xSex,xRad,term:real;
k:integer;
begin
xSex:=StrToFloat(Edit1.Text);
xRad:=(xSex*Pi)/180;
s:=0;term:=xRad;k:=1;
Repeat
s:=s+term;
term:=(-1)*term*(xRad*xRad)/((k+2)*(k+1));
k:=k+1
Until (Abs(term)<1E-12);
Edit2.Text:=FloatToStr(xRad);
Edit3.Text:=FloatToStr(s)
end;
El Programa ejecutándose:
3
Empezar con R0 = x/2 como aproximación, luego calcular las aproximaciones R1, R2,
….., como sigue:
Ri = ( Ri-1 + x/Ri-1)/2 donde i = 1, 2, 3, ….
Const
Cota = 1 E -02
4
ant,dif,x,R:real;
begin
if key=#13 then
begin
try
x:=StrToFloat(Edit1.Text);
R:=x/2;
Repeat
ant:=R;
R:=(ant+x/ant)/2;
dif:=Abs(x-R*R)
Until dif<cota;
Label2.Caption:='R= '+FloatToStrF(R,ffFixed,10,12);
Edit1.SetFocus;
Edit1.SelStart:=0;
Edit1.SelLength:=Length(Edit1.Text)
except
on EConvertError do
ShowMessage('El número es muy grande')
end
end;
if not (key in ['0'..'9',#8]) then key:=#0
end;
Programa ejecutándose:
….
Try
// Código de acceso al recurso
Except
// Código para manejar el recurso
on Tipo de excepción do begin
// Codigo para manejar este tipo de error
end;
….
on Tipo de excepción do begin
// En caso de que la excepción no sea soportada
raise;
end;
end.
Función FloatToStrF
Convierte un valor de punto flotante a una cadena, usando un formato especifico,
Precisión y Dígitos
Formato
FloatToStrF(Valor, formato, Precisión, Dígitos)
Tipo Precisión
Single <= 7
Double =< 15
Extended <= 18
Los parámetros Dígitos y Formato juntos controlan como el valor formateado en una
cadena.
El tipo TFloatFormat define una lista enumerada de códigos formateados para las
funciones reales.
6
type
TFloatFormat= (ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency);
Diseñar una aplicación que tome un valor de x como entrada y calcule el valor
aproximado de ex con el error especificado.
7
Declaremos el identificador cota en la sección de constantes:
Const
Cota = 1 E -02
8
Desarrollar un programa que determine el total de dígitos de un número entero:
9
on EConvertError do //Error de conversión
ShowMessage('Uno de los valores es demasiado grande!.');
end;
end;
d:= int(ln(n)/ln(10)) + 1
10
5) Conversión de un Número en Base 10 al Sistema Binario
Cociente Resto
El ultimo resto puede leerse como el dígito mas significativo y el primero como el dígito
menos significativo: 11010. La respuesta es:
2610 = 110102
11
Siga estos pasos:
1. Proceda a crear una nueva aplicación
2. A continuación, diseñe una interfaz que sea similar a la siguiente ilustración:
12
except
on x : exception do ShowMessage('" ' + x.Message+'" ');
end;
end;
El programa ejecutándose:
13