0% encontró este documento útil (0 votos)
66 vistas17 páginas

Ejercicios de Programación en Delphi

Este documento presenta 9 problemas resueltos con diagrama de flujo, diseño de formulario y codificación en Delphi. Los problemas incluyen calcular el factorial de un número, transformar un número de 3 cifras a literal, encontrar números primos entre 1 y un número ingresado, encontrar números perfectos entre 1 y un número, realizar operaciones en vectores como máximo, mínimo, suma y promedio de pares, dividir un vector en pares e impares, ordenar un vector ascendentemente, realizar regresión lineal por mínimos cuadrados para encontrar la ecuación de una

Cargado por

Andrea FC
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
66 vistas17 páginas

Ejercicios de Programación en Delphi

Este documento presenta 9 problemas resueltos con diagrama de flujo, diseño de formulario y codificación en Delphi. Los problemas incluyen calcular el factorial de un número, transformar un número de 3 cifras a literal, encontrar números primos entre 1 y un número ingresado, encontrar números perfectos entre 1 y un número, realizar operaciones en vectores como máximo, mínimo, suma y promedio de pares, dividir un vector en pares e impares, ordenar un vector ascendentemente, realizar regresión lineal por mínimos cuadrados para encontrar la ecuación de una

Cargado por

Andrea FC
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PRACTICA 5

I. Realizar el diagrama de flujo, diseño de formulario y codificación en Delphi para los siguientes problemas:
1. Un programa que calcule el factorial de un número natural introducido por teclado.

Diagrama de flujo

Diseño de formulario

Codificación en Delphi

procedure TForm1.Button1Click(Sender: TObject);


var
i, f, num : Integer;
begin
num := StrToInt([Link]);
f := 1;
for i := 2 to num do
begin
f := f * i;
end;
[Link] := IntToStr(f);
end;
2. Un programa que permita transformar un número natural de tres cifras máximo en uno literal:

Diagrama de flujo
Diseño de formulario
Codificación en Delphi
3. Ingresar un número n por teclado y mostrar todos los números primos que existan entre 1 y n.

Diagrama de flujo

Diseño de formulario
Codificación en Delphi

procedure TForm1.Button1Click(Sender: TObject);


var
i, j, n, d : Integer;
begin
n := StrToInt([Link]);
for i := 2 to n do
begin
d := 2;
for j := 2 to trunc(i/2) do
begin
if i mod j = 0 then
d := d + 1;
end;
if d = 2 then
[Link](IntToStr(i));
end;
end;
4. Ingresar un número n por teclado y mostrar todos los números perfectos que existan entre 1 y n.

Diagrama de flujo
Diseño de formulario

Codificación en Delphi

procedure TForm1.Button1Click(Sender: TObject);


var
n, num, i, j, c, s : Integer;
begin
n := StrToInt([Link]);
num := 0;
c := 1;
while c <= n do
begin
for i := num+1 to 10000 do
begin
s := 0;
for j := 1 to trunc(i/2) do
begin
if i mod j = 0 then
s := s + j;
end;
if s = i then
begin
[Link](IntToStr(i));
c := c + 1;
num := i;
break;
end;
end;
end;
end;
5. Ingresar un vector de “n” elementos por teclado y calcular; máximo, mínimo, suma y promedio de todos los
números pares.

Diagrama de flujo
Diseño de formulario

Codificación en Delphi

procedure TForm1.Button1Click(Sender: TObject);


var
V : array[0..100] of Integer;
n, i, may, men, s, c : Integer;
p : Real;
begin
n := StrToInt([Link]);
[Link] := 1;
[Link] := n;
randomize;
may := -1;
men := 100;
s := 0;
c := 0;
for i := 0 to [Link] - 1 do
begin
V[i] := Random(100)+1;
[Link][i,0] := IntToStr(V[i]);
if V[i] > may then
may := V[i];
if V[i] < men then
men := V[i];
if V[i] mod 2 = 0 then
begin
s := s + V[i];
c := c + 1;
end;
end;
p := s / c;
[Link] := IntToStr(may);
[Link] := IntToStr(men);
[Link] := IntToStr(s);
[Link] := FloatToStr(p);
end;
6. Ingresar un vector de n elementos y dividirlo en dos vectores: uno con los números pares del vector y otro vector
con los números impares.

Diagrama de flujo
Diseño de formulario

