Samochody na promie, while, random

0

Witam. Mam stworzyć program, który policzy ile samochodów zmiesci się na promie o ładowności 1000, jesli bedę załadowywac kolejno auta których waga wynosi 50-200. Na razie zrobiłam tyle:

var max, IloscSam, CiezarSam, x: integer;

begin
     IloscSam:=0;
     CiezarSam:=0;
while CiezarSam<=1000 do

    x:=random(150)+50;
    IloscSam:=IloscSam+1;
    CiezarSam:=CiezarSam+x;
end;

Czy możecie mi podpowiedziec co powinnam jeszcze dodać i czy kombinuje dobrze?
pozdrawiam

0

spójrz na swoj kod i powiedz mi ktore instrukcje beda wykonywane w petli?:)

P.S. takie pytania sie zdaje w dziale Newbie - to tak na przyszlosc.

0
cimak napisał(a)

spójrz na swoj kod i powiedz mi ktore instrukcje beda wykonywane w petli?:)

P.S. takie pytania sie zdaje w dziale Newbie - to tak na przyszlosc.

Dzięki, juz będę korzystać z działu Newbie :)

hmm.. losowanie?

0
paula51411 napisał(a)

hmm.. losowanie?

tak. losowanie i tylko losowanie. bedzie wykonywana tylko pierwsza instrukcja po "DO" czyli tylko przypisanie losowej wartosci do zmiennej x;
jak chcesz wiecej to zamknij instrukcje w blok begin..end; - caly taki blok jest traktowany jak pojedyncza instrukcja.

0
cimak napisał(a)
paula51411 napisał(a)

hmm.. losowanie?

tak. losowanie i tylko losowanie. bedzie wykonywana tylko pierwsza instrukcja po "DO" czyli tylko przypisanie losowej wartosci do zmiennej x;
jak chcesz wiecej to zamknij instrukcje w blok begin..end; - caly taki blok jest traktowany jak pojedyncza instrukcja.

czyli

while CiezarSam<=1000 do
begin
x:=random(150)+50;
IloscSam:=IloscSam+1;
CiezarSam:=CiezarSam+x;
end;
end;

?

0

teraz tak sobie mysle... druga sprawa: co jesli w pewnym momencie waga wszystkich samochodow bedzie wynosila 1000 (lub np 950)? petla poleci dalej i doda nastepny samochod. a to juz bedzie dla promu za ciezkie.
powinnas losowac, sprawdzac czy "wejdzie" na prom, jesli tak to dopiero wtedy dodac. i to wszystko w petli.
najlatwiej w nieskonczonej petli a w razie gdy samochod sie nie zmiesci-opuscic petle.

0
cimak napisał(a)

teraz tak sobie mysle... druga sprawa: co jesli w pewnym momencie waga wszystkich samochodow bedzie wynosila 1000 (lub np 950)? petla poleci dalej i doda nastepny samochod. a to juz bedzie dla promu za ciezkie.
powinnas losowac, sprawdzac czy "wejdzie" na prom, jesli tak to dopiero wtedy dodac. i to wszystko w petli.
najlatwiej w nieskonczonej petli a w razie gdy samochod sie nie zmiesci-opuscic petle.

Hmm a czy mogę dodać po prostu "if", jeśli ciężar samochodów przekroczy 1000, wtedy program pokaze komunikat "przekroczona ładowność"? Mogę tak to rozwiązać?

0

wszystko mozesz, tylko pytanie czy program bedzie robil dokladnie to co w poleceniu...
z tego co napisalas to program ma sprawdzic ile samochodow sie zmiesci a nie wyrzucac informacje ze sie przekroczylo ladownosc.
zalezy od sprawdzajacego.

0
cimak napisał(a)

wszystko mozesz, tylko pytanie czy program bedzie robil dokladnie to co w poleceniu...
z tego co napisalas to program ma sprawdzic ile samochodow sie zmiesci a nie wyrzucac informacje ze sie przekroczylo ladownosc.
zalezy od sprawdzajacego.

Tzn. ten przykład akurat robię dla poćwiczenia. Więc według Ciebie co mogłabym wykorzystać, aby mi sprawdziło czy ten ostatni samochód mogę jeszcze wrzucic na pokład?

0
while (true) do
  begin
     x:=random(150)+50;
     if (CiezarSam+x >= 1000)
          then break; //wychodzimy z petli
     IloscSam:=IloscSam+1;
     CiezarSam:=CiezarSam+x;
 end;
showmessage( 'zmiescilo sie: '+inttostr(iloscSam)+' samochodow' );
0
cimak napisał(a)
while (true) do
  begin
     x:=random(150)+50;
     if (CiezarSam+x >= 1000)
          then break; //wychodzimy z petli
     IloscSam:=IloscSam+1;
     CiezarSam:=CiezarSam+x;
 end;
showmessage( 'zmiescilo sie: '+inttostr(iloscSam)+' samochodow' );

O no proszę. Dziekuję bardzo za wskazówki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1