Kovács Dávid ( Davs )
2005. május 7. 14:36
Szerintetek melyik módszer a "legjobb" a tanulásra? Valaki a könyvekre, online tanfolyamokra esküszik, és valaki arra esküszik, hogy minden nélkül a kódot olvasgasd...
Mi a véleményetek?
arpsoft
2005. május 7. 17:07
Programot írni nagyon egyszerű. A problémát egyre kisebb részekre kell bontani, míg olyan kicsi részekhez nem érünk, hogy azt már megérti a gép.
A lényeg a felbontásban van. És ehhez lehet neked akármilyen tanfolyamod, vizsgabizonyítványod vagy tankönyved, nem fog menni, ha nem tudsz logikusan gondolkodni. Szerintem egyébként jó szakkönyvek nélkül (papír könyvekre gondolok) nehéz boldogulni.
Sokan azt hiszik, programozni egyszerű, mert földobálom a formra a vezérlőket, megírok egy-két eseményt, aztán kész. Nem mondom, ez a program működhet, de nem biztos, hogy hatékony is lesz, mert nincsen megtervezve.
A helyes folyamat: problémaelemzés->tervezés->kódolás->tesztelés
Ebből az első kettő a lényeg. Ha az nincs rendben, akkor vagy nem lesz hatékony a progi, vagy bugos lesz.
Van egy könyv egyébként, amiből programtervezést lehet tanulni. A címe is ez.
A Kiskapu kiadónál jelent meg. Ezen kívül tudom javasolni még az "Algoritmusok" című könyvet, bár az erős halmazelméleti tudást követel.
A webes cuccokhoz inkább online irodalmat javaslok, mert azok jobban követik a szabványok változását, illetve az újdonságok hamarabb megtalálhatók bennük, de a papír irodalom itt is elengedhetetlen (én pl a PHP4 fejlesztők kézikönyvét forgatom elég gyakran, bár 'csak' egy nyelvi referencia 'csupán'.)
Adatbázisokhoz meg SQL 89, esetleg SQL 92 (ezt még nem támogatják a motorok teljes egészében) az alap tudás, ezt szerintem csak hosszú gyakorlással lehet elsajátítani, mert meg kell tanulni SQL-ül gondolkodni, hogy igazán jó lekérdezéseket tudjál írni.
Kovács Dávid ( Davs )
2005. május 7. 19:51
Az említett SQL-ek hasonlítanak a MySQLl-re?
Ja, és :
off: Melyek a nagyobb on-line könyvtárak?
on: Van-e olyan on-line könyvtár, ahol ilyen webes, programozási könyvek vannak fent?
arpsoft
2005. május 7. 20:27
Könyvtárat nem tudok, igazából online oktató anyagokat lehet találni (ilyen how to szerűeket). A google segít, meg a tzoli.

A fenti sql-ek maguk a szabványok, mivel az sql egy szabványos lekérdező nyelv. Egy magára valamit adó adatbázismotor (például mysql, postgres sql, stb) megérti az így formázott lekérdezéseket. De erről is rengeteg anyag van a weben. (Igaz, javarészt ékes angol nyelven, de hát a számtech már csak ilyen.)
google
2005. május 7. 23:05
IDÉZET(arpsoft @ 2005. May 07., Sat 21:27)
A google segít...
A nagybetűs inkább.
A kisbetűs még tanulja. B)
George
2005. május 8. 21:21
Hogy hogyan tanuljunk? Szerintem könyv és gép kombinációval: begépeljük az egyszerűbb programkódot és utána kielemezzük magunknak, hogy mi mit is csinál tulajdonképpen.
Kovács Dávid ( Davs )
2005. május 9. 17:17
Hát, könyv híján. Mert konkrétan most Pythont akarnék tanulni...
Kiskiváncsi
2005. május 10. 19:48
Ajánlom figyelmedbe, hogy próbálj meg a számítógéped eszével goldolkodni. Valamint azt írd a programba, amit a géped elvár.
Komolyabban. Véleményem szerint kezdetekhez kell a könyv, mert valahogy el kell indulni. Később már inkább a más programmegoldásokban lehet körülnézni, hogy Ők hogy oldottak meg 1-1 témát. Ugyanis több melodás és megközelítés is lehetséges az esetek jelentős részében. Nem árt azért a saját meoldások keresése sem. Jó szórakozást!
marcee5
2005. június 25. 23:36
Én úgy vagyok vele hogy magamtól tanultam meg programozni Delphiben, 2005-ben. Nézegettem egy-két alap forráskódot, meg irogattam, aztán valami összejött. Azért szeretnék egy delphis könyvet, hogy erre ráépítsek és hogy egyszerűbben tudjam leírni a programomat, mert elég bonyolultan tudom kijavítani a bugokat.
PL.: (na ezt ha kibogarászod!)

