Kezdőoldal » Számítástechnika » Programozás » Hogyan kell ezt a feladatot...

Hogyan kell ezt a feladatot megoldani Free Pascalban?

Figyelt kérdés

Készítsen eljárást, amelyik egy vektor adott elemét megcseréli az utána következővel! (Használjon közbenső változókat!)

Előre is köszönöm! :)


2015. júl. 24. 20:35
1 2
 11/20 ejbenjaro ***** válasza:

Az x az a bizonyos közbenső változó, ami a feladatkiírásban szerepel. Az elv pedig az, hogy a felcserélendő egyik elemet úgymond kimentem az x-be. Majd a kimentett elemet felülírom a másik elemmel. Ezt követően pedig, hogy a csere végbemenjen az x tartalmával írom felül az indexet követő tömbelemet.

Jobban nem tudom neked megfogalmazni. De láthatod, hogy nem kell pilótavizsga a megértéséhez.

2015. júl. 25. 05:25
Hasznos számodra ez a válasz?
 12/20 A kérdező kommentje:
Köszönöm szépen, most már mindent értek! :)
2015. júl. 25. 09:52
 13/20 A kérdező kommentje:

Azonban sajnos a tetszőleges elem tetszőleges két tagjánál megakadtam: :(


Uses crt;


var i:integer;

v: array[integer] of integer;


Procedure adatbekeres;

Var j:integer;

Begin

Writeln('Add meg a vektor elemit, kil‚p‹k˘d: 1-n‚l kisebb sz m!');

While i>0 do

begin

Writeln('A vektor ',i,'. eleme: ');

Readln(v[i]);

end;

Writeln('Akkor a te elemeid: ');

for j:=1 to i do

Write(v[i],', ');

End;


Procedure csere;

Var a,b,j,x:integer;

Label ujra;

Begin

ujra:

Writeln('H nyadik elemet cser‚ljem?');

Readln(a);

Writeln('H nyadikra cser‚ljem?');

Readln(b);

If (a>=1) and (a<=i) and (b>=1) and (b<=i) and (a<>b) then goto ujra

else

begin

x:=v[a];

v[a]:=v[b];

v[b]:=x;

end;

Writeln('Akkor az Łj sorrend: ');

For j:=1 to i do

Write(v[j],', ');

End;


BEGIN

ClrScr;

Adatbekeres;

writeln('A folytat shoz nyomj ENTER-t!');

Readln;

csere;

Writeln('A kil‚p‚shez nyomj entert!');

Readln;

END.


Mi lehet a hiba? :O

2015. júl. 25. 11:53
 14/20 SimkoL ***** válasza:
Kezdetnek: Adatbekérés i nem kap értéket és nem is növeled a while ciklusban.
2015. júl. 25. 12:58
Hasznos számodra ez a válasz?
 15/20 A kérdező kommentje:
igazad van, javítottam, de így sem jó még... :(
2015. júl. 25. 15:00
 16/20 SimkoL ***** válasza:

program project1;


uses Crt;


var

i: integer;

v: array[1..100] of integer;


procedure Adatbekeres;

var

j, hiba: integer;

s: string;

begin

Writeln('Add meg a vektor elemit, kilépőkód: "Q" !');

i := 1;

repeat

Write('A vektor ', i, '. eleme: ');

Readln(s);

Val(s, v[i], hiba);

if not (hiba <> 0) then Inc(i);

until UpCase(s[1]) = 'Q';

Dec(i);

Writeln('Akkor a te elemeid: ');

for j := 1 to i do Write(v[j], ', ');

end;


procedure Csere;

var

a, b, j, x: integer;

begin

a := 0;

b := 0;

while (not (a in[1..i])) or (not (b in[1..i])) or (a = b) do

begin

Write('Hányadik elemet cseréljem: ');

Readln(a);

Write('Hányadikra cseréljem: ');

ReadLn(b);

end;

x := v[a];

v[a] := v[b];

v[b] := x;

Writeln('Akkor az új sorrend: ');

for j := 1 to i do Write(v[j], ', ');

end;


begin

ClrScr;

Adatbekeres;

WriteLn(#10#13, 'A folytatáshoz nyomj Enter-t !');

Readln;

Csere;

WriteLn(#10#13, 'A kilépéshez nyomj Enter-t !');

ReadLn;

end.

2015. júl. 25. 15:03
Hasznos számodra ez a válasz?
 17/20 A kérdező kommentje:

Sajnos az a gond, hogy a könyvben, amiből tanulok, még ilyenek nincsenek (Val, Upcase, Dec, Inc). Tudom, hogy semeddig sem tartana utánanézni, de mivel a feladatot így kell megoldani, hogy ezeket még nem ismerem. Az előző megoldásomban már magamtól is több hibára rájöttem, most jelenleg annál a bizonyos adatbekeres eljárásnál itt tartok:


Procedure adatbekeres;

Var j:integer;

Begin

Writeln('Add meg a vektor elemit, kil‚p‹k˘d: 0-n l kisebb sz m!');

i:=0;

While v[i]>(-1) do

begin

i:=i+1;

Writeln('A vektor ',i,'. eleme: ');

Readln(v[i]);

end;

Writeln('Akkor a te elemeid: ');

for j:=1 to i do

Write(v[i],', ');

End;


ekkor nekem az utoljára beírt negatív számot adja i-szer...


Bocs, hogy ennyire értetlen vagyok, de magamtól tanulom, illetve szeretnék párhuzamosan a könyvvel haladni, később biztosan majd már máshogy és egyszerűbben is meg tudom oldani :)

2015. júl. 25. 15:19
 18/20 A kérdező kommentje:
jah igen és az i-t globális változóként deklaráltam
2015. júl. 25. 15:19
 19/20 SimkoL ***** válasza:
Write(v[j],', ');
2015. júl. 25. 15:26
Hasznos számodra ez a válasz?
 20/20 A kérdező kommentje:
Igen valóban így már tökéletes, köszönöm szépen! :)
2015. júl. 26. 21:34
1 2

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!