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 11. 01. 2013 11:45

exltus
Příspěvky: 26
Reputace:   
 

Pascal - Vkládání do seznamu

Dobrý den,
mám za úkol vytvořit lineární jednosměrný dynamický seznam, jehož položkami budou čísla (kladná i záporná). Poté mám vytvořit proceduru, která seznam projde a zdvojí kladné hodnoty (např. 5, 7, -3, 4, -1 -> 5, 5, 7, 7, 4, 4). Jak je možné vkládat data v seznamu na různá místa? Prozatím jsem se setkal pouze s frontou, zásobníkem, nebo obousměrným seznamem, ale s tímto ne :( nevíte si někdo rady?

Offline

 

#2 11. 01. 2013 17:07

Wrunx
Příspěvky: 65
Reputace:   
 

Re: Pascal - Vkládání do seznamu

Možností jak vložit prvek do seznamu vidím více, ale zkus se v tomto fóru podívat na spojové seznamy.

Offline

 

#3 11. 01. 2013 17:45 — Editoval RePRO (11. 01. 2013 18:13)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Pascal - Vkládání do seznamu

Zdravím,

Vytvoříme strukturu (prvek):

Code:

type PPrvek = ^Prvek;
Prvek = record
   x: integer;
   dalsi: PPrvek;
end;

Pokud známe ukazatel na prvek P, za který chceme vložit prvek N, můžeme udělat toto:

Code:

procedure NovyPrvekZa(P, N: PPrvek);
begin
   N^.dalsi := P^.dalsi;
   P^.dalsi := N;
end;

U každého prvku zjistíš, jestli je hodnota kladná (tedy větší jak nula). Pokud ano, tak jí zdvojnásobíme. Pak se posuneme na další prvek:

Code:

if (prvek^.hodnota > 0) then prvek^.hodnota := prvek^.hodnota * 2;

Tady jsem psal už něco.


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson