Stránka 1 z 1

Program v pascalu

Napsal: 20 kvě 2012 20:04
od Psenda15
Zdravím, potřeboval bych pomoct. Dostali jsme za úkol udělat program v pascalu a zadání je:
Vstup: 20 čísel
Výstup: Počet Sudých
Počet Lichých
Počet Nul
Má to být pomocí tzv. "pole" a vůbec nevím co s tím? Poradí mi někdo?

Re: Program v pascalu

Napsal: 20 kvě 2012 20:11
od domitea
Do pole načteš všech 20 hodnot a ty potom pomocí cyklu budeš určovat jestli jsou sudá, lichá (přes modulo) a jestli to není nula. Výsledky podmínek budeš ukládat do proměnných a pak jen vypíšeš.

Re: Program v pascalu

Napsal: 20 kvě 2012 22:01
od faraon
Asi takhle:

Kód: Vybrat vše

var sude,liche,nula: integer;
    cisla: array[1..20] of integer;


Pak stačí jedna smyčka for pro načtení čísel do pole, a druhá která ho projde a pomocí if..then..else vyhodnotí do které skupiny (sudé, liché, nula) každé číslo patří, a podle toho ji inkrementuje. Na závěr vypíšeš výsledky.

Všechno co je potřeba vědět je tady a tady.

Re: Program v pascalu

Napsal: 21 kvě 2012 20:32
od Psenda15
mám to v poli...už zadávám čísla...ale nevím jak tam zapsat ty sudá a lichá...prosím poraďte.

Re: Program v pascalu

Napsal: 21 kvě 2012 20:37
od faraon
Možná by bylo jednodušší nejdřív testovat tu nulu, a teprve potom sudá/lichá.

Pro inspiraci:

Kód: Vybrat vše

if (cislo mod 2 = 1) then
   writeln('cislo je liche')
else
   writeln('cislo je sude');

Re: Program v pascalu

Napsal: 22 kvě 2012 21:03
od Psenda15
no a tu nulu jak??

--- Doplnění předchozího příspěvku (22 Kvě 2012 21:06) ---

a to co jsi napsal...jsem zkusil a to mi jen na konci zadávání vyspalo...cislo je sude.

Re: Program v pascalu

Napsal: 23 kvě 2012 18:33
od faraon
Tu nulu úplně stejně:

Kód: Vybrat vše

if (cislo = 0) then
   writeln('cislo je nula')
else
   ostatní možnosti...


Musíš prověřit každé číslo v poli, stejným postupem jako jsi je načítal. Takže smyčka for a místo proměnné cislo příslušná položka pole, jinak se ti otestuje jen to naposledy vložené. S poli doufám pracovat umíš.

Samozřejmě předpokládám že místo výpisu hlášení si doplníš požadovanou činnost, osobně bych použil proceduru inc()...

Re: Program v pascalu

Napsal: 23 kvě 2012 18:59
od Psenda15
právě že moc ne...teprve v tom začínáme.

--- Doplnění předchozího příspěvku (23 Kvě 2012 19:01) ---

Tak prosím tak nějak jak by ten program měl vypadat...pochopím to když to uvidím..ale takhle moc ne

Re: Program v pascalu

Napsal: 24 kvě 2012 22:41
od faraon
Když ho uvidíš? Nejlépe je to vidět na vývojovém diagramu:

Kód: Vybrat vše

                     zacatek
                        |
                   ------------
           +------( i := 1..20 )<----+
           |       ------------      |
           |            |            |
           |   +-----------------+   |
           |   | vstup: cislo[i] |---+
           |   +-----------------+
           |
      ------------
+----( i := 1..20 )<---------------------------------+
|     ------------                                   |
|          |                                         |
|    --------------                                  |
|   ( cislo[i] = 0 )O-------+                        |
|    --------------         |                        |
|          |                |                        |
|          |       --------------------              |
|          |      ( cislo[i] mod 2 = 1 )O---+        |
|          |       --------------------     |        |
|          |                |               |        |
|    +-----------+   +------------+   +-----------+  |
|    | inc(nula) |   | inc(liche) |   | inc(sude) |  |
|    +-----------+   +------------+   +-----------+  |
|          |                |               |        |
|          +----------------+---------------+--------+
|
|   +------------------+
|   | vystup:          |
+---| 'Sudych:' sude   |
    | 'Lichych:' liche |
    | 'Nul:' nula      |
    +------------------+
             |
           konec


Nemůžu za tebe ten úkol udělat celý, je to prográmek na pětadvacet řádků a skoro půlku ho tu už máš, tak ukaž aspoň něco svého, třeba jak načítáš ta čísla do pole...