pascal

Programovacie jazyky, rady, poradňa...
juraj27
Novice
Novice
Príspevky: 3
Registrovaný: 19 nov 2012, 17:19

pascal

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

Cawte...potreboval by som poradiť s týmito príkladmi pls. Vôbec nemam šajnu ako ich spraviť. :? :?

1. Hádaj číslo – hráč si myslí číslo a počítač ho háda, pričom mu užívateľ oznámi, či má zadať menšie, alebo väčšie. Použite metódu polenia intervalu t.j. počítač vždy háda stredné číslo z intervalu, ktoré mu zadá užívateľ. Upravte program na hru „Hádaj číslo“ bez obmedzenia pokusov hádania, program po uhádnutí čísla vypíše aj počet pokusov hádajúceho.

2. Z klávesnice budeme zadávať celé kladné čísla ukončené nejakým záporným číslom, ktorý do postupnosti nepatrí. Zistite, či je táto postupnosť neklesajúca (nasledujúci člen je väčší, alebo je rovnako veľký ako predošlý člen).
heker
Redeemer
Redeemer
Používateľov profilový obrázok
Príspevky: 14817
Registrovaný: 30 máj 2006, 20:27

Re: pascal

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

A kde si sa zasekol alebo kde je tvoj hlavny problem? Ci nevies ani napisat begin a zacat? V tom pripade to budes mat dost tazke, ale verim tomu, ze ked pouzijes Google, tak tieto priklady najdes uz hotove a napisane.
juraj27
Novice
Novice
Príspevky: 3
Registrovaný: 19 nov 2012, 17:19

Re: pascal

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

heker napísal:A kde si sa zasekol alebo kde je tvoj hlavny problem? Ci nevies ani napisat begin a zacat? V tom pripade to budes mat dost tazke, ale verim tomu, ze ked pouzijes Google, tak tieto priklady najdes uz hotove a napisane.

pozeral som to na googli a napriklad na to hadanie je tam len taka verzia ze hadam uzivatel a nie pocitac...a to je uplne nieco ine. A neviem vobec robit s prikazom char cez ktory by sa to asi malo robit a potreboval by som to do stredy takze som vdacny za kazdu pomoc. :?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: pascal

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

http://www.hojko.com/citajte-pred-zaloz ... 23064.html
keď nemáš ani šajn, skús aspoň slovne napísať ako by si to riešil keby si ty ten počítač. My ti ten algoritmus potom opravíme a pomôžeme prepísať do syntaxe pascalu
juraj27
Novice
Novice
Príspevky: 3
Registrovaný: 19 nov 2012, 17:19

Re: pascal

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

audiotrack napísal:http://www.hojko.com/citajte-pred-zaloz ... 23064.html
keď nemáš ani šajn, skús aspoň slovne napísať ako by si to riešil keby si ty ten počítač. My ti ten algoritmus potom opravíme a pomôžeme prepísať do syntaxe pascalu
program hadanie;
var cislo,b,tip,pokus:integer;
begin
writeln('zadajte hornu hranicu´);
readln(c);
writeln(´zadaj pokus´);
cislo:=random(c);
repeat
tip:=random(c);
write (c);
pokus:=pokus+1;
if tip<cislo then writeln(´skus viac´);
if tip>cislo then writeln(´skus menej´);
until tip=cislo;
writeln(´uhadol si na´,pokus);
readln;
end.

a proste neviem to spravit aby to hadalo stale dookola az dokym neuhadne spravne.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: pascal

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

no takže:
1) pracuješ tam s premennou c, ktorú nemáš deklarovanú. Deklarovanú máš premennú b, ktorú nepoužívaš nikde v programe. Asi preklep
2) tip nemôžeš dávať random, to má byť predsa vstup od užívateľa
3) write(c) tam nemá čo robiť
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: pascal

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

juraj27 napísal:Cawte...potreboval by som poradiť s týmito príkladmi pls. Vôbec nemam šajnu ako ich spraviť.

1. Hádaj číslo – hráč si myslí číslo a počítač ho háda, pričom mu užívateľ oznámi, či má zadať menšie, alebo väčšie. Použite metódu polenia intervalu t.j. počítač vždy háda stredné číslo z intervalu, ktoré mu zadá užívateľ. Upravte program na hru „Hádaj číslo“ bez obmedzenia pokusov hádania, program po uhádnutí čísla vypíše aj počet pokusov hádajúceho.

2. Z klávesnice budeme zadávať celé kladné čísla ukončené nejakým záporným číslom, ktorý do postupnosti nepatrí. Zistite, či je táto postupnosť neklesajúca (nasledujúci člen je väčší, alebo je rovnako veľký ako predošlý člen).
Ucili ste sa vyvojove diagramy? Ak ano tak si to v nich nakresli a nesustred sa na to co by sa pri tom malo diat v programe.
Mne to v zaciatkoch a case pascalu pomohlo.
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: pascal

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

Program hada cisla z intervalu <0,255> preto je pouzita konstanta 128 a funkciou postupne delime mocninami 2^N do podmienky max. prechodu (v tomto pripade 7 -> 7^2 = 128). Ak bude iterval vacsi, treba zmenit tieto parametre.

Kód: Vybrať všetko

Program HADAJ;
uses Crt;
var
  cislo,pokus: Byte;
  vstup: Char;

function mocnina(pokus: Integer): Integer;
var
  i,vys: integer;
begin
  vys := 1;
  for i := 1 to pokus do
    vys := 2 * vys;
  mocnina := vys;
end;


BEGIN
  ClrScr;
  WriteLn('Mysli si cislo z intervalu <0,255>');
  cislo := 128;
  pokus := 1;
  repeat
    Write('je Tvoje cislo vacsie ako ',cislo,' ? (a/n)');
    ReadLn(vstup);
    if vstup = 'a' then
      cislo := cislo + trunc(128 / mocnina(pokus));
    if vstup = 'n' then
      cislo := cislo - trunc(128 / mocnina(pokus));
    inc(pokus);
  until pokus > 7; {2^7 = 128}
  WriteLn(cislo);

END.
Hadame cislo, ktore si mysli pocitac.

Kód: Vybrať všetko

Program HADAJ1;
uses Crt;
var
  cislo,pokus,vstup: Byte;

BEGIN
  ClrScr;
  Randomize;
  WriteLn('Myslim si cislo z intervalu <0,255>');
  cislo := Random(256);
  repeat
    Write('Zadaj tvoj tip: ');
    ReadLn(vstup);
    if vstup < cislo then
      WriteLn('Moje cislo je vacsie');
    if vstup > cislo then
      WriteLn('Moje cislo je mensie');
    inc(pokus)
  until vstup = cislo;
  WriteLn('Uhadol si na ',pokus,'. pokus');

END.
Napísať odpoveď