KÓD
procedure TWin2kAppForm.Button7Click(Sender: TObject);
begin
if (listbox1.Items.Strings[listbox1.ItemIndex]='') then
begin
messagebox(error, 'Nincs elem kijelölve!', 'HIBA',MB_OK);
end
else
begin
progressbar1.Position:=progressbar1.position - 1;
deletefile(listbox1.Items.Strings[listbox1.Itemindex] + '.ikv');
listbox1.DeleteSelected;
end;
if listbox1.Items.Text='' then
begin
end
else
begin
listbox1.ItemIndex:=0;
end;
end;
procedure TWin2kAppForm.Button8Click(Sender: TObject);
begin
begin
with OpenDialog do
begin
FileName := FFileName;
if Execute then
listbox1.Items.LoadFromFile(FileName);
FFileName := FileName;
end;
end;
end;
procedure TWin2kAppForm.Button9Click(Sender: TObject);
begin
printdialog1.Execute;
richedit1.Print('KöVet árlista nyomtatás');
end;
procedure TWin2kAppForm.Ment(Sender: TObject; var Action: TCloseAction);
begin
listbox1.Items.SaveToFile('items.kva');
reg:=Tregistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
if reg.KeyExists('Software\MeeSoft.\Kölcségvetés-készítő\progressbar') then
begin
reg.OpenKey('Software\MeeSoft.\Kölcségvetés-készítő\progressbar', true);
reg.WriteInteger('progressbar1', progressbar1.Position);
reg.CloseKey;
end
else
begin
reg.CreateKey('Software\MeeSoft.\Kölcségvetés-készítő\progressbar');
reg.OpenKey('Software\MeeSoft.\Kölcségvetés-készítő\progressbar', true);
reg.WriteInteger('progressbar1', progressbar1.Position);
reg.CloseKey;
reg.Free;
end;
end;
procedure TWin2kAppForm.Betolt(Sender: TObject);
begin
if fileExists('items.kva') then
begin
listbox1.Items.LoadFromFile('items.kva');
end
else
begin
listbox1.Items.SaveToFile('items.kva');
end;
reg:=Tregistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
if reg.KeyExists('Software\MeeSoft.\Kölcségvetés-készítő\progressbar') then
begin
reg.OpenKey('Software\MeeSoft.\Kölcségvetés-készítő\progressbar', true);
progressbar1.Position:=reg.ReadInteger('progressbar1');
reg.CloseKey;
end
else
begin
reg.CreateKey('Software\MeeSoft.\Kölcségvetés-készítő\progressbar');
reg.OpenKey('Software\MeeSoft.\Kölcségvetés-készítő\progressbar', true);
reg.WriteInteger('progressbar1', 0);
progressbar1.Position:=reg.ReadInteger('progressbar1');
reg.CloseKey;
reg.Free;
end;
end;
procedure TWin2kAppForm.Button10Click(Sender: TObject);
begin
form1.button3.Visible:=FALSE;
form1.button1.Visible:=TRUE;
form1.Label7.Caption:='Elem szerkesztése';
form1.Listbox1.Items.LoadFromFile(listbox1.Items.Strings[listbox1.itemindex] + '.ikv');
form1.Edit6.Text:=form1.listbox1.Items.Strings[0];
form1.combobox2.Text:=form1.listbox1.Items.Strings[0];
form1.edit2.Text:=form1.listbox1.Items.Strings[1];
form1.edit3.Text:=form1.listbox1.Items.Strings[2];
form1.edit4.Text:=form1.listbox1.Items.Strings[3];
form1.edit5.Text:=form1.listbox1.Items.Strings[4];
if (form1.listbox1.Items.Strings[5]=('0')) then
begin
form1.combobox1.ItemIndex:=0;
end;
if form1.listbox1.Items.Strings[5]='1' then
begin
form1.combobox1.ItemIndex:=1;
end;
if form1.listbox1.Items.Strings[5]='2' then
begin
form1.combobox1.ItemIndex:=2;
end;
if form1.listbox1.Items.Strings[5]='3' then
begin
form1.combobox1.ItemIndex:=3;
end;
if form1.listbox1.Items.Strings[5]='4' then
begin
form1.combobox1.ItemIndex:=4;
end;
form1.ShowModal;
end;
procedure TWin2kAppForm.ListBox1Click(Sender: TObject);
begin
if listbox1.Selected[listbox1.ItemIndex] then
begin
form1.Listbox1.Items.LoadFromFile(listbox1.Items.Strings[listbox1.itemindex] + '.ikv');
edit8.Text:=form1.listbox1.Items.Strings[0];
edit9.Text:=form1.listbox1.Items.Strings[1];
edit10.Text:=form1.listbox1.Items.Strings[2];
edit11.Text:=form1.listbox1.Items.Strings[3];
edit12.Text:=form1.listbox1.Items.Strings[4];
if (form1.listbox1.Items.Strings[5]=('0')) then
begin
edit13.Text:=('<nincs>')
end;
if form1.listbox1.Items.Strings[5]='1' then
begin
edit13.Text:=('db')
end;
if form1.listbox1.Items.Strings[5]='2' then
begin
edit13.Text:=('m')
end;
if form1.listbox1.Items.Strings[5]='3' then
begin
edit13.Text:=('fm')
end;
if form1.listbox1.Items.Strings[5]='4' then
begin
edit13.Text:=('kg')
end;
if form1.listbox1.Items.Strings[5]='4' then
begin
edit13.Text:=('l')
end;
end;
end;
procedure TWin2kAppForm.Button11Click(Sender: TObject);
begin
if (listbox1.Itemindex=progressbar1.Position - 1) then
begin
listbox2.Items.LoadFromFile(listbox1.Items.Strings[progressbar3.position] + '.ikv');
listbox3.Items.Add(Listbox2.items.Strings[1] + '*(1' + listbox2.Items.Strings[2] + '/100)*' + listbox2.Items.Strings[4]);
if checkbox1.Checked then
begin
if checkbox1.Checked then
begin
edit14.Text:=(listbox3.Items.Strings[progressbar2.Position] + edit15.text);
end
else
begin
edit14.Text:=(listbox3.Items.Strings[progressbar2.Position] + '+' + edit15.text);
end;
end
else
begin
if checkbox1.Checked then
begin
edit15.Text:=(edit15.text + listbox3.Items.Strings[progressbar2.Position]);
end
else
edit15.Text:=(edit15.text + '+' + listbox3.Items.Strings[progressbar2.Position]);
end;
if checkbox1.Checked then
begin
checkbox1.Checked:=FALSE;
end
else
begin
checkbox1.Checked:=TRUE;
end;
end
else
begin
listbox2.Items.LoadFromFile(listbox1.Items.Strings[progressbar3.position] + '.ikv');
listbox3.Items.Add(Listbox2.items.Strings[1] + '*(1' + listbox2.Items.Strings[2] + '/100)*' + listbox2.Items.Strings[4]);
if checkbox1.Checked then
begin
if checkbox1.Checked then
begin
edit14.Text:=(listbox3.Items.Strings[progressbar2.Position] + edit15.text);
end
else
begin
edit14.Text:=(listbox3.Items.Strings[progressbar2.Position] + '+' + edit15.text);
end;
end
else
begin
if checkbox1.Checked then
begin
edit15.Text:=(edit15.text + listbox3.Items.Strings[progressbar2.Position]);
end
else
edit15.Text:=(edit15.text + '+' + listbox3.Items.Strings[progressbar2.Position]);
end;
if checkbox1.Checked then
begin
checkbox1.Checked:=FALSE;
end
else
begin
checkbox1.Checked:=TRUE;
end;
progressbar2.Position:=progressbar2.position + 1;
if progressbar3.Position=progressbar1.Position -1 then
begin
end
else
begin
progressbar3.Position:=progressbar3.Position + 1;
button11.Click;
end;
end;
end;
procedure TWin2kAppForm.Button12Click(Sender: TObject);
begin
checkbox1.Checked:=TRUE;
progressbar2.Position:=0;
progressbar3.Position:=0;
listbox3.Clear;
listbox2.Clear;
richedit2.Clear;
listbox1.ItemIndex:=0;
button11.Click;
end;
procedure TWin2kAppForm.Button14Click(Sender: TObject);
begin
frm_math_Solver.ShowModal;
end;
procedure TWin2kAppForm.Timer1Timer(Sender: TObject);
begin
timer1.Interval;
if
listbox1.Items.Text='' then
begin
button7.Enabled:=False;
button10.Enabled:=false;
button13.Enabled:=false;
end
else
begin
button7.Enabled:=true;
button10.Enabled:=true;
button13.Enabled:=true;
end;
end;
procedure TWin2kAppForm.Button15Click(Sender: TObject);
begin
remain.MainForm.ShowModal;
end;
procedure TWin2kAppForm.Button16Click(Sender: TObject);
begin
frm_math_solver.edit_input.Text:=richedit2.Text;
frm_math_solver.but_compute.Click;
edit14.text:=frm_math_solver.edit_output.Text;
end;
procedure TWin2kAppForm.Button17Click(Sender: TObject);
begin
if listbox1.Selected[progressbar1.Position] then
begin
end
else
begin
deletefile(listbox1.Items.Strings[progressbar2.Position] + '.ikv');
progressbar2.Position:=progressbar2.position + 1;
progressbar1.Position:=progressbar1.Position - 1;
end;
end;
procedure TWin2kAppForm.Button18Click(Sender: TObject);
begin
progressbar2.Position:=0;
listbox1.Clear;
end;
procedure TWin2kAppForm.Button13Click(Sender: TObject);
begin
edit14.Clear;
edit15.Clear;
checkbox1.Checked:=TRUE;
button12.Click;
frm_math_solver.edit_input.Text:=edit14.text;
frm_math_solver.but_compute.Click;
richedit1.Lines.Add(frm_math_solver.edit_output.text)
end;
procedure TWin2kAppForm.Action1Execute(Sender: TObject);
begin
form2.ShowModal;
end;
end.
Itt a listbox volt a legnagyobb gondom! IDEGTÉPŐ!! Ha nem jelölök ki vlmit, akkor hibát jelez. Ha beállítom hogy
procedure TWin2kAppForm.Timer1Timer(Sender: TObject);
begin
timer1.Interval;
if
listbox1.Items.Text='' then
begin
button7.Enabled:=False;
button10.Enabled:=false;
button13.Enabled:=false;
end
else
begin
button7.Enabled:=true;
button10.Enabled:=true;
button13.Enabled:=true;
end;
end;
Ne kérdezzétek, mi miért van! Így jött össze! De az csak ez egyik formnak egyik része.
Azért timerrel csináltam, mert így 10 ezredmásodpercenként ellenőrzi. Csakhogy ha írok bele valamit, akkor már nem '' a szövege. És bukott az egész. (Erre ment rá két napom, hogy megcsináljam). Végülis úgy oldottam meg, hogy mindig ki legyen jelölve az egyik.
A gondom csak az, hogy ugyanezt a forráskódot szeretném egyszerűbben leírni. Ezért szeretnék csak könyvet. Csak hogy egy picit még gyűjtenem kell hozzá.
arpsoft
2005. június 26. 13:31
Elég átláthatatlan, látszik, hogy nincs megtervezve, csak kódolás van, eszetlenül.
Mit szeretnél egyáltalán csinálni?
Calyd
2005. szeptember 21. 10:09
Milyen topikok vannak...

(Bár amilyen rég volt ebben hozzásszólás, úgyse olvassa majd senki sem az enyémet

)
@marcee5:
Ahogy arpsoft is írta, a kód teljesen rendezetlen, átláthatatlan. Ajánlatos tördeléseket használni, bizonyos dolgokat beljebb kezdeni. Én például el szoktam különíteni az eljárások/függvények begin-end-jét a bennük használt többitől. Megjegyzések használata is ajánlott (szerintem minden programnyelvben).
Általánosságban a témához: én egyelőre csak az egyetemen tanulok programozni, és egyelőre csak Turbo Pascalt (infotanár szak egyébként

). De már ilyen kevés programozási ismeret után is látom, hogy a helyes gondolkodásmód kialakítása milyen fontos volt nálunk. Voltak akik úgy jöttek ide, hogy "tudnak programozni". De azt sem tudják mit miért csinálnak. Ha pedig összetettebb dolgok elé kerülnek, akkor csak valami összevisszaság lesz az egészből. Nekünk meg egy csomó alaptételt tanítottak -- alapfeladatok általánosított algoritmusait --, amik nagyon könnyen átalakíthatók a feladatnak megfelelően.
Azt szokták mondani, hogy programozni nem papíron kell. Ez tény, de azért nem árt egy vázlat, specifikáció. Sőt! Egy tényleg jó specifikáció és abból algoritmus elkészítése melós, de utána fél pillanat a kód megírása, és szinte bizonyos, hogy nem lesz bugos a program.
Amit én személy szerint tudok tanácsolni a programozni kezdőknek, hogy az algoritmusokat kövessék végig valami nagyon egyszerű példán, mert utána már érti az ember a lényegét, és egy általános algoritmust később könnyen fel tud használni egy specifikusabb feladatban. Én például még az első félévben a rendezésekkel vesződtem egy picit. Aztán fogtam egy számsort pl 2, 6, 4, 3, 1, 5 és ezt a különböző rendezésekkel rendbetettem.

