Delphi :(
Jack: for j:=2 to j<=i/2 + 1 do
begin
if (i div j = 0) then
begin
j := j + 1;
end;
dlaczego blad jest we fragmencie na czerwono i jak go usunac?
Musze zrobic projekt i nwm nawet czemu cos nie dziala.
Jest to Delphi (podobny do object Pascala)
8 lis 02:05
Saizou : Bo modyfikujesz zmienna sterująca pętle
8 lis 07:55
Jack: No bo w C tak moge odrazu...
To jak moge to zmienic bo naprawde nie mam pomyslu.
8 lis 08:08
Jack: Naprawde pilne
8 lis 08:13
jc: j samo się zmieni.
8 lis 08:17
8 lis 08:25
Jack: @jc
A niechcialbys zerknac na moj program?
Jako ze to obiektowy to wraz z tym co "zbudowalem"
Np. Jk bym na maila wyslal
8 lis 08:31
Jack: jak usunalem
j:=j+1;
to mi znaduje blad w tym forze.
for j:=2 to j<=i/2 + 1 do
Error : Incompatible types : gpt"Boolean" expected "LongInt"
jednakze tuz przed tym mam
var i,j :Integer
wiec jak dostal boolean?
8 lis 08:39
Jack: przy czym glownie zaznacza ten znak
<=
co tu jest nie tak?
8 lis 08:43
PW: No bo wyrażenie "j <=i/2+1" jest wyrażeniem logicznym, a nie liczbą.
8 lis 08:51
Saizou : a co te programik ma robić ?
8 lis 08:54
Saizou :
W Pascalu to pewnie nie działa, bo to "dobrze" zrobiony język, a nie tak jak C czy C++,
gdzie chodziło głównie o to, żeby mieć jak najwięcej użytecznych opcji (to co było potrzebne
dodawało się na bieżąco).
8 lis 08:56
jc: Napisz tak:
for j:=2 to i div 2 do
begin
...
end
We wcześniejszym wpisie zamieściłem link do opisu pętli.
Delphi pewnie tak, jak Pascal, bardzo pilnuje typów. Więc na wszelki
wypadek zmieniłem dzielenie / na dzielenie całkowite div.
Na Delphi się nie znam, ale zaczynałem od Pascala. Coś mi w pamięci zostało.
8 lis 08:57
PW: W niektórych językach funkcjonuje pętla typu
WHILE (wyrażenie logiczne) DO (....) END
pewnie o czymś takim myślałeś.
8 lis 09:01
Jack: Zmienilem tak jak napisal jc
i teraz error jest,ze "got "Double" expected "LongInt"
oco mu chodzi ?
8 lis 09:06
Jack: jc, Saizou,
ma ktos z was gg albo cos w tym stylu?
8 lis 09:07
jc: Pomieszałeś typy. Pokaż większy fragment programu.
8 lis 09:08
Saizou :
W Pacalu są trzy pętle (z tego co ja wiem)
for , while, repeat
8 lis 09:10
Jack: jak wypisac cos w delphi?
chcialbym zeby mi wypisalo semiprime[i] , semiprime[i+1] .
8 lis 23:23
Mariusz:
jc ma rację
j jest zmienną sterującą pętlą i samo się zmieni (to rosnąco, downto malejąco)
Zmienna sterująca może być typem całkowitym, znakowym, logicznym ... (tzw typem porządkowym)
Do dzielenia całkowitego używaj div
Reszta z dzielenia to mod
9 lis 06:12
Mariusz:
uses crt;
function isprime(n:longint):boolean;
var i:longint;
b:boolean;
begin
b:=(n>1);
i:=2;
while((b) and (i<n)) do
begin
b:=b and (n mod i<>0);
i:=i+1;
end;
isprime:=b;
end;
var j,n:longint;
esc:char;
begin
clrscr;
repeat
write('Podaj przedzial');
readln(n);
for j:=1 to n do
writeln('Liczba', j,'czy pierwsza ',isprime(j));
esc:=readkey;
until esc=#27;
end.
9 lis 07:49