Codificación en Delphi
procedure TForm1.Button1Click(Sender: TObject);
var
V, VP, VI : array[0..100] of Integer;
n, i, dp, di : Integer;
begin
n := StrToInt([Link]);
[Link] := 1;
[Link] := n;
randomize;
dp := 0;
di := 0;
for i := 0 to [Link] - 1 do
begin
V[i] := Random(100)+1;
[Link][i,0] := IntToStr(V[i]);
if V[i] mod 2 = 0 then
begin
VP[dp] := V[i];
dp := dp + 1;
end
else
begin
VI[di] := V[i];
di := di + 1;
end;
end;

[Link] := 1;
[Link] := dp;
for i := 0 to [Link] - 1 do
begin
[Link][i,0] := IntToStr(VP[i]);
end;

[Link] := 1;
[Link] := di;
for i := 0 to [Link] - 1 do
begin
[Link][i,0] := IntToStr(VI[i]);
end;
end;
7. Ingresar “n” elementos de un vector y ordenarlo ascendentemente.

Diagrama de flujo
Diseño de formulario

Codificación en Delphi

procedure TForm1.Button1Click(Sender: TObject);


var
V: array[0..100] of Integer;
n, i, j, aux : Integer;
begin
n := StrToInt([Link]);
[Link] := 1;
[Link] := n;
randomize;
for i := 0 to [Link] - 1 do
begin
V[i] := Random(100)+1;
[Link][i,0] := IntToStr(V[i]);
end;

[Link] := 1;
[Link] := n;
for i := 0 to [Link] - 1 do
begin
for j := 0 to [Link] - i - 1 do
begin
if V[j] < V[j+1] then
begin
aux := V[j];
V[j] := V[j+1];
V[j+1] := aux;
end;
[Link][i,0] := IntToStr(V[j]);
end;
end;
end;
8. Ingresar “n” pares ordenados (x, y) y realizar la regresión lineal por mínimos cuadrados que permita encontrar el
modelo matemático y = A * x + B (calcular A y B) utilizar las siguientes fórmulas:
𝑛 ∑ 𝑥𝑖 𝑦𝑖 − ∑ 𝑥𝑖 ∑ 𝑦𝑖 ∑ 𝑦𝑖 − 𝐵 ∑ 𝑥𝑖
𝐵= 2 2
𝐴=

𝑛 𝑥𝑖 − (∑ 𝑥𝑖 ) 𝑛
Diagrama de flujo
Diseño de formulario

Codificación en Delphi

procedure TForm1.Button1Click(Sender: TObject);


var
X, Y, XY, X2: array[0..100] of Real;
n, i, j : Integer;
A, B, sx, sy, sxy, sx2 : Real;
begin
n := StrToInt([Link]);
sx := 0;
sy := 0;
sxy := 0;
sx2 :=0;
[Link] := n;
[Link] := 1;
for i := 0 to [Link] - 1 do
begin
[Link][0,i]:=IntToStr(StrToInt(InputBox('VALORES DE X', 'Fila:
'+IntToStr(i+1),'')));
X[i]:=StrToInt([Link][0,i]);
sx := sx + X[i];
sx2 := sx2 + (X[i]*X[i]);
[Link][0,i] := FloatToStr(X[i]*X[i]);
end;
[Link] := n;
[Link] := 1;
for i := 0 to [Link] - 1 do
begin
[Link][0,i]:=IntToStr(StrToInt(InputBox('VALORES DE Y', 'Fila:
'+IntToStr(i+1),'')));
Y[i]:=StrToInt([Link][0,i]);
sy := sy + Y[i];
end;
[Link] := n;
[Link] := 1;
for i := 0 to [Link] - 1 do
begin
sxy := sxy + (X[i]*Y[i]);
[Link][0,i]:=FloatToStr(X[i]*Y[i]);
end;
B := ((n * sxy) - (sx * sy)) / ((n * sx2) - (sx * sx));
A := (sy - (B * sx)) / n;
[Link] := FloatToStr(sx);
[Link] := FloatToStr(sy);
[Link] := FloatToStr(sxy);
[Link] := FloatToStr(sx2);
[Link] := FloatToStr(A);
[Link] := FloatToStr(B);
end;
9. Multiplicar un vector v de n elementos por un escalar k ingresado por teclado.

Diagrama de flujo

Diseño de formulario
Codificación en Delphi

procedure TForm1.Button1Click(Sender: TObject);


var
V: array[0..100] of Integer;
n, i, k : Integer;
begin
n := StrToInt([Link]);
k := StrToInt([Link]);

[Link] := 1;
[Link] := n;
for i := 0 to [Link] - 1 do
begin
V[i] := Random(100)+1;
[Link][i,0] := IntToStr(V[i]);
end;
[Link] := 1;
[Link] := n;
for i := 0 to [Link] - 1 do
begin
V[i] := V[i] * k;
[Link][i,0] := IntToStr(V[i]);
end;
end;

También podría gustarte