GRY-Online.pl --> Archiwum Forum

Nudno ci?? A moze...pascal??

26.03.2006
20:17
[1]

CrazyMan [ G-Unit ]

Nudno ci?? A moze...pascal??

mam problem...dostalem programik w pascalu...polega on ogolnie na tym ze pobiera z klawiatury jakas liczbe lub slowo i "wklada do wora/na stos"...kazde dodane nowe slowo, liczba dodawane jest na koncu, czyli jesli najpierw podamy mama a pozniej tata to stos bedzie wygladal tak:
tata
mama
moim (teraz takze i waszym :D) zadaniem jest tak zedytowac ten program zeby po dodawaniu nowej liczby wstawial ja do stosu na odpowiednie miejsce z zachowaniem kolejnosci liczb od najmniejszej do najwiekszej...
to znaczy:
-jesli teraz na stosie mam
1
2
3
to jak dodam 4 to bedzie to wygladalo tak:
4
1
2
3

a ma byc tak:
1
2
3
4

jak wstawie 2.5 to ma byc tak:
1
2
2.5
3

rozumiecie??

ze slowami podobnie, maja byc alfabetycznie...
z pascala cienki nie jestem ale to jakos mi nie idzie za bardzo, dlatego prosze o pomoc, chociaz jakies wskazowki, wszystko sie przyda...dzieki wielkie...

26.03.2006
20:27
[2]

_Robo_ [ Senator ]

W jaki sposob zaimplementowany jest stos? Bo prawdziwy stos dziala dokaldnie tak jak teraz, i nie da sie zrobic stosu z wkladaniem do srodka (w prawdziwym stosie masz dostepne tylko i wylacznie dwie operacje push/pop + od biedy isempty/isfull, i nie masz absolutnie zadnego dostepu do "srodka").
Jesli masz stos w postaci wskaznikow to juz w ogole masakra to przerobic ;)
Jak masz w tablicy to o niebo latwiej. Reasumujac, zrob to od zera ;)

26.03.2006
20:32
[3]

CrazyMan [ G-Unit ]

_Robo_ - rzuc okiem...

program lol;
uses crt;
type twskaznik = ^telement;
telement = record
slowo: string;
nast : twskaznik;
end;
var stos: twskaznik;
slowo: string;
znak: char;
procedure na_stos (slowo: string);
var e: twskaznik;
begin
if (slowo <>' ') then
begin
new(e);
e^.slowo :=slowo;
e^.nast := stos;
stos:= e;
end;
end;
function zdejm: string;
var e: twskaznik;
begin
if( stos=nil) then
zdejm:=''
else
begin
e:=stos;
zdejm:=e^.slowo;
stos:=e^.nast;
dispose(e);
end;
end;
procedure wypisz;
var e : twskaznik;
begin
e:=stos;
while e<> nil do
begin
writeln(e^.slowo);
e:=e^.nast;
end;
end;
begin
stos:=nil;
repeat
clrscr;
writeln('P poloz na stos Z zdejm ze stosa W wypisz stos K koniec');
znak:=UpCase(Readkey);
case znak of
'P' : begin
repeat
writeln('Podaj slowo:'); readln (slowo);
until (slowo <> '' );
na_stos (slowo);
writeln('na stosie odlozono slowo:',slowo);
end;
'Z' : begin
slowo :=zdejm;
if slowo = ' ' then
writeln('stos jest pusty')
else
writeln('ze stosu zdjeto slowo:'); readln(slowo);
end;
'W' : begin
writeln(' zawartosc stosu:');
wypisz;
end;
else
if znak <>'K' then
writeln('zly klawisz');
end;
writeln('nacisnij ENTER ady wrocic do menu'); readln;
until(znak = 'K');
end.

26.03.2006
20:35
smile
[4]

@$D@F [ Genera� ]

przerobic progeam ? stary daj na zyc :P owszem, da sie ale musisz zrozumiec najpierw o co chodzi autorowi

co do programu to powinno byc tak
1.podajesz liczbe
2.niech porownuje ja z kolejnymi dopuki nie jest mniejsza,
3.gdy jest mniejsza pozycja jest zapisywana do zmiennej i przechowywana w niej np "n"
4. idziesz od konca tablicy (for i:=100 downto n) i przesuwasz
tab[i+1]:=tab[I ]
5. zwalnia sie miejsce i tab[n]:=liczba
ale pisac mi sie go nie chce :)

EDIT - czy slyszales kiedys o wcieciach ?

26.03.2006
20:37
[5]

CrazyMan [ G-Unit ]

@$D@F -> a jakbym tak ladnie poprosil? tablice nigdy nie bylo moja mocna strona...zanim zloze jakas to bedzie pojutrze...poswiec mi pare minutek...z gory wielkie dzieki

EDIT
@$D@F -> ten program ma wciecia ale gol mi je usunal

26.03.2006
20:50
[6]

CrazyMan [ G-Unit ]

@$D@F -> napisz cos...nawet sobie nie wyobrazasz jak bardzo mi to jest potrzebne...odwdziecze sie jakos :)

26.03.2006
20:58
[7]

@$D@F [ Genera� ]

nie bardzo mi sie chce :P musze zrobic galerie na www a jest zmiana czasu :P a niby jak mi sie odwdzieczysz ? chcesz numer konta ? na kiedy to masz ?

26.03.2006
21:03
[8]

Kijano [ Genera� ]

przeciez taki program to banal

26.03.2006
21:04
[9]

CrazyMan [ G-Unit ]

mam to na jutro...czyli potrzebuje najpozniej do 7:00 jutro rano :) a w praktyce to jak najszybciej bo musze jeszcze skumac o co biega i sie nauczyc...

a co do konta to jesli program bylby dobry i cena nie wygorowana to nie ma problemu

kijano -> to wez zapodaj czyms...

26.03.2006
21:17
[10]

Kijano [ Genera� ]

problem w tym ze ty masz cos takiego umiec napisac bo ja juz to umiem :) Zamiast siedziec na GOLu bys juz cos zaczal pisac. Ja proponuje Ci zrezygnowac ze wskaznikow walnac wszystko do jednej tabelki. Zrobic ludzkie sortowanie tzn nie ech niesprawdza kazdego elementu tylko np. Zacznie od srodka pozniej jesli mniejszy to znow od srodka tego srodka itd.

26.03.2006
21:23
[11]

CrazyMan [ G-Unit ]

kijano -> problem w tym ze ja nie moge zrezygnowac z tych wskaznikow...ja nie mam napisac od nowa tego programu tylko przerobic ten...

poza tym nie mam pojecia jak to zrobic...moze jeszcze zrobilbym tablice i sprawdzanie czy podana wartosc jest mniejsza czy wieksza od wczesniejszych ale juz wogole nie mam pojecia jak zrobic zeby program wpisywal ja w dobrym miejscu...przeciez on musi wtedy wszystkie inne wartosci przeniesc 1 wiersz do gory albo w dol...

ja w szkole nigdy nie mialem zadan takiego poziomu tylko teraz zmienil nam sie nauczyciel i on nie rozumie ze to dla nas za wysoka poprzeczka...zeby nie bylo ja jestem jednym z dwoch-trzech najlepszych osob z infy z klasy i skoro ja tego nie umiem (ani pozostali dwaj) to jak gorsi moga sobie dac z tym rade??

26.03.2006
21:44
[12]

@$D@F [ Genera� ]

w takim razie bedzie lepiej jak tego nie zrobisz, moze gosc zrozumie ze to jest za trudne, jak teraz to zrobisz to potem bedzie jeszcze trudniej
a przerabianie programow i to jeszcze nie swoich to jest bagno
a wskaznikow nie umiem

a co do przesuwania to napisalem jak to ma byc

© 2000-2025 GRY-OnLine S.A.