|
 | | |
| Autor | Správa |
Blackhair
 Užívateľ
 Založený: 11.12.2011 Príspevky: 5
 | Zaslal: Ne 11.12.11 14:01 |   |
Zdravim... som zaciatocnik co sa tyka programovania a chcel som si skusit spravit toto zadanie
Úloha: Vytvorte program pre hru dvoch hráčov. Program simuluje 15 náhodných hodov hracou kockou a zisťuje víťaza. Prvý hráč vyhráva, keď padne viackrát párne číslo ako nepárne číslo. Druhý hráč vyhráva, keď padne viackrát nepárne číslo ako párne číslo. Program vypisuje generované čísla. Výstupné údaje sú, kto vyhral a s akým počtom hodov.
moj zamer nebol prilis sa drzat zadania takze to popripade ignorujte, ide mi oto ako vytvorim podmienku
If prvok lezi v poli a then inc z else incy
tu je program:
| kód: | var a:array[1..3] of integer; b:array[1..3] of integer;
x,y,i,u,j,z:integer;
begin
for i:=1 to 3 do
begin
writeln('hrac 1 -zadaj',i,'. cislo pre ktore vyhravas');
readln(a[i]);
end;
for j:=1 to 3 do
begin
writeln('hrac 2 - zadaj',i,'.cislo pre ktore vyhravas');
readln(b[j]);
end;
z:=0;
y:=0;
for u:=1 to 15 do
begin
randomize;
x:= random(6)+1;
writeln('hod c.',u,'- ',x);
if *****a=x***** then inc(z) else inc(y);
end;
writeln('hrac c. 1 ziskal',z,'bodov');
writeln('hrac c. 2 ziskal',y,'bodov');
writeln;
if z>y then writeln('vitaz je hrac c. 1') else
writeln('vitaz je hrac cislo 2');
readln;
end. |
***** -problem pise pri tom a=x --> operator is not overloaded
ako by som teda spravil tu podmienku ak lezi v poli tak?? Vdaka... |
| |
  |
 |
Ďuri
 Administrátor
 Založený: 11.08.2007 Príspevky: 3785 Bydlisko: Brno
 | Zaslal: Ne 11.12.11 14:08 |   |
Tak jasne, nemozes porovnavat pole so skalarom. Musis pomocou for cyklu prechadzat vsetkymi prvkami pola a v pripade, ze sa i-ta hodnota v poli rovna x, do nejakej boolean premennej si vlozis true, akoze prvok sa nasiel. Defaultne ta hodnota samozrejme musi byt false. |
| |
    |
 |
Blackhair
 Užívateľ
 Založený: 11.12.2011 Príspevky: 5
 | Zaslal: Ne 11.12.11 14:42 |   |
a keby sa to pokusim vyriesit takto (ten problemovy cyklus):
i:=1;
for u:=1 to 15 do
begin
randomize;
x:= random(6)+1;
writeln('hod c.',u,'- ',x);
readln;
repeat
readln(a[i]);
if a[i]=x then inc(z);
inc(i);
until i=3;
i:=1;
end;
y:=15-z;
kde sa to tu zadrhava? ten repeatovy cyklus mi neprejde ... program sa nedostane cez to vypis x ... teda to random cislo |
| |
  |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
| |