SEM INF 1.12.2010

01.12.2010 18:00

Ďalšie simulácie...

    Dnes sme pokračovali v simuláciách. Programovali sme jednu veľmi známu úlohu lenivého Jima, ktorá má viac prevedení.

Lenivý Jim

    Každý deň v roku ide do poľa. Najprv dojde do polky, a hodí si mincou. Ak padne líce, ide na pole, ak rub ide domov. Ale každých 'KROK' metrov hádže mincou znova, kým nedôjde domov, alebo na pole. Zisti koľko krát bol za rok na poli, a koľko krát doma. Na začiatku sa dá zadať dĺžka poľa, aj počet dní, ktoré to bude robiť. Aj dĺžka kroku.

***

program lenivy_jim;
uses Crt;
var i,l,q,krok,rozsah,dom,pole,phmd,den : integer;
begin
  Clrscr;
  randomize;
  write('Zadaj dlzku kroku: '); readln(krok);
  write('zadaj rozsah pola, parny nasobok ',krok,': ');
  readln(rozsah);
  write('zadaj pocet dni ktore to bude robit: ');
  readln(den);
  dom:=0;
  pole:=0;
  for i:=1 to den do begin
    l:=(rozsah div 2);
    phmd:=0;
    while ((l<>0) and (l<>rozsah)) do begin
      q:=random(2); phmd:=phmd+1;
      if q=1 then l:=l+krok
      else l:=l-krok;
    end;
    if l=0 then dom:=dom+1
    else pole:=pole+1;
    writeln('Dnes hadzal kockou ',phmd,' krat.');
  end;
  writeln('Doma bol ',dom,' krat. Na poli bol ',pole,' krat.');
  readln;
end.

***

Tento program je tu.
Aplikácia je tu.
Tento program pracoval na princípe: príde do polky poľa, a teraz vygeneruje 1 alebo 0, podľa toho buď pôjde ďalej do poľa, alebo bližšie k domovu. Pole musí mať párny násobok kroku preto, aby niekedy došiel aj domov. 


Koniec hodiny.

—————

Späť