Ĺadny brzuch
Mam takie pytanie czy ktoś wie jak napisać program który będzie wyświetlał komunikat czy podana przez użytkownika liczba jest liczbą pierwszą czy nie?! Prosiłbym o kod źródłowy!!!
Czy zakres liczb jest jakoś ograniczony?
nie nie jest ograniczony
program Liczby_Pierwsze; {$APPTYPE CONSOLE} uses SysUtils; procedure Sprawdz(); var liczba, i, dzielniki: Integer; begin dzielniki:= 0; ReadLn(liczba); for i:=1 to liczba do begin if (liczba mod i=0) then dzielniki:=dzielniki+1; end; if (dzielniki=2) then WriteLn('Podana liczba jest liczba pierwsza! Yeah!') else WriteLn('Podana liczba nie jest liczba pierwsza;('); end; begin Sprawdz(); ReadLn; end.
taki program, na Integer wiec ograniczone liczby sa
//aha dla 1 wyswietla blednie ze nie jest wiec to popraw na ifie
Użytkownik limak_pascal_delphi edytował ten post 23 październik 2006, 21:44
var liczba,i:integer; begin //wprowadzenie liczby for i:=2 to (liczba-1) do if (liczba mod i=0) then begin //liczba nie jest pierwsza - rob co chcesz break; end; end.
oczywiscie to najprostszy algorytm, najmniej wydajny ale czytelny ;]
//limak_pascal_delphi mnie wyprzedzil, ale jego program jest nie do konca poprawny - przy 0 i 1 sie wysypie, bo te liczby nie sa "nie pierwsze" - ich nie mozna przyporzadkowac do obu tych zbiorow (pierwszych i nie pierwszych).
Użytkownik Deadeye edytował ten post 23 październik 2006, 21:47
Wielkie dzięki za pomoc. Ale jestem ciekaw jakby wyglądał kod w trybie nie konsolowym?!
Wielkie dzięki za pomoc. Ale jestem ciekaw jakby wyglądał kod w trybie nie konsolowym?! Normalnie :rolleyes:
Coś ode mnie:function pierwsza(c:cardinal):boolean; var i:integer; begin result:=true; for i:=2 to round(sqrt(c)) do if (c div i)*i=c then begin result:=false; break; end; end;
Użytkownik Cyrkiel edytował ten post 23 październik 2006, 22:27
program Liczby_Pierwsze; {$APPTYPE CONSOLE} uses SysUtils; procedure Sprawdz(); var liczba, i, dzielniki: Integer; begin dzielniki:= 0; ReadLn(liczba); for i:=1 to liczba do begin if (liczba mod i=0) then dzielniki:=dzielniki+1; end; if (dzielniki=2) then WriteLn('Podana liczba jest liczba pierwsza! Yeah!') else WriteLn('Podana liczba nie jest liczba pierwsza;('); end; begin Sprawdz(); ReadLn; end.
taki program, na Integer wiec ograniczone liczby sa
//aha dla 1 wyswietla blednie ze nie jest wiec to popraw na ifie
Jedynka nie jest liczbą pierwszą , więc program wyświetla poprawnie. Liczba pierwsza to taka która ma DWA dzielniki........
Najbardziej by mi zależało na kodzie źródłowym pod procedure Button1Click. Czy jest ktoś w stanie mi pomóc. Z góry dzięki :)
procedure TForm1.Button1Click(Sender: TObject); var begin end; end.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; procedure Sprawdz(liczba: Integer); var Form1: TForm1; implementation procedure Sprawdz(liczba: Integer); var i, dzielniki: Integer; begin dzielniki:= 0; if (liczba=0) or (liczba=1) then ShowMessage('Liczby 0 i 1 nie są liczbami pierwszymi!') else begin for i:=1 to liczba do begin if (liczba mod i=0) then dzielniki:= dzielniki+1; end; if (dzielniki=2) then ShowMessage('Podana liczba jest liczbą pierwszą! PUNK is NOT DEAD') else ShowMessage('Podana liczba nie jest liczbą pierwszą!;('); end; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Sprawdz(StrToInt(Edit1.Text)); end; end.
i tak, na forme kładziesz Edit1 i Button1 i tyle
//aha, to co kładziesz do onclick Buttona1 masz na samym dole;
u góry tylko wklej tą procedure;
Użytkownik limak_pascal_delphi edytował ten post 24 październik 2006, 16:53
Wielkie dzięki!!! Naprawdę bardzo mi pomogłeś. Jeszcze tylko musze to zrozumieć jak to się wszystko dzieje tutaj dzieje. Jeszcze raz wielkie dzięki.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Czy zakres liczb jest jakoś ograniczony?
nie nie jest ograniczony
program Liczby_Pierwsze; {$APPTYPE CONSOLE} uses SysUtils; procedure Sprawdz(); var liczba, i, dzielniki: Integer; begin dzielniki:= 0; ReadLn(liczba); for i:=1 to liczba do begin if (liczba mod i=0) then dzielniki:=dzielniki+1; end; if (dzielniki=2) then WriteLn('Podana liczba jest liczba pierwsza! Yeah!') else WriteLn('Podana liczba nie jest liczba pierwsza;('); end; begin Sprawdz(); ReadLn; end.
taki program, na Integer wiec ograniczone liczby sa
//aha dla 1 wyswietla blednie ze nie jest wiec to popraw na ifie
Użytkownik limak_pascal_delphi edytował ten post 23 październik 2006, 21:44
var liczba,i:integer; begin //wprowadzenie liczby for i:=2 to (liczba-1) do if (liczba mod i=0) then begin //liczba nie jest pierwsza - rob co chcesz break; end; end.
oczywiscie to najprostszy algorytm, najmniej wydajny ale czytelny ;]
//limak_pascal_delphi mnie wyprzedzil, ale jego program jest nie do konca poprawny - przy 0 i 1 sie wysypie, bo te liczby nie sa "nie pierwsze" - ich nie mozna przyporzadkowac do obu tych zbiorow (pierwszych i nie pierwszych).
Użytkownik Deadeye edytował ten post 23 październik 2006, 21:47
Wielkie dzięki za pomoc. Ale jestem ciekaw jakby wyglądał kod w trybie nie konsolowym?!
Wielkie dzięki za pomoc. Ale jestem ciekaw jakby wyglądał kod w trybie nie konsolowym?! Normalnie :rolleyes:
Coś ode mnie:function pierwsza(c:cardinal):boolean; var i:integer; begin result:=true; for i:=2 to round(sqrt(c)) do if (c div i)*i=c then begin result:=false; break; end; end;
Użytkownik Cyrkiel edytował ten post 23 październik 2006, 22:27
program Liczby_Pierwsze; {$APPTYPE CONSOLE} uses SysUtils; procedure Sprawdz(); var liczba, i, dzielniki: Integer; begin dzielniki:= 0; ReadLn(liczba); for i:=1 to liczba do begin if (liczba mod i=0) then dzielniki:=dzielniki+1; end; if (dzielniki=2) then WriteLn('Podana liczba jest liczba pierwsza! Yeah!') else WriteLn('Podana liczba nie jest liczba pierwsza;('); end; begin Sprawdz(); ReadLn; end.
taki program, na Integer wiec ograniczone liczby sa
//aha dla 1 wyswietla blednie ze nie jest wiec to popraw na ifie
Jedynka nie jest liczbą pierwszą , więc program wyświetla poprawnie. Liczba pierwsza to taka która ma DWA dzielniki........
Najbardziej by mi zależało na kodzie źródłowym pod procedure Button1Click. Czy jest ktoś w stanie mi pomóc. Z góry dzięki :)
procedure TForm1.Button1Click(Sender: TObject); var begin end; end.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; procedure Sprawdz(liczba: Integer); var Form1: TForm1; implementation procedure Sprawdz(liczba: Integer); var i, dzielniki: Integer; begin dzielniki:= 0; if (liczba=0) or (liczba=1) then ShowMessage('Liczby 0 i 1 nie są liczbami pierwszymi!') else begin for i:=1 to liczba do begin if (liczba mod i=0) then dzielniki:= dzielniki+1; end; if (dzielniki=2) then ShowMessage('Podana liczba jest liczbą pierwszą! PUNK is NOT DEAD') else ShowMessage('Podana liczba nie jest liczbą pierwszą!;('); end; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Sprawdz(StrToInt(Edit1.Text)); end; end.
i tak, na forme kładziesz Edit1 i Button1 i tyle
//aha, to co kładziesz do onclick Buttona1 masz na samym dole;
u góry tylko wklej tą procedure;
Użytkownik limak_pascal_delphi edytował ten post 24 październik 2006, 16:53
Wielkie dzięki!!! Naprawdę bardzo mi pomogłeś. Jeszcze tylko musze to zrozumieć jak to się wszystko dzieje tutaj dzieje. Jeszcze raz wielkie dzięki.