Könyvek olvasása is hasznos lehet, mert magyarázatok vannak benne, és az mindig jó.

Na, kb. ennyi
atzs
2005. szeptember 22. 7:48
Nagyon hasznos szerintem a Dr. Hetényi Pálné (ed) (1987): Számítástechnika középfokon – Országos Műszaki Információs Központ és Könyvtár, Budapest Ehhez tartozik két feladatgyűjtemény is.
Szerettem a Dr. Brücknekr Huba - Lukács Ottó: A folyamatábráktól a programozásig (Tankönyvkiadó, Budapest, 1987) könyvet is. Az az egy baja van, hogy C64-re és BASIC-re készült,
Ahogy Arpsoft írta, a fontos a gondolkodásmód elsajátítása. Bár nem is ez a helyes kifejezés. Gyakorolni kell, amíg rá nem érzel a dolgokra. Ebben segít pl. a fenti két könyv.
Ha ez már megvan, és profinak érzed magad (ennek alapfeltétele, hogy gondolkodás nélkül ki tudd cserélni két változó értékét úgy, hogy közben egyik sem veszik el - ezt a feladatot szoktam a hallgatók tesztelésére használni

), akkor vedd elő Knuth: A számítógépprogramozás művészete című könyvét. Annak is mondjuk a 3. kötetét. Több száz oldal, és csak a rendezőalgoritmusokról szól. Na ott lehet egy kicsit beleérezni, mi is az a zongorázható különbség.
(Nem véletlenül becézik a Knuth könyveket programozóbibliának...)
Kovács Dávid ( Davs )
2005. szeptember 22. 15:24
IDÉZET(atzs @ 2005. szeptember 22., 8:48 - csütörtök)
(ennek alapfeltétele, hogy gondolkodás nélkül ki tudd cserélni két változó értékét úgy, hogy közben egyik sem veszik el
x=6
z=7
x, z = x, z

Ezzel kicserélem (talán) Pythonban

U.i.: Tesztelve, működik
Spányik Balázs
2005. szeptember 24. 11:50
Ez komoly? Ilyen szintaktikával?

IDÉZET(atzs @ 2005. szeptember 22., 8:48 - csütörtök)
Ha ez már megvan, és profinak érzed magad (ennek alapfeltétele, hogy gondolkodás nélkül ki tudd cserélni két változó értékét úgy, hogy közben egyik sem veszik el - ezt a feladatot szoktam a hallgatók tesztelésére használni

),
atzs, kérdeztem már, hogy hol tanítasz?

Másik kérdés: szabad hozzá harmadik változót használni vagy (számok esetén) a nélkül?

(Persze, tudom, rossz kérdés, az utóbbi inkább matematikai gondolkodás, mint programozói.)
Kovács Dávid ( Davs )
2005. szeptember 24. 12:40
IDÉZET(Spányik Balázs @ 2005. szeptember 24., 12:50 - szombat)
Ez komoly? Ilyen szintaktikával?
Igen

Pythonban nem kell ; a parancsok végére

kipróbáltam, és a kódom jól lefutott
Spányik Balázs
2005. szeptember 24. 12:48
Nem is a pontosvesszővel van a bajom, hanem ezzel:
KÓD
x, z = x, z
Ez milyen szintaktika már? Túl öreg vagyok már ehhez? Kifordított lengyel logika?
Kovács Dávid ( Davs )
2005. szeptember 24. 12:52
x, z = x, z
Ez egyenlő ezzel:
x=z
z=x, vagy mi. Az első, az x, az utolsó értékét vesz fel, tehát a z-ét. A második, a z, pedig az egyenlőség utáni változó értékét veszi fel. A Pythonban sok dolog egyszerűbb, mint máshol.
Spányik Balázs
2005. szeptember 24. 13:03
Megyek, keresek egy oktatóoldalt hozzá. Ezt a nyelvet meg kell ismernem!
eremit
2005. szeptember 24. 14:13
IDÉZET(atzs @ 2005. szeptember 22., 8:48 - csütörtök)
Ha ... profinak érzed magad (ennek alapfeltétele, hogy gondolkodás nélkül ki tudd cserélni két változó értékét úgy, hogy közben egyik sem veszik el - ezt a feladatot szoktam a hallgatók tesztelésére használni

)
Aki ezt meg tudja csinálni, az lehet, hogy olyan messze van még a profi programírástól, mint Makó Kamcsatkától. Ez a változó érték csere-bere már egy heti, programozás-tanulás után is pofonegyszerű feladat.
Persze, úgy is lehet értelmezni az idézetet, mint pl. egy űrrepülőgép vezetésének alapfeltétele, hogy valaki tudjon biciklizni.
Spányik Balázs
2005. szeptember 24. 14:34
Abban a szerencsés helyzetben vagyok, hogy mindezt élőben figyelhetem: több mint egy hónapja járok egy webmester tanfolyásra, amiről azt hittem, PHP/SQL lesz, de kiderült, hogy HTML-től kezdve a CSS-en és a JavaScripten át jutunk el a PHP-ig, hogy azok is eljöhessenek a tanfolyamra, akik még nem tudnak programozni.
Már 2 hete JavaScriptezünk -- értsd: bevezetés a programozásba --, heti két alkalom, alkalmanként 5 óra; és a kezdők réges rég elvesztették a fonalat. Szerencsére mindenkinek volt legalább valami kis alapja, amivel idejött, de a feladatokat mindössze hárman-négyen tudjuk megoldani (12-en vagyunk a csoportban). A legszembetűnőbb jele annak, hogy a csoport nagy részének köze nincs a dologhoz, amikor egy feladat megoldásaként egy 8-10 soros program felkerül a táblára, a tanár félórán keresztül magyarázza, megkérdezi, hogy oké-e, majd jön a következő feladat, melynek megoldása egy sorban tér el az előzőtől, és azt is csak mi tudjuk megoldani.
Szóval, ha kedden bemennék, és feltenném ezt a kérdést, hogy tessék, két változó tartalmának cseréje, szerintem pont akkora hallgatás volna, mint amikor azt kérdezi a tanár, hogy "Mindenki érti?" Nem érteni ugyanis nyilván ciki.
Az tény, hogy ez még nem jelent profi programozást. De ha ezt kapásból vágod, pláne anélkül, hogy valaha is megmutatták volna, az azt jelenti, hogy már tudsz úgy gondolkodni.
Kovács Gyula (MiniDisc)
2005. szeptember 24. 14:50
Balázs: olvastam/om a blogodat - MSN - tanulságos.
Érdekes ez a javascript dolog, meg az egész programozás. Én úgy vagyok vele, hogy elkezdeni (java, php) nehezebb mint egy meglévőt tetszés szerint módosítani, bővíteni.
A html, és a css az más. Az már alkotás. Felépítesz valami, összerakod elemről elemre, míg a váz kész nem lesz. A css meg a szépítés, szinezés, kinézet alakítás. Ez művészet.
Amikor az ember weboldalt programoz, akkor kicsit kell egyfajta minimális térbeli képzelőerő, egy kicsi művészi hajlam, hogy igazán szép oldalakat csinálj. Előre kell látni azt, amit meg akarsz alkotni. A php, és a javascript, és a többi programnyelv szerintem az már más. Ott nincs igazán látható végeredmény, csak "csinál valamit" az adott program. Nem igazán tudnám megfogalmazni, hogy milyen, de ahhoz tényleg "csak" tudni kell az alkalmazható szabályokat. Azt hiszem, a javascripttel, és a php-vel kapcsolatban nekem is sok kérdésem lennen a tanárhoz. Holott érdekel a dolog.
Spányik Balázs
2005. szeptember 24. 17:30
Ez nem teljesen van így MD. Nagyon gyakran éppen a JavaScript vagy a PHP kód dönti el, hogy mi jelenjen meg a weboldalon! A programon keresztül "beleszólhatsz" a designba és a tartalomba egyaránt!
google
2005. szeptember 24. 17:42
Kitárulnak a lehetőségek, és szerintem épp' az a szép benne, hogy abszolút kontrollod van afölött, hogy mi jelenjen meg az oldalon. Ráadásul mindez jóval kevesebb munkával.
Kovács Gyula (MiniDisc)
2005. szeptember 24. 18:04
Hát nem tudom. A javascript, meg a php mit ér a html nélkül? Ezek inkább kiegészítők, szó szerint egy motort adnak pl. a weboldal alá. (Tényleg, a php a webprogramozáson kívűl alkalmazható máshol is?

)
Spányik Balázs
2005. szeptember 24. 18:19
Félreérted: semmit nem érnek a HTML nélkül! A PHP és a JavaScript HTML-kódot írnak a weboldalba. Mondok egy pofonegyszerű példát: nézd meg ezt az oldalt, a fórumot. Ha megnézed a forrását, ez egy HTML oldal. És ezt egy PHP program, a fórummotor állítja elő. Például ott felül a harmadik sorban, neked nem az van kiírva, hogy Üdvözlünk Spányik Balázs, hanem az, hogy Üdvözlünk MiniDisc, és nincsenek ott a neved mellett az admin eszközök, az enyém mellett meg ott vannak.
Ugyanaz a PHP program fut mindkettőnknél (pontosabban a webszerveren), mégis más HTML oldalt látsz te, és látok én.
Kovács Gyula (MiniDisc)
2005. szeptember 24. 18:25
Na jó, igen, a php vezérli az egészet! De ehhez már SQL adatbázis is tartozik! Ebből olvassa ki a php motor a bejelentkező adatok alapján, hogy mit kell látnia a felhasználónak. Na, itt kezdődik a "csoda", ennek az egészét leprogramozni. Egyénileg egy egyszerű dolog, na de ezt átlátni ekkora adatmennyiségre vonatkoztatva ... Erre értettem azt, hogy ezt nem lehet "grafikusan" megoldani, ehhez már tudás kell. Ez az, mitől én még fényévnyire vagyok. Ezt szívesen megtanulnám, na de ezt hogyan lehet megtanulni, ha nem "látom" az eredményét?

Ehhez (php) képest a javascript gyerekjáték.

Egyetlen próbálkozásom a "design" oldalam includeolása, de bármennyire is nézem a php kódját, akkor sem értem, mitől működik.
Spányik Balázs
2005. szeptember 24. 18:29
Ez ott kezdődik, hogy írsz egy JavaScript kódot, ami bekér egy nevet, és ha Gézát írnak be, akkor kék színnel írja ki a nevét, ha Julit, akkor rózsaszínnel. Ha ez megvan, és látod, hogy a program hogyan változtatja meg a weboldal forrását annak megfelelően, hogy milyen nevet írtak be, akkor jó vonaton ülsz, és a következő megálló a PHP és az SQL!
Kovács Gyula (MiniDisc)
2005. szeptember 24. 18:35
Oké rendben. Én is úgy gondoltam, hogy a javascripttel kell(ene) kezdenem, csak gondolkodtam, hogy ezt hogyan lehet elkezdeni? Tehát - topic címe -

hogyan tanuljam meg a javascript használatát? Mivel érdemes kezdeni? Ezzel az átszinezős dologgal? Vagy valami ilyesmivel? Vagy pl. Próbáljak meg önállóan egy menüt csinálni, és azt variálni? (A Xara által gyártott menüt pl. már manuálisan módosítottam, bővítettem, nem a Xaraból)
Valahogy a html-t, meg a css-t sokkal egyszerübb volt megtanulni ...
google
2005. szeptember 24. 21:01
Én azt tanácsolom, ne a Javascripttel kezd. Ott mindenféle böngészőbeli eltérések adódhatnak (persze komolyabb szinten), töltsd le az Easyphp-t, és kezdj el php-t írni. Szerintem nem csak egyszerűbb, de ez az, amelyiket html generálásra szokták használni és ez kommunikál az SQL-lel is.
A szintaktikája persze nagyon hasonlít a Javascriptéhez, de abba a sok zárójel és objektum-tulajdonság (pl. document.form.input stb. stb.) miatt alaposan bele lehet bonyolódni, amire nem feltétlenül van szükség a programozás tanulásakor.
Kovács Gyula (MiniDisc)
2005. szeptember 24. 21:05
Okés, így teszek. Már töltöm is le az 1.8-as verzióját.
Kovács Dávid ( Davs )
2005. szeptember 25. 7:49
@MiniDisc
Én sem tanultam JavaScriptet, nem is értek hozzá, de már alkalmazom a php/mysql párost

ami nekem segített, az a Kataporta.net, majd vettem egy nagyon jó könyvet a Computerbooks-tól: László József : Dinamikus weboldalak, CGI Programozás Windows és Linux rendszereken. Ebben van még CGI programozás C-ben, Perl-ben, meg Pascal-ban is

Azokat el sem olvastam, azután 150 oldal a mysql-lel és a PHP-val.4500 Ft volt, szerintem megérte. De mindenekelőtt Kataporta.net

Az ottani leírás a PHP 24 óra alatt c. könyv alapján készült. Ja, és Trf blogját hol lehet meglesni?
arpsoft
2005. szeptember 25. 10:24
MD:
Nem bonyolult a dolog. Én úgy közelíteném meg a dolgot, hogy Te most olyan oldalakat készítesz, ami szép, meg művészi, meg meg van álmodva. A kódja viszont sttikus, mindig ugyan az.
Most fogsz kapni egy olyan eszközt, amivel ezt a kódot "kinyomtathatod" egy böngésző ablakra, ráadásul úgy, hog menet közben belenyúlhatsz a kódba.
Ha akarod kihagysz dolgokat, vagy éppen beleraksz.
Ha elkezdesz PHP-t kódolni, észre fogo venni, hogy a PHP kódból egy betü nem sok, annyi sem lesz benne a megjelenő oldalban. Amit látsz, azt a PHP szkript generálta - nyomtatta - ki.
Továbbra is komplett oldalakat fogsz álmodni, elképzelni és kiadni a felhasználóknak, de sokkal több lehetőséged lesz, mint a statikus kódokkal.
Az álmodás / tervezés menete azonban változni fog. Fel kell osztanod magadban külön életetélő részekre az oldalakat. Ez az, ami nekem még nem igazán megy, ezért nem is mutatkoztam még be igazi oldallal. De ami késik, az nem múlik.
google
2005. szeptember 25. 13:02
MD: Hamarosan elvileg bemutathatom a szakdolgozatomat, ami egy adatbázissal támogatott oldal. Szívesen elmondom majd, hogyan működik.
Kovács Dávid ( Davs )
2005. szeptember 25. 13:28
Hurrá! Már várom! A honlapodra lesz? Nem szeretnék lemaradni róla!
Kovács Gyula (MiniDisc)
2005. szeptember 25. 15:48
Rendben, köszönö mindenkinek. (Arpsoft, Davs, Google)
atzs
2005. szeptember 26. 12:13
IDÉZET(google @ 2005. szeptember 24., 22:01 - szombat)
Én azt tanácsolom, ne a Javascripttel kezd. Ott mindenféle böngészőbeli eltérések adódhatnak (persze komolyabb szinten), töltsd le az Easyphp-t, és kezdj el php-t írni.
Az egyik kliens oldali, a másik szerver oldali... Nem ugyanarra való... Csak akkor cserélhető fel a sorrend, ha a cél "csak" a programozás tanulás, az élvezet kedvéért.
@Spányik Balázs:
Egyetértek azzal, amit mondtál. Attól hogy valaki tíz másodperc alatt rájön, hogy egy segédváltozóval meg lehet csinálni, nem azt jelenti, hogy profi programozó, csak azt, hogy már van esélye azzá válni. Amíg erre nem érez rá valaki, nem tud igazán tovább lépni, esélye sincs egy komolyabb algoritmus megírására vagy akár megértésére.
Egyébként a SZIE ÁOTK-n tanítok matekot és informatikát. Programozást még anno az egyetemen korrepetáltam, meg ha betéved hozzám néha valaki.
google
2005. szeptember 26. 12:16
IDÉZET(atzs @ 2005. szeptember 26., 13:13 - hétfő)
Az egyik kliens oldali, a másik szerver oldali... Nem ugyanarra való... Csak akkor cserélhető fel a sorrend, ha a cél "csak" a programozás tanulás, az élvezet kedvéért.
Nem azt mondtam?
atzs
2005. szeptember 26. 12:48
Igen, de olyanok is olvassák, akik még zöldek az egészhez, és nekik szerintem nem volt egyértelmű.
csutomi
2005. október 12. 19:19
IDÉZET(Spányik Balázs @ 2005. szeptember 24., 14:03 - szombat)
Megyek, keresek egy oktatóoldalt hozzá. Ezt a nyelvet meg kell ismernem!

Van még ilyen nyelv. Ha ismerkedi akarsz velük, próbáld ki a Perl-t is, ott a változók kicserélése így néz ki:
KÓD
($a, $b) = ($b, $a);
Sőt mondok jobbat: Be akarsz szúrni egy új elemet egy tömbbe:
KÓD
@a = (@a, "Mégegy elem");
Erre varjál gombot!
Kovács Dávid ( Davs )
2005. október 13. 15:22
$tomb[]=$uj_valtozo ;
Ez van PHP-ben

Pythonban még nem jutottam odáig.
atzs
2005. október 14. 10:26
Kénytelen leszek új feladatot keresni...
A kérdésnek eredetileg az volt a lényege, hogy a kedves újoncok ráéreztek-e már egy kicsit a problémamegoldásra. Viszont ha egyetlen értékadással megoldható, akkor az már nem probléma...
Spányik Balázs
2005. október 14. 13:44
Ötlet: 20-as szorzótábla megjelenítése a képernyőn. Mondjuk ez már nem tartozik az egyszerű feladatok közé, de ha valaki -- kezdőként, nyilván -- meg tudja csinálni, az már mutat valamit.
eremit
2005. október 14. 13:48
Mondjak egy feladatot? n különböző elem összes lehetséges permutációit kiírni! Persze csak akkor, ha az n nem nagy szám! Maximum négy, öt legfeljebb hat! Változó elemekkel.
(Aki nem tudná, pl. n=3-ra: abc, acb, bac, bca, cab, cba.)
arpsoft
2005. október 14. 15:01
Egészítsük ki: ismétlődés nélküli permutációit
eremit
2005. október 14. 15:18
@arpsoft
Nem kell kiegészítés, mert írtam, hogy különböző elemek. A permutáció problémájánál pedig nincs kiválasztás, minden elem (itt) csak egyszer számít. Ha u.n. variáció lenne, akkor már meg kellett volna említenem.
arpsoft
2005. október 14. 15:22
eremit
2005. október 14. 15:25
De a probléma programos megvalósítása izgalmas!
arpsoft
2005. október 14. 15:27
Egyszerű rekurzió.
eremit
2005. október 14. 15:28
Persze! Kezdőknek azonban jó kis feladat!
Kovács Dávid ( Davs )
2005. október 14. 15:44
IDÉZET(Spányik Balázs @ 2005. október 14., 14:44 - péntek)
Ötlet: 20-as szorzótábla megjelenítése a képernyőn. Mondjuk ez már nem tartozik az egyszerű feladatok közé, de ha valaki -- kezdőként, nyilván -- meg tudja csinálni, az már mutat valamit.
Kérésed számomra parancs
A .cpp forrásfile :
.cppAz exe :
.exe 
Meg tudnám csinálni PHP-ban, meg talán Pythonban is. Csak egy egyszerű for ciklus
Viszont van eremit feladata: Mi az a permutáció ?
Ez a tartalom egy lebutítottváltozata. A teljes változat képekkel kiegészült megtekintéséhez kérünk,
kattints ide.