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 25. 10. 2009 15:22

tominga
Zelenáč
Příspěvky: 4
Reputace:   
 

výskyt v posloupnosti - Pascal

Zdravím, mám za úkol dát dohromady prográmek, který určí nejvyšší číslo v posloupnosti a jeho pozici, případně všechny pozice, když je tam víckrát. Určování max. hodnoty už mám, ale pořád se mi nedaří určit ty pozice. Víte někdo jak nato? Díky

Offline

 

#2 25. 10. 2009 16:04

Lukee
Administrátor
Místo: Opava
Příspěvky: 1853
Škola: UPOL, Informatika
Pozice: Roznašeč reklamních bannerů
Web
 

Re: výskyt v posloupnosti - Pascal

Potřebuješ o jedno pole víc, třeba pole indexy. V něm si budeš uchovávat indexy nalezených maxim. Když najdeš číslo, které je menší než současné maximum, nic neuděláš. Když najdeš číslo, které je stejně velké jako maximum, přidáš tento index do pole indexy. Když najdeš číslo větší než maximum, vymažeš všechny prvky pole indexy a vložíš do něj aktuální index nového maxima.


2+2=4

Offline

 

#3 25. 10. 2009 16:09 — Editoval tominga (25. 10. 2009 16:09)

tominga
Zelenáč
Příspěvky: 4
Reputace:   
 

Re: výskyt v posloupnosti - Pascal

↑ Lukee:

tak to musím ještě dostudovat pole, sakra. tam ještě nejsem a za 3 dny mám odevzdávat 5 prográmků...díky za tip.

Offline

 

#4 25. 10. 2009 17:56

Lukee
Administrátor
Místo: Opava
Příspěvky: 1853
Škola: UPOL, Informatika
Pozice: Roznašeč reklamních bannerů
Web
 

Re: výskyt v posloupnosti - Pascal

↑ tominga:
A v čem uchováváte tu sekvenci? Měla by jít použít stejná datová struktura jako pro tu sekvenci. Potřebuješ zkrátka něco, kam si můžeš uložit více intů, nemusí to být nutně pole.


2+2=4

Offline

 

#5 25. 10. 2009 18:26

tominga
Zelenáč
Příspěvky: 4
Reputace:   
 

Re: výskyt v posloupnosti - Pascal

↑ Lukee:
tak to už je na mě trochu moc :) jsem úplný novic. začal jsem do hotovýho kódu cpát pole a od té doby to mám celý rozbitý a nejde mi to zkompilovat. to je konec. vůbec jsem před tím nepoužil pole, jen jsem deklaroval proměnné a pak jsem for cyklem zjistil nejvyšší číslo, které se uložilo do jiné proměnné, ta se na konci vypíše.

Code:

program MaxPosloup;
var C, N, MAX, i : Integer;    {C: zadan  čísla, N: zadaný počet čísel v posloupnosti,
                             MAX: nejvyšší hodnota v posl.}

 begin
 writeln ('Zadejte počet čísel v posloupnosti.' );
 readln (N);
 writeln ('Zadejte čísla posloupnosti. ');
 MAX := -MaxInt; {nejnižší možné číslo pro porovnávání v daném oboru}
     for i:=1 to N do
     begin
       read (C);
        if C>MAX then MAX := C;
     end;
 write ('Nejvyšší číslo posloupnoti je ', MAX, '.');
 end.

to je můj výtvor, z toho prostě nedokážu vymáčknout pozici

Offline

 

#6 25. 10. 2009 19:28

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: výskyt v posloupnosti - Pascal

resenim je napriklad nasledujici kod, nicmene je v nem pouzito dynamicke pole pro ukladani indexu maximalni hodnoty. nevim, jak moc jsi seznamen s pascalem (programovanim), tudiz nevim, jak moc je tento kod pro tebe srozumitelny. za poznamku urcite stoji rici, ze dynamicka pole jsou indexovana od nuly.

Code:

program MaxPosloup;
var C, N, MAX, i, j : Integer;
    index: array of Integer;

begin
 writeln ('Zadejte pocet cisel v posloupnosti.' );
 readln (N);
 writeln ('Zadejte cisla posloupnosti. ');
 MAX := -MaxInt;

   for i:= 1 to N do
     begin
       read (C);
        if C>MAX then begin
          j := 0;
          MAX := C;
          SetLength(index, j+1);
          index[j] := i;
        end;
        if C = MAX then begin
          j := j + 1;
          SetLength(index, j+1);
          index[j] := i;
        end;
     end;
 write('Nejvetsi cislo posloupnosti je ', MAX, ' nachazejici se na pozici(ch) ');
 for i := 1 to Length(index) - 1 do
   write(index[i], ' ');
end.

Offline

 

#7 25. 10. 2009 19:33

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: výskyt v posloupnosti - Pascal

jaj, ted se divam na tvuj prispevek ↑ tominga:: "tak to musím ještě dostudovat pole, sakra." takze dynamicke pole mozna bude celkem velky orisek. nebo ne?

Offline

 

#8 25. 10. 2009 19:57

tominga
Zelenáč
Příspěvky: 4
Reputace:   
 

Re: výskyt v posloupnosti - Pascal

↑ plisna:
už jsem u polí, ještě nejsem zběhlý, ale přelouskám to. zrovna na to koukám a sanžím se pochopit, jak díky tvýmu kódu vypíše pozici. jinak děkuju za radu a doplnění

Offline

 

#9 25. 10. 2009 20:02

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: výskyt v posloupnosti - Pascal

↑ tominga: okay, jen doplnim: dynamicke pole je vlastne "obycejne" staticke pole, jehoz velikost lze behem programu menit. to staticke pole neumoznuje, jeho velikost je pevne dana jiz v dobe prekladu. dynamicke pole meni velikost pomoci SetLength(pole, pocet prvku), dulezite je vedet, ze je indexovane od nuly, tedy prvni index v poli ma index nula, druhy prvek ma index jedna, ..., posledni prvek ma index N-1, kde N je pocet prvku v poli

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson