Kezdőoldal » Számítástechnika » Programozás » Ezt a feladatot kaptuk suliban...

Ezt a feladatot kaptuk suliban, tud segíteni vki?

Figyelt kérdés

Részben megoldottam a feladatot,de aztán megállt a tudomány.Az info tanár kitalálta,hogy írjunk egy olyan programot,hogyha egy textboxba kiadjuk ezt az utasítást,hogy "for valami = x to y do",akkor listázza ki egy valódi for utasításban megadottak értékeit. Sajnos csak minden 1 helyi értékkel működik és azt kellene megoldani,hogyha valaki ezt a parancsot adja ki, hogy


for kutyagumi=65342 to 896322, vagy ha ezt hogy

for z= 1 to 332 do

akkor is is működjön és listázza ki az értékeket egy másik szövegdobozba.Annyi kevés fogalmam van,hogy valami pozicionáló és beszúró függvényekkel lehet,hogy meg lehetne oldani,bár ebben sem vagyok biztos,de azokhoz viszont végképp nem konyítok semmit.Nem is nagyon értem ezt,hogy minek kér ilyen nehéz feladatot tőlünk.Elég makacs és goromba is ez a tanár sajnos. Sok mindent el sem mond az órán és olyan feladatokat ad fel,amihez még nekünk kell hozzátanulnunk néha.


Eddig jutottam,segítsetek kiegészíteni,mert időm az nincs sok rá,hétfőre le kellene adnom. Ha nagyon durva a feladat megoldása és a kérés,akkor hagyjátok inkább a fenébe,max kapok rá egy 2-est,vagy karót.Vitatkozni nincs kedvem és időm sincs rá. Csupán egy gyors segítséget kérek,ha nem túl nagy kérés.

Előre is köszi!


most ügy működik legalább, hogyha beírod,hogy

for u=0 to 9 do akkor kiírja az értékeket,vagy ha

for i=2 to 7 do akkor is, de sajna több helyi értékkel nem szuperál.


procedure TForm1.Button1Click(Sender: TObject);

const egyenlo='=';

{const to2='to';}

{const do2='do';}


var s,s1,s2,s3:string;

var x,y,i:integer;

var valtozo:string;


begin


x:=strtoint(memo1.text[7]);

y:=strtoint(memo1.text[12]);

valtozo:=memo1.Text[5];



s1:='to';

s:=memo1.seltext;

insert(s1,s,memo1.SelStart);


s3:='do';

s2:=memo1.seltext;

insert(s3,s2,memo1.SelStart);


if memo1.text='for '+valtozo+egyenlo+inttostr(x)+' '+s+' '+inttostr(y)+ ' '+s2 then begin

for i:=x to y do begin memo2.lines.Add(inttostr(i));


end;

end;

end;

end.



2015. szept. 12. 15:02
1 2 3 4 5 6 7
 21/63 SimkoL ***** válasza:
Borzalmasan egyszerű. Ismerni kell hozzá a Pascal, Delphi szintaktikáját. Hol követeli meg a szóközt, hol csak lehet. Mit is fogok először egy Pos függvénnyel megkeresni? Hát a ":=" 'stringet. Ami előtte van az a ciklusváltozó neve, ami az őt követő szóköz után az a ciklus kezdő értéke. Magyarázzam tovább vagy már fog menni ?
2015. szept. 12. 17:52
Hasznos számodra ez a válasz?
 22/63 SimkoL ***** válasza:
Az egész nem a programozásról szól, hanem a logikádról, 'nyelvismeretedről'
2015. szept. 12. 17:54
Hasznos számodra ez a válasz?
 23/63 anonim ***** válasza:

Korszerűsíteni kellene akkor a géped ezen részét SimkoL ha nem indul.


[link]

2015. szept. 12. 17:57
Hasznos számodra ez a válasz?
 24/63 A kérdező kommentje:

Mindenképpen elkel a segítség és körbe-körbe ugyanezeket az utakat járom és nem haladok előre.


procedure TForm1.Edit1Change(Sender: TObject);

var s:string;

var v:string;

var e:string;

var szam1:integer;

var s1:string;

var szam2:integer;

var s2:string;

var x:string;

begin

try


s:='for';


v:=' '+edit1.text[edit1.selstart-1+]; {valami}

e:='=';


{=}

// szam1:=strtoint(edit1.text); {0)

s1:='to'; {to}

// szam2:=strtoint(edit1.text); {32}

s2:='do'; {do}



if edit1.Text=s+v+e{+inttostr(szam1)+s1+inttostr(szam2)+s2} then halt;

except

ON EACCESSVIOLATION DO

end;

end;

end.

2015. szept. 12. 18:03
 25/63 A kérdező kommentje:

Próbálom kiszűrni és elválasztani a stringektől a számokat és a tényezőket de mindig csak ott tartok és oda jutok,hogy nem fogad el többet, mint csak 1-et mindenből. Lépésről lépésre próbálom megérteni mit csinál egy-egy utasítás,de nem haladok előre.



procedure TForm1.Edit1Change(Sender: TObject);

var s:string;

var v:string;

var e:string;

var szam1:integer;

var s1:string;

var szam2:integer;

var s2:string;

var x:string;

begin

try


s:='for';


v:=' '+edit1.text[edit1.selstart-1]; {valami}

e:='=';



{=}

// szam1:=strtoint(edit1.text); {0)

s1:='to'; {to}

// szam2:=strtoint(edit1.text); {32}

s2:='do'; {do}



if edit1.Text=s+v+e{+inttostr(szam1)+s1+inttostr(szam2)+s2} then halt;

except

ON EACCESSVIOLATION DO

end;

end;

end.

2015. szept. 12. 18:07
 26/63 anonim ***** válasza:

Legelső válaszoló tökéletesen leírta lépésenként mit kell csinálni, a végigiterálás azt jelenti végigmész a szövegen betűnként.


Off:

Mivel SimkoL már kötekedett leírom, hogy ne írja nekem senki, hogy nem atombiztos a program amit belinkeltem, mert túl nagy számnál kifagy, tudom.

2015. szept. 12. 18:09
Hasznos számodra ez a válasz?
 27/63 A kérdező kommentje:

Most még csak próbálkozom azért szakítom meg a programot és nem építem be a for ciklust. Leállítom a programot,ha kiadja valaki az utasítást, hogy "for t="


Tehát ha valaki beírja,hogy:


for kukutyin=88 to 456 do, akkor ebből leszármaztatva pl a "kukutyin" szó az egy véletlen sztring és nem állandó és pozicionálni kell az egész beírómezőben, az "=" jel az egy állandó ugyan, de azt is pozicionálni kell,hiszen a delphiben is ki lehet adni olyan örült utasításként is, hogy


for szam1 :=3 to 559437247 do


és akkor jön csak az igazi fejtörés, mikor a baloldali számot kell valahogy odavarázsolni, azt sem tudom hogy ezt szúrni kellene, vagy pozicionálni, vagy másolni. Aztán megint jön egy állandó string, mint a "to" és utána megint szóköz és aztán "szám2" amit szintén oda kell valahogy biggyeszteni és akkor megint egy állandó változó, mint a "do" amit megint oda kell beszúrni. Mivel fogalmam sincs, hogy mi az ami le tudná egyszerűsíteni a szóközöket, hová jön a selstart után a -1, vagy length(sztringek) után a +1 vagy mittom én. Ez már olyan zavaros, hogy teljesen kész vagyok tőle.

2015. szept. 12. 18:22
 28/63 A kérdező kommentje:
Sajnos a programodat nem tudom megnézni,mert xp-t használok hiába töltöttem le a vc_redistx86.exe-t azzal sem működik. De különben is ebből nem fogom megtanulni,sem megérteni hogy miből lesz a csereborgár és hogy lehet megcsinálni és főleg,mit mondanék a tanáromnak a forráskóddal kapcsolatban, azt elvitte a cica??:D
2015. szept. 12. 18:37
 29/63 anonim ***** válasza:
Próbálgasd, aztán ha nem megy SimkoL holnap segít benne, mert más itt nem nagyon ért a Pascalhoz olyan szinten.
2015. szept. 12. 18:39
Hasznos számodra ez a válasz?
 30/63 A kérdező kommentje:
Már előre látom,hogy nem fog menni de legalább amire rájövök azt lejegyzetelem,hogy máskor tudjam hogy kell megcsinálni és miből induljak ki.Az a baj,hogy itt legalább ezen kívül,valahogy 5-6 függvényt kellene szerintem használni és "kismillió" változót kell deklarálni hozzá,ami eleve megkavar. Konstansokkal is próbálkoztam,de ugyanazokat a köröket járom be. Számolni kell itt a szóközöket a stringek hosszúságától kezdve a számokig, a textboxban leütött billentyűkig mindent.Ez egy kész őrület és már nagyon ki vagyok tőle.
2015. szept. 12. 18:49
1 2 3 4 5 6 7

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!