Hirdetés
- CES 2026: Új autót mutatott be a Sony Honda Mobility
- Amazfit Active 2 NFC - jó kör
- Samsung Galaxy Z Fold4 - egyre megy, honnan nézed
- Milyen okostelefont vegyek?
- iPhone topik
- CES 2026: A sportautó piacot is összeporszívózná a Dreame
- Google Pixel topik
- One mobilszolgáltatások
- CES 2026: Íme, a Lenovo és Motorola foci vb-s különkiadásai
- Apple iPhone 16 Pro - rutinvizsga
Új hozzászólás Aktív témák
-
Lortech
addikt
válasz
Gyomman
#2264
üzenetére
Szóval több bibi is van.
Ha tömböt paraméterként adsz át és ugyanolyan indexekkel akarod használni (pl itt 1-es kezdőindextől), akkor típusként definiálnod kell a tömböt.pl type
tombt = array[1..10] of integer;
var
szam: tombt;A procedúrák formális paraméterlistájában is így kell szerepeljen. Az első procban rossz a csere, fel van cserélbe a közbe és a szam[i].
-
Gyomman
aktív tag
válasz
Gyomman
#2092
üzenetére
NA megvan!
Viszont még azt vki megsúghatná, vajon zenét hogy lehet írni pascalban? Mármint tudom a kódot hozzá m eg mindenl, viszont ha tudom egy dallam kottáját, szal tudom a hangokat, azt vajon hogyan lehet pascalba beleprogramozni? (azaz egy-egy hang hány herz értéket jelöl?) -
N!tRo
tag
válasz
Gyomman
#1889
üzenetére
abba a másik mappába kerested amiben a 'mostani fájlod' van?
csináld azt hogy a bin mappába rakod a pas (mostani) fájlodat és úgy fordítod le
ha úgyse akkor Start Menü -> Fájlok és mappák keresése
ha úgy se, akkor szar a fordítód, nekem működik normálisan
ha kell adok tp7-et. -
N!tRo
tag
válasz
Gyomman
#1878
üzenetére
1.) kérlek, csináld meg az else részt

2.) ha readln parancsot használsz arra hogy bekérj valamit inputról, akkor az a szöveges képernyőhöz tartozik, ami a grafikus 'mögött' van. Tehát ha cleardevice-al törlöd a képernyőt, akkor clrscr-el meg töröld a szövegest is, így nemcsak a grafikus felületed lesz fekete, hanem az alatta lévő szöveges is 'törlődik', tehát a kurzor a bal felső sarokban lesz. -
N!tRo
tag
válasz
Gyomman
#1874
üzenetére
Ennek mi értelme?
kassza:=kassza;
Megnéztem, sok helyen redundáns a kód, tehát sokmindent sokszor leírtál, leginkább az elágazásoknál (case, if). Sok sor ugyanaz a case-knél, ezeket lehetne az elágazás előtt egyszer elvégezni. Több if-nél is ugyanazt csinálja, ilyenkor or logikai kapcsolattal egy darab if-el meg tudnád valósítani ugyanazt.
De egyébként nem tűnik rossznak.
Azért mellőzd az a,b,c,d,i,j,x,y,S,SS,SSS,SSSS változóneveket. Próbálj emberibb nevet adni nekik.
Első próbálkozásnak jó, ügyes vagy. -
N!tRo
tag
válasz
Gyomman
#1836
üzenetére
nem lehet valóban
az ilyet úgy tudod megcsinálni, hogy a kiíratás előtt összerakod a stringet
stringkezelésre van pár függvény, hozzáírás, törlés, felcserélés, stb...
és miután megvan a stringed, kiírod.
nem eccerű, hosszadalmas, de ha írsz egy outtexxy2 nevű függvényt ami tudja értelmezni úgy a dolgokat mint a writeln, akkor egyrészt ügyes vagy, másrészt nem kell vele többet szenvedj -
Gyomman
aktív tag
válasz
Gyomman
#1835
üzenetére
Mégyegy apró kérdés, aztán már boldogulok: outtext-ben nem lehet változót és szöveget egyszerre kiírni, mint a writeln-ben?
pl.: writeln/outtext(valtozo,'nevű a változód');
Ha vesszővel így el akarom választani, akkor már be akarja záratni a zárójelet, valószíbű, mert csak egy paramétere van az outtextnak.
KÖSZÖNÖM AZ EDDIG SEGÍTSÉGET IS (és hogyn kibírtál
) -
N!tRo
tag
-
N!tRo
tag
válasz
Gyomman
#1827
üzenetére
Igazából nem értem mi a problémád.
Miért kell ehhez grafikus képernyő egyáltalán?
Én valahogy így tudnám elképzelni:
1.) generálsz egy számot
2.) ciklus
a.) bekérsz egy számot
b.) leellenőrzöd, hogy egyenlő-e a generált számmal
c.) kiírod, hogy talált-e vagy nem
c1.) ha talált kilép
c2.) ha nem talált -> 2a. -
_eskimo
csendes tag
válasz
Gyomman
#1810
üzenetére
pascalos könyv:
Programozzunk Turbo Pascal nyelven (ComputerBooks)
Az alapoktól kezdi (nyelv elemei, adattípusok, eljárások, függvények, modulok, fájlkezelés), tárgyalja a memóriakezelést, az objektum-orientált programozást, illetve a grafikus képernyő kezelésébe is belemegy (bár nem tudom, hogy milyen mélyen foglalkozik ezzel a témakörrel, engem igazából a grafika eddig nem túlságosan érdekelt, az alapokra koncentráltam). Szerintem érthetőek a könyvben leírt dolgok. Nekem megkönnyítette az alapok megtanulását.
Pár éves könyv, nem tudom manapság mennyire forgalmazzák, viszont a ComputerBooks nemrégen előrukkolt a Együtt könnyebb a programozás Free Pascal könyvével, amely (bár nincs meg nekem) tartalomjegyzékből és kiadó precizitásából ítélve valószínűleg szintén színvonalas kiadvány.
Ennyit tudok mondani, de van ezeken kívül rengeteg pascalos könyv...
[Szerkesztve] -
N!tRo
tag
válasz
Gyomman
#1810
üzenetére
Gyomman ez csak egy egyszerű példa volt.
case <feltétel> of
eredmény1: cselekvés1;
eredmény2: cselekvés2;
...
else: cselekvésn; // opcionális (gyk.: nem kötelező)
end;
cselekvésx -hez bármit írhatsz, amit a program végrehajt. Lehetett volna így is:
case c of
13: writeln('entert nyomtál le');
...
27: writeln('szóközt nyomtál le');
...
37: writeln('bal gombot nyomtad le');
38: writeln('felfelé gombot nyomtad le');
... // és így tovább
end;
A kérdésedre pedig.
Csinálsz egy procedurát úgy, hogy a neve után zárójelben megadsz paramétereket, így ezek a paraméterek módosítják az eljárásod futását.
tehát így definiálod:
procedure <név>(paraméterlista);
begin
end;
és meghívásnál a zárójelbe megadod az értékeket
pl.:
<név>(paraméter1,paraméter2,...);
konkrét példa:
...
procedure kiiras(szoveg: string);
begin
writeln(szoveg);
end;
...
kiiras('Kellemes Nyulat!');
...
Ez a fenti példaprogram tehát a kiiras nevű eljárást meghívja az adott string paraméterrel, amit ő a writeln sorában kiír.
Érthető voltam?
szerk.: nem tudok könyvet ajánlani, sose volt a kezemben pascal könyv, csak súgó meg internet.
szerk2: nem baj hogy hülye vagy, mindenki hülyén kezdi, csak kérdezz és válaszol akinek van rá épp ideje
[Szerkesztve]
[Szerkesztve] -
N!tRo
tag
válasz
Gyomman
#1807
üzenetére
Miért ne működne?
char c;
c:=readkey;
case c of
37: irany(balra);
38: irany(fel);
39: irany(jobbra);
40: irany(le);
end;
Persze a Te esetedben ha 1-et ütöttél le, akkor az annak megfelelő ASCII kódhoz (49) kell rendelj valamit.
Az én példám a kurzormozgató bill-eket szimulálja egy irany nevű eljárásban ahol a paraméter az adott irány.
[Szerkesztve] -
TAVARIS
csendes tag
válasz
Gyomman
#1805
üzenetére
üdv!
Csak úgy tudsz adatot beolvasni hogy karakterenként olvasod be, ezt egy sztringbe letárolod és ha kell átalakítod számmá. azt hogy ezt egy bizonyos helyen akarod hogy megjelenjen azt az outtext-tel vagy az outtextxy-nal tudod megoldani. Minden bekérés után kiiratod a karaktert.
A karaktert a readkey-el olvasd be és ellenőrizni is tudod.
[Szerkesztve] -
N!tRo
tag
válasz
Gyomman
#1796
üzenetére
Üdv!
Elég csúnya ez a kód, sok benne a redundancia, próbáld alkalmazni a ciklusokat, azért vannak. Sok azonos kódot tegyél for ciklusba, figyelj arra hogy miként deklarálsz egy eljárást és miként hívod meg, mert ha eltér a két név, nem történik semmi.
Ne deklarálj felesleges változókat, csak a memóriát foglalod velük.
Tabbal, szóközzel vagy valamivel próbáld átrendezni a programodat, hogy jobban átlássad. Én szóközzel szoktam a ciklusokhoz tartozó részt ''kiemelni'', hogy egyszerűbben átlássam a progit.
Satöbbi...
Jegyzettömbbe átalakítgattam a progidat, nem tuti hogy jó mindenhol, a Notepad nem debugger.
program jatek;
uses crt,graph;
var i,szam,gd,gm:integer;
procedure elokepmenu;
begin
gd:=detect;
InitGraph(gd,gm,'');
for i:=1 to 24 do
for j:=1 to 3 do
outtextxy(j,i,chr(179-j));
SetTextStyle(0,0,3);
outtextxy(5,5,'JATEK NEVE');
SetTextStyle(0,0,1);
for i:=1 to 6 do
begin
sound(100*i);
delay(100);
end;
Nosound;
for i:=17 to 63 do
begin
outtextxy(i,3,CHR(219));
outtextxy(i,23,CHR(219));
outtextxy(i,21,CHR(196));
end;
for i:=3 to 23 do
begin
outtextxy(17,i,CHR(219));
outtextxy(63,i,CHR(219));
end;
outtextxy(34,5,CHR(177),'JATEK NEVE',CHR(177));
outtextxy(34,11,'1 : elsoprogram');
outtextxy(34,13,'2 : masodikprogram');
outtextxy(34,15,'3 : Kilep');
outtextxy(18,22,'Add meg a kivant utasitas szamat ');
readln;
CloseGraph;
end;
begin
elokepmenu;
readln(szam);
if szam>3 then halt;
repeat until keypressed
end; -
Lortech
addikt
válasz
Gyomman
#1796
üzenetére
Uh.
![;]](//cdn.rios.hu/dl/s/v1.gif)
procedure menu az procedure elokepmenu, ha jól sejtem, mivel a főprogramban az elokepmenu eljárást hívod.
Amikor grafikus módban vagy, akkor nem betűsorokban és oszlopokban adod meg a képernyőpozíciót, hanem pixelben, így a gotoxy, writeln eljárásokat felejtsd el. Helyette van outtextxy(x,y koordináta, szoveg).
Azokat a delay-soundokat -ha mindenáron szükség van rájuk - érdemes lenne egy ciklusba ágyazni. -
Lortech
addikt
válasz
Gyomman
#1787
üzenetére
Mutass kódot, akkor tudunk jobban segíteni. Gyakori hiba, hogy a closegraph-ot lehagyják, akkor szoktak érdekes dolgok történni.
szerk: Jah, meg persze ALT+F5 után nem látod azt, amit előzőleg kirajzoltál grafikus módban, mert a closegraph visszaállítja a megjelenítést az eredetire, és törli a képernyőt. Szóval tegyél be a program végére egy readln-t ha ez a gond.
[Szerkesztve] -
PazsitZ
addikt
Új hozzászólás Aktív témák
- CURVE - "All your cards in one." Minden bankkártyád egyben.
- CES 2026: nagyon szeretné kézikonzolokban látni a Panther Lake-et az Intel
- Gaming notebook topik
- Kertészet, mezőgazdaság topik
- Milyen alaplapot vegyek?
- Napelem
- CES 2026: Új autót mutatott be a Sony Honda Mobility
- Gitáros topic
- Amazfit Active 2 NFC - jó kör
- Milyen légkondit a lakásba?
- További aktív témák...
- ÚJ Bontatlan Apple Macbook AIR M2 , M3 , M4 Legújabb magyar billentyűzet 1 év Garancia Deák Térnél.
- AKCIÓ ÚJ Bontatlan Macbook Pro 16 M4 Pro 14CPU/20GPU 24GB/512GB SSD Magyar billent Azonnal átvehető.
- AKCIÓ ÚJ Bontatlan Macbook Pro 14 M4 MAX 14 32GPU 36GB 1TB Magyar billentyűzet Azonnal átvehető Deák
- AKCIÓ ÚJ Bontatlan Macbook Air 13,6 M4 10CPU/10GPU 16GB/512GB SSD TOUCH ID - Magyar Azonnal Deák tér
- Apple iPhone 16 Pro MAX 256Gb, White Titan, Makulátlan állapotban, kártyafüggetlen, 3év , 100% akku
- MSI CreatorPro Z16P RTX A5500 TOUCH! (vapor chamberrel)
- Akciós kisWorkstation! Dell Precision 3570 i7-1255U 4.7GHz / 16GB / 512GB / Quadro T550 4GB FHD 15"
- 200db SZETT! REFURBISHED - DELL Docking Station WD19S + 130W töltő
- Telefon felvásárlás!! Apple iPhone 16, Apple iPhone 16e, Apple iPhone 16 Plus, Apple iPhone 16 Pro
- 2db Samsung Galaxy A6 32GB (Kijelző törött)
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



![;]](http://cdn.rios.hu/dl/s/v1.gif)


