- Végre bemutatkozott a Google Pixel 4a
- iPhone topik
- Google Pixel topik
- Merész dizájn és új teleobjektív az iPhone 17 Pro mobilokban
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Apple Watch Sport - ez is csak egy okosóra
- Hivatalos a OnePlus 13 startdátuma
- Android alkalmazások - szoftver kibeszélő topik
- Hetekig bírják töltő nélkül a Huawei sportórái
- Telekom mobilszolgáltatások
Új hozzászólás Aktív témák
-
MIFtIli
aktív tag
pascalba h kell valaminek a négyzetét beírni?
pl x négyzet -
-
Retekegér
MODERÁTOR
Sziasztok!
Ti hogy értelmeznétek/oldanátok meg TP-ban ezt a feladatot?
Cola ára: 200Ft
Be: pénzösszeget dobálunk be, míg ki nem jön a Cola ára
Ki: visszajáró
(a feladat ennyi...) -
vamzi
senior tag
Sziasztok.Valaki tudna nekem segíteni tömbös megoldásokba??
A feladat a következő lenne:van egy 10 elemű tömb, aminek minden 1es elemét összeadom és azt kiiratom.tudom h elég kezdő, ne kövezzetek meg érte, de tömböt egyáltalán nem értem.Előre is köszi. -
aviator17
csendes tag
Helo!
Köszi szépen a válaszokat!
Nitro kolega tömbös javaslatából elindulva oda lyukadtam ki hogy halmaz. Halmazt feltöltöttem a megadott elemekkel, felsorolásos módon halmaz:=[x,y, stb] ez frankón egyszerű volt majd egy másik halmazt másik elemekkel (ergo megszerkesztettem a két feltételt a két halmazban) és addig sorsoltattam a véletlen számokat amíg egy tag mindkét halmaznak eleme nem lett.
repeat
x:=random(93)+1;
until (x in halmaz1) and (x in halmaz2);
ennyiugyan baromi sok meló volt vele mer télleg 93 darab szám van és mivel említettem volt hogy virtuális légitársaság járatfoglaló programja lesz ez, így volt hét nap ugyebár ez hét külön halmaz melyek elemei az adott napon közlekedő járatok, és ugyancsak 7 járatfajta volt szintén hét külön halmaz melyek elemei az adott fajtájú járatok (nappali esti éjszakai stb). Tehát ezek szerint ha jól számolom akkor 49 darab if-es ciklusom van amelyben a két feltétel az előzetesen bekért nap (1-7) és az előzetesen bekért járatfajta száma, és ennek függvényében sorsol a random függvény egy olyan számot amely egyszerre eleme például a szerda és a reggel halmaznak, melynek eredménye egy szerda reggeli járat lesz
Biztos vagyok benne hogy nem a legszebb megoldás nagyjából 500 sor így overall de hálistennek sikerült megcsinálni.
Köszönöm szépen mégegyszer a gyors válaszokat
Üdv
Ádám -
cucka
addikt
válasz
aviator17 #1577 üzenetére
az elegáns megoldás listával lenne, ha tudod mi az, akkor meg is kell tudd oldani ezt a feladatot.
a kevéssé elegáns megoldás tömbbel. vázlatosan:
//berakod a számokat a t tömbbe, összesen n_max számunk van
n:=n_max;
while n>0
begin
i:=random(n_max)+1; //véletlenszerű 1 és n_max közötti természetes szám
write(t[ i ]);
t[ i ]:=t[ n ];
n:=n-1;
end
itt a példában simán kiiratom a tömb elemeit, nyilván ehelyett te valahogy fel fogod dolgozni vagy el fogod tárolni, ilyesmi.
[Szerkesztve] -
shev7
veterán
-
Lortech
addikt
Ezért kéne egy megfelelő adatszerkezet, pl láncolt lista. Ha jól értelmezem, egy egyszerű kiválogatásról, szűrésről, szűkítésről van szó. Láncolt listát feltölteni a lehetséges ''elemekkel'', aztán a megfelelő tulajdonságokra kiválogatást lefuttatni és kidobálni a nem megfelelő elemeket a listából. A listának nyilván lenne tartva az elemszáma, így lehetne a maradék elemekből randomolni. Bár nincs kizárva hogy félreértelmezem a kérdést, valahogy nem teljesen áll össze a hsz első fele a végén leírt feladattal.
[Szerkesztve] -
N!tRo
tag
válasz
Jester01 #1579 üzenetére
Szerintem ez azért nem jó, mert a srác úgy szeretné, hogy az első sorsolás elemei közül sorsol tovább. Most ha létrehozol egy tömböt az első sorsolás számainak és ezek között van olyan ami a második szabálynak már nem felelnek meg, akkor törölnöd kéne azokat az indexeket.
De ha már törölsz egy indexet akkor üresedés fog beállni, amire még további kód kellene, hogy ezt az üres helyet eltávolítsa vagy sorsolásnál ne vegye figyelembe.
Szerintem...
de lehet hogy nem jól értelmeztem a problémát -
aviator17
csendes tag
Helo srácok!!
Következő a probléma remélem valaki tud segíteni.
A program amit írok úgy néz ki hogy van egy random függvény ami 93 szám közül sorsol. A sorsolást úgy végzi hogy egy case esetszétválasztás bekért értékeitől függően különböző számokat zár ki a sorsolásból. Ez eddig működik is.
A probléma ott kezdődik hogy a kört még inkább le szeretném szűkíteni lehetőleg random függvény használatával. Kellene csinálnom még egy case esetszétválasztást és olyat kéne hogy egy másik random függvény ennek a case-nek az értékeitől függően sorsoljon ÉS vegye figyelembe az előző random függvénynek szabott feltételeket. Ergo olyan számot ne sorsoljon amit az azt megelőző feltételrendszer már egyszer kizárt.
A program konkrétan virtuális légitársaságnak véletlenszerű járatfoglalását hivatott elvégezni. Úgy működne, hogy a delikvens megmondja hogy milyen napra szeretné foglalni a járatot (ez az egyik feltétel ami alapján megy a kizárás) és megmondja hogy milyen jellegű járatot szeretne (reggeli nappali esti éjszakai stb.) (ez a másik feltétel).
Ott akadtam el hogy a második case-random együttes nem veszi figyelembe az első case-random feltételeit, és az ő saját szabályai szerint sorsol és így benne lesznek olyan számok is a dologban aminek nem kellene. Egyelőre nincs ötletem.
Üdv
Ádám -
Lortech
addikt
Goto alatt én általánosan értettem az ugrást megvalósító utasításokat. Ezért is különböztettem meg őket, amint láthattad. És nem azért kértem szakmai érveket a goto ellen, mert én pártolom, hanem mert csak annak van értelme szerintem. Pusztán leírni nem sok.
Előszöris a gotot és a struktúrált programozást egy mondatban olvasni vicces dolog. A goto köszönő viszonyban sincs a struktúrált programozással, éppenhogy éles ellentéte annak, nem tudom hogyan tekinthető struktúrált programnak az ahol a vezérlés gotok használatával összevissza ugrál.
Mert szerinted a lefordult kód nem összevissza ugrál? Persze magas szinten vagyunk, így megvannak a jótékony vezérlési szerkezeteink, amik elfedik ezt, de többnyire ugyanúgy le lehet szimulálni ezt gotokkal. Csakhát olvashatatlan lesz a kód és rengeteg problémát rejt magában. De mind1, erre írtam az előzőekben, hogy ez az egyik helytelen használata, amikor eljárás és ciklusszervezésre használják.
Egy kósza példa, hogy értsd mire gondolok: ha jól emlékszem egyetemi tanulmányainbol, pl egy függvény (gyébként szabálytalan) befejezése lehet az, ha gotoval kiugrik belőle a vezérlés. Hogyan lehet minősíteni egy ilyen függvényt, vagy a programot amiben szerepel egy ilyen függvény? xarnak, semmi másnak.
Nem azért, de függvényből és eljárásból nem nagyon fogsz kiugrálni C-ben vagy Pascalban gotoval..
MOD: jut eszembe, te is egyetértesz azzal, hogy a goto tiltott dolog, akkor miröl akarsz vitázni? A goto használatát ellenzed, a break és continue használatát nem vitatta senki, (bár azokat is lehetne, kivéve a break használatát néhány esetben) nincs miröl vitatkozni. szerintem.
Vitázni? Semmiről. Az elméletről gondoltam diskurálni. Igen, ellenzem a használatát a hagyományos goto-nak, kifejtettem miért, ez nem zárja ki azt, hogy érveket kérek ellene, ha már más is ellenzi, csak épp elintézi egy lesajnáló mondattal. Azzal viszont nem feltétlenül értek egyet, mikor algán az előadó felír egy (goto (break) nélkül kevésbé hatékony (mind átláthatóság mind futási idő szempontjából)) algoritmust, amire majd elélvez, és csak azért break nélkül, mert meg akar felelni bizonyos szabályoknak, amiknek egyébként nem feltétlenül a teljes tiltás volt a célja, hanem az ésszerű tiltás.
[Szerkesztve] -
ViragL
tag
válasz
Lortech #1564 üzenetére
Konkrét szakmai érveket, na megpróbálom.
Előszöris a gotot és a struktúrált programozást egy mondatban olvasni vicces dolog. A goto köszönő viszonyban sincs a struktúrált programozással, éppenhogy éles ellentéte annak, nem tudom hogyan tekinthető struktúrált programnak az ahol a vezérlés gotok használatával összevissza ugrál.
Egy kósza példa, hogy értsd mire gondolok: ha jól emlékszem egyetemi tanulmányainbol, pl egy függvény (gyébként szabálytalan) befejezése lehet az, ha gotoval kiugrik belőle a vezérlés. Hogyan lehet minősíteni egy ilyen függvényt, vagy a programot amiben szerepel egy ilyen függvény? xarnak, semmi másnak.
Nem azok a problémás esetek gotoval amikor egy blokkon belül adogatja a vezérlés a programozó, hanem azok amikor egy programegységől egy másikba esetleg onnan egy harmadikba adja a vezérlést, és mértne tenne ilyet szerencsétlen, hisz megteheti. mi lesz az eredménye? inkább nem is minősítem.
Másik: Mind az eljárásorientált mind a objektumorientált nyelvekben megvannak az eszközök arra, hogy, átlátható, biztonságos a paradigmának megfelelő kódot írjon a programozó. Persze ha otthon saját szórakozására heggesztgeti a programjait semmi probléma, legfeljebb egy hét mulva ős se látja át, de ha teszem azt projektben dolgozik, akkor az átláthatóság máris hangsúlyt kap, gotoval teletűzdelt programot átlátni? respect annak aki átlátja, meg anna is aki egyártalán megpróbálja. Nem hiszem, hogy a projekt hatékonyságát tekintve nagyon jó dolog lenne, ha a programozók azzal töltenék az idejüket, hogy megpróbálják átlátni a gotoval bonyolított kódot.
MOD: jut eszembe, te is egyetértesz azzal, hogy a goto tiltott dolog, akkor miröl akarsz vitázni? A goto használatát ellenzed, a break és continue használatát nem vitatta senki, (bár azokat is lehetne, kivéve a break használatát néhány esetben) nincs miröl vitatkozni. szerintem.
[Szerkesztve] -
ViragL
tag
C#-ban 3 funkciója van a ''goto'' -nak ebböl 2 a switchhez kapcsolódik a ''goto case'' és a ''goto default'' és van a 3, ami a ''hagyományos'' goto. Első kettőnek konkrét jól behatárolt feladata van, azok használata nem boritja fel a program szekvenciális végrahajtását, azok használatát nem is vitatom. A ''hagyományos'' goto használatát viszont nem javaslom senkinek, annak használatát semmi nem indokolja.
-
ViragL
tag
remek példa mit nem mondjak, de szerintem arra, hogy hogyan ne programozzunk. Hiszen ha for ciklust használsz, akkor nyilván addott, hogy a ciklusnak hányszor kell lefutnia (külömben nem használnál előre meghatározott lápásszámu ciklust, ugye?), ha adott, hogy hányszor kell lefutnia, akkor nincs miért megszakítani a futását. szerintem.
-
Jester01
veterán
$ find linux-2.6.15 -name '*.c' -exec cat {} \; | grep -c 'goto '
34237
No comment -
Lortech
addikt
Igazából nem azért alakult ez ki, mert nélküle is meg lehet oldani (ami egyébként igaz), ez önmagában semmivel jobbat nem jelentett volna, hanem mert könnyű az ellenőrzetlen goto használatával hibás, átláthatatlan kódot írni. (érzésem szerint optimalizációs szempontból sem a legjobb, bár ez tényleg csak megérzés) Noha nem feltétlenül következik ez abból, hogy van a programban mondjuk egy darab goto, mégis kategorikusan tiltott a használata. Amire szükség lehet bizonyos esetekben, az az ellenőrzött goto, a continue, break, goto ciklus, goto case, ami igazából nem is az a csúnya üldözött goto. Algoritmus órán viszont szerintem ezek is tiltottak szinte mindenhol, amivel én nem feltétlenül értek egyet, de elfogadom. Azzal viszont igen, hogy az ellenőrzetlen goto ''akárhova'' tiltott, mert ez egyrészt gagyi, ''csúnya'', másrészt nem látom különösebb előnyét.
[Szerkesztve] -
shev7
veterán
válasz
Lortech #1564 üzenetére
Erre ellenerv, hogy lehet a masodik case tartalmat az elosbe masolni. Igazhogy feleslegesen ketszer irunk le kodot, de megszabadultunk a gyuloletes gototol
Egy erv mellette (mar ha normalisan hasznaljuk) a javaban nincs goto, de a pl a ciklusokat lehet cimkezni es break-kel nem csak a legbelso ciklusbol tudunk kiugrani. Nem ertem, hogy ezzel mi a baj. Hol sertettem ezzel a strukturalt programozas szabalyait... -
Lortech
addikt
Switch-ben másik case-re ugrani.
Nem értem ezt a felháborodást. Lehet goto-val is strukturáltan programozni, nincs baj vele, ha érti a dolgát, aki használja. (elég csak arra gondolni, hogy a lefordult kódban lesz egy rakás goto). Van, amikor hatékonyabb gotozni, breakezni, continuezni, mégha az algoritmustanárom nem is lenne oda érte. A strukturált programozás egy irányvonal, nem azt jelenti, hogy csak a szabályait maximálisan betartva lehet jó kódot írni. Könnyen el lehet vele cseszni dolgokat, de nem szükségszerű hogy egy goto-t tartalmazó forrás rosszabb kódot eredményezzen.
Várom a mély, konkrét szakmai érveket a goto ellenében. Mert erről van értelme beszélni szvsz, az hogy 20-adszorra leírja valaki hogy milyen rossz vagy épp milyen jó, annak sok értelme nincs. -
ViragL
tag
Nyilván más programozási eszközt kellene az adott problémára alkalmaznod, és nem 3 egymásba ágyazott for-ciklust. For ciklusbol gotoval kiszálni? LOOL
MOD: A konkrét probléma ismerete nélkül elhamarkodott lenne bármilyen más eszközt is javasolni, de biztos van, olyan amivel azt a paradigmának megfelelően meg lehetne valósítani, ha nincs akkor a Pascal úgy ahoyg van, a szemétbe való lenne, amit nem hiszek, mivel még élő nyelv.
[Szerkesztve] -
ViragL
tag
válasz
sghc_toma #1546 üzenetére
Nincs igazad, eljárás orientált paradigmára épülő nyelvben megírt programban NINCS olyan helyzet, mikor hasznos lehet a goto. Ha goto nélkül nem tudsz valamit megoldani, akkor a hiba benned van.
Egy eljárás orientált paradigmára épülő nyelven megírt program, ha tartalmaz (legalább) 1 darab goto utasítást, arra nem lehet mást mondani, csak azt, hogy az a kód egy nagy rakás xar.
Én neveztem szánalmasnak a goto használatát, ezt a vélemyénem fenntartom. -
Padam
aktív tag
Sziasztok!
Kis segítségre lenne szükségem, kicsit béna vagyok a PASCAL programozásból, de suliban sajna muszáj valamit összedobjak otthon.
Olyan program kéne amiben van(nak) ciklus(ok), és esetleg használ valami külső fájlt.
Tehát pl, szakácskönyv, ahol fel lehet venni pl új recepteket, vagy egy telefonkönyv ami külső fájlban tárolja számokat és a neveket.
Ha valakinek vannak ilyesmi programjai megköszönném nagyon nagyon szépen, ha tudna küldeni párat, életmentő lenne vele! ;)
Előre is köszönöm!! ;)
Üdv
ZaK
zak@zak.hu -
Lortech
addikt
válasz
sghc_toma #1553 üzenetére
Igen, pont ez a -talán egyetlen- létjogosultsága a modern nyelvekben az ugró utasításoknak. Ciklusból kilépés, ugrás a következő iterációra. Break, continue, goto ''ciklusfej''... Szóval nem a hagyományos goto ''akárhova''.
Akkor van gond, amikor pl. eljárásszervezésére és hasonlókra használják.
Egyébként ha szükségszerű, hogy kód1/2 ne fusson le, egy újabb if is megfelelő lehet, habár kétségkívül gyorsabb és átláthatóbb egy ugrás. -
sghc_toma
senior tag
while(isLooping && condititon1)
{
while(isLooping && condititon2)
{
while(isLooping && condititon3)
{
if ( sthingHappens() ) isLooping = false;
}
// kód I.
}
// kód II.
}
ílyesmire gondoltál? csak mert ezzel nekem két bajom van:
- így ha isLooping false lesz, lefut kód I. és kód II., mielőtt elhagyjuk a ciklusokat...
- ez már szubjektív: inkább használok egy goto-t, minthogy mind3 ciklusfeltételhez hozzáéseljem az ''isLooping''-ot
még hozzáteszem, hogy ezzel nem azt akarom mondani, hogy a goto tök jó, csak azt, hogy néha jól tud jönni.. mint már írtam, ezért is maradt benne a ''legmodernebb'' nyelvekben is..
ja, és bocs, hogy nem Pascal-ul írtam, de ebből a szempontból ez lényegtelen sztem.. -
N!tRo
tag
a három darab for ciklusodat meg lehet oldani három darab while ciklussal, aminek feltételében lenne egy kilépési feltétel, amit a legbelsőbb blokkban adnál meg, és ha ez az érték igazzá válik, mindjárt ugrott mind a három whiel ciklusod
mindezt goto nélkül...
kár hogy egyáltalán oktatják ezt a goto-t ...
még annyit se említenék róla, hogy nem ajánlott használni ... -
s1ny1
tag
goto a struktúrált programozás szempontjából tényleg ''tiltott''. viszont igenis vannak olyan helyzetek amikor praktikus lehet a használata. pl.: legyen 3 dimenziós (egymásba ágyazott) for ciklusunk ebben mondjuk egy külön begin-end blokk, ha innen belülről akarunk kilépni kevés csak a blokk-ot lezárni, mert akkor csak a 2. for cilusba lépünk vissza, itt jól jöhet a goto amivel kiugorhatunk egyszerre az egymásba ágyaztott ciklusokból. ez egy elég sarkított példa, de mégis itt hasznos lehet a goto.
-
Rafixx
csendes tag
Üdv!
A suliban Turbo Pascalban programozunk és a leguljabb feladat .........-i SZITA alkalmazása.
Elfelejtettem, hogy milyen szita lehet valami görög gondolkodó matematikus ahogy a nevéből megítéltem. talán Eratosthenes-i szita....Van ilyen? HELP -
Lortech
addikt
válasz
sghc_toma #1546 üzenetére
A goto-nak megvan a maga helye: asm. Magasabb szintű nyelvekben minden megoldható nélküle, és kívánatos is nélküle megoldani, a goto-t meg hanyagolni. Nagyon ritka esetekben van csak létjogosultsága (ekkor is érdemes kerülni), a szóban forgó eset pont nem ilyen.
Senki nem szánalmasozta le, nincs ebben semmi szánalmasság, a kódjáról alkottak véleményt, persze nem túl árnyaltan.
Egyébként tipikus brute force progtechnikájú kód, tanítani kéne.De van kitartása, úgyhogy megfelelő ismeretekkel még lehet belőle jó programozó.
[Szerkesztve] -
sghc_toma
senior tag
a goto-s dologhoz egy gondolat: igenis vannak olyan helyzetek, amikor hasznos lehet a goto... nem véletlenül van benne C++-ban, C#-ban is.. Nem azt mondom, hogy nyakra-főre azt kell használni, de azokkal sem értek egyet, akik tűzzel-vassal irtani próbálják... Tudni kell használni, és kommentelni kell.. Ennyi..
ja, és nem biztos, hogy rögtön le kell szánalmasozni valakit, csak mert ronda kódot írt... -
Drótszamár
őstag
válasz
jeti128 #1539 üzenetére
Így első nekifutásra néhány jó tanács.
Goto, label, elfelejt örökre. Ide nem kell, csak áttekinthetetlen lesz a program. Helyette megfelelő logika szerint kell a programot felépíteni. Ciklusokkal, elágazásokkal.
Pl láttam egy olyat hogy
... case ''valami''
1 : goto 1
2: goto 2
...
Na itt nem gotoval elküldöd a picsába, hanem
1: Begin
Ide jön a kód, vagy a függvényhívás
End;
2: Begin
Ide megint kód, vagy függvényhívás
End
...
Mindíg válassz beszédes változóneveket. Ne foglalkozz azzal, hogy menyit kell gépelni miatta. Ha 10 sorná hosszabb a program, akkor már könnyebben áttekinthető, ha beszédesek a változóid.
még folytatom, csak dolgom lett közben, és nem akarom hogy elvesszen amit írtam. -
shev7
veterán
válasz
Béjbeeeh #1542 üzenetére
A write parancs kiírja a megadott szöveget a képernyőre. A kurzor közvetlenül a kiírott szöveg után marad, így a következő kiírásnál rögtön utána íródik ki a további szöveg.
A writeln parancs hasonlóan működik, mint a write parancs. A különbség csupán annyi, hogy a writeln parancs egy sort ír ki, tehát miután kiírta a parancsban megadott szöveget, számot, a kurzor a következő sor elejére ugrik. Ezért a következő kiírásnál már a kiírandó szöveget az új sorba fogja írni.
forras: Google elso talalata -
Béjbeeeh
csendes tag
Sziasztok!
Tudnátok segíteni sos-ben?
Mi a különbség a Write és a WriteLN közt? -
Jester01
veterán
válasz
jeti128 #1539 üzenetére
Nehogy elvegye a kedved ez a pár hsz.
Az, hogy magadtól tanultad nekem csak azt jelenti, hogy érdekel a dolog és van hozzá kitartásod is. Én is önállóan kezdtem programozni, igaz még commodore basic-ben ahol nem lehetett túlzottan struktúrált progit írni.
Valóban érdemes lenne megnézned valami szakirodalmat vagy mások által írt programot, szerintem viszonylag hamar ráéreznél a dologra. -
jeti128
csendes tag
Szeretnék bocsánatot kérni mindenkitöl kit megsértetem a probálkozásommal a pascal nyelv terén.
Bocs. -
ViragL
tag
válasz
jeti128 #1536 üzenetére
''egyedül tanultam meg programozni.'' ezekszerint ezt félreértettem Sorry.
MOD: Ha visszaolvasola topicban, kiderül, hogy én vagyok itt az ügyeletes kötekedő, tehát amíg CSAK én piszkállak valamiért addig nincs baj, de ha már pl N!TRo is piszkál annak oka lehet..
[Szerkesztve] -
ViragL
tag
válasz
jeti128 #1524 üzenetére
Csak annyit kérnék tőled, ha van benned egy kis jó érzés, hogy ne mondd senkinek, hogy tudsz programozni. THX! Ne alacsonyítsuk le a szakmát, mert te NEM tudsz programozni, se a nyelvi eszközöket nem ismered, se rálátásod nincs a dolgokra (minimális sem). A kód, amit beszúrtál viccnek jó volt, télleg sokat nevettünk rajta, de progamnak ne nevezzük, az sértő a többi programra nézve. Vagy tanulj meg programozni rendesen, úgy ahogy kell, vagy hagyd a francba, mert ekkora xart régen láttam.
-
jeti128
csendes tag
Kösz
-
jeti128
csendes tag
Honnan tudom letölteni a freepascal-t?
-
jeti128
csendes tag
[HUN]Zolee
nekem nem ir hibát. -
N!tRo
tag
válasz
jeti128 #1524 üzenetére
mi ilyen gány módszerrel nem tudunk programozni, nem tudjuk megoldani a problémádat!
ez a program tele van hibával, az egész felépítése, a szerkezete, a labelok, a gotok, a változók nevei, JESSZUS ÚR ISTEN !!!
nagyon hamar uninstalláld a pascalt a gépedről, fogj egy könyvet (2002-es kiadásnál újabbat) és kezd előről a tanulást, mert ezzel amit műveltél a Pascal programozási nyelvet küldted sírba !!! -
jeti128
csendes tag
Akkor mivel tudom hejetesiten a goto parancsot?
-
jeti128
csendes tag
nem tanultam sehol programizni egyedül tanultam meg programozni.
csak ezt a proglémát oldjátok meg ha tudjátoklegyszi.
amugy minden müködik. -
ViragL
tag
válasz
jeti128 #1519 üzenetére
Szánalomtenger! Szerintem neked nem kéne még alaklmazást írni, előbb ismerkedj meg a nyelv alapjaival.
MOD: Elnézést a hengnemért, de ha egy programban goto van, az szánalmas. A goto egy örökség ami benne maradt a nyelvben (sőt sok nyelvben benne van még) de a használat programozástechnikai szempontból hatalmas hiba.
[Szerkesztve] -
jeti128
csendes tag
amugy még nem teljes a progi
-
-
jeti128
csendes tag
itt va az asztalok procedurában van a hiba:
uses dos ,crt;
Label 1;
var
a, b, a1, a2, a3, a4, a5, a6, a7, b1, b2, b3, b4, b5, b6, b7 : string;
ar, g, dkg, Kg, m, t, mertekr : Longint;
so, sor, sok, cukor , cukorr, cukork, pirospaprika, pirospaprikar, pirospaprikak, liszt, lisztr, lisztk : Longint;
tartozas, asztal, asztal1, asztal2, asztal3, asztal4, asztal5, asztal6, asztal7 : Byte;
menux, menu, menu1, c ,cc, c1 ,c2 ,c3 ,c4 ,c5 ,c6 ,c7 : Char;
mertek : Word;
procedure Raktarkeszlet;
label 1,2,3,4,5,6,7,8;
begin
1: Repeat
Clrscr;
Writeln('1. Raktárkészlet feltöltés');
Writeln('2. Raktárkészlet ellenörzése');
Writeln('9. Kilépés');
Writeln;
Write('Válaszon egy számot : ');
Read(menu);
case menu of
'1' : Goto 2;
'2' : Goto 3;
End
Until (menu = '9');
Goto 8;
2epeat
Clrscr;
Writeln('1. So');
Writeln('2. Cukor');
Writeln('3. Pirospaprika');
Writeln('4. Liszt');
Writeln('9, Kilépés');
Writeln;
Write('Válaszon egy számot : ');
Read(menu);
Case menu of
'1' : Goto 4;
'2' : Goto 5;
'3' : Goto 6;
'4' : Goto 7;
End
Until (Menu = '9');
Goto 1;
4: Clrscr;
Read(so);
Read(mertek);
Case mertek of
1 : mertekr := g;
2 : mertekr := dkg;
3 : mertekr := Kg;
4 : mertekr := m;
5 : mertekr := t;
end;
sor := sor + so * mertekr;
goto 2;
5: Clrscr;
read(cukor);
Read(mertek);
Case mertek of
1 : mertekr := 1;
2 : mertekr := dkg;
3 : mertekr := Kg;
4 : mertekr := m;
5 : mertekr := t;
end;
cukorr := cukorr + cukor * mertekr;
goto 2;
6: Clrscr;
read(pirospaprika);
Read(mertek);
Case mertek of
1 : mertekr := 1;
2 : mertekr := dkg;
3 : mertekr := Kg;
4 : mertekr := m;
5 : mertekr := t;
end;
pirospaprikar := pirospaprikar + pirospaprika * mertekr;
goto 2;
7: Clrscr;
Read(liszt);
Read(mertek);
Case mertek of
1 : mertekr := 1;
2 : mertekr := dkg;
3 : mertekr := Kg;
4 : mertekr := m;
5 : mertekr := t;
end;
lisztr := lisztr +liszt * mertekr;
goto 2;
3: Repeat;
Clrscr;
Writeln('So : ', sor);
Writeln('Cukor : ', cukorr);
Writeln('Pirospaprika : ', pirospaprikar);
Writeln('Liszt : ', lisztr);
Writeln('Kilépéshez nyomj <Enter>-t');
Read(menu);
Until (menu = '9');
menu := '0';
Goto 1;
8: End;
Procedure asztalok;
label 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39;
begin
1: Repeat;
Clrscr;
Writeln('1. Asztalfoglalás');
writeln('2. Számla ellenörzése');
Writeln('3. Számla kifizetése');
Writeln('q. Kilépés');
Writeln('Válaszon egy számot : ');
Read(menu);
case menu of
'1' : Goto 17;
'2' : Goto 2;
'3' : Goto 3;
end;
Until (menu = 'e');
Goto 32;
2: Repeat;
Clrscr;
Writeln('Melyik asztalra vagy kiváncsi : ');
Read(menu);
case menu of
'1' : goto 5;
'2' : goto 6;
'3' : goto 7;
'4' : Goto 8;
'5' : Goto 9;
'6' : Goto 10;
'7' : Goto 11;
end;
Until (menu = 'e');
goto 1;
12: Repeat
Clrscr;
Writeln(menu, 'asztal tartozása : ', tartozas);
Writeln(a, ' ', b);
Read(menu);
Until (menu = 'q');
Goto 1;
3: Repeat;
clrscr;
Writeln('Melyik asztal kiván fizetni és távozni : ');
Read(menu);
a := '0';
b := '0';
asztal := 0;
case menu of
'1' : goto 13;
'2' : goto 14;
'3' : goto 15;
'4' : Goto 16;
'5' : Goto 28;
'6' : Goto 29;
'7' : Goto 30;
end;
Until (menu = 'q');
Goto 1;
17: c := 'u';
Repeat;
Clrscr;
Writeln('Melyik aztalhoz érkeztek : ');
Read(menu);
Case menu of
'1', '2', '3', '4', '5', '6', '7': Goto 18;
End;
Until (menu = 'e');
goto 1;
18: case menu of
'1' : c := c1;
'2' : c := c2;
'3' : c := c3;
'4' : c := c4;
'5' : c := c5;
'6' : c := c6;
'7' : c := c7;
end;
if (c <> 'u') then Goto 31;
33: Begin
Clrscr;
Write('Családnév : ');
Readln(a);
Write('Keresztnév : ');
Readln(b);
End;
case menu of
'1' : goto 26;
'2' : goto 20;
'3' : goto 21;
'4' : Goto 22;
'5' : Goto 23;
'6' : Goto 24;
'7' : Goto 25;
end;
27: Clrscr;
Writeln(menu ,' Asztal');
Writeln('Családnév : ' ,a);
Writeln('Keresztnév : ' ,b);
Writeln('Jok az adatok (i/n) : ');
Read(menu1);
if (menu1 <> 'i') then goto 33;
goto 1;
31: Repeat;
Clrscr;
Writeln('Az asztal már foglalt');
Read(menu);
Until (menu = 'q');
Goto 17;
13: a := a1;
b := b1;
asztal := asztal1;
c1 := 'u';
Goto 3;
14: a := a2;
b := b2;
asztal := asztal2;
c2 := 'u';
goto 3;
15: a := a3;
b := b3;
asztal := asztal3;
c3 := 'u';
goto 3;
16: a := a4;
b := b4;
asztal := asztal4;
c4 := 'u';
goto 3;
28: a := a5;
b := b5;
asztal := asztal5;
c5 := 'u';
goto 3;
29: a := a6;
b := b6;
asztal := asztal6;
c6 := 'u';
goto 3;
30: a := a7;
b := b7;
asztal := asztal7;
c7 := 'u';
goto 3;
5: a1 := a;
b1 := b;
tartozas := asztal1;
Goto 12;
6: a2 := a;
b2 := b;
tartozas := asztal2;
goto 12;
7: a3 := a;
b3 := b;
tartozas := asztal3;
goto 12;
8: a4 := a;
b4 := b;
tartozas := asztal4;
goto 12;
9: a5 := a5;
b5 := b;
tartozas := asztal5;
goto 12;
10: a6 := a;
b6 := b;
tartozas := asztal6;
goto 12;
11: a7 := a;
b7 := b;
tartozas := asztal7;
goto 12;
26: a := a1;
b := b1;
c1 := 'f';
Goto 27;
20: a := a2;
b := b2;
c2 := 'f';
goto 27;
21: a := a3;
b := b3;
C3 := 'f';
goto 27;
22: a := a4;
b := b4;
c4 := 'f';
goto 27;
23: a := a5;
b := b5;
c5 := 'f';
goto 27;
24: a := a6;
b := b6;
c6 := 'f';
goto 27;
25: a := a7;
b := b7;
c7 := 'f';
goto 27;
32: End;
Procedure Rendeles;
Label 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18;
begin
1: Repeat;
Clrscr;
Writeln('1. Leves');
Writeln('2. Pörkölt');
Writeln('3. Gulyás');
Writeln('q. Kilépés');
Writeln('Válasz egy számot : ');
Read(menu);
case menu of
'1' : Goto 2;
'2' : Goto 3;
'3' : Goto 4;
end;
menu := '0';
Until (menu = 'q');
Goto 13;
2: ar := 2500;
sok := 10 * g;
cukork := 20 * dkg;
pirospaprikak := 15 * g;
lisztk := 25 * dkg;
sor := sor - sok;
cukorr := cukorr - cukork;
pirospaprikar := pirospaprikar -pirospaprikak;
lisztr := lisztr -lisztk;
Goto 17;
3: ar := 4000;
sok := 12 * g;
cukork := 21 * Kg;
pirospaprikak := 13 * dkg;
lisztk := 23 * Kg;
sor := sor - sok;
cukorr := cukorr - cukork;
pirospaprikar := pirospaprikar -pirospaprikak;
lisztr := lisztr -lisztk;
Goto 17;
4: ar := 4500;
sok := 7 * dkg;
cukork := 7 * dkg;
pirospaprikak := 95 * dkg;
lisztk := 23 * Kg;
sor := sor - sok;
cukorr := cukorr - cukork;
pirospaprikar := pirospaprikar - pirospaprikak;
lisztr := lisztr - lisztk;
Goto 17;
16: if (sor <= 0) then goto 15;
if (cukor <= 0) then goto 15;
if (pirospaprikar <= 0) then goto 15;
if (lisztr <= 0) then goto 15;
goto 14;
9: if (sor <= 1 * Kg) then Goto 5;
10: if (Cukorr<= 1 * Kg) then Goto 6;
11: if (pirospaprikar <= 1 * Kg) then Goto 7;
12: if (lisztr <= 1 * Kg) then Goto 8;
Goto 1;
5: Repeat;
Clrscr;
Writeln('Kevés a só : ', sor);
Read(menu);
Until (menu = '1');
Goto 10;
6: Repeat;
Clrscr;
Writeln('Kevés a cukor : ', cukorr);
Read(menu);
Until (menu = '1');
Goto 11;
7: Repeat;
Clrscr;
Writeln('Kevés a pirospaprika : ', pirospaprikar);
Read(menu);
Until (menu = '1');
Goto 12;
8: Repeat;
Clrscr;
Writeln('Kevés a liszt : ', lisztr);
Read(menu);
Until (menu = '1');
Goto 1;
14: Repeat
Clrscr;
Writeln('Rendelés elfogadva');
Read(menu);
Until ( menu = '1');
goto 17;
15: sor := sor + sok;
cukorr := cukorr + cukork;
pirospaprikar := pirospaprikar + pirospaprikak;
lisztr := lisztr + lisztk;
Repeat
Clrscr;
Writeln('Rendelés elutasitva kevés az alapanyag');
Read(menu);
Until (menu = '1');
Goto 1;
17: Writeln('Melyik asztal rendelte : ');
Read(menux);
case menux of
'1' : c := c1;
'2' : c := c2;
'3' : c := c3;
'4' : c := c4;
'5' : c := c5;
'6' : c := c6;
'7' : c := c7;
end;
if (c <> 'f') then goto 18;
Case menux of
'1' : asztal1 := asztal1 + ar;
'2' : asztal2 := asztal2 + ar;
'3' : asztal3 := asztal3 + ar;
'4' : asztal4 := asztal4 + ar;
'5' : asztal5 := asztal5 + ar;
'6' : asztal6 := asztal6 + ar;
'7' : asztal7 := asztal7 + ar;
end;
Goto 1;
18: Repeat;
Clrscr;
Writeln('Rendelés elutasitva az asztalnál nem ül senki');
Writeln('Regisztráljon');
Read(menu);
Until (menu = 'q');
goto 17;
13: End;
begin
a := ' ';
b := ' ';
c1 := 'u';
c2 := 'u';
c3 := 'u';
c4 := 'u';
c5 := 'u';
c6 := 'u';
c7 := 'u';
sor := 0;
cukorr := 0;
pirospaprikar := 0;
lisztr := 0;
g := 1;
dkg := 10;
Kg := 1000;
m := 100000;
t := 1000000;
1: Repeat;
menu := '0';
Clrscr;
Writeln('1. Raktárkészlet');
Writeln('2. Rendelés');
Writeln('3. Asztal');
Writeln('q. Kilépés');
Writeln('Válasz egy számot : ');
Read(menu);
Case menu of
'1' : Raktarkeszlet;
'2' : Rendeles;
'3' : Asztalok;
End;
Until (menu = 'q');
End. -
jeti128
csendes tag
[HUN]Zolee amit irtál progit tökéletesen müködik külön de a progimba beilesztve egyszewrüen a probléma továbra is fent áll :
Clrscr;
Write('Családnév : ');
Readln(a);
Write('Keresztnév : ');
Readln(b);
csak ezt a részt vittem átt és nem müködik.
lehet ennek valami köze ahoz hogy nem a magban fut?
Vagy az hogy ez után egy case kiértékelés van ami nem inne szedi a változoját hanem kiértékel egy elözöleg már definiált értéket kiértékel újra? -
jeti128
csendes tag
Amugy ti milyen progival programoztok?
Én a Turbo Pascal-t használom a 6-ost.
Ha tudtok alyánjatok valami jobbat. -
jeti128
csendes tag
Amugy ez a program töredéke csak.
Amugy ez egy ojan program ami egy éteremmek a raktárkészletet figyeli az aztalok nál ki ül ez a rész amit láttatok. -
N!tRo
tag
válasz
jeti128 #1509 üzenetére
mondok egy jobbat repeat...until keypressed helyett
mégpedig a repeat until keypressed; -et !!
gondolom nem érted mit akarok ezzel
tehát a programod végére tedd ezt a sort:
repeat until keypressed;
és ne ebbe a ciklusba írjál bele !!!
vagy! mondok egy jobb megoldást!
írd ez a program végére:
readln;
ennyi!
és akkor enter leütésére vár a program, meg tudod nézni mit csinál és nem lép vissza egyből a pascalba.
esetleg c:=readkey; szintén a program végére, ahol c : char
[Szerkesztve] -
jeti128
csendes tag
Csak azért mert ha megnéztek a progit ha nem teszem bele elindul és végetér minden nagyob cselekedet nélkül. azért tettem bele hogy ne tudjon végetérni a program idö elött
meg hogy meg tudjam nézni mit csinál.
De a rendes programban nincs meg. -
jeti128
csendes tag
futtasátok le a progit meglátjátok hogy átlép a Read utasitáson és baszik a változohoz értékadást hivni
-
N!tRo
tag
válasz
atm*RefeeZ #1502 üzenetére
szoveg: string;
fajl: text;
...
szoveg:='Ezt kell fájlba kiírni';
assign(f,'c:\fajl.txt');
reset(f);
writeln(f,szoveg);
close(f);
[Szerkesztve] -
jeti128
csendes tag
hello mindenki
Nekem lenne egy olyan problémám hogy ez mért nem müködik:
var a, b : string;
Begin
Repeat;
Clrscr;
Write('Családnév : ');
Read(a);
Writeln;
Write('Keresztnév : ');
Read(b);
Until keypressed;
end.
ha lefutatjátok azt fogjátok tapasztalni hogy a read utasitásokat figyelmen kivül hagya ezt meg tudná nekem valoaki mondani hogy mért?
Elöre is kösz. -
atm*RefeeZ
tag
sziasztok
annyi érdekelne hogy pascalban hogy tok fájlba kiírni szöveget?anno mikor tanították nem volt valami túl lényeges most viszont jól jönne...nagyjából az eof van meg a képből a puzzle többi része öcsém szobájában van meg az ágyam alatt...légyszi ha tudtok segítsetek
köszi előre is
-
ViragL
tag
Nem mondtam, hogy optimális megoldás. De valóban, mivel a prímszám meghatározás egy elég lassu folyamat (pláne, ha a mezitlábas módszert alkalmazza a programozó és nem a Fermat vagy a Miller-Robin tesztet) így az algoritmus mindenképpen lassu lesz, de valóban a felesleges műveletek a főátló beli elemekkel tovább lassítják.
Tény, hogy felesleges műveletek vannak benne, ezért xar, de legegyszerübb módszer, nem hibás csak lassu.
Új hozzászólás Aktív témák
- 3D nyomtatás
- Debrecen és környéke adok-veszek-beszélgetek
- Milyen videókártyát?
- OpenWRT topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Végre bemutatkozott a Google Pixel 4a
- Villanyszerelés
- Építő/felújító topik
- Fel kell készülnünk a 2G kivezetésére
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- HP EliteBook 450 Gen8 Intel Core i5-1135G7 (11.Generáció)
- HP ZBook Firefly 16 G19 Profi Tervező Vágó Laptop -50% i7-1255U 32/512 FHD+ Nvidia T550 4GB
- Nintendo Switch 2
- Native Instruments Kontrol S49 MK3
- ELADÓ i5 14600KF + RTX5070 + 32Gb DDR4 + 600W Platinum + Wifi + SOK GARI + AKÁR HÁZHOZSZÁLLÍTÁS IS!
- Samsung Galaxy A04S 32GB Kártyafüggetlen 1Év Garanciával
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700 / RTX 3050 / 32GB DDR4 / 512 SSD!
- Fotó állvány eladó
- Acer TravelMate P214 i3-1115G4 16GB 512GB 14" FHD 1év garancia
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest