Kezdőoldal » Számítástechnika » Programozás » Turbo Pascal Vektor feladatokn...

Turbo Pascal Vektor feladatoknál elakadtam, tudsz segíteni?

Figyelt kérdés

145.) készítsen eljárást,amely egy vektor elemeit ciklikusan eggyel jobbra mozgatja úgy,hogy az utolsó elem az első helyen lépjen be!


147.) készítsen eljárást, amelyik egy vektor elemeit ciklikusan egy megadott értékkel mozgatja jobbra!


148.) készítsen eljárást,amelyik egy vektor elemét törli úgy,hogy a többi elemet eggyel balra mozgatja!


150.) készítsen eljárást,amelyik egy vektor egy tetszőleges értékét törli (a torlendo elem indexet parameterben kapja az eljárás)!


151.) készítsen eljárást,amely egy vektorba egy új értéket szúr be az első helyre(a tobbi adatot eggyel jobbra kell mozgatni)!



Aki tudna esetleg segíteni valamelyikben?


2011. júl. 29. 21:45
1 2 3
 1/29 Rosery válasza:

Szia!


A vektroban szereplő számokat neked kell megadni az elején vagy véletlenszerűen jönnek?

2011. júl. 29. 22:00
Hasznos számodra ez a válasz?
 2/29 A kérdező kommentje:

VEKTOROK a konyvem szerint


pl.


var a:array[1..10] of integer;

2011. júl. 29. 22:41
 3/29 anonim ***** válasza:
:DDDDDDD
2011. júl. 29. 23:02
Hasznos számodra ez a válasz?
 4/29 A kérdező kommentje:
:DDDDD ?!
2011. júl. 29. 23:16
 5/29 anonim ***** válasza:
És pontosan mit nem tudsz megcsinálni a feladatokon?
2011. júl. 29. 23:22
Hasznos számodra ez a válasz?
 6/29 A kérdező kommentje:

Vegyuk eloszor az elsot!

"145.) készítsen eljárást,amely egy vektor elemeit ciklikusan eggyel jobbra mozgatja úgy,hogy az utolsó elem az első helyen lépjen be!

"


egy masik oldalon irtak errre valaszul:

145., Fogsz egy másik vektort, belepakolod először az eredeti utolsó elemét, aztán végigmész a régi vektoron és folytatva az utolsó előtti elemig bezárólag beleírod a többi elemet, majd a végén ezt az új vektort egyenlővé teszed a régivel


eddig eljutottam:

program ciklikusvektor;

uses crt;

var i,c,d:integer;

a:array[1..10] of integer;

b:array[1..10] of integer;


procedure feltoltes;

begin

for i:=1 to 10 do

begin

a[i]:=i;

writeln('a[',i,'] ',i);

end;

end;


ez kiirja hogy a[1] 1

a[2] 2 ...tizig



szoval most kene egy masik vektort irni es belepakolni az elsot hatulrol elore.


for i downto do eljassal babraltam ...de nem nagy sikerrel.

2011. júl. 29. 23:45
 7/29 Rosery válasza:

Tudom mi az a vektor.

De a tömbben szereplő számokat bekérhetek a felhasználótól 1enként, meg a gép is kiválaszthatja magának random szerűen.

2011. júl. 30. 01:01
Hasznos számodra ez a válasz?
 8/29 anonim ***** válasza:

Én máshogy csinálnám...


Szóval van a vektorod. Rajzold le egy lapra, négyzethálósra. Egy négyzet egy eleme. Próbáld először kb. 4-5 elemmel. Szóval mindent egyel jobbra kell mozgatnod. Ekkor húzz az elemek fölé nyilakat, hogy mi hova megy (az utolsóval még ne foglalkozz.) Mit veszel észre?

Én azt, hogy ha előlről kezdem, akkor az első elem lesz bemásolva mindenhova.

És mi van akkor ha hátulról kezdem? Nagyon jó. Kivéve, hogy az utolsó elem elvesztődik, és az első elem kétszer lesz. Ez már szinte jó nekünk.

Most jön az a rész, hogy az utolsó elem az első helyre kell kerüljön.

Mivel az utolsó elem elveszett, szükségünk lesz egy változóra, ahová ezt még az elején letároljuk. (Nincs szükségünk egy egész vektorra, mert csak egy elem vész el. Ha több veszne el, akkor tényleg kellene még egy vektor...)

Másik problémánk az volt, az első elem az új vektor elején kétszer szerepel. Nekünk az első elem helyén az utolsó kellene szerepeljen. Nahát akkor miért nem rakjuk be a végén az utolsó elemet, amit már letároltunk egy változóba, az első helyre?


kb. ennyi a kód:

letárolt_első_elem := vektor[ utolsó_elem_sorszáma ];

for i megy vektor_elemeinek_szama downto 2 do

(2ig kell mennünk, mivel az első elem helyére már nem rakjuk be a nulladik elemet, mivel ilyen nincs. Feltételezem, hogy a vektor 1től van számozva és nem nullától, vagy más számtól, de ha mástól van, akkor vedd figyelembe azt is.)

begin

vektor[ i ] := vektor[ i - 1 ];

end;

vektor[1] := letárolt_első_elem; //visszarakjuk a letárolt utolsó elemet a módosított vektorunk elejére.

2011. júl. 30. 08:44
Hasznos számodra ez a válasz?
 9/29 anonim ***** válasza:

hoppá

az a "letárolt_első_elem"

"letárolt_utolsó_elem akart" lenni... :P

2011. júl. 30. 08:50
Hasznos számodra ez a válasz?
 10/29 A kérdező kommentje:

Talán megcsináltam....kiírta,hogy a[1]; a[2] 3;....a[10] 1.

jól írtam le? (ahogy te mondtad a végét nem tudtam megcsinálni)


program ciklikusvektor;

uses crt;

var i,elem:integer;

a:array[1..10] of integer;



procedure feltoltes;

begin

for i:=1 to 10 do

begin

a[i]:=i;

writeln('a[',i,'] ',i);

end;


writeln;

a[10]:=a[1];


for i:=1 to 9 do

begin

a[i]:=i;

writeln('a[',i,'] ',i+1);

end;

writeln('a[10] ',a[10]);

end;



BEGIN

clrscr;

feltoltes;

readln;

END.

2011. júl. 30. 10:31
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!