Algoritmo

Soy estudiante de ING. Sis, nececesito realizar una tarea, necesito hace el algoritmo de los números primos, a si como el diagrama de fuljo, si alguien me puede ayudar se lo agradecería bastanta.

1 respuesta

Respuesta
2
Para hacer lo que dices puedes hacer un programa similar a este.
unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
i, j:integer;
primo:boolean;
begin
primo:=false;
memo1.lines.add ('1');
memo1.lines.add ('2');
memo1.lines.add ('3');
for i:=4 to strtoint (edit1.text) Do //Empiezo en el 4, porque sino, luego, al quitarle 1 a la i se complica un poco la cosa, por lo que parto de que el 1, 2 y 3, son primos
Begin
primo:=true;
For j:=2 to i - 1 Do
If i mod j = 0 Then
primo:=false;
If Primo Then
memo1.lines.add (inttostr (i));
End;
end;
end.
Ahí tienes el programa completo. Para que funcione correctamente, debes colocar un memo, un botón y un label. No cambies los nombres de los componentes, ya que sino no funcionará.
En cuanto a lo del diagrama de flujo, nunca hice uno, pero te pongo a continuación algo que espero te sirva.
Recorrer todos los números desde el 4 hasta el número introducido
|
|
|
Recorrer todos los números desde el 1 hasta el nº primo (j) que se está analizando (i)
|
|
|
Comprobar que el número que se está analizando (i) sea divisible entre el otro número (j)
|
|
|
¿ES DIVISIBLE?----------NO->PRIMO:=TRUE
| |
| |
| |
SÍ-->PRIMO:=FALSE |
| |
| |
| |
----------------------------
|
|
|
¿Al final del bucle (j) primo es...?
| |
| |
| |
| |
TRUE FALSE
| |
| |
| |
AÑADIR A LA LISTA |
| |
| |
----------------------------
|
Pasar al siguiente número (i)-
Espero que te sirva, aunque como te digo, nunca hice ninguno. Te comento, que en el último proceso (PASAR AL SIGUIENTE NÚMERO (I)), deberías hacer una línea para unir con el primero proceso (el de recorrer todos los número):
En fin, espero que se vea bien (no sé si se respetarán los espacios que puse para que se vea bien) y que te sirva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas