pascal program

Programovacie jazyky, rady, poradňa...
kaciva
Amateur
Amateur
Príspevky: 31
Registrovaný: 02 máj 2007, 21:19

pascal program

Príspevok od používateľa kaciva »

kto mi pomoze s takymto prikladom?

V Stuchaniciach pri Koryte v ramci celonarodneho boja proti nezamestnanosti zalozili slepaciu farmu. A keby len to, dokonca este aj nejake sliepky kupili. Nuz a ako ano, ako nie, urodilo sa im uz onedlho na nej prvych par vajicok. A pomerne rychlo vyrastli. Vecer nic a rano... "Hla! Vajicka!" zbehla sa hned cela dedina. "Tie su urcite najkrajsie v kraji. Ba co, na svete!" prekrikovali sa. "A urcite aj najlepsie!" "A urcite aj najpevnejsie..." poznamenal sused Zavis, ktory mal zlu naladu, lebo v jeho kravine sa za celych pat rokov ani jedno vajicko neurodilo.

"Ano, ano!" kricali dedincania, no potom sa zarazili. Ze su najkrajsie, to na nich vidiet na prvy pohlad. Ale ako zistia, ci su najpevnejsie? "To je lahke." poucil ich Zavis. "Pevnost vajicka sa meria tak, ze je to najvyssia vyska v centimetroch, z ktorej pad vajicko prezije bez toho, aby sa rozbilo." A tak dedincania zobrali urodu a zacali merat. Len sused Zavis sa oprel o plot a pozoroval so skodoradostnym vyrazom v tvari, ako Gejza zdrapil prve vajicko, pustil ho z vysky N cm a to po kratkom lete dopadlo na zem a rozbilo sa na marne kusky.

Uloha
Napiste program, ktory nacita N - vysku, z ktorej sa uz vajicko urcite rozbije a M - pocet zvysnych vajicok. Potom bude postupne pisat vysky v centimetroch, z ktorych maju dedincania pustit vajicko a z klavesnice zakazdym nacita, ci sa vajicko rozbilo alebo nie. Kedze dedincania su netrpezlivi, treba, aby vas program (v najhorsom pripade) potreboval co najmenej spusteni vajicka. Nezalezi na tom, kolko vajicok pocas hladania kritickej vysky vas program rozbije. Samozrejme, po rozbiti posledneho vajicka uz musi hladanu vysku vediet.

Priklad

N=10 M=2
Spust z vysky 1 cm
> nerozbilo sa
Spust z vysky 3 cm
> nerozbilo sa
Spust z vysky 5 cm
> rozbilo sa
Spust z vysky 4 cm
> nerozbilo sa
Vajicka sa rozbiju pri spusteni z vysky 5 cm a viac.
(Na zistenie bolo treba 4 spustenia.)


Poznamka
Zdovodnite, preco vas program vzdy spravne urci kriticku vysku a skuste spocitat, kolko skokov potrebuje v najhorsom pripade pre dane M a N.
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

uzivatel ma zadavat ci sa rozbilo alebo nie ??? a program bude nahodne zadavat vysky ??? alebo ako vlastne to ma fungovat ?
kaciva
Amateur
Amateur
Príspevky: 31
Registrovaný: 02 máj 2007, 21:19

vajicko

Príspevok od používateľa kaciva »

uzivatel ma nahodne zadat vysku a program ma vypisat ci sa vajicko rozbiloalebo nie
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

Kód: Vybrať všetko

program vajicka;
uses crt;
var vyska,pocet,i,x:integer;
    pokus:array[1..100] of integer;
    pad:boolean;
begin
clrscr;
randomize;
vyska:=random(10)+1;  {nahodna vyska od 1-10}
pocet:=random(10)+1;  {nahodny pocet vajec od 1-10}
i:=0;
x:=0;
pad:=FALSE;

repeat
inc(i);
writeln;
writeln('Mame ',pocet,' vajec.');
write('Zadaj vysku z ktorej hadzes: ');
readln(pokus[i]);

if (pokus[i]<vyska) then begin
   writeln('Vajce sa nerozbilo.');
end
else begin
   writeln('Vajce sa rozbilo.');
   dec(pocet);
end;

if ((pokus[i]=vyska-1) or (pokus[i]=vyska)) then inc(x);  {vysku zistime len vtedy ak uhadneme hodnotu vysky od ktorej sa uz rozbije a hodnotu x-1}
if (x=2) then pad:=TRUE; {ak najdem tie dve hodnoty pad:=true a cyklus skonci}

until (pocet=0) or (pad); {koniec ak nemame ani jedno vajce alebo ak najdeme vysku}

writeln;
if (pocet<>0) then begin {ak nam ostalo aspon 1 vajce}
   writeln('Hladanu vysku sme nasli na ',i,'. pokus!');
   writeln('Ostalo nam ',pocet,' vajec.');
end
else begin {ak nam neostalo ziadne vajce}
   writeln('Neostalo nam ani jedno vajce, takze vysku sme nezistili!');
end;
readln;
end.
dufam ze je to dobre :P mne to funguje no treba odskusat :)
kaciva
Amateur
Amateur
Príspevky: 31
Registrovaný: 02 máj 2007, 21:19

Príspevok od používateľa kaciva »

vrela vdaka
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

nechapem jak to ze sa Zavisovi v kravine celych 5 rokov neurodilo ani jedno vajce, keby v kurniku tak to aj pochopim, ale v kravine .. tak to teda nie.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

juho: omg
kaciva: v tom príklade máš chybu, lebo máš že M=2 (tzn že máme ešte 2 vajíčka) a treba 4 pokusy na zistenie. Čiže dva pokus (ktoré boli potrebné na zistenie) nemôžeme realizovať.
Tým narážam na jeden zádrhel. Treba program ukončiť s tým že viac nemôže skúšať, lebo došli vajcia, alebo dokončiť merania s tým, že sa vypíše že meranie trvalo minimálne dva dni. :D :roll:
kaciva
Amateur
Amateur
Príspevky: 31
Registrovaný: 02 máj 2007, 21:19

Príspevok od používateľa kaciva »

no to viem, len neviem ako to mam urobit
Pilifo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 7001
Registrovaný: 12 okt 2007, 16:41
Kontaktovať používateľa:

Príspevok od používateľa Pilifo »

Veď ti stačí vždy pri testovaní rozbitia v cykle nejakú pomocnú premennú zvyšovať a na konci cyklu ju porovnávať s počtom vajec - ak dosiahne počítadlo počet vajec, program sa ukončí...je to jednoduchý cyklus s repeat a until :)
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

omg ved som to sem poslal staci pozret vyssie
Pilifo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 7001
Registrovaný: 12 okt 2007, 16:41
Kontaktovať používateľa:

Príspevok od používateľa Pilifo »

Ja viem, v programe to máš, ale neviem prečo potom audiotrack písal o zádrheli, keď bol v samotnom programe vyriešený :)
Napísať odpoveď