Hirdetés
- IFA 2025: Sokrétű tudást kínál az AGM két friss strapabírója
- Telekom T Phone 3 5G – modern tudakozó
- Valószínűleg a Honor legolcsóbb modellje lesz
- IFA 2025: Lépcsőmászó, víztisztító, szögletes és gombóc alakú robotporszívók
- 3 milliós villanyautó, AI tamagocsi és kamerás napszemüveg - megjött az AstraUX
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy A55 - új év, régi stratégia
- Motorola Edge 40 - jó bőr
- Telekom mobilszolgáltatások
- iPhone 16e - ellenvetésem lenne
- Google Pixel topik
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- Redmi Note 9 Pro [joyeuse]
- Honor Magic V5 - méret a kamera mögött
Új hozzászólás Aktív témák
-
Gyuri16
senior tag
válasz
Maneszproger #2498 üzenetére
freepascalbol a 64 biteset kell letolteni akkor menni fog. ekezeteket pedig szerintem vedd ki, es jo lesz.
-
Maneszproger
csendes tag
válasz
Gyuri16 #2497 üzenetére
A free pascal elfut, de menteni nem tudok egyikkel se hogy elfusson a program... Hiába adom meg a 64-bites Win 7-nek hogy Win XP SP 2 kompatibilitási módban fusson, vagy ha DOS parancssorból nyitom is meg akkor is hibát jelez, mivel NEM KOMPATIBILIS SZEREZZE BE A 32-BITES HELYETT A 64-BITES VERZIÓT! KÉRJÜK LÉPJEN KAPCSOLATBA A PROGRAM GYÁRTÓJÁVAL!
És ugye én írtam ezért idegesít, de nem tudom menteni, free pascalba meg FATAL hibákat ír ki az ékezetes betűk miatt és menteni se enged. Idegesítő dolog.
-
Gyuri16
senior tag
válasz
Maneszproger #2496 üzenetére
hasznalj freepascalt, az biztos megy 64 bites windowson is.
-
Gyuri16
senior tag
válasz
Maneszproger #2494 üzenetére
igy gondoltam:
[link]nem probaltam forditani, de kb jonak kellene lennie. az ekezetes betuk elvesztek a kodolasban, de latszik a lenyeg
-
Maneszproger
csendes tag
válasz
Gyuri16 #2493 üzenetére
bocsi csak az előbb siettem, felraktam gyors data.hu-ra a [forráskódot]
-
Gyuri16
senior tag
válasz
Maneszproger #2492 üzenetére
akkor ott valami gubanc lesz, jonak kellene lennie, szerintem probald meg, mert gyakran kell ilyen szerkezetet hasznalni.
amit fentebb irtal, meg mindig nem fordithato, pl hianyoznak az writeln-ban az aposztrofok.
-
Gyuri16
senior tag
válasz
Maneszproger #2489 üzenetére
ilyenkor jo tudni debuggolni, hogy megnezd mit csinal a program. ebben az esetben debuggolhatod "fejben" is. mit csinal a program ha muvelet = 1. ilyenkor az elso if feltetele tejesul, tehat vegrehajtodik a then ag. ezutan jon a kovetkezo if, ahol a feltetel nem teljesul ezert az else ag fut le. kovetkezo if ugyanez. a vegeredmeny az lesz, hogy egyszer lefut az a then ag amilyen muveletet megadtal, es az osszes tobbinel pedig az else ag.
helyesen azt a szerkezetet kellene hasznalnod amit itt irtam. annak a logikaja ilyen:
ha teljesul az elso feltetel, vegrehatodik a then ag, az else nem, ezzel vege az ifnek. ha nem teljesul a feltetel, akkor az else agba jutunk, ahol ismet egy if van, ami a masodik esetet vizsgalja. igy fokozatosan eljut a program oda, amelyik muveletet el akarod vegezni (vagy a vegso else agba, ha egyik feltetel se teljesul) -
Maneszproger
csendes tag
válasz
Maneszproger #2489 üzenetére
Még egy kicsit módosítottam rajta, és most már végre kiírja az eredményt. (Kiderült, a végén véletlen lemaradt a read szócskáról az LN végződés.
Bár, ahol nem megfelelő a kitétel annak a helyére kiírja a hibaüzenetet, de ez elhanyagolható, ugyanis kiírja az eredményt is.
-
Maneszproger
csendes tag
válasz
Gyuri16 #2488 üzenetére
program szamologep;
uses crt;
var a,b,c,d,e,f,g,h,i,j,k: integer;
l: real;
muvelet: integer;
Begin
clrscr;
writeln ('Üdvözöllek! Ez egy számológép program.');
writeln ('A program egész számokkal dolgozik, de az osztást 4 tizedesig írja ki!');
writeln (Kérlek gépeld be, a végrehajtandó művelet kódszámát!');
writeln ('Összeadás (1) -Kivonás (2) -Szorzás (3) -Osztás (4) ');
readln (muvelet);
If muvelet = 1 then
Begin
writeln ('Az összeadást választottad. Kérlek add meg az első összeadandót!');
readln (a);
writeln ('Most pedig a másik összeadandót!');
readln (b);
c := a + b ;
writeln ('Az eredmény pedig: ',c,' lett!');
End
Else
Begin
writeln ('Sajnos nem megfelelően adtad meg a műveletválasztást!');
writeln ('Kérlek indítsd újra a programot és próbáld újra!);
End;
If muvelet = 2 then
Begin
writeln ('A kivonást választottad. Kérlek add meg a kisebbítendőt!');
readln (d);
writeln ('Most pedig a kivonandót!');
readln (e);
f := d - e ;
writeln ('Az különbség pedig: ',f,' lett!');
End
Else
Begin
writeln ('Sajnos nem megfelelően adtad meg a műveletválasztást!');
writeln ('Kérlek indítsd újra a programot és próbáld újra!);
End;
If muvelet = 3 then
Begin
writeln ('A szorzást választottad. Kérlek add meg a szorzandót!');
readln (g);
writeln ('Most pedig a szorzót!');
readln (h);
i := g * h ;
writeln ('Az eredmény pedig: ',i,' lett!');
End
Else
Begin
writeln ('Sajnos nem megfelelően adtad meg a műveletválasztást!');
writeln ('Kérlek indítsd újra a programot és próbáld újra!);
End;
If muvelet = 4 then
Begin
writeln ('Az osztást választottad. Kérlek add meg az osztandót!');
readln (j);
writeln ('Most pedig az osztót!');
readln (k);
l := j / k ;
writeln ('Az eredmény pedig: ',l:0:4,' lett!');
End
Else
Begin
writeln ('Sajnos nem megfelelően adtad meg a műveletválasztást!');
writeln ('Kérlek indítsd újra a programot és próbáld újra!');
End;
writeln (Köszönöm hogy használtad a programot!');
readln;
End.Jelenleg így néz ki.
-
Gyuri16
senior tag
válasz
Maneszproger #2487 üzenetére
mutasd az aktualis verziot, a fenti le se fordul
-
Gyuri16
senior tag
válasz
Maneszproger #2484 üzenetére
1. az else ag elotti end utan nem teszunk pontosvesszot.
2. valami ilyesmi strukturat akarsz szerintem:if muvelet = 'valami' then
begin
{ ... }
end
else if muvelet = 'valami2' then
begin
{ ... }
end
else if muvelet = 'valami3' then
begin
{ ... }
end
else
begin
{ ha egyik feltetel se teljesult }
end;igy pontosan egy ag fog lefutni minden esetben.
3. nem kell annyi valtozo feleslegesen
4. ne hasznalj ekezeteket, pascalban a string tipus egybajtos - ascii - karaktereket tarol, ezert ha ekezeteket olvasol be rossz vege lesz. -
Maneszproger
csendes tag
-
válasz
Maneszproger #2482 üzenetére
Az utolsó if-re tettél else-t, a többire nem.
-
Maneszproger
csendes tag
No, ma délután elkezdtem írni egy négyműveletes számológépet.
Picit hosszú, de beírom.Lefordítani lefordítja ha teszek veszőspontot az End-ek után, de be is zárja, és nem írja ki az eredményt! Akkor se ha rosszat írok be direkt.program szamologep;
uses crt;
var a,b,c,d,e,f,g,h,i,j,k: integer;
l: real;
muvelet: string;
Begin
clrscr;
writeln ('Üdvözöllek! Ez egy számológép program.');
writeln ('A program egész számokkal dolgozik, de az osztást 4 tizedesig írja ki!');
writeln (Kérlek gépeld be, pontosan melyik műveletet akarod végrehajtatni!');
writeln ('Összeadás-Kivonás-Szorzás-Osztás');
readln (muvelet);
If muvelet = 'Összeadás' then
Begin
writeln ('Az összeadást választottad. Kérlek add meg az első összeadandót!');
readln (a);
writeln ('Most pedig a másik összeadandót!');
readln (b);
c := a + b ;
writeln ('Az eredmény pedig: ',c,' lett!');
End;
If muvelet = 'Kivonás' then
Begin
writeln ('A kivonást választottad. Kérlek add meg a kisebbítendőt!');
readln (d);
writeln ('Most pedig a kivonandót!');
readln (e);
f := d - e ;
writeln ('Az különbség pedig: ',f,' lett!');
End;
If muvelet = 'Szorzás' then
Begin
writeln ('A szorzást választottad. Kérlek add meg a szorzandót!');
readln (g);
writeln ('Most pedig a szorzót!');
readln (h);
i := g * h ;
writeln ('Az eredmény pedig: ',i,' lett!');
End;
If muvelet = 'Osztás' then
Begin
writeln ('Az osztást választottad. Kérlek add meg az osztandót!');
readln (j);
writeln ('Most pedig az osztót!');
readln (k);
l := j / k ;
writeln ('Az eredmény pedig: ',l:0:4,' lett!');
End;
Else
Begin
writeln ('Sajnos nem megfelelően adtad meg a műveletválasztást!');
writeln ('Kérlek indítsd újra a programot és pontosan úgy írd be a művelet');
writeln ('megnevezését, mint ahogy ki van írva pl.: Kivonás');
End;
writeln (Köszönöm hogy használtad a programot!');
readln;
End. -
Maneszproger
csendes tag
válasz
Maneszproger #2479 üzenetére
Ja bocsi a módosítgatás miatt. DE SIKERÜLT! KÖSZÖNÖM A SEGÍTSÉGET! Nem számítottam ilyen gyorsra.
-
Gyuri16
senior tag
válasz
Maneszproger #2479 üzenetére
nezd at az if-then-else szerkezet helyes szintaktikajat. ebben az esetben igy kellene hasznalni:
if feltetel then
begin
{ utasitasok: mi tortenjen ha a feltetel igaz }
end
else
begin
{ utasitasok: mi tortenjen ha a feltetel hamis }
end;a felteteled most mar jo, de a szerkezet nem.
az eredeti programodban ez a sor jo, igy kiirja a beolvasott nevet is:
write ('Szia ',name,'. Sajnos ezt a programot nem neked szántam! Zárd be légy szíves!')mod:
most latom, modositottad a hsz-t. ha az if egyik agaban csak egy utasitas van, akkor a begin/end elhagyhato. pl igy:
if a=b then
write('Egyenlo');
vagy ha kiirod akkor igy:
if a=b then
begin
write('Egyenlo');
end;#2481:
olvasd at amit irtam, probald meg, aztan ha nem jo masold ide a kodot, nem tudom, most melyiket javitsam. -
Maneszproger
csendes tag
válasz
Gyuri16 #2478 üzenetére
Köszi, szépen, még csak 2 hete tanulok programozni, és eddig csak összeadós, szorzós kiírós progikat csináltunk órán, én már így is kicsit előrébb vagyok a csoport szintjéhez képest, mellesleg a fórum felépítése is furcsa még kicsit. Tehát akkor így kell kinéznie?
program nyisdmeg;
uses crt;
var name: string;
Begin
write ('Kérlek gépeld be a neved!');
readln (name);
If name='Julia' then
write ('Szia Julia! Szeretlek édes!')
End;
End.Vagy módosítsak valamit még? Sajnos a neten fent levő anyagot nem nagyon értem, és mire ezt tanuljuk az még egy hónap.
-
Gyuri16
senior tag
válasz
Maneszproger #2477 üzenetére
az if egy feltetelt var, te viszont egy string tipusu valtozot adsz neki. gondolom valami hasonlo akart lenni:
if name = 'Julia' thenha esetleg c-s multad van, akkor megjegyeznem, hogy a pascal nem tekinti a szam tipusu valtozokat booleannak.
tovabb, ez a sor:
Lanyneve: write ('Szia Lanyneve! Szeretlek édes!')
a sor elejen egy labelt definialsz, ami valoszinuleg nem volt szandekos (ha igen, akkor ajanlom felejtsd is el egy jo idore a labeleket), az nem kell oda (a kettospont elotti resz).legkozelebb legy szives hasznald a programkod gombot forraskod beillesztesere.
-
Maneszproger
csendes tag
Sziasztok új vagyok, két hete tanulok programozni, heti két tanórában, plusz itthon valamennyit netről!
Szerelmemnek szeretnék írni egy programot, de az elágazásokat még nem tudom kezelni.
A programom:program NYISDMEG;
uses crt;
var name: string;
Begin
clrscr;
write ('Szia! Kérlek add meg a neved!');
readln (name);
If (name) then
Begin
Lanyneve: write ('Szia Lanyneve! Szeretlek édes!')
End
Then
Begin
write ('Szia ',name,'. Sajnos ezt a programot nem neked szántam! Zárd be légy szíves!')
End;
End.Mikor lefordítanám tesztelni a 40-es hibát írja ki, és ott villog a karakterjelző ahol aláhúztam. Mi lehet a baj? (Turbo Pascal)
-
andronymus
tag
köszönöm nagyon
-
Gyuri16
senior tag
válasz
andronymus #2474 üzenetére
tud mindent ami egy iskolai orara kellhet. freepascalt meg fejlesztik, vannak benne ujdonsagok, amiket tp nem tud.
-
Gyuri16
senior tag
válasz
andronymus #2472 üzenetére
hasznalj inkabb freepascalt
-
andronymus
tag
Hello!
én is elakdtam csak nálam annyi a gond hogy nem indul el a Turbo Pascal (win 7 x64) és nem találtam sehol se rá megoldást ahol meg írták h fut x64-en az meg nem futott ( dosos emuláláson kívül nincs más lehetőség) ?
köszi a segítséget -
bucsupeti
senior tag
-
artiny
őstag
Hogyan kell ezt megoldani Turbo Pascalban?
Befejezés hiányzik a programból.
A gyakorlaton ahol vagyok ezt kell csinálnom egész nap:
van a kamion indulási és érkezési km távja a tachométeren. Kettő különbségéből kijön a megtett táv,ezt megszorozva a fogyasztási kulccsal kijön a fogyasztás. A maradék naftából ami a kamion tartályában van ki kell vonni a fogyasztást (és ha volt tankolás akkor előtte hozzáadni)**** és így megkapjuk a maradék naftát a kamionban. Ezt kell vezetni egy lapon a cégnél.
Ennek a megkönnyítésére gondoltam megpróbálom megszerkeszteni a progit.A kérdések:
1
A programot hogyan tudom folytatni ,hogy használja fel ugyan azt a VÉGÉRTÉKET,TAKOMETER VEGERTEKET - hisz ezeket nem kéne ujbol megadni,mert ugyan az mint az elozo vegertekek és ezt beolvasni az ujabb szamolásnál kezdoértéknek.
/itt változok értékei megmaradnak a memoriaban szoval eleg behelyetesiteni? csak nem tudom hogyan irjam le ezt programban .... eljutottam addig,hogy kiszamolom amit akarok egyszer de hogy folytatodjon a program az elozo ertekkel már nem tudom./Nem kell hogy tarolja valahova az adatokat a program(mivel egy kamiont nem naponta vezetik,hanem amikor kezhez kapja a papirokat,ezért van hogy 15napot egyszerre csinálok meg)...csak egyszer kiszamolom az elsot (ugy hogy en adom meg a kezdo erteket,vegerteket - azutan mar a program fogja beolvasni a vegerteket a kezdobe a következő számításba)
2
hogyan lehet megoldani a tankolást,hogy elegánsabb legyen. Mivel csak kb 2hetente szoknak tankolni ezért ugy elohivni ha csak tankolt.
Eddig jutottam:program staska;
uses crt;
var kezdo,tankolas,spotreba,vegertek,kulcs,tav,takezdo,takveg:real;
begin
clrscr;
write('adja meg a takometer kezdoerteket: ');
readln(takezdo);
write('adja meg a takometer vegerteket : ');
readln(takveg);
tav:=takveg-takezdo;
writeln('takvegso - takezdo : ',tav:0:0);
write('adja meg a fogyasztas kiszamitasahoz a kulcsot: ');
readln(kulcs);
spotreba:=tav*kulcs;
write('adja meg a tartaly maradek tartalmat : ');
readln(kezdo);
write('adja meg a tankolas mennyiseget : ');
readln(tankolas);
writeln('tartaly maradek erteke: ',kezdo:0:0);
writeln('tankolas mennyisege : ',tankolas:0:0);
writeln('fogyasztas : ',spotreba:0:2);
vegertek:=(kezdo+tankolas)-spotreba;
writeln('maradek nafta : ',vegertek:0:0);
readln;
end. -
artiny
őstag
Készítsen számjegyes számlálot a kepernyore(amilyen a villanyorakban vagy kilometerorakban is van). A szamlalo eloszor ket szamjegyes legyen tehat 00-99ig szamlal,majd bovitse fokozatossan hat szamjegyesig!
ez hogy kell megoldani? Csak olyankoat sikerult csinalnom...hogy elkezd szamolni 1,2,3,,,,
eler szazon felul akokor 1 01(-----02,03...stb) es ez folytadodik nem megy tovabbb a harmadik karakternel...es eleve ugy kezd szamolni hogy 0 01 ,0 02 -
Gyuri16
senior tag
valoszinuleg a beolvasast az utolso readln elott csak read-dal vegzed, ezert az ujsor karakter ott marad, es az utolso readln ezt rogton megeszi. legjobb az lenne, ha az osszes olvasas egesz sor lenne (tehat readln), es akkor mukodne rendesen az utolso is.
esetleg rakhatsz a vegere egy ilyet:
repeat
until keypressed;mod:
ha turbo/free pascalt hasznalsz, akkor alt+f5 kombinacioval elohozhatod a kepernyot, hogy megnezd mit irt ki a program enelkul is -
artiny
őstag
Helosztok
Hogyan kell megoldani,hogy netűnjön el a képernyő enter után pl. van hogy beolvasok szamokat osszeadatom majd vegen kiirni az eredmenyt és amikor az utolso enter jon olyan gyorsan irja ki az eredmeny es tunik el hogy olvashatatlan.
Az end. elé irtam readln.t de mégis? van valmi break vagy stop vagy valmi hasonlo? -
gatoth
csendes tag
válasz
Gyuri16 #2462 üzenetére
nekem az i386 mappán belül egy ppcrossx64 alkalmazás van, de ha elindítom, akkor kidob egy szöveget egy DOS-os ablakban, alján press enterrel, ha nyomok entert, akkor újabb szöve, megint újabb, ezt 4-5x és utána enterre bezár.
Szóval ezek szerint rosszat szedtem le.
Tudnál dobni egy linket, amiről működőképeset tudok leszedni? -
gatoth
csendes tag
Sziasztok!
Én már rögtön az elején elakadtam, mert x64-es windowsom van, és vmiért nem szeretik egymást, pedig direkt olyat töltöttem le, ami elvileg erre jó, és felraktam a DOSbox 0.74-et is, mert valahol azt írták, így működni fog, de nem. Ez van a Turbo Pascal 7.0-val.
Próbálkoztam a Free Pascal 2.2.4-el is, fel is raktam, de ott meg nem jövök rá, hogy mivel indítom el, mert szinte csak szövegfájlokat találok.
Valaki tudna segíteni, hogy hogy indítsam el a FP-t, vagy miért nem működik a TP, az pls írjon.
Köszönöm előre is. -
dany27
őstag
hi
Hogy tudok egy stringben tárolt tört számot real-é varázsolni??
Nem saját magamat szopatom hanem ilyen hülye a feladat, tört számokat viszek be * végjelig.
Nem is lenne a gond a stringel csak utánna még rendeznem is kell őket, az meg ugye stringel necces lesz....
Más nyelven megtudnám írni(típus konverzióval) csak most kimondottan pascal kell!Előre is köszi!
-
vz12
tag
válasz
Gyuri16 #2457 üzenetére
Jó, zárjuk le ezt.
Van igazságod neked is, de nekem is.
Úgy látom hogy mind2 "eredeti" kód még több sebből "vérzik", ezt jó látod. Azzal hogy jószándékúan próbáltam/tunk javítani egy kicsit a kódo(ko)n azzal még természetesen minden nem oldódik meg ..., mindent meg kellene oldani (a teljes "rendszert"). Az is probléma hogy amit felvetsz az lehet hogy egyik kódra igaz a másikra nem, és lehet hogy én a másikból indultam ki.
Egyébként egyetértek azzal hogy a bemenetet mindig ellenőrizni kell, sőt megtoldom azzal hogy az ilyen feladatokban az input paramétereket célszerű korlátok közé szorítani, pl. 2 jegyű számok, 3 jegyű számok, vagy ilyesmi.Részemről vége, peace.
-
Gyuri16
senior tag
nem ertek egyet, ket dolog miatt:
1, ebben a konkret esetben: a programnak beadsz ket szamot, pl 100, 50. erre az mit csinal? hibauzenetet dob, miszerint kicsi az intervallum. a felhasznalo nem erti mi a baj, hisz az intervallum nagyobb mint a megengedett minimum. a program egyreszt helytelen hibauzenetet ad, masreszt arra tamaszkodik, hogy egy feltetel, ami eredetileg mast hivatott tesztelni ezt is lefedi. ezen kivul feleslegesen hivod meg a random fuggvenyt rossz parameterrel.
aztan ott vannak a kellemetlen helyzetek, amit a te megoldasod okoz:
faradt vagyok mar ezeket kutatni.. de ha pl a c integer lesz a,b pedig word akkor elo lehet idezni ilyet:
a:=maxint*2; // nagy szam
b:=100;
c:=b-a; // = 102
es itt baj van, mert a program 102 elembol fog valasztani ahelyett hogy maxint*2-100 elembol valasztana. es hibat se dob
(ha pedig mindharom integer lesz, akkor negativ szamokat is kezelni kell, ami kicsit megint bonyolitana a dolgot, pl mit kell csinalni ha a=100 es b=-maxint)2, altalanosan (ez a fontosabb resz): a bemenetben amit a felhasznalotol kapsz nem lehet bizni. ha ket szamot ker a programod, ahol az elso a kisebb biztos lehetsz benne, hogy valaki kiprobalja mit csinal ha forditva adod meg. probalom a jo szokasokat terjeszteni: bemenetet mindig ellenorizni kell (lehetoleg minel hamarabb) es nem a kodban kutatni, hogy esetleg ez jo lesz igy is, mert van ott valahol egy if. a c valtozo jelentese, hogy hany szambol akarsz veletlenszeruen valasztani, itt nincs ertelme negativ szamnak, ezert nem szabad megengedni, hogy ilyen erteket felvegyen. ilyenekre hosszabb programoknal szokas irni teszteket a kodba, segitenek hibakat keresni.
-
vz12
tag
válasz
Gyuri16 #2455 üzenetére
De az jó.
Nem akarok nagyon tovább vitatkozni ezen, de ezeket a kódrészleteket azért nézd majd meg:
Egyrészt: until c>20
Másrészt: if c>19Persze lehetne rugózni még ezeken is, de azt a problémát amin vitatkozunk azt megoldaná integer esetben. Pont ezek a vizsgálatok zárják ki a negatív eset lehetőségét. Viszont word típus esetén ugye nem tud negatív lenni, hanem akkor hülyeség van.
-
Vferi159
csendes tag
Sziasztok!
Szükségem lenne a segítségetekre. Egy egyszerü programról van szó, de mégsem akar sikerülni.
A program bekér 2 számot, majd a 2 szám közti intervallumból véletlenszerüen kiir egyet. Fontos, hogy a 2 szám közti inttervallum min. 20 legyen.
http://kephost.hu/kep/2011/04/turbo_jpg.JPG eddig ezt próbáltam összehozni, de a képen látható hibát írja ki ("x:=ramdom(b)+a sorban a (b)-vel van problémája). Reménykedek benne, hogy valaki tud segíteni, előre is köszönom... -
Sweet Lou 6
addikt
-
kmisi99
addikt
Igaz kicsit off de azért van köze a témához
Középiskolában pascalt tanulok de nem nagyon megy nagyon nem vágom! Ilyeneket veszünk hogy dinamikus tárkezelés meg hasonlók! Hogy tudnák jobban belerázódni? Talán kezdjem előröl a tanulást az alapoktól? Tudnátok valami jó oktatós oldalt adni? -
Dave-11
tag
Sziasztok! A következőt szeretném megvalósítani:
Lenne egy progrgam, ami bekéri a nevedet. Miután megadtat, kiír egy üdvözlő üzenetet, és alá ezt írja: "Nyomj Entert a program bezáráshoz, vagy Spacet az újabb név megadásához". Ennyit meg tudok csinálni belőle:program nev;
uses crt;
var
nev:string;
begin
writeln('Kérlek add meg a nevedet!');
write('Neved: '); readln(nev);
writeln();
writeln('Üdv, ',nev);
writeln();
writeln('Nyomj Entert a program bezáráshoz, vagy Spacet az újabb név megadásához');
[és ide jönne az a rész amit nem tudok]
end.Tehát hogy lehet megoldani, hogy egy billentyű lenyomásával kilépjen, vagy újrainduljon a program? A segítségeket előre is köszönöm
-
csarab
csendes tag
Hello! Házit kéne írnom, de nem sikerült eddig megoldanom a problémát, remélem segítetek!
A feladatom: Készítsen programot, amely a számsorozatokat a Cauchy-féle konvergencia kritérium alapján vizsgál. Tetszőleges sorozatról lehet szó. Én az 5*n/n a sqrt(1+1/(n*n)) és a (1+1/n)+n.t választottam, az elsőnek 5 a másodiknak 1 a harmadiknak az e szám a határértéke. Idáig jutottam, ami sajnos hibás:
var a,b:real; d,k,n:integer;
begin
a:=5*n/n;
b:=sqrt(1+1/(n*n));
d:=5;
k:=1;writeln('Kerem a hanyadosfuggvenyt:',a);
writeln('A hanyadosfuggveny hatarerteke:',d);
writeln('Kerem a gyokfuggvenyt:',b);
writeln('A gyokfuggveny hatarerteke:',k);
readln;
end;function cauchy(a,b:real;d,k,n:integer;z:longint;var m:integer):integer;
begin;
z:=0,001
if a-d<z then do
write n:=m
writeln(m);
end;
readln;
end.
Vmilyen függvényt, meg eljárást , fájlkezelést is kéne írnom. Nagyon örülnék, ha vki tudna segíteni, köszi! -
lecsokolbasz
csendes tag
Üdv mindenkinek!
A következő program megírásában kérném a segítségeteket.
Pascal-ban.
Esetleg nincs meg valakinek, szívesen venném!!!!
Köszi előre is!A bemenet első sorában található egy egész szám, n.
Ezután következik tetszőlegesen sok, de maximum kétszáz darab, int vagy double típusú szám. Írjuk őket növekvő nagyság szerint rendezve a kimenetre n tizedesjegy pontossággal.pl.:
Bemenet:
4
10
10.5
6.8
11.2275Kimenet:
4.000
6.008
10.000
10.005
11.227 -
klambi
addikt
kaptunk egy feladatot, csak egy algoritmust kéne rá csinálni...
van egy bolt, ismerjük 30 napi bevételét és 30 napi kiadását. döntsük el, hogy van e olyan nap, ha van, akkor melyik nap, amikor veszteséges volt az üzlet.
bevétel: tömb (1..30:egész)
kiadás: tömb (1..30:egész)pascalban 100éve nem csináltam semmit, tud valaki segíteni?!
-
vz12
tag
válasz
bedohazi #2429 üzenetére
Jobban megnézve tényleg szürke, de majdnem fehér ...
Igazi fehér háttér úgy tűnik hogy nincs, csak az ott lévő 8 szín.
Betűszín viszont lehet igazi fehér is, mert ott 16 lehetőség van.Az "elkékülés" szerintem azért volt mert a Syntax elemek háttérszínét is át kell állítani (mindegyiket) ugyanolyanra mint a Normal text háttérszíne, nekem utána jó volt. Az eredeti sárga betűszín is csak ideiglenes, miután felismeri hogy a szintaxis melyik részéhez tartozik a beírt szöveg máris átszínezi a Syntax beállításoknak megfelelően. Ha annak a háttere kék maradt akkor persze elkékül.
Szerintem.
De ezt mintha már javasoltam volna ... -
vz12
tag
válasz
bedohazi #2427 üzenetére
Az első kérdésre nem nagyon tudok mit mondani, talán ki kellene kapcsolni vírusírtót, stb., illetve lehet hogy nem elég gyors a géped. Egy ötletem még van, a Vezérlőpultban a Billentyűzetnél lehet sebességet állítani, ha lehet akkor gyorsíts ott is.
A második kérdéshez: Én még sosem állítgattam, nekem tetszik így.
De azért megnéztem.
Ha TP7-ről beszélünk akkor Options / Environment / Colors -nál lehet mindenféle színeket állítani. Ha a hátteret megváltoztatod akkor az Editor / Normal text és Selected text -et illetve a Syntax összes elemét mindenféleképpen át kell állítani, a többit ízlés szerint, de ésszel. Ha tetszik az új színkavalkád és a legközelebbi belépéskor is ezeket akarod látni, akkor az Options / Save -nél ne felejtsd el elmenteni ...Esetleg használd a kedvenc (normál TEXT alapú) szövegszerkesztődet, és csak a fordítás, futtatás idejére lépj be a TP-be.
Arra figyelni kellene hogy a szövegszerkesztő DOS-os karakter kódkészlettel dolgozzon ..., talán 437-es kódlap ... -
bedohazi
aktív tag
igen fent elirtam...megprobalom de nem nagy eselyt latok...
Meg par ehhez nem kapcsolodo kerdes:
- Mit csinaljak hogy pascalban gepeleskor azonnal jelenjenek meg a beirt betuk akarmilyen gyorsan irok, mert nagyon sokszor akad, szaggat, kesobb jelenik meg a betu mint amikor lenyomtam a billentyut?- Valahogy be lehet-e allitani hogy pascalban a hatetr ne kek legyen es sarga betukkel irjak, hanem feher hatter es fekete betuk, mert a szememnek sokkal jobb volna, sokkal atlathatobb?
-
vz12
tag
válasz
bedohazi #2425 üzenetére
Egy megjegyzés az elején: a 2. megoldásod a jobb felső sarokból indul, nem pedig a bal felsőből ahogyan írtad.
Akkor egy kicsit bővebben:
Én valahogy úgy csinálnám hogy menne egy FOR ciklus 1 és n*n között, és minden lépésben megkeresném a ciklus aktuális értékének helyét (sor, oszlop) a mátrixban. Ennyi.A probléma nyilván a hely megkeresése, ami az 1. esetben (x1, y1), a 2. esetben (x2, y2). Minden koordináta csupán a ciklusváltozó értékétől függ, de x1 és y1 egy kicsit máshogyan mint x2 és y2 (képleteket kellene keresni). Azt írtad hogy az elsőre megvan a megoldásod, tehát (x1, y1) ismert, én csak megadtam hogy ebből hogyan lehet kiszámolni a 2. esetben (x2, y2) -t.
Látszik a tengelyes tükröződés, tehát a számok mindkét esetben ugyanabban a sorban vannak de a másik oldalon, a közepéhez képest ugyanannyi távolságra. Ezt írtam le matematikailag.
A konkrét program megírását már az érdeklődő olvasóra bízom. -
bedohazi
aktív tag
Udv,
Van egy n*n -es 2 dimenzios tomb, amit 1 tol n*n ig kell feltolteni szamokkal.
Ket algoritmusra lennek kivancsi: egyik amelyik balfelso sarokbol indulva a melleketloval parhuzamosan tolti fel a matrixot, es egy amelyik balfelso sarokbol indulva a foatloval parhuzamosan tolti fel a matrixot.Az elsore van egy megoldasom, de kivancsi lennek ti hogyan oldanatok ezt meg, a masodikra viszont nincs.
Itt egy kep hogy mire is gondolok:Elore is koszonom.
-
dany27
őstag
hali!
Egy olyan kérdésem lenne hogy mi a legegyszerűbb módja annak hogy típusos állomány x-edik elemét töröljem ? Van rá vmi függvény vagy kézzel kell megírnom az egészet??
Előre is köszi!
-
Gyuri16
senior tag
-
RedSign
tag
válasz
Gyuri16 #2414 üzenetére
ha gondolod bemasolhatod a veglegest es megnezem, mert RedSign megoldasa nem tul jo.. (egyreszt le se fordulna, ha lefordulna vegtelen ciklus lenne. azon kivul nem az elso otven szamot nezi, hanem csak otvenig a parosakat)
Már közel 15 éve nem programoztam TP-ban, tehát esélyes hogy le sem fordul vagy végtelen ciklusba fut...
...szerintem az első 50-et néz, csak éppen kimaradt a while-ból egy i := i+1; ...
-
Gyuri16
senior tag
válasz
Ultimate #2412 üzenetére
ha gondolod bemasolhatod a veglegest es megnezem, mert RedSign megoldasa nem tul jo.. (egyreszt le se fordulna, ha lefordulna vegtelen ciklus lenne. azon kivul nem az elso otven szamot nezi, hanem csak otvenig a parosakat)
en inkabb ilyen ciklust hasznalnek:
for i:=1 to 50 do
begin
szam:=2*i;
// itt szamolod az osszeget
end;igy nem kell szurni a feleslegeseket, raadasul egyertelmubb, hogy pont 50 szamot general. mas megoldas egy while ciklus, ahol a ciklusvaltozot mindig kettovel noveled, igy is megsporolod az ifet.
masik dolog, hogy illik inicializalni a valtozoidat, konkretan az osszeg valtozoban nem tudod mi van az elejen, jo lenne nullazni az elejen
-
RedSign
tag
válasz
Ultimate #2410 üzenetére
Régen volt már a TP, de szerintem valami hasonló (tesztelve nincsen, ha hibás valaki javítsa, köszönöm!):
program paros;
uses crt;
var i,j,osszeg: integer;
begin
clrscr;
writeln('Az első 50 páros szám:');
i=1;
j=1;
while i<50 do
begin
if j mos 2=0 then osszeg:=osszeg+j;
j:=j+1;
end;
gotoxy(1,7);
writeln('Összegük:');
writeln(osszeg);
readln;
end;
end. -
Ultimate
csendes tag
Tudna segíteni valaki egy egyszerű for ciklusus programban?
Az a feladat, hogy ki kell írni az első 50 páros szám összegét.program paros;
uses crt;
var i,osszeg: integer;
begin
clrscr;
writeln('Az első 50 páros szám:');
for i:=1 to 10 do
if i mos 2=0 then
write(i,' ');
begin
...
...
gotoxy(1,7);
writeln('Összegük:');
writeln(osszeg);
readln;
end;
end.Megcsinálná valaki, hogy jó legyen?
-
Gyuri16
senior tag
válasz
bedohazi #2406 üzenetére
1. if c in ['a'..'z'] then valtozo1:=true;
kellenek oda az aposztrofok, kulonben hibat jelez.
ezt egyszerubben le lehet irni igy is (elozo esetben ha a feltetel nem teljesul a valtozo1 erteke az marad ami elotte volt, ami nem mindig jo):
valtozo1 := c in ['a'..'z'];
a kerdes itt csak a kifejezes volt, tehat a valasz ez:
c in ['a'..'z']2. pascal tud stringeket osszehasonlitani a klasszikus =,<,>,<=,>=, <> operatorokkal, ezek tobbnyire olyan eredmenyt adnak, mint amire az ember szamit. tehat ha s1 es s2 string, akkor lehet ilyen ifet irni:
if s1>s2 then
{ s1 lexikografikusan nagyobb mint s2 }
else
{ s2 a nagyobb vagy a ketto egyenlo }ebben mar csak a kiiratas hianyzik, remelem az mar megy
#2407: nincs yahoom, mas van, de most nincs idom privatban ezzel foglalkozni. ide szivesen irok valaszt amikor epp raerek.
-
bedohazi
aktív tag
gyuri16, egy yahoo id-t kaphatok?
-
bedohazi
aktív tag
Valaki megoldana ezeket, vagy elmagyarazna? Koszonom
1. Irjatok egy pasacal kifelyezest, amely akkor es csak akkor true ha a char tipusu c valtozo an angol ABC egy kisbetujet tartalmazza?
Igy jo:? if c in [a..z] then valtozo1:=true:?2. Az s1 es s2 valtozok karaktertalc tipusuak. ird meg azt az utasitassorozatot, amely a ket karakterlancot abc-sorrendbe(lexikografikus novekvo sorrendbe) egy szokozzel elvalasztva a kepernyore irja. Pl ha s1 a mama karakterlac, s2 a macara, akkro a kepernyore a macara mama-t irja ki.
-
bedohazi
aktív tag
na koszi a valaszokat, kiprobalom, s majd irok hogy mi a helyzet
-
vz12
tag
> a CRT-hez hasonlóan nem kell őket "uses"-ni
Ööö, izé ..., kell "uses"-ni akkor is, csak a "Unit directories"-ba nem kell beletenni, mert akkor már nem "külső" unit hanem "belső", már a TP indulásakor bekerült a memóriába, nem kell keresgélni a megadott helye(ke)n.
Bocsi, gyorsan írtam. -
Gyuri16
senior tag
válasz
bedohazi #2400 üzenetére
nem talalja a GRAPH.TPU-t, akkor a directoriesban hozza kell adnod a unitshoz azt a konyvtarat, ahol ez a fajl van. ahogy vz12 irta, az osszes .tpu fajlt meg kell tudnia talalnia a pascalnak, ezert keresd meg oket (siman windows explorerrel, vagy akarmivel), es add hozza a konyvtarakat (vesszovel elvalasztva). ha az iskolaban a bgi konyvtar is ott volt a unitsban add hozza te is - nem lesz baj, ha tobb konyvtar van ott, ez csak annyit tesz, hogy azokban keresi a unitokat.
exe & tpu dirnek szerintem egy sajat (uj) konyvtarat adj meg, mert ide fogja forditani a te programjaid#2401: nem tudom mi az, csak a google dobta. viszont ha a szolgaltatod rakta fel, akkor lehet kell a halozatba bejelentkezeshez, oket kerdezd meg.
-
vz12
tag
válasz
bedohazi #2400 üzenetére
Pedig szerintem csak ott az Options/Directories beállításnál lesz a probléma.
Az "EXE & TPU directory" az most nem számít, az nem a felhasznált hanem a majd lefordítandó EXE-k és TPU-k célkönyvtára.
Csak este tudom majd megnézni, de emlékeim szerint több alkönyvtárban is vannak felhasználandó TPU kiterjesztésű fájlok (egyedül a CRT nincs TPU-ban), ezeket pontosvesszővel elválasztva mind fel kell sorolni a "Unit directories"-nál, majd mentés "alapértelmezettként" (talán TURBO.TP fájlba), egy ki- és belépés és működni kell. Szóköz persze ne legyen könyvtárnévben sem + fájlnévben sem. Kis/nagybetű nem számít, ez még DOS volt.
Semmi extra trükk nincs benne, anno én is pakolgattam ide-oda, mindig működött, a fenti beállításokon kívül semmi más nem kellett hozzá.Ja, esetleg a TPUMOVER progival bele lehet pakolgatni a külső TPU-kat a "belső" függvénykönyvtárba (talán TURBO.TPL), úgy a CRT-hez hasonlóan nem kell őket "uses"-ni, viszont a lefordított EXE-k méretét minden esetben növeli.
-
bedohazi
aktív tag
válasz
Gyuri16 #2398 üzenetére
Elolvastam amit linkeltel, es erdekesnek is tartom... mert amiota bekottek az uj netet es a munaksemberek el is inditottak a gepen, miutan ezt azt 'klikkelgettek"(habar tudom mit mert mar raktam ujra a netet de nem errol van szo...), azota a Cntrol Panelben van egy ilyen nevezetu ikon :"CSNW" aza client service for netware. HA raklikkelek kettot akkor azt dobja ki, hogy The service has not been started. Ez meg nem is baj de amiota ez megjelent, azota gepindulaskor elojon az az ablak, ahol a gep nevet kell megadni es a jelszavat, de nalam a jelszo mezo ures es nemis kell semmit beirjak, csak okezzak. Ez abban rossz hogy a gep "magatol" nem indul bem, s ha ki akarom kapcsolni , start menunel shut downro megyek, akkor ott is elojon az az ablak ahol egy lenyilo fullel ujbol ki kelll kivalasztani a a shud downt, mig eddig a starbol a shutdownra menve elszurkult a kepernyo es csak a kozespso shud down ikonra kellet klikkelni. Ugy gondolom hogy ez a ket ablak indulaskor es kikapcsolaskor a CSNW muve, s at megoldottam valahogy, hogy indulaskor ne kelljen okezni(de amugy is elojon az ablak, csak el is tinik oke nelkul), de a kikapcsolaskor mar nem tudtam eltuntetni, ezt a CSNW-t sehol se tudtam torulni, s nem is tudom mit jelent s ezert a pascal miatt meg egyenlore nem torulom le a linkben leirtak szerint, nehogy valami legyen a nettel vagy valamivel.
Akkor megmondanad, hogy a csnw mi is az es lehet-e torulni?
Új hozzászólás Aktív témák
- CADA, Polymobil, és más építőkockák
- Mégis mi értelme az Xbox PC-nek, ha limitálja a hardverválasztékot?
- One otthoni szolgáltatások (TV, internet, telefon)
- Xbox Series X|S
- Háztartási gépek
- Házimozi belépő szinten
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- LG 27UP850NP-W - 27" IPS LED - 3840x2160 4K - DisplayHDR 400 - USB Type-C - AMD FreeSync
- Vivo Y76 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus B550M R9 5900X 32GB DDR4 1TB SSD RTX 4070 SUPER 12GB Be Quiet! Silent Base 601 850W
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3341, 94% Akkumulátor
- HP EliteBook 840 G8 i5-1135G7 32GB 1000GB 1 év garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest