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