- Xiaomi 14T Pro - teljes a család?
- iPhone topik
- Ennyibe kerülhet a Xiaomi Watch S4 európai változata
- Hetekig bírják töltő nélkül a Huawei sportórái
- OFFTOPIK: Earfun-lányok Magyarországon
- Milyen okostelefont vegyek?
- Google Pixel topik
- Huawei Watch GT 4 - kerek karék
- Yettel topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
Új hozzászólás Aktív témák
-
N!tRo
tag
Nos, itt egy 6x6-os mátrix, és a kékkel szedett koordináták határozzák meg a főátlót (gondolom én).
Kérdés: Hogyan tükrözzük?
A válasz nem nehéz.
Megvizsgáljuk, hogy (1,2) és (2,1) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (1,3) és (3,1) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (1,4) és (4,1) prím-e, ha igen, kicseréljük.
...
Megvizsgáljuk, hogy (2,3) és (3,2) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (2,4) és (4,2) prím-e, ha igen, kicseréljük.
Megvizsgáljuk, hogy (2,5) és (5,2) prím-e, ha igen, kicseréljük.
...
és így tovább!
Tehát (1,1), (2,2), (3,3) stb... vizsgálatát kihagyjuk, mert ugyanarra a helyre cserélnénk, aminek nincs értelme.
Akkor nézzük, vegyünk egy 'x' és egy 'y' változót, ami egész szám, tehát integer.
Az első vizsgálat (1,2) volt, tehát x=1, y=2. Ezek legyenek a kezdőértékek.
Ez után látszik, hogy y értékét kell növelni, addig, amíg elérjük a mátrix méretét, ez esetben a 6-ot.
Ez után x értékét kell növelni egyel (x=2 lesz), tehát ugrunk egy sort. De! Észre kell venni, hogy y már nem 2-től fog indulni, hanem 3-tól!
Összegezzünk!
X értéke 1-től fog indulni és 5-ig tart (mert (6,6)-ot nem vizsgáljuk) és Y értéke meg X+1-től fog indulni mindig és 6-ig tart (az ábráról ez mind leolvasható).
Tehát megvan a leírás, már csak be kell programozni.
for x:=1 to MatrixMerete-1 do
for y:=x+1 to MatrixMerete do <primvizsgalat es csere ha szukseges>
A csere meg ugye úgy néz ki, hogy kell egy segédváltozó.
Legyen ez S, tehát a kicserélő algoritmus:
S:=ertek[x,y]; ertek[x,y]:=ertek[y,x]; ertek[y,x]:=S;
Remélem tudtam segíteni!
Attila -
N!tRo
tag
1. nem vagyok guru
2. a kis programokat fejből írom, semmi tervezés, azok triviális dolgok, maguktól értetődnek (már akinél...)
3. a nagyon nagyon nagy programokat papíron megtervezem, mármint a szerkezetét, és bekódolom
4. a közepesen nagy progikat meg szintén fejben csinálom, de részegységenként oldom meg, tehát felbontom kisebb, egyszerűbb programokra. Elég nagy hiba, hogy nem tervezek papíron semmit, semmilyen ábrát, nem szoktam meg, pedig így tanítják suliba, hogy kell. Maximum teszek kis commenteket egy-egy algoritmushoz, hogy mit is csinál valójában, hogy később tudjam.
Tehát ne legyek a példaképed, mert ez csak rossz.
Keress valami leírást a programkészítés lépéseiről, és te is úgy tanuld meg, ahogy le van írva. -
zsyvy
csendes tag
Sziasztok! Sajnos én is alakadtam a pascal-ban. Lenne egy olyan feladatom, hogy egy mátrixban a főátlóra kellene tükrözni, mégpedig csak azokat az elemeket, amelyik primek. A primeket meg tudom határozni, de a progit összeségében nem tudom megcsinálni. Tudna nekem ötletet, adni hogyan kell? Köszi ezerrel:Ivett
-
kekfog
csendes tag
Köszönöm válaszodat!
Próbálkozni fogok.
Más.
Hagy kérdezzek meg már egy olyan gurut, mint te, hogy egy komolyabb program tervezését mivel oldod meg? Szerkezeti ábra, folyamatábra vagy Jackson jelölés.
Egy ilyen kis programot, mint amivel én most küzködök, az viszont fejben meg van? -
N!tRo
tag
próbáld real-el, double-al, extended-el
de extended-hez már kell a numerikus társprocesszor is amit a {+R}-al tudsz bekapcsolni ha jól emlékszem
real -> 2.9^-39 .... 1.7^38
single -> 1.5^-45 .... 3.4^38
double -> 5.0^-324 ... 1.7^308
extended -> 3.4^-4932 ... 1.1^4932
próbálkozz...
csak kiírásnál csináld úgy, hogy ne irasd ki vele a törtrészt
pl.: WRITELN(kombinacio:20:0);
ATiS -
kekfog
csendes tag
Sziasztok!
Kezdő vagyok, a következőben szeretném a segítségeteket kérni:
egy olyan programot szeretnék, szerettem volna írni pascal-ban, ami kiszámította volna a megadott értékekből a kombinációkat. Magyarúl egy lottó-esély számolót.
Mondjuk az ötös lottónál meg kell adni a 90-et és az ötöt.
Annak azért sikeressen utánajártam, hogy az ötös lottó telitalálatának esélye így néz ki:
90*89*88*87*86 / 5*4*3*2*1= 43 949 268
evvel a képlettel skandináv vagy hatos lottó is kiszámítható.
A gond az, hogy ''longint'' típusú változónál is túlcsordulási hibát jelez. Ezt lehet orvosolni valahogy, vagy hagyjam a francba? -
logan14
csendes tag
ok, köszi, megnézem a doc dokumentumot. a help hol van? a könyvet olvasom, de nem értem....
-
logan14
csendes tag
Hali nekem a Programozás Turbo Pascal c. könyv van meg (kezdöknek), sztem jo könyv, ezzel kezdj, azt hiszem 2 ezer ft..
Akkor tud nekem segíteni vki a grafikus eljárásokban és függvényekben? irja le vki légyszi h mi hogy van.. -
MateusAMD
csendes tag
Már olvasgattam ezt a könyvet... nem lehet kihagyni a konzolos részt...
-
MateusAMD
csendes tag
Hali, én régebben próbálkoztam C++-al de nem igen ment, aztán nemrég mondta az infótanárom, hogy pascallal próbálkozzak, az a legegyszerübb.
Azt szeretném kérdezni, hogy milyen könyvet ajánlotok??
Nekem van egy Programozzunk Delphi 7 renszerben c. könyv a ComputerBooks-tol, de ez kicsit régi vagy ez is jó lessz?
[Szerkesztve] -
logan14
csendes tag
Hali, Tud segíteni valaki a Graph unittal kapcsolatban? Le tudja vki irni h a graph unitban szereplö függvényeket hogyan kell használni a gyakorlatban? értem ezalatt pl egy pont kivillanását(putpixel) vagy a grafikus kurzort, és az alakzatok rajzolását, ha lehet mindenre kérnék példát.. Előre is köszönöm.-
-
Wizardmon
csendes tag
próba
-
Wizardmon
csendes tag
heló ismét.
Bocs hogy ide írom de úgynézem a delphi fórumok halottak. Nem tudjátok mekkora a delphi 7 ??? Mármint méretre Mb-ban. -
Wizardmon
csendes tag
Megint itt vagyok.
Mi az az assembly nyelv? Ismernem kéne? -
alitak
senior tag
válasz
Wizardmon #1447 üzenetére
Na nézegettem a problémát, és kitúrtam a polcomról egy öröknaptárt. Megírtam hozzá a programot:
program oroknaptar;
uses newdelay,crt;
var datum:record
ev,honap,nap:integer;
end;
x,kodszam:integer;
nap:string;
begin
clrscr;
datum.ev:=0;datum.honap:=0;datum.nap:=0;x:=0;kodszam:=0;
writeln('Add meg a szuletesed datumat, a honapot szammal add meg!');
write('Ev: ');readln(datum.ev);
write('Honap: ');readln(datum.honap);
write('Nap: ');readln(datum.nap);
if (datum.honap=1) or (datum.honap=2) then datum.ev:=datum.ev-1;
x:=trunc(datum.ev/100);
case x of
15,19,23,27,31:kodszam:=kodszam+1;
16,20,24,28,32:kodszam:=kodszam+0;
17,21,25,29,33:kodszam:=kodszam+5;
18,22,26,30,34:kodszam:=kodszam+3;
end;
x:=datum.ev mod 100;
case x of
0,28,56,84,6,34,62,90,17,45,73,23,51,79:kodszam:=kodszam+0;
1,29,57,85,7,35,63,91,12,40,68,96,18,46,74:kodszam:=kodszam+1;
2,30,58,86,13,41,69,97,19,47,75,24,52,80:kodszam:=kodszam+2;
3,31,59,87,8,36,64,92,14,42,70,98,25,53,81:kodszam:=kodszam+3;
4,32,60,88,10,38,66,94,21,49,77,27,55,83:kodszam:=kodszam+5;
5,33,61,89,11,39,67,95,16,44,72,22,50,78:kodszam:=kodszam+6;
9,37,65,93,15,43,71,99,20,48,76,26,54,82:kodszam:=kodszam+4;
end;
case datum.honap of
10:kodszam:=kodszam+0;
1,5:kodszam:=kodszam+1;
8:kodszam:=kodszam+2;
3,11:kodszam:=kodszam+3;
6,2:kodszam:=kodszam+4;
9,12:kodszam:=kodszam+5;
4,7:kodszam:=kodszam+6;
end;
case datum.nap of
1,8,15,22,29:kodszam:=kodszam+1;
2,9,16,23,30:kodszam:=kodszam+2;
3,10,17,24,31:kodszam:=kodszam+3;
4,11,18,25:kodszam:=kodszam+4;
5,12,19,26:kodszam:=kodszam+5;
6,13,20,27:kodszam:=kodszam+6;
7,14,21,28:kodszam:=kodszam+0;
end;
while kodszam>7 do kodszam:=kodszam-7;
case kodszam of
1:nap:='vasarnap';
2:nap:='hetfo';
3:nap:='kedd';
4:nap:='szerda';
5:nap:='csutortok';
6:nap:='pentek';
0:nap:='szombat';
end;
writeln;
write(datum.ev,'. ',datum.honap,'. ',datum.nap,'-ika ',nap);
end.
A matematikai részét ne kérdezzétek, mert nem tudom, nem én találtam ki a naptárat, csak megírtam rá a programot. Viszont 1582. október 15-étől működik, egészen 3499 december 31-éig. És jól! -
Lortech
addikt
válasz
Wizardmon #1469 üzenetére
Itt egy megoldás, feltételezve, hogy 1900. 01. 01. hétfő volt.
így 1900 utáni dátumokra működik elvileg helyesen, bár nem nagyon teszteltem.
Próbáltam átláthatóra, és egyszerűre csinálni. Ha van másnak jobb megoldása, jöhet. ( konkrét forráskód formájában)
Ha nem egyértelmű valahol, kérdezz.
program datum;
uses crt;
const
napok: array[0..6] of string[9] = ('hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat',
'vasárnap');
honapok: array[1..12] of byte=(31,28,31,30,31,30,31,31,30,31,30,31);
var
eltnapok:longint;
i,ev:word;
ho, nap:byte;
begin
eltnapok:=0;
{ - meghatározandó nap dátumának bekérése - }
write('Év:');
readln(ev);
write('Hó:');
readln(ho);
write('Nap:');
readln(nap);
for i:=1900 to ev-1 do
if (i mod 400 = 0) or ((i mod 4 =0) and (i mod 100<>0)) then eltnapok:=eltnapok+366
else eltnapok:=eltnapok+365;
for i:=1 to ho-1 do
if (i=2) and ((ev mod 400 = 0) or ((i mod 4 =0) and (i mod 100<>0)))
then eltnapok:=eltnapok+29 else eltnapok:=eltnapok+honapok[ i ];
eltnapok:=eltnapok+nap-1;
writeln(eltnapok,napok[eltnapok mod 7]);
readln;
end.
ps: term. nem foglalkoztam a hibás inputok kiszűrésével.
[Szerkesztve] -
Wizardmon
csendes tag
Azért kell ciklust használni hogy ki legyen küszöbölve az olyan eset, mint pl. ha valaki nem 1 és 12 közötti hónapot ad meg. Meg a számoláshoz is szükséges. Pl. én nagyon megdolgoztatom az amúgyse jól működő progit, mert 1584-től minden évszámot ellenőriztetek vele, hogy szökőév-e, meg úgy adok hozzá mindig 365-öt. Valami ilyesmi. Bocsi, de nemtom megfogalmazni jobban.
-
Wizardmon
csendes tag
Hát engem tök kikészít ez a naptáras dolog. Még mindig nem sikerült megoldani, pedig már csak napok választanak el a helyes megoldástól. Azt utálom amikor végteleníti magát a dolog aztán csak úgy tudok kilépni hogy veszik minden...hjajh....
-
Wizardmon
csendes tag
Megnéztem
1582 febr. 24
-
cucka
addikt
igen, a gondolatmenet jó, az okos programozó pedig mod-ot használ
Jester01 - a számolásnál választott nulla időpont valójában tetszőleges, a program viszont csak a gergely naptár bevezetése utáni dátumokra fog helyesen eredményt adni. igazából kevés olyan alkalmazást tudok elképzelni, ahol 1500 előtti dátumokra kell megmondani, milyen napra estek. ezt a problémát külön bonyolítja, hogy rengeteg országban jóval később vezették be a gergely naptárt (lásd oroszország, októberi forradalom, ami november 7-én volt)
-
Lortech
addikt
Én ugyan már belegondoltam jónéhány éve, talán jobban is mint te
, de akkor számoljuk a te algoritmusod szerint:
szökév: 2005/4=501 *366= 183366
nem szökőév: 2005-501=1504 *365= 548960
+ az évben 215 nap eddig
Az annyi mint : 732541
Elosztjuk héttel: 104648,71428571428571428571428571, a maradékot megszorozva héttel ötöt kapunk, azaz milyen nap is van ma?
Egyébként minden 100-zal osztható nap nem szökőév, hiába osztható 4-gyel, kivéve ha 400-zal is osztható. Meg ahogy írták a Gergely-naptár bevezetésekor átugrottunk néhány napot. Nem a megfelelő szót használtam, mert triviális ez, csak tudni kell a hátterét pontosan. Talán belátod, nem olyan egyszerű, hogy egy mondattal elintézzük. -
cucka
addikt
nyilván nem hallottál még a maradékos osztásról
. nekünk harmadik osztályban tanították. pascalban ezt úgy hívják, hogy mod. 17 és 7 osztási maradéka nem 0,428571, mint ahogy a példádban írtad, hanem 3.
az adott dátum óta eltelt napok számának kiszámolása pedig tényleg nem nehéz, cserébe hosszú, hibalehetőségeket rejt, és jelenleg az a cél, hogy ezt minél elegánsabban oldjuk meg (vagy nem?). -
Jester01
veterán
Ez azért nem ilyen egyszerű, minimum célszerű valami nem olyan régi dátumtól indulni, hiszen a naptárreform miatt eltűntek napok ...
-
N!tRo
tag
válasz
Lortech #1453 üzenetére
trivilás vagy nem triviális, azt se tudom mit jelent, na mind1
Figy, nem problémás egyáltalán. Csak gondolj bele.
Most van 2006. Eddig eltelt 2005 év.
2005 év alatt (2005 osztva 4-el 501,25) 501 szökőév volt! és akkor 2005-501=1504 nem szökőév.
Ezeket megszorzod szépen 366-al vagy 365-el.
Utána: most augusztus van. tehát 7 hónap biztos eltelt, kiszámolod hány nap (remélem ki tudod...), és hozzáadsz 3-at. Mivel 3.-a van.
Összeadod a kapott számokat és kész.
Ennek a megoldása annyira triviális mint a leírás többi része. -
cucka
addikt
nincs olyan, hogy nulladik év
nem véletlen, hogy a 21. század is 2001-ben kezdődött.
mod: egyébként meg nagyon bonyolultan írtad le az egész algoritmust. ha tudjuk, hogy a legelső év jan. 1.-e milyen napra esett, és tudjuk, hogy azóta eltelt x nap, akkor x mod 7-ből adódik, milyen napra esik a keresett dátum. (és ezért nem is igazán tudtam értelmezni azt a fél oldalas magyarázatot)
[Szerkesztve] -
N!tRo
tag
nagyon egyszerűen lehet egy öröknaptár programot csinálni!
a lényeg hogy pontosam számold ki hány nap telt krisztus születése óta (0.0.0)
vedd azt a számod, oszd el 7-el, vedd a maradékrészét, azt meg szorozd meg 7-el, és a kapott számtól függ hogy melyik nap.
pl.:
tegyük fel, a 0. évben vagyunk, január 6.-án!
eddig összesen 6 nap telt el, elosztom 7-el, ezt kapom: 0,8571..., ennek a maradékrésze a tizedesvesszőtől jobbra található, tehát 0,8571 megintcsak.
Ha ezt megszorzod 7-el, akkor 6-ot kapsz.
A 6-os meg a szombatot jelöli.
még egy példa!
tegyük fel, a 0. évben vagyunk még mindig, január 28.-án! ha belegondolsz, akkor ennek vasárnapnak kell lennie!
nézzük!
28 osztva 7-el, 4-et kapsz eredményül. Ennek a maradéka 0! tehát a 0 a vasárnapot fogja jelölni!
na ezek után, ha a szombat 6-os, a vasárnap 0-ás, akkor a többi így fog alakulni:
hétfő 1, kedd 2, szerda 3, csüt 4, péntek 5, szomb 7, vasárn 0.
ezek tudtában, nézzük egy harmadik példát!
0. év, január 17.
na most, ennek szerdának kell lennie! gondolj csak bele, ha hétfő volt elseje, akkor 7.-e vasárnap, 14.-e megint vasárnap, 17.-e meg szerda lesz!
nézzük:
17 / 7 = 2,428571.... vegyük a maradékrészét = 0,428571, megszorzom 7-el mennyit kapok? 3-at! az meg szerda!
na ennyi a lényege....
érthető voltam? -
-
Wizardmon
csendes tag
Huh, köszi, most megnyugodtam. Azt hittem csak én találom hülyén megoldottnak ezt a progit
Végülis a könyvhöz kapott cd-n volt rajt ez a megoldás.
Akkor még gondolkodok valami egyszerűbb megoldáson, ahelyett hogy ezt próbálom megérteni
Amugy nincs valami emberibb megoldás amivel ilyen progikat be lehet ide másolni, mert ezt úgy írtam ide -
cucka
addikt
válasz
Wizardmon #1447 üzenetére
na ez az első amit nem értek, miért -1re állítják?
gondolom azért, mert utána rögtön elindítja az évet beolvasó ciklust, és úgy gondolta, hogy így akkor is hibát fog dobni, ha nem írsz be semmit évnek. (rég volt pascal, de szerintem ez így fölösleges)
itt minek kell ennyi felhajtás ha az 'ev' csak 1 és 99 között lehet?
itt azért akkora felhajtás, mert aki írta a programot, az nem igazán gondolta át a problémát. valóban fölösleges.
egyébként meg ez egy nagyon kusza, bonyolult és csúnya megoldás szerintem -
Wizardmon
csendes tag
Megint megakadtam. Kaptam egy olyan feladatot,a miben öröknaptárt kell csinálni. Mivel nem sikerült összehozni, megnéztem a megoldást, de az is magas
Valaki el tudná magyarázni, hogy mi mire való benne? Így néz ki:
program oroknaptar;
var
ev,ho,nap : integer;
x,jelzoszam : integer;
nap_rendben,szokoev : boolean;
szokonap : integer;
const
napok : array [0..6] of string[10] = ('vasárnap','hétfő','kedd','szerda','csütörtök','péntek','szombat');
begin
writeln('Írjon be egy dátumot, megmondom milyen napra esik!');
ev := -1 na ez az első amit nem értek, miért -1re állítják?
while (ev<1) or (ev>99) do;
begin
write('ev [1901-1999] : 19');
readln(ev);
end;
szokoev := (ev mod 4 = 0) and (ev mod 100<>0) or (ev mod 400 =0);itt minek kell ennyi felhajtás ha az 'ev' csak 1 és 99 között lehet?
szokonap := ord(szokoev);
repeat
write('hónap: ');
readln(ho);
until (ho>= 1) and (ho<=12);
repeat
nap_rendben := true;
write('nap: ');
readln(nap);
if (nap<1) or (nap>31) then nap_rendben := false;
if (((ho=4) or (ho=6) or (ho=9) or (ho=11)) and (nap=31) or ((ho=2) and (nap>28+szokonap)) then
begin
writeln('Ebben a hónapban nincs ilyen nap.');
nap_rendben := false;
end;
until nap_rendben;
case ho of
1,10 : jelzoszam :=0;
5 : jelzoszam :=1;
8 : jelzoszam :=2;
2,3,11 : jelzoszam :=3;
6 : jelzoszam :=4;
9,12 : jelzoszam :=5;
4,7 : jelzoszam :=6;
end;
x := ev + ev div 4 + jelzoszam + nap;
if ((ho=1) or (ho=2)) and szokoev then x := x-1;
x := x mod 7;
writeln('Az adott nap: ',napok[x]);
end.
Meg ha van elég időtök,akkor az egészet is elmondhatjátok. Már majdnem egy hete töröm rajt a fejem -
Jester01
veterán
válasz
Wizardmon #1443 üzenetére
A variálható rekord az olyan mint Pom-pom: bámulatosan tudja változtatni az alakját.
Tulajdonképpen több rekord egyben, amihez van egy mező ami megmondja melyik típusú is valójában. Igazából csak azért jó, mert takarékoskodik a memóriával, mert az egymást kizáró részeket ugyanarra a memóriacímre teszi. (MOD: plusz a különböző adatokat fix méretben tárolja, a legnagyobbnak megfelelő helyen)
Vegyünk egy hülye példát: legyen egy ''alakzat'' rekord amiben szakaszok és körök adatait akarod tárolni.
type
AlakTipus = (kor, szakasz);
Alakzat = record
x, y: integer;
case tipus: AlakTipus of
kor: (sugar: integer);
szakasz: (x2, y2: integer);
end;
end;
Ez tulajdonképpen 2 rekord, szakasz esetén (x, y, x2, y2) kör esetén pedig (x, y, sugar) tagokkal. A sugar és az x2, y2 tagok átfedik egymást, egyszerre nem lehet őket használni. Azt, hogy melyik van érvényben a tipus mondja meg.
cucka-hoz hasonlóan én is régen pascaloztam
MOD: zárójelek
[Szerkesztve] -
cucka
addikt
válasz
Wizardmon #1443 üzenetére
variálható rekordról semmit. 6 éve nem programozok pascal-ban, az ilyen ritkán használt dolgokat elfelejtettem. egyébként ott a könyv, ott le kell legyen írva. (szerintem te is abból a computerbooks könyvből tanulsz, amiből annak idején én is. ha igen, akkor az jó, mert az egy nagyon szájbarágós, magyarázós könyv, szerintem abból meg lehet érteni ezeket a dolgokat).
[Szerkesztve] -
cucka
addikt
-
Wizardmon
csendes tag
Megint itt vagyok és újabb kérdések merültek fel.
Előszöris beletörődtem a rekord típusba, de utána jött a variálható rekord. Azt szeretném tudni, hogy mi annak a lényege. Sajnos nem látom át annyira, hogy pontosabban tudjam kérdezni.
Aztán a típus használata tömbök esetén. Ott van olyan hogy:
type
vektor = array [1..100] of real;
var
x : vektor;
Akkor itt most milyen értékeket vehet fel az ''x'' változó?
Előre is köszi a felvilágosítást. -
VladimirR
nagyúr
a kurzormozgato nyilak es hasonlok nem vezerlokarakterek
az ascii tabla elso 32 karakteret nevezik vezerlokarakternek, mint pl (a teljesseg igenye nelkul):
0 (00): NULL
7 (07): BEL (csengo)
8 (08): BS (backspace)
9 (09): TAB (tabulator)
10 (0A): LF (soremeles)
13 (0D): CR (kocsivissza)
27 (1B): ESC (escape)
a masik, amit belekevertel azok a billentyukodok, mint pl (a teljesseg igenye nelkul):
8 (08): backspace
9 (09): tabulator
13 (0D): enter
27 (1B): escape
32 (20): space
48 (30): 0, )
57 (39): 9, (
97 (61): a, A
122 (7A): z, Z
de vannak olyan billentyuk is, melyekhez ket elemu kod tartozik, mint pl (a teljesseg igenye nelkul):
0, 59 (0, 3B): F1
0, 68 (0, 44): F10
0, 133 (0, 85): F11
0, 134 (0, 86): F12
0, 75 (0, 4B): balra
0, 77 (0, 4D): jobbra
0, 72 (0, 48): fel
0, 80 (0, 50): le
0, 71 (0, 49): home
0, 79 (0, 4F): end
elobbiek (ascii kod) segitsegevel kiirni tudsz a kepernyore (illetve vezerlo karakterek nem jelennek meg, azoknak valami funkciojuk van, mint pl sort emel, sipol), utobbiak (billentyukodok) pedig a billentyuzetrol valo olvasasnal hasznalatosak
a ketelemu kodokat arrol lehet felismerni, hogy minden esetben 0-val kezdodnek es a 0-t mindig koveti valamilyen masik kod, maganban nem allhat
ilyen ketjegyu kodok tartoznak egyebkent a modositobillentyukkel egyutt leutott billentyukhoz is (pl.: 0, 104 (0, 68): alt + F1) -
Wizardmon
csendes tag
Elkezdtem előről olvasni a könyvet. Első ismereetlen dolog a vezérlőkarakter. Mint pl.: #13
Mit takar az, hogy vezérlőkarakter??? Mire való?
Tett ide valami példát, de nem tudom értelmezni. Így néz ki:
#7 csengő, #10 soremelés, #13 kocsivissza
' turbo Pascal '
' feladatok '
' ' ' '
' ; '
' '
#13 #10
' első sor ' #13 #10 ' második sor '
#7 #7 'csenget ' #7 #7
Ezek be vannak építve a turbo pascalba vagy csak találomra írt valamit a példában? Mint pl. hogy a #7 az a csengő. Az akkor csengeni fog, vagy kiírja hogy csengő, vagy mi? -
Wizardmon
csendes tag
Oké, igazatok van, hibás a program. Köszönöm mindenkinek hogy rávilágított a dologra
Átolvasom még egy párszor ezt a rész, aztán majd még jövök jelenteni
Hála nektek már valami rémlik
-
cucka
addikt
válasz
Wizardmon #1428 üzenetére
először is mindkét program hibás, elsőben hiányzik az end a rekord deklarációjának végéről, másodikban elgépelted a begin-t.
másodszor nincs sok értelme, hogy 5-ször beolvasd a nevet/címet, majd belerakd ugyanabba az egy változóba a beolvasott értéket, még példaprogramban sem.
harmadszor meg próbáld mégis elolvasni és megérteni azt, amit az általad említett könyvben ír a rekordokról, illetve amit itt a fórumon írtak neked. az itt kapott segítség nagyon szájbarágós, ezekből illene azért megérteni, miről is van szó.
[Szerkesztve] -
Drótszamár
őstag
válasz
Wizardmon #1428 üzenetére
Így első nekifutásra mind a kettő hibás
, ugyanis beolvasol 5x adatokat, de mindig ugyan abba a változóba, uh felülírod az előzőket.
Rekord esetén vegyél fel egy adatok = array[1..5] of adat tömböt, és mindig a tömb következő elemébe olvassál be.
Tehát readln(adat[x].akármi); , ahol az x a ciklusváltozó, az növekszik.
Az összetartozó adatokat legtöbbször rekordban érdemes tartani, mert ha szükség lesz csoportos adatezelésre, akkor könnyebb dolgod lesz.
pl vannak egy tömbben rekordok, és ezeket 2 másikba szét akarod válogatni.
tomb1 : array [1..sok] of rekord;
tomb2 : array[1..sok] of rekord;
tomb3 : array[1..sok] of rekord;
ilyenkor ha a tömb1-ből át akarsz másolni adatokat a tomb2-be akkor tomb2[x]:=tomb1[n];
És 1 művelettel 1 egész rekordot átmásoltál. Ha a rekord 10 elemből áll, akkor itt most 10 sor lett volna rekord nélkül. -
-
Wizardmon
csendes tag
Naszóval. Én most csináltam egy rekordos és egy rekord nélküli adatolást, ahol mind a 2 program ugyan azt tudja. A külömbség az, hogy a rekord nélküli rövidebb. Most akkor én nem használtam ki eléggé a rekord képességeit vagy csak erre való?
Itt a két program:
Rekordos:
program m;
uses crt;
var adat : record
nev : string;
cim : string;
kor : byte;
x : byte;
begin
clrscr;
x:=0;
repeat
x:=x+1;
write('Név: '); readln(adat.nev);
write(Cím: '); readln(adat.cim);
write(Kor: '); readln(adat.kor);
writeln;
until x=5;
end.
Rekord nélkül:
program m;
uses crt;
var nev,cim:string;
kor,x:byte;
gegin
clrscr;
x:=0;
repeat
x:=x+1;
write('Név: '); readln(nev);
write(Cím: '); readln(cim);
write(Kor: '); readln(kor);
writeln;
until x=5;
end.
[Szerkesztve] -
VladimirR
nagyúr
válasz
Wizardmon #1423 üzenetére
minden tipusu valtozo arra valo, hogy taroljuk az adatokat
viszont nem lehet mindent eltarolni ugyanabban a 3 valtozoban (egy integer., egy real, meg egy string) - azaz lehet, csak vert izzadsz, mire megvalositod
bonyolultabb feladatok megoldasahoz (teszemazt egy korhazi kartotekrendszer, ahol a beteg kulonfele adatait kell tarolni) szukseges a bonyolultabb adatszerkezet hasznalata (hogy a valos adatoknak megfeleloen mindent el tudjunk tarolni, kesobbi felhasznalas celjabol)
ilyenkor jon jol peldaul a rekord, ahol minden egyes rekord egy beteg adatait tarolja - minden adatat, mint ahogy a korhazi kartonodon is van (ott figyel rajta a nev, bekerules ideje, kortortenet, kezeloorvos neve, orvossagok, datumok, vercsoport)
es igen, ahogy haladsz a programozassal, ugy valik majd egyre bonyollultabba, a kezdeti egyszeru programokat, ahol szepen sorban kovetik egymast az utasitasok, majd felvaltja a strukturalt programozas, ahol fuggvenyeket, eljarasoikat hasznalsz, kesobb pedig esetleg az objektumorientalt programozas
en azt javaslom, picit lassits le, eloszor az alapokat ertsd meg, az egyszeru adattipusokat (egeszek, lebegonpontos szamok, string-ek, logikai valtozok, majd ha ezek mar mind mennek, akkor a tombok, rekordok, s legvegul a pointerek) -
Lortech
addikt
válasz
Wizardmon #1423 üzenetére
Minden típus arra való, hogy tároljuk az adatokat. A rekord típusnak bizony komoly létjogosultsága van, a fejlettebb nyelvekben még összetettebb, magasabb absztrakciójú típusok, adatszerkezetek lesznek meghatározóak (ojjektum
).
Képzelj el egy nyilvántartást, ahol személyek vannak, nyilvántartva, adataikkal. Egy-egy személyt jellemzi a neve, születési éve, címe és a többi. Megoldható, hogy létrehozol minden egyes adattagnak (mezőnek) egy-egy tömböt, és úgy tárolod ez az adatokat.
Pl van 100 személy, akkor lenne egy nev: array[1..100] of string[30] a nevek tárolására, egy hasonló tömb a címek tárolására, meg a többi adatnak is mindnek külön. Ezzel szemben rekordokkal megoldhatod úgyis, hogy létrehozol egyetlen egy rekord típust az összes adatnak egy-egy személyre. Azaz:
adatok = record
nev: string[30];
...
...
cim: string[40];
end;
és ebből az általad definiált összetett adattípusból létrehozol egy tömböt:
szemelyek: array[1..100] of adatok;
Tehát egy ''adatok'' nevű, _általad létrehozott rekord típusból álló 100 elemű tömb.
Mennyivel átláthatóbb és emberközelibb az utóbbi. (?) Számomra legalábbis az, és majd ha ezekkel az adatokkal műveleteket is akarsz végezni, pl kivenni egy személyt a listáról, akkor látni fogod, hogy programozni is sokkal egyszerűbb. Egyszerűen jobb, szebb megoldás.
[Szerkesztve] -
Lortech
addikt
válasz
Wizardmon #1419 üzenetére
A type kulcsszó saját változó típus létrehozására használható. A pascal beépített változó típusai pl integer, byte, real, array. Ezek felhasználásával lehet újakat alkotni. /Illetve csak bizonyos típusokat lehet felhasználni _valóban ''új''_ típus alkotásához. Egyébként csak átnevezés/
Ez tipikusan olyan fogalom, amit példán keresztül lehet megérteni annak, aki még nem találkozott ilyennel.
Tehát egy példa:
a:
type
tomb: array[1..10] of byte;
var
t: tomb;
ez egyenlő az alábbival:
b:
t: array[1..10] of byte;
Az ''a'' esetben saját típust hozol létre a type kulcsszó után, tomb lett az új típusod neve, és ez a típus egy 10 elemű byte-array. Ezután a VAR kulcsszóval bevezetett változó deklarációs részben már úgy hivatkozhatsz az általad létrehozott típusra, mintha az a pascal egy beépített típusa lenne, tehát egy változónévhez hozzárendelheted. A b változatban ugyanazt leírtam, csak type nélkül, a kettő végeredményben megegyezik. Pascalban és a hozzá hasonló procedurális nyelvekben még nem annyira hangsúlyos a saját típusok létrehozása, és a lehetőségek is eléggé korlátozottak, inkább az átláthatóság és szemléletesség miatt van létjogosultsága mint funkcionalitásban. Egyelőre szerintem elég ennyi, ha valóban szükséged lesz a használatára, akkor már tudni fogod vsz.
[Szerkesztve] -
VladimirR
nagyúr
válasz
Wizardmon #1419 üzenetére
ezzel definialsz uj adattipust, a mar meglevokbol
mint irtad, lehet felsorolt, tomb, rekord, de lehet barmilyen adattipus
tegyuk fel, hogy neked olyan adattipusra van szukseged, amiben egyutt tudod tarolni valakinek az adatait, mint pl nev, cim, szuletesi datum, suly, magassag
ehhez a legjobb, ha csinalsz egy rekord-ot es minden szemely adatait egy kulon rekordban tarolod
type adatlap=record
nev : string[80];
cim : string[80];
szul_dat : string[8];
szuly : real;
magassag : byte;
end;
ezzel csak az adattipust hoztad letre, a valtozot meg nem, azt itt is meg kell tenni, pl.:
var user1, user2 : adatlap;
vagy lehet az adatlapokat tomb-ben tarolni:
var users : array[1..100] of adatlap;
elobbi esetben egyszeruen user1.nev, user2.cim formaval hivatkozol a rekord elemeire, utobbiban pedig users[1].nev, users[2].cim formaban
de ettol egyszerubb pelda, hogy a fentebb hasznalt 80 karakter hosszu szoveg tarolasara alkalmas tipust hozunk letre:
type s80 = string[80];
amit aztan igy tudsz hasznalni:
var s : s80; -
Wizardmon
csendes tag
Na jó, most már tényleg ki vagyok akadva. Annyira fel tud idegesíteni, hogy nem tudom megérteni a dolgokat... Pedig próbálom. Most pl megnéztem ezt a type dolgot. Hát szerintem fél oldalból nem lehet megtanítani egy kezdő programozónak hogy mire való. Vagy csak én vagyok ennyire hülye a dologhoz? Meg miért nem tud egy épkézláb példát felmutatni. Fa**nak kell lerövidíteni a dolgokat. Miért írja ki csak a deklarációs részt, ha azt se tudom, hogyan kell használni a programban, hogy felfoja, hogy mit akarok tőle.
Ekkora pénzkidobást....
Én vagyok a hülye hogy megvettem ezt a könyvet látatlanba. Mentségemre szóljon, hogy ha láttam volna se tudtam volna megítélni normálisan egy 600 oldalas könyv tartalmát. Ahhoz jobban bele kell olvasni. Na mindegy, nem untatlak titeket ilyesmikkel... -
Wizardmon
csendes tag
Heló mindenkinek
Vettem pascalos könyvet, amiből megtanulhatom a nyelvet, de nekem olyan összevisszának tűnik, hogy már szinte értelmetlen. Így elkezdtem valami rendszert csinálni a könyvből, ami abból áll, hogy kijegyzetelem sorba a dolgokat és talán így könnyebb lesz megérteni. Amugy a könyv címe: Programozzunk turbo pascal nyelven. Én úgy vettem észre, hogy úgy akarja megértetni a dolgokat, hogy először elmondja nagy nalakban, amikor még fogalmad sincs az egészről, aztán kicsit részletesebben kifejti, aztán pár fejezettel később meg még rak hozzá dolgokat, amiket már előtte jobb lett volna tudni. De nem csak ezt a hibát láttam benne. Van mellette még helyesírási hiba, ami engem furcsamód zavar, ha tanulni akarok valamit, meg olyan példákat használ, ami már maga előre utal pár fejezettel, szóval olyan sorok is vannak benne, amiről még nem is hallottam... De nem akarom lehúzni a könyvet, lehet hogy csak nekem magas. Ez szerény véleményem róla.
Amugy ha szabad hozzászólnom, akkor én inkább úgy csinálnám, hogy elmondok egy kis részt az elméletből, aztán példával szemléltetem, aztán elmagyarázom a példát, hogy mi mire való, aztán megyek tovább. De lehet hogy így hosszú lenne a könyv. -
N!tRo
tag
Vicces hogy csak annyit szeretett volna a srác hogy egy két dolgot elmondjunk neki.
-
ViragL
tag
Éredekes kérdés, hogy mennyi elméleti tudást érdemes felhalmozni, mielőtt az ember elkezd egy konkrét nyelvet megtanulni, hiszen elméleti háttér nélkül elég nehéz elkezdeni programozni, de tény, hogy a felesleges ismeretek felhalmozásásnak sincs értelme. (Talán a felesleges ismereteket felhalmozni mégiscsak jobb, mint szenvedni hiányuk miatt. Szerintem) Kettőnk között az a nagy külömbség, hogy máshol húzzuk meg a határt, hogy mi felesleges és mi nem.
Lehet egyébbként, hogy az álláspont amit képviselek b*romság, ha azt nézem, hogya programozás könyvek mind úgy kezdődnek, hogy írd meg a ''hello world''-öt, aztán majd elmagyarázzák neked, hogy mit is csináltál. Majd elgondolkodom rajta.
Érdekes, hogy te ennyire rossznak találod a linkelt jegyzetet, te vagy az első akitől azt hallom, hogy használhatatlan. Bár nem hiszem, hogy most akarnál megtanulni programozni, de ha mégis, szerintem a hozzáállásoddal van a bajj. Ha eleve úgy álsz hozzá, hogy ez egy sz*r jegyzet, nyilván csak a hibáit foggod látni, mert eleve azokat keresed és nem tanulni akarsz belőle.
''...azt se fogja tudni, hogy kezdjen neki.'' Erre azt mondom, hogy megtanulja mi a ciklus fogalmát, felfogaja mire való, látja a felmerülő problémákat. Aztán, mikor előveszi a nyelvhez tartozó könyvet akkor már csak az implementációs kérdésekkel kell foglalkoznia. Már tudja mi a ciklus, csak azt kell megtanulnia, hogy konkrétan, hogyan néz ki (szintaktikailag és szemantikailag) az adott nyelvben.
Megjegyezném, hogy én nem ajánlottam senkinek, hogy az általam linkelt jegyzetből tanuljon programozni, csak azt mondtam, hogy ha ajánlanom kellene egyet, akkor talán azt javasolnám.
[Szerkesztve] -
cucka
addikt
önmagával az idézett szöveggel semmi kifogásom nincs, korrekt. a probléma vele az, hogy szerintem a legelső pascal-os hello world program előtt semmi értelme ennyire részletesen kitérni olyan dolgokra, amelyek úgyis csak valódi programozási gyakorlatok során nyernek értelmet, ha értelmet nyernek egyáltalán (aki megmarad a pascal vagy c szerű nyelveknél, az mikor fog prefix formájú kifejezéseket írni?).
minden bizonnyal van olyan ember, aki képes ebből a könyvből megtanulni programozni. sajnos én nem tartozom közéjük. ha például egy könyv elmondja, mi az az előltesztelős ciklus, akkor utána következzen egy konkrét példa valamilyen nyelvben, amit be lehet gépelni, ki lehet próbálni, módosítgatni lehet, azzal együtt, hogy a könyv nyelvektől függetlenül tárgyalja a programozást. az általam említett 4. fejezetet végigolvastam. szerintem ha valaki nulla programozói tudással elolvassa és utána odatesszük, hogy írjon egy egyszerű példát ciklusra, akkor azt se fogja tudni, hogy kezdjen neki.
[Szerkesztve] -
ViragL
tag
Értem már, mire gondoltál a párhuzammal, előbb simán félreértettem. Tény, hogy programozóként gondolkodni, vagyis megtanulni ezt a gondolkodásmódot a legnehezebb.
Nem állítottam, hogy a operátorok precendenciája egy nagyon bonyolult dolog, csak felsoroltam ott néhány dolgot, amit, vélaményem szerint érdemes szakirodalombol tanulni, mivel forráskódbol nem a leg célravezetőbb.
Ha az vagy, akinek mondod magad, akkor nem értem mi a kifogásod az idézett szöveggel szemben. Ha kihagyom a mondatból az általad kifogásolt infix szót, akkor már nem fedi a valóságot, hiszen operátor precedencia csak az infix alakot használó nyelvekben létezik, mivel a prefix (és a postfix) alak egyértelmű. (a teljesség igénye nélkül: Minden programnyelvnek megvan a saját szabványa, amit hivatkozási nyelvnek hívunk.
Ebben pontosan definiálva vannak a szintaktikai és a szemantikai szabályok.)
Csak belenézel a jegyzetbe, és nem láttál benne példát, azt mondom ok, de honnan tudod, hogyí oda kéne egyártalán? Csak azért kérdezem, mert még senkinek sem panaszkodott. Olvasd végig a jegyzetet, akkor beszélhetünk róla, hogy hova kellene bele példa, és hogy milyen nyelven legyen az a példa. Mert ugye ez egy átfogó jegyzet a kezdéshez, nem kötődik konkrétan egyik prog. nyelvhez sem. Ezt azelőtt érdemes átnézni mielőtt elkezd valaki programozást tanulni, és nem arra való, hogy ebből tanulj meg egy konkrét nyelvet. (szerintem ismétlem magam...) -
cucka
addikt
azért vontam párhuzamot a programozás és az idegen nyelv oktatása közé, mert mindkettőnél nagyon fontos a készség szintű elsajátítás. aki jól beszél egy nyelvet, az tud ''azon a nyelven gondolkodni'', pont úgy, ahogy a programozó is ''programozóként gondolkozik''. hasonlóan a matematikához, ahol először az elemi aritmetikát sajátítja el mindenki, mert anélkül a természetes számhalmaz axiómái üres definíciók lennének.
az általad linkelt jegyzetbe csak belenéztem, viszont mondjuk a negyedik, ''utasítások'' c. fejezetnél egy sor példakódot sem láttam.
Az infix alaku kifejezéseket használó nyelvek, hivatkozási nyelv szinten rögzítik a műveletek elvégzési sorrendjét az egyértelműség miatt. Teszik ezt úgy, hogy az operátorokhoz precedenciát rendelnek, a nagyobb precedenciájú művelet az erősebb, tehát először elvégzendő.
amikor 13 évesen elkezdtem a programozást, akkor is volt erről szó. tanár felírta a műveletek precedenciájának sorrendjét, elmondta, hogy mire jó, hozzá tudtuk kötni az ismeretet az elemi matematikához és felírt egy példát, hogy jobban megértsük. ennyi elég volt, azóta sem volt gondom ezzel. ennek fényében belekeverni azt, hogy infix vagy prefix típusú nyelvről van szó, szerintem túlzás. mire eljut oda az ember, hogy teszem azt, lisp-ben programozzon, már rég nem ezekből a definíciókból fog élni. a hivatkozási nyelv pedig nem tudom, mi lehet, de van egy olyan rosszmájú sejtésem, hogy egy teljesen triviális fogalom szép elnevezéssel.
végül pedig szerintem nem sértettél meg itt senkit, a korrekt vita/megjegyzések pedig mindenkinek hasznosak.
[Szerkesztve] -
ViragL
tag
Először is köszönöm VladimiR -nek, hogy nem modta ki, azt amit én is tudok, azt hogy a hozzászólásom, amivel elkezdődott ez a vita köztünk az bunkó beszólás volt.
Kiborítottak, konkrétan felajánlottam a segítségem valakinek, és mikor átlépte az 5kérdés/perc arányt a kérdéseivel az sok volt. Mire moderáltattam volna, akkorra kicsúszott a kezemből a dolog, így viselnem kell a következményeket, és igyekszem legjobb belátásom szerint eljárni.
Tehát ezúton kérek őszintén bocsánatot mindenkitől, akit megbántottam.
Nem jellemző rám, hogy kiborulnék, első alaklaom volt. Segítő széndékkal jöttem ide, nem lehúzni akartam a topikot, csak elszakadt a cérna, bárkivel előfordulhat.
Megjegyezném még, hogy kiröhögni, lenézni nem szoktam senkit csak azért mert hiányos a tudása, enyém is az, pedig 10 éve programozok.
A precizitáshoz való ragaszkodásom, nos igen, tőlem elvárják, megszoktam, és már én is elvárom mindenkitől. Ez talán hiba, de inkább szakmai ártalom.
[Szerkesztve] -
ViragL
tag
Nem feltétlenü tartom helyesnek, hogy egy idegen nyelv és egy programozási nyelv közé ilyen szoros párhuzamot vonsz. (Eleve idegen nyelvet úgy tanul az ember, hogy már ismer egy másikat. Programozási nyelvet pedig úgy kezd el tanulni, hogy még nem ismer egyet sem már ez sokkülömbséget felvet.) De azzal, egyetértek, hogy gyakorlat nélkül nehézkes a tanulás, nagyon hasznos, ha tanulás közben megnéz az ember néhány példát, sőt lehetőség szerint minél többet.
A programozás tanulás és egy programozási nyel elsajátítása között külömbséget kell tennünk. Az általam linkelt jegyzet, pl egy remek módszertan, lehetővé teszi, hogy tanulmányozása után bármely eljárás orientált nyelvet gyorsan, hatékonyan meg tudja tanulni az érdeklődő. Megtanít a nélkülözhetetlen alapfogalmakra, ad egy rálátást a nyelvi eszközökre. (Még senkitöl, aki tanult belőle, nem hallottam, hogy nincs/vagy kevés a példa benne.)
Nem véletlen ragaszkodok ehez a módszerhez, a DE-IK-on talán a programozás oktatásának szinvonala a legjobb, sokan tanulunk olyan p.nyelvet, amit soha nem tanított nekünk senki, de van egy remek módszertanunk és biztos elméleti hátterünk, így nem okoz komolyabb gondot egyik nyelv sem (legalábbis eddig).
MOD: Azért nem alapjában képzeljük másként a p. tanulást, csak nem értünk egyet mindenben.
[Szerkesztve] -
ViragL
tag
válasz
VladimirR #1401 üzenetére
1. Igazad van, van az volt a kérdés mögött, nem akartam kimondani, úgy voltam vele, mindenki gondolja át, maga döntse el. Nem szokásom kiröhögni/lenézni senkit, biztos vagyok benne, hogy tudod miaz, legfeljebb nem ezen a néven ismered, nem dobálózni akartam, csak azt hittem ezt mindenki ezen a néven ismeri. (A teljesség igénye nélkül: Az infix alaku kifejezéseket használó nyelvek, hivatkozási nyelv szinten rögzítik a műveletek elvégzési sorrendjét az egyértelműség miatt. Teszik ezt úgy, hogy az operátorokhoz precedenciát rendelnek, a nagyobb precedenciájú művelet az erősebb, tehát először elvégzendő.)
3. Nem téged akartalak megvilágosítani, hanem azt próbáltam megvilágítani, hogy mire is gondoltam. (Olvass vissza lényszives, hogy ne legyen belőle félreértés, thx.)
Valóban ragaszkodom az általam emlegetett módszerhez, nagyon bevált.
Tiszteletet parancsoló cselekedet, hogy az általad felsorolt dolgokat szinte tisztán kódbol, peldákon keresztül tanultad meg. Azért én mégis állítom, hogy ''szakirodalom aztán példa'' módszerrel hatékonyabb lett volna a tanulás. -
Wizardmon
csendes tag
Változtattam avatart
Talán ilyen még nincs senkinek
[Szerkesztve] -
PazsitZ
addikt
válasz
gnonesz #1403 üzenetére
Hidd el a pascalon belül nincsenek olasfajta változások! Ha nem működik az valószinűleg nem a fordító hibája. Hogy a fordító melyik verzióját töltöd le okozhat hibát de vagy régi ver. esetén vagy nem megfelelő op.renszerre való fordító esetén is.
Szerintem.
[Szerkesztve] -
gnonesz
csendes tag
mondjuk azon is működne. Csak a Freepascalal volt már egy-pár gondom. Mondjuk az
az eredeti TP régi verziója az jó. A FreePascal meg nemtom miért nálam nem müködött. -
cucka
addikt
hosszú lesz
alapvetően máshogy képzeljük el a programozás tanítását. szerintem programozást tanítani olyan, mint mondjuk egy idegen nyelvet. igaz ugyan, hogy a legkorrektebb módszer az lenne, ha előbb megtanítanánk az összes nyelvtani szabályt, majd utána a szavakat, amelyekre ezek a nyelvtani szabályok alkalmazhatók, de fordítva sokkal hatékonyabb. aki a nyelvtan mellett mondjuk sokat néz pl. angol nyelvű tv csatornákat, arra -bizonyos nyelvérzéket feltételezve- akarva-akaratlanul ráragad az a nyelv. szerintem ez a módszer sokkal helyesebb és célravezetőbb, mert így készség szinten sajátítja el az illető azt a nyelvet, érezni fogja, ha egy mondat helyes-e nyelvtanilag vagy sem, hogyan kell kifejezni egy gondolatot és hogyan nem.
a valami hasonló a helyzet a programozással. az általad linkelt jegyzetben korrekt definíciók vannak, viszont didaktikai szempontból nem ér semmit. hiába tanulja meg valaki a könyvben szereplő definíciókat, ha egyetlen példakód sem segíti azok megértését, az egész a levegőben fog lógni. véleményem szerint a programozás tanításánál is a készség szintű elsajátítás lenne a cél, amikor nem azért érted, hogy mi egy ciklus, mert a definícióban írták, hanem mert egyszerűen érted, érzed. pusztán az elméleti háttér semmit nem ér, egyszerű definícióhalmaz, amit nem lehet megérteni, csak megtanulni, mint a verset. elvileg teljesen korrekt dolog így tanítani programozást, gyakorlatilag értelmetlen. természetesen nem az elméleti háttér szükségességét kérdőjelezem meg, viszont ilyen esetben az elmélet megértéséhez gyakorlati tapasztalat kell. a természetes/valós számhalmazok axiómái sem lennének érthetőek anélkül, hogy az ember előtte nem tanult volna meg számolni.
[Szerkesztve] -
VladimirR
nagyúr
1: igaz, valoban kerdes volt - mindemellett mondd, hogy nem az volt mogotte, hogy ''hat nana hogy persze hogy dehogynem'' - mellesleg ki fogsz rohogni/le fogsz nezni, de igy, nev alapjan halvany sejtesem sincs, hogy az operatoroknak mije az a precedencia es mire jo - azon kivul, hogy jolhangzo kifejezes, amivel lehet dobalozni
2: igen - kozvetlen utana irtam azt is, hogy dehogy tanulok, csak kinezem, ami eppen kell
3: nc utani reszt nem is igazan olvastam el, onnan kezdve nem igazan lattam ertelmet a vitanak
ami a megvilagosodasomat illeti, koszonom megvagyok segitseg nelkul is - pl azt is tisztan latom, hogy neked van egy (nem feltetlen teljesen helytelen) elkepzelesed a programozas oktatasarol/tanulasarol es ehhez minden aron ragaszkodni akarsz
lehet meg fogsdz lepodni, ha most azt mondom neked, hogy az operator overloading-ot (szinten jol hangzo kifejezes, amivel lehet dobalozni), az oo-t, az adatbaziskezelest szinte tisztan kodbol, peldakon keresztul tanultam meg (legalabbis hasznalni - aztan ahhoz, hogy a hianyzo lukakat betomjem, mar kellett olvasgatnom is)
az igazi problemam leginkabb az, hogy lehuztad szinte az egesz forumot - egy reszet azert, mert kerdez (es nem egy teljesen kezdo kerdezget itt), masreszt valahol azokat is, akik segitik oket
en pl orulok, ha segiteni tudok valakin, akinek az ismeretei hianyosabbak meg az enyeimnel is - nem azert, mert varok erte valamit, nem azert, mert ettol erzem magam okosabbank, egyszeruen jol esik, hogy segithettem
jonehany topic-ot mar otthagytam, ezt nem szeretnem, ez valamiert kedves nekem - ha nem tetszik, hogy itt teljesen kezdok is kerdezgetnek, azt javaslom menj valami pascal experts forumra, ott egesz biztos nem fogsz ilyen esetbe belefutni (hozzateszem, van, hogy nekem sincs kedvem valaszolgatni, ilyenkor egyszeruen elsiklok a kerdesek felett - vagy be sem nezek a topic-ba)
szek.: off
[Szerkesztve]
Új hozzászólás Aktív témák
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Hagyományos és extrém roller, kickbike, Boardy topik
- Xiaomi 14T Pro - teljes a család?
- Szombathely és környéke adok-veszek-beszélgetek
- Óra topik
- Kínai és egyéb olcsó órák topikja
- BestBuy topik
- Borderlands 4
- Mazda topik
- Elektromos cigaretta 🔞
- 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!
- Bomba ár! Lenovo ThinkPad L460 - i5-6GEN I 8GB I 256GB SSD I 14" FHD I Cam I W10 I Garancia!
- Xbox Game Pass Ultimate előfizetések kedvező áron
- Önerő nélkül is elvihető! Részletfizetés. 27 % Áfás számlával Dell Alienware QD-OLED gamer monitor
- BESZÁMÍTÁS! Apple MacBook Air 13 M4 2025 16GB 512GB SSD macbook garanciával hibátlan működéssel
- Bezámítás! Gigabyte G5 KC Gamer notebook - i5 10500H 16GB DDR4 512GB SSD RTX 3060 6GB WIN10
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest