Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 18. 02. 2013 16:55 — Editoval xardas (18. 02. 2013 16:57)

xardas
Příspěvky: 25
Reputace:   
 

Pascal-řada

Zdravím, mám problém s pascalem-konkrétně potřebuji sestavit program, kterému se zadá 10 čísel.
Z těchto deseti čísel má vypsat nejdelší souvislý lichý řetězec (počet lichých číslic v něm obsažených).

Př: Vstup: 1 2 3 1 1 1 2 3 3 2
Program vypíše 4
Nějak jsem to rozpracoval, ale dál si nevím rady

program lichy_retezec;
uses crt;
var  cislo, i, maximum, citac,  k  :integer;
begin
writeln ('zadej cislo');
readln (cislo);



if cislo mod 2 <>0 then
begin

citac:=citac+1;
maximum :=citac+1;
end;



for i:=1 to 10 do

begin
readln (cislo);
if cislo mod 2 <>0 then
        begin

citac:=citac+1;
writeln ('citac je' , citac);

        end
else citac:=0;




end;






  (*


if citac >maximum then maximum:=citac;

writeln ('nejdelsi  je ' , maximum);
readln;
       *)

      end.

Tou částí mezi (**) si nejsem jist, píše hlouposti. Právě proto sem píšu. Nevím, jak ošetřit průběžné ukládání čítače , který čítá obsah řetězce lichých čísel (při přerušení -sudé číslo-se vynuluje  a začne odznova). Čítač mi pouze vypisuje na obrazovku.
Díky za rady

Offline

 

#2 19. 02. 2013 16:53

Wrunx
Příspěvky: 65
Reputace:   
 

Re: Pascal-řada

myslím že část "else" stačí doplnit o porovnání s dosavadním maximem, nějak takto:

if cislo mod 2 <>0 then
      begin
            citac:=citac+1;
       end
else
      begin
         if citac>maximum then
             maximum=citac
         citac:=0;
      end;

writeln(maximum)

Offline

 

#3 19. 02. 2013 20:43 — Editoval xardas (19. 02. 2013 21:14)

xardas
Příspěvky: 25
Reputace:   
 

Re: Pascal-řada

↑ Wrunx: po pár úpravách funguje . Díky
EDIT: funguje, ale jakmile zadám nejdelší lichý řetězec na konci programu
třeba 2 1 2 1 1 2 1 1 1 1 tak to vypíše nejdelší řetězec je 2. Jde to nějak ošetřit?

Offline

 

#4 20. 02. 2013 16:04

Wrunx
Příspěvky: 65
Reputace:   
 

Re: Pascal-řada

Máš pravdu, to jde řešti např. tak že na konec programu připojíš tu část, kterou jsi v původním kódu ohvězdičkoval (tj. ještě jednou se porovná aktuální čítač s maximem). Anebo se ukládání čítače do hodnoty maxima dá přesunout z části "else" přímo do části "if", čili tam, kde se hodnota čítače zvyšuje, pak už by ohvězdičkovaný dodatek neměl být potřeba.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson