Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
potřeboval bych pomoci s tímto programem přepsat ho do C
vůbec se mi nechce povést ho zkompilovat jakýmsi pascalovým kompilátorem :(
program aaa;
var N: word;
M: word;
hmotnost: array[1..N] of word;
{ hmotnosti daných předmětů }
A: array[0..M] of integer;
i, k: word;
begin
A[0]:=-1;
for i:=1 to M do A[i]:=0;
for k:=1 to N do
for i:=M downto hmotnost[k] do
if (A[i-hmotnost[k]]<>0) and (A[i]=0) then
A[i]:=k;
i:=M;
while A[i]=0 do i:=i-1;
writeln('Maximální hmotnost: ',i);
write('Předměty v množině:');
while A[i]<>-1 do
begin
write(' ',A[i]);
i:=i-hmotnost[A[i]];
end;
writeln;
end.Offline

Nejspis proto, ze velikost pole pri deklaraci nemuzes udavat pomoci promenne, mam na mysli tohle:
hmotnost: array[1..N] of word;
A: array[0..M] of integer;
Asi budes muset ty pole deklarovat dynamicky, ale to ted nevim, jak se v pascalu dela. (Anebo deklarovat ty M a N jako konstanty)
Offline
↑ Lumikodlak:
aha a to udělám jak?
myslím to s těma konstantama
a nebo jak se dá udělat zastavení konzole, abych se mohl kouknout na to co mi to vypsalo?
Offline

S tema konstantama treba takhle:
const N = 6;
M = 18;
var hmotnost: array[1..N] of word;
{ hmotnosti daných předmětů }
A: array[0..M] of integer;S tim zastavenim treba dat nakonec readln; jestli je to to co myslis (ale jsou i uplne jine zpusoby, treba v pascalu by mel byt command shell, nebo to spoustet z konzole).
Offline
↑ Lumikodlak:
a nedokázal by jsi to přepsat do céčka?
tak už nemušíš... už se mi to povedlo spustit v tom pascalu
Offline