KENO 10 v Pascale - odmena
-
atomiq
Amateur
- Príspevky: 11
- Registrovaný: 12 máj 2007, 22:15
- Bydlisko: Bánovce nad Bebravou
- Kontaktovať používateľa:
KENO 10 v Pascale - odmena
Zostavte algoritmus a program, ktorý bude generovať čísla hry KENO10 – Výpis 20 rôznych čísel z intervalu <1, 80> v poradí akom boli generované v tvare matice 4 x 5 a zoskupené vzostupne v tvare matice 5 x 4
Zadanie vypracujte nasledovne:
1. Vykonajte analýzu všetkých potrebných vstupných a výstupných premenných. Stanovte ich dátový typ.
2. Zostavte štruktogram.
3. Zostrojte program v Pascale.
Prosim o pomoc,potrebujem to najneskor do pondelku 14.5.2007, pascal vobec nepoznam,prosim pomozte,odmena 500 Sk
Zadanie vypracujte nasledovne:
1. Vykonajte analýzu všetkých potrebných vstupných a výstupných premenných. Stanovte ich dátový typ.
2. Zostavte štruktogram.
3. Zostrojte program v Pascale.
Prosim o pomoc,potrebujem to najneskor do pondelku 14.5.2007, pascal vobec nepoznam,prosim pomozte,odmena 500 Sk
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Kód: Vybrať všetko
program keno;
var cisla:array[1..20]of integer;
i,cislo:integer;
function over(cislo:integer):boolean;
var I:integer;
begin
for I:=1 to 20 do if cisla[i]=cislo then begin
over:=true;
exit;
end;
over:=false;
end;
procedure vypis;
begin
for I:=1 to 20 do begin
write(cisla[i]:4);
if i mod 4 = 0 then writeln;
end;
end;
procedure vypiszoradene;
begin
for I:=1 to 20 do begin
for cislo:=I+1 to 20 do begin
if cisla[i]>cisla[cislo] then begin
cisla[i]:=cisla[i]+cisla[cislo];
cisla[cislo]:=cisla[i]-cisla[cislo];
cisla[i]:=cisla[i]-cisla[cislo];
end;
end;
end;
for I:=1 to 20 do begin
write(cisla[i]:4);
if i mod 5 = 0 then writeln;
end;
end;
begin
randomize;
for I:=1 to 20 do begin
repeat cislo:=random(80)+1 until not over(cislo);
cisla[i]:=cislo;
end;
vypis;
writeln;
writeln;
vypiszoradene;
readln;
end.
vstupné premenné:
cisla (globálna, celočíselné pole)
i,cislo (globálne, celé číslo)
i (lokálna, celé číslo)
-
atomiq
Amateur
- Príspevky: 11
- Registrovaný: 12 máj 2007, 22:15
- Bydlisko: Bánovce nad Bebravou
- Kontaktovať používateľa:
kamos mi poslal toto, myslis ze to bude tiez dobre?
program KENO10;
uses Crt;
var cisla: array [1..20] of byte;
i, j, temp: byte;
begin
randomize;
for i := 1 to 20 do begin
cisla := random(80) + 1;
write(cisla:3);
if (i mod 4) = 0 then writeln;
end;
for i:=1 to 19 do
for j:=1 to 20-i do
if cisla[j]>cisla[j+1] then begin
temp := cisla[j];
cisla[j] := cisla[j+1];
cisla[j+1] := temp;
end;
writeln;
writeln;
for i := 1 to 20 do begin
write(cisla:3);
if (i mod 5) = 0 then writeln;
end;
end.
program KENO10;
uses Crt;
var cisla: array [1..20] of byte;
i, j, temp: byte;
begin
randomize;
for i := 1 to 20 do begin
cisla := random(80) + 1;
write(cisla:3);
if (i mod 4) = 0 then writeln;
end;
for i:=1 to 19 do
for j:=1 to 20-i do
if cisla[j]>cisla[j+1] then begin
temp := cisla[j];
cisla[j] := cisla[j+1];
cisla[j+1] := temp;
end;
writeln;
writeln;
for i := 1 to 20 do begin
write(cisla:3);
if (i mod 5) = 0 then writeln;
end;
end.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
píše sa v zadaní že má vygenerovať 20 rôznych čísel. Šak ako by to vyzeralo keby sa v keno opakujú čísla? Haluz
Môj algoritmus to ošetruje: generuje až kým nenájde číslo aké sa ešte v poli nenachádza. Tvoj kamarát na také niečo zjavne zabudol.
a zbytočne tam inicializuje CRT keď v programe nepoužil žiaden jej príkaz
Môj algoritmus to ošetruje: generuje až kým nenájde číslo aké sa ešte v poli nenachádza. Tvoj kamarát na také niečo zjavne zabudol.
a zbytočne tam inicializuje CRT keď v programe nepoužil žiaden jej príkaz
Ten tvoj algoritmus na vygenerovanie neopakujúcich sa čísel je kvalitou takmer ako bogo-sort.audiotrack napísal:Môj algoritmus to ošetruje: generuje až kým nenájde číslo aké sa ešte v poli nenachádza. Tvoj kamarát na také niečo zjavne zabudol.
Pri veľkom počte čísel (vlastne aj pri tých 20) to môže trvať veľmi dlho, kým to vygeneruje všetky čísla. Určite by si to vedel urobiť aj lepšie.
Re: KENO 10 v Pascale - odmena
Mozes mi povedat ze kde(?skola?praca?) davaju take ulohy ked nepoznate programovaci jazyk?atomiq napísal:vobec nepoznam,prosim pomozte
Keďže som včera mierne skritizoval audiotrackovu metódu generovania náhodných čísel, prikladám iné riešenie:
Kód: Vybrať všetko
var
cisla: array[1..80] of Integer;
i, j, t: Integer;
begin
Randomize;
{ vytvoríme zotriedené pole }
for i := 1 to 80 do cisla[i] := i;
{ prvky náhodne poprehadzujeme, čím dostaneme náhodne zoradené pole }
for i := 1 to 79 do
begin
j := Random(80) + 1;
t := cisla[i];
cisla[i] := cisla[j];
cisla[j] := t;
end;
{ kedže potrebujeme 20 cisel, budeme pouzivat prvych 20 prvkov pola }
end.-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Delphi7
S mojim kódom asi nebudú spokojný tý čo sa tomu venujú..
ale snazil som sa
Bol by som rad keby to niekto dokazal zjednodusti,.
Treba povedat ze to neni Pascal,. ale delphi //hehe

ale snazil som sa
Bol by som rad keby to niekto dokazal zjednodusti,.
Treba povedat ze to neni Pascal,. ale delphi //hehe
Kód: Vybrať všetko
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, CustomizeDlg;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
ListBox1: TListBox;
Memo1: TMemo;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Button2: TButton;
StaticText1: TStaticText;
Bevel1: TBevel;
Bevel2: TBevel;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
g:integer;
b:boolean;
keno,keno1,keno2,keno3,keno4,keno5,keno6:string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..80] of integer;
PoleTyp:array[1..10] of integer;
typ,i,j,c,pocetvyskytov:integer;
s,los,cislo,typo:string;
begin
listbox1.clear;
randomize;
for i:=1 to 80 do a[i]:=i;
for j:=80 downto 2 do begin
i:=random(j)+1;
c:=a[i];
a[i]:=a[j];
a[j]:=c;
end;
s:='';
pocetvyskytov:=0;
for i:=1 to 20 do
begin
s:=s+' '+inttostr(a[i]);
listbox1.Items.add(inttostr(a[i]));
end;
label1.caption:=s;
for i:=1 to 10 do
begin
trystrtoint(memo1.lines[i-1],poletyp[i]);
typ:=PoleTyp[i];
for j:=1 to 20 do begin
los:=(listbox1.items[j-1]);
if strtoint(los)=typ then
begin
inc(pocetvyskytov);
cislo:=cislo+' '+los;
end;
if typ<80 then
begin
label2.caption:='Zhoda : '+inttostr(pocetvyskytov);
label3.Caption:='Zhoda v cislach : '+cislo;
end;
end;
end;
for i:=1 to 10 do
begin
typo:=typo+' '+inttostr(poletyp[i]);
label7.Caption:=typo;
end;
end;
//najdi zhody
procedure TForm1.Button2Click(Sender: TObject);
var cislo,cislo2,i,j:integer;
s:string;
begin
b:=true;
if b=true then begin
if memo1.lines.count > 10 then
begin
for i:=memo1.lines.count downto 10 do memo1.Lines[i]:='';
b:=false;
end
else if memo1.lines.count < 10 then
begin
b:=false;
end;
if memo1.Lines.count = 10 then
begin
b:=true;
end;
for i:=1 to 10 do if b=true then
begin
trystrtoint(memo1.lines[i-1],cislo);
if cislo < 81 then
begin
b:=true;
end
else
begin
b:=false;
end;
if b = true then
begin
button1.Enabled:=true;
label5.caption:='Môžete spustiť losovnie čísel.'
end
else
begin
button1.Enabled:=false;
label5.caption:='Vaše zadané čisla niesú platné'
end;
end;
end
else label5.caption:='nezadali ste vsetky polia'
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
b:=true;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
keno6:='KENO10';
keno:='KENO 10 je číselná lotéria kenového typu, pri ktorej tipujúci tipuje 1 až 10 čísel z osemdesiatich čísel číselného radu od 1 do 80.';
keno1:='Pri každom žrebovaní je vyžrebovaných 20 výherných čísel. Číselnú lotériu KENO 10 je možné hrať bez stávky na KENO PLUS alebo so stávkou na KENO PLUS.';
keno2:='Pri stávke na KENO PLUS hráč tipuje na to, že jedno z jeho tipovaných čísel bude vyžrebované ako posledné v poradí žrebovaných výherných čísel.';
keno3:='V číselnej lotérií KENO 10 vzniká výhra, ak zo zvoleného počtu tipovaných čísel hráč uhádne stanovený počet výherných čísel podľa tabuľky výhier.';
keno4:='Pri stávke na KENO PLUS výhra vzniká vtedy, ak medzi uhádnutými číslami sa nachádza aj posledné vyžrebované výherné číslo stávkového obdobia.';
keno5:='Vklad hry číselnej lotérie KENO 10 je voliteľný hráčom.';
ShowMessage(Keno6+#13+#13+keno+#13+keno1+#13+keno2+#13+keno3+#13+keno4+#13+keno5);
end;
end.
- Prílohy
-
- Generator cisel., [keno] 3verze.rar
- Keno10-- ale este nemam osetrene vsetky vstupy.
- (251.3 KiB) 59 stiahnutí
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
tvoj program absolútne nerobí to, čo od neho očakávaš. Pozrel som kod, ale nech som akokolvek dobrý, nedokázal som pochopiť tým veciam čo sa dejú po stlačení na druhé tlačidlo. Posledné dve chyby som nevyvolal aj keď by nastať mali (logicky, nie podla logiky tvojho programu lebo z kodu je jasné že prečo nenastali). Dokonca mi ani nikdy nenapísalo tú správu že môžem spustiť hlasovanie. Celé je to písané neprehladné, plné logických nezmyslov, z ktorých ma najviac pobavili veci ako:
(takáto podmienka je zbytočná, keď bude vždy splnená)
celé je to v cykle a overuje (asi to malo tak slúžiť) čísla či sú dobre zadané. Keďže pri prvom zlom čísle procedúru neukončíš, teoreticky mi stačí zadať správne posledné číslo a tých 9 môže byť písmen. Po prejdení cyklom bude b=true lebo desiate číslo je správne a spokojne zabúdaš na predošlých 9 chýb 
toto overovanie tam ani nemusí byť. Keby si pozreš aké návratové hodnoty vracia daná funkcia pred tým ako ju použiješ, tak by si zistil že sa podmienka vykoná tiež, nech zadám čokolvek. trystrtoint vracia boolean či sa podarilo alebo nepodarilo prekonvertovať string na číslo. Ak sa ale nepodarí, do premennej cislo ti uloží 0 a vráti false (ktoré nikde nekontroluješ) ale konrtoluješ či je táto nula menšia ako 81
a hlúposti je tam ďaleko viac, ale tieto ma najviac pobavili
Kód: Vybrať všetko
b:=true;
if b=true then beginKód: Vybrať všetko
if cislo < 81 then
begin
b:=true;
end
else
begin
b:=false;
end;
if b = true thenKód: Vybrať všetko
trystrtoint(memo1.lines[i-1],cislo);
if cislo < 81 thena hlúposti je tam ďaleko viac, ale tieto ma najviac pobavili