Stránka 1 z 1

Nacteni promene z pole v pascalu

Napsal: sob 12. led 2008, 23:03
od Sak
Hoj
Problem je v tom ze mi to vypise urcite cisla a ja bych potreboval najak nacist hned to prvni cislo co se tam obevi tj. v tomto pripade 7 (ale to cisle se muze menit takze nemuzu napsat neco ve stylu cislo:=7)
Diky za jakykoliv rady

Kód: Vybrat vše

Program mnozin;
uses crt;
const maxN = 1000;
delitel = 2;
delitel3 = 3;

var cisla: integer;
volba:char;
    sito : array [2..maxN] of boolean;

    i,j : integer;
begin
  writeln('zadejte horni mez cisla: ');
  readln(cisla);
  Writeln('kecy');
 Writeln(' ');
 for i := 2 to cisla do sito[i] := true;
      for i := 2 to cisla do
     begin
     if  i mod 2 = 0  then  sito[i] := false else
     if  i mod 3 = 0  then  sito[i] := false else
     if  i mod 5 = 0  then  sito[i] := false else
      write(i,' ');
      delay(2);
{tady to napise mnozinu od 7mi po maxN ale ja bych potreboval aby tu mel neco jako
readln a nacetlo mi to hned to prvni cislo tj.v tomto pripade 7 do promene }
     end;
     readln;
   End.

Napsal: ned 13. led 2008, 00:06
od 4res
Promiň, ale to má být implementace Eratosthenova síta, pro hledání prvočísel? Nebo opravdu máte napsat program, který najde čísla nedělitelná 2,3 a 5? Protože to je to co máš napsáno.

Napsal: ned 13. led 2008, 00:18
od 4res
Jo, jak na to tak koukám tak je to snaha o síto. Kdyžtak koukni na wikipedii, nebo sem - implementace v pascalu, nebo delphi (po přejmenování knihovny by to mělo fungovat)

Napsal: ned 13. led 2008, 01:14
od Sak
jj je to Eratosthenovo síto ale ja ho nepotrebuju udelat,jen demostrovat algoritmus a na to potrebuju nejak nacist tu promenou:(

Napsal: ned 13. led 2008, 01:53
od Caderom
nejsem si jistý, co přesně chceš, ale tohle to asi není co ...

Kód: Vybrat vše

cislo := 0;
...
for cykly
{
  ...
  if cislo==0 then cislo:=i;
  ...
}
EDIT: opraveno

Napsal: ned 13. led 2008, 10:03
od Sak
Caderom píše:nejsem si jistý, co přesně chceš, ale tohle to asi není co ...

Kód: Vybrat vše

cislo := 0;
...
for cykly
{
  ...
  if cislo==0 then cislo:=i;
  ...
}
EDIT: opraveno
ee ja potrebuju proste z toho pole co vytvorim ,nacist prvni cislo
takze ono mi to vytori kdyz zadam max hodnotu 20: "7 11 13 17 19" a ja potrebuju nacist to prvni cislo v poli coz je 7

Napsal: ned 13. led 2008, 11:06
od 4res
Sice si pořád myslím, že až tak nevíš co děláš.. ale to je jedno. Jedno řešení je třeba projít to pole a najít první true, nebo není nic težšího, než to číslo, co projde sítem dělitelů 2, 3, 5, prostě uložit do proměnné

Kód: Vybrat vše

....
   for i := 2 to cisla do 
   begin 
     if  i mod 2 = 0  then  sito[i] := false else 
     if  i mod 3 = 0  then  sito[i] := false else 
     if  i mod 5 = 0  then  sito[i] := false else
     begin
       write(i,' ');
       promenna := i;
       delay(2); 
     end; 
   end; 
...
Nejlepší bude, když napíšeš zadání, které k tomu máš.

Napsal: ned 13. led 2008, 12:48
od Sak
4res píše: ...Jedno řešení je třeba projít to pole a najít první true, nebo není nic težšího, než to číslo, co projde sítem dělitelů 2, 3, 5, prostě uložit do proměnné...
No zadani mam demostrovat algoritmus sita, tak jsem si najel na http://cs.wikipedia.org/wiki/Eratosthenovo_s%C3%ADto a delam to podle tech kroku.
No a napsal jsi "prostě uložit do proměnné" jasny to muzu ale co kdyz tam budu mit vetsi cisla to budu furt zapinat a vzdy se divat jake je prvni cislo v poli a zase o ukladat do promene a hledat nasobky?To je blbost,potrebuju nejak aby to ten program delal sam