Jakým programovacím jazykem začít ?
Moderátor: Mods_senior
Re: Jakým programovacím jazykem začít ?
faraon> můžeš prosím napsat jaký kompilátor chápe ten zápis co jsi napsal jinak než jedno statické pole (int pole[10]) a t5i proměnné (int a,b,c;) ? Nechce se mi věřit že by zápis pole[10]=12345; přiřadil číselnou hodnotu něčemu jinému než poli.
Fakt je,že s těmi poli je docela peklo. Builder C++ pokud nezavolám o jednu vyšší tak to přiřazení číselný hodnoty nechce chápat (možná bude něco v nastavení kompilátoru.nejsem cečkař a s C++ Builder se seznamuju ),ale pokud pole nadefinuju takto int pole1[]={10,20,30}; ,funguje to správně.
Jinak k tomu Lazarusu : za poslední dobu se hodně zlepšil.
Fakt je,že s těmi poli je docela peklo. Builder C++ pokud nezavolám o jednu vyšší tak to přiřazení číselný hodnoty nechce chápat (možná bude něco v nastavení kompilátoru.nejsem cečkař a s C++ Builder se seznamuju ),ale pokud pole nadefinuju takto int pole1[]={10,20,30}; ,funguje to správně.
Jinak k tomu Lazarusu : za poslední dobu se hodně zlepšil.
Re: Jakým programovacím jazykem začít ?
Jde o to jak kompilátor adresuje paměť. Při určitém nastavení bude platit, že se alokuje 10*sizeof(int) pro pole a přímo za tím a, b, c. a jelikož pole[10] bude ukazovat na první položku za polem, bude ukazovat na a.
Já osobně bych Pascal nedoporučoval nikomu, pokud to není nezbytně nutné. Ten jazyk je... meh.
Já osobně bych Pascal nedoporučoval nikomu, pokud to není nezbytně nutné. Ten jazyk je... meh.
Re: Jakým programovacím jazykem začít ?
Aha,tak to je potom jasný.Díky za vysvětlení.
V Pascalu se to stát nemůže.Kompilátor to nepřeloží.
Výše zmiňovaný zápis by vypadal v Pascalu takto:
To,čím začít je záležitost tazatele.Každýmu líp vyhovuje něco jinýho.Se znalostí jednoho jazyka nenaprogramuje všechno.
V Pascalu se to stát nemůže.Kompilátor to nepřeloží.
Výše zmiňovaný zápis by vypadal v Pascalu takto:
Kód: Vybrat vše
var
pole:array[0..9] of integer;
a,b,c:integer;- satik
- Level 6

- Příspěvky: 3509
- Registrován: 09 led 2015 12:49
- Bydliště: Krkonoše
- Kontaktovat uživatele:
Re: Jakým programovacím jazykem začít ?
Že pole[10] přistupuje tady na a se dá celkem čekat, všechny ty proměnný i to pole se vytvořej na stacku za sebou, takže vyplňujou souvislej kus paměti.faraon píše:C je skvělý jazyk, ale velmi primitivní. Má jen deset příkazů a všechno, úplně všechno, si v něm člověk musí udělat a ohlídat sám. Jenže začátečník nemá tušení co všechno to má být a hlavně kdy to musí udělat, a sesype se mu to na hlavu. C jako první jazyk rozhodně ne, jako druhý pro ty schopné už možná, po pár rocích studia. Na rozdíl od Pascalu tam není problém udělat tohle:Právě jsem zapsal číslo 12345 do proměnné a! Nebo také ne a je někde úplně jinde, záleží na kompilátoru.Kód: Vybrat vše
int pole[10], a, b, c; pole[10]=12345;
Pokud daný jazyk nehlídá rozsahy polí, tak se to stát může - výhoda je, že při intenzivních operacích s ukládáním do polí je to rychlejší, nevýhoda nižší bezpečnost :)
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Jakým programovacím jazykem začít ?
Sender: Všechny kompilátory to chápou přesně tak jak píšeš, jenže C nekontroluje samo o sobě vůbec nic, takže do pole[10] s rozsahem indexů [0] až [9] můžeš klidně zapisovat do buňky 10, 11, 12, 13... A v tu chvíli si přepíšeš návratovou adresu na zásobníku, kde je to pole i následující proměnné umístěné, protože jsou lokální! Což je mimochodem nejčastější bezpečnostní díra nejen ve Windows. Nekontrolování mezí polí tam kde se to musí.
Ale je to také důvod, jak píše satik, že je to rychlejší. Céčko umožňuje nekontrolovat to co není zrovna potřeba, a je na programátorovi aby věděl co se zkontrolovat musí a kde jinde to zase zbytečně zpomaluje. Napadlo tě někdy že musíš VŽDY kontrolovat návratovou hodnotu funkce scanf()?
V Pascalu se takováhle blbost udělat nedá, ten si všechno hlídá při překladu i za běhu, takže ať budeš pole indexovat konstantou nebo proměnnou, tak se ten program při sáhnutí mimo pole prostě ukončí a ještě zařve co se stalo, na rozdíl od C, kde ten program běží dál jakobysenechumelilo a rozsévá digitální zkázu na všechny strany... Proto je Pascal bezpečnější, ale také pomalejší. Kontroluje všechno co se dá, i to co vůbec nemusí.
Pascal je Mercedes s koženými sedačkami, klimatizací, airbagy, ABS a spoustou kontrolek, C je parní lokomotiva. Máš tam jednu páku, jednu kliku, jeden ventil, a jednu lopatu na uhlí, nic víc! Jen vítr co ti fouká kolem uší a cuchá vlasy
Ale je to také důvod, jak píše satik, že je to rychlejší. Céčko umožňuje nekontrolovat to co není zrovna potřeba, a je na programátorovi aby věděl co se zkontrolovat musí a kde jinde to zase zbytečně zpomaluje. Napadlo tě někdy že musíš VŽDY kontrolovat návratovou hodnotu funkce scanf()?
V Pascalu se takováhle blbost udělat nedá, ten si všechno hlídá při překladu i za běhu, takže ať budeš pole indexovat konstantou nebo proměnnou, tak se ten program při sáhnutí mimo pole prostě ukončí a ještě zařve co se stalo, na rozdíl od C, kde ten program běží dál jakobysenechumelilo a rozsévá digitální zkázu na všechny strany... Proto je Pascal bezpečnější, ale také pomalejší. Kontroluje všechno co se dá, i to co vůbec nemusí.
Pascal je Mercedes s koženými sedačkami, klimatizací, airbagy, ABS a spoustou kontrolek, C je parní lokomotiva. Máš tam jednu páku, jednu kliku, jeden ventil, a jednu lopatu na uhlí, nic víc! Jen vítr co ti fouká kolem uší a cuchá vlasy
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Jakým programovacím jazykem začít ?
faraon> OK.Je to tak jak píšeš.Po příspěvku co psal Eldan jsem si s tím hrál a odzkoušel.Mám v tom jasno.Nejsem cečkař ,ale budu ho možná potřebovat pro programování MCU.V současnu si i pro MCU vystačím s Pascalem (PMP Micro Pascal).Pro desktop aplikace (os Windows,Linux) mi Pascal nabízí možnosti,který jsou vysoce nad rámec mých potřeb(mám komerční vývojové prostředí).
Pascal vs C : Je zajímavý,že Dev CPP a DevPascal vytváří se stejným funkčním kódem stejně velký exe soubor.Testoval jsem to dříve na některý starší verzi (DevCPP 4 a něco ,DevPascal 1.9.2).DevCPP se stále vyvíjí,kdežto DevPascal je mrtvý.
V některém vlákně před několika dny jsem u jednoho tazatele narazil na aplikaci napsanou v Javě.Opravdu výborná práce.Jen se mi u toho na první pohled nezamlouvalo milión souborů kolem (je to asi na zvyku).
Pascal vs C : Je zajímavý,že Dev CPP a DevPascal vytváří se stejným funkčním kódem stejně velký exe soubor.Testoval jsem to dříve na některý starší verzi (DevCPP 4 a něco ,DevPascal 1.9.2).DevCPP se stále vyvíjí,kdežto DevPascal je mrtvý.
V některém vlákně před několika dny jsem u jednoho tazatele narazil na aplikaci napsanou v Javě.Opravdu výborná práce.Jen se mi u toho na první pohled nezamlouvalo milión souborů kolem (je to asi na zvyku).
- satik
- Level 6

- Příspěvky: 3509
- Registrován: 09 led 2015 12:49
- Bydliště: Krkonoše
- Kontaktovat uživatele:
Re: Jakým programovacím jazykem začít ?
Ještě se vrátím aspoň k tomuhle - že je to od MS a běží primárně na MS Win neznamená, že to není multiplatformní, MS si už před nějakou dobou uvědomil, že nemůže spoléhat jen na svůj OS.faraon píše:Teda, nechtěj abych o tobě ztratil dobré mínění, první věta na Wikipediisatik píše:A C# (celý .NET) byl už od začátku koncipovaný jako multiplatformní, netuším, kde jsi přišel na opak.![]()
.NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows.
C# se kompiluje do CIL (MSIL), který je multiplatformní ( https://en.wikipedia.org/wiki/Common_In ... e_Language ) a až na cílové platformě se to kompiluje do nativního kódu. Implementace pak jsou třeba .NET portable nebo to Mono.
To si pleteš, MS sice původně vyvíjel jakousi MS Javu, která měla nějaké nekompatibilní věci, ale C# je už úplně nový jazyk, který se jen hojně inspiroval pozitivy Javy a poučil se z jejích negativ.faraon píše:O tom že C# je jenom zprzněná záměrně nekompatibilní M$ Java, kterou po prohraném soudu a zaplaceném tučném odškodnění musel M$ přejmenovat, snad víš. Nekompatibilní ve smyslu že ostatní javovské programy na Windows 9x běžely problémově, a to mělo donutit všechny přejít právě na ten korporátní šmejd od redmondských vyděračů, tak jak se jim to povedlo u řady jiných technologií.
Na rozdíl od Javy jde vývoj C# neustále rychle kupředu, takže momentální stav je takový, že Java je pozadu a kopíruje od C# (např. ten LINQ - lambda výrazy), navíc Oracle přesouval nějaké lidi pracující na Javě jinam ( http://arstechnica.com/information-tech ... kill-java/ ), takže nad Javou se tak trochu stahují šedé mraky.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Jakým programovacím jazykem začít ?
java v životě neumře ani se neomezí...satik píše:navíc Oracle přesouval nějaké lidi pracující na Javě jinam ( http://arstechnica.com/information-tech ... kill-java/ ), takže nad Javou se tak trochu stahují šedé mraky.
Návod na HijackThis ♦ Návod na BSOD ♦ Základní diagnostika počítače ♦ Příspěvek fóru
„Inteligentní lidé se snaží problémy řešit, geniální se je snaží nedělat!“ - Albert Einstein
Rozcestník mých článků
„Inteligentní lidé se snaží problémy řešit, geniální se je snaží nedělat!“ - Albert Einstein
Rozcestník mých článků
Re: Jakým programovacím jazykem začít ?
Jo, proto se stal platinovým členem Linux Foundation, vedle IBM, Google, Oracle... Vlastně Google je jen zlatý, koukni kdo za Linuxem stojí: https://www.linuxfoundation.org/members/corporate Tomu sami s Widlemi nemůžou konkurovat, vlastně je ty klikoňské omalovánky už ani neživí, je to jenom takový historický odpad. Ano, už před nějakým časem si M$ uvědomil že vydírání výrobců používajících Android se vyplatí mnohem víc než prodej vlastního nedodělaného bugware.satik píše:MS si už před nějakou dobou uvědomil, že nemůže spoléhat jen na svůj OS.
To že je C# částečně multiplatformní není ani v nejmenším zásluha M$, ale linuxáků, konkrétně firmy Novell vyvíjející Mono. Nedávné uvolnění malé části .NET jako Open Source také není zrovna dobrá ukázka otevřenosti, je to zkriplený pahýl se značně omezenou funkčností. Asi jako ty W10IoT pro Raspberry, dá se tím akorát tak rozblikat dioda. Na to stačí tranzistor a dva kondenzátory.
Pokud žiješ v iluzi že Lambda výrazy jsou objev C#, měl by sis v Redmondu vypůjčit stroj času, vrátit se do padesátých let kdy vznikl Lisp, a pokračovat do třicátých, ze kterých nepochází zdaleka jen Turingův stroj! C# je nový název pro jazyk odvozený z Javy, určený pro defektní MSJVM, kterého se týkal ten soud. A jestli Java díky Oracle chcípne, nebude to škoda. Ani trochu.
A protože to je zase zbytečná hádka o věcech netýkajících se původního dotazu, tak ještě jednou a jasně.
Pro úplného začátečníka k pochopení struktur:
Scratch, Karel, Logo, Petr.
Pro učedníka k pochopení co jsou data:
Pascal, Python.
Pro mírně pokročilého, který už tuší kam chce pokračovat:
C, Perl, PHP, JavaScript.
Pak už bude vědět sám, jestli C++, Javu, C#, nebo třeba Go, Rust...
Tohle je můj názor, poraď jak umíš.
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- satik
- Level 6

- Příspěvky: 3509
- Registrován: 09 led 2015 12:49
- Bydliště: Krkonoše
- Kontaktovat uživatele:
Re: Jakým programovacím jazykem začít ?
Popravdě moc nechápu, proč se občas zdáš jako celkem rozumný člověk a občas jako naprostý blb, jako třeba tady a teď.
Ta výhoda v C# je to, že můžeš v jednom jazyce v jednom kousku kódu jednoduše a celkem elegantně používat normálně imperativní přístup a zároveň lambdu, to jsem předtím v těch rozšířenějších jazycích nikde moc neviděl.

Proč bych si takovýho něco myslel?faraon píše:Pokud žiješ v iluzi že Lambda výrazy jsou objev C#, měl by sis v Redmondu vypůjčit stroj času, vrátit se do padesátých let kdy vznikl Lisp, a pokračovat do třicátých, ze kterých nepochází zdaleka jen Turingův stroj!
Ta výhoda v C# je to, že můžeš v jednom jazyce v jednom kousku kódu jednoduše a celkem elegantně používat normálně imperativní přístup a zároveň lambdu, to jsem předtím v těch rozšířenějších jazycích nikde moc neviděl.
Super, takže pokud se chce naučit programovat, má se naučit postupně 4 jazyky?faraon píše:Pro úplného začátečníka k pochopení struktur:
Scratch, Karel, Logo, Petr.
Pro učedníka k pochopení co jsou data:
Pascal, Python.
Pro mírně pokročilého, který už tuší kam chce pokračovat:
C, Perl, PHP, JavaScript.
Pak už bude vědět sám, jestli C++, Javu, C#, nebo třeba Go, Rust...
Tohle je můj názor, poraď jak umíš.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Jakým programovacím jazykem začít ?
Deset. Kolik jich umíš ty?
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Jakým programovacím jazykem začít ?
už se začínáte dost vzdalovat tématu.. uklidníme to ano? Pokud máte nějaké osobní neshody, vyřešte si je přes SZ 
Návod na HijackThis ♦ Návod na BSOD ♦ Základní diagnostika počítače ♦ Příspěvek fóru
„Inteligentní lidé se snaží problémy řešit, geniální se je snaží nedělat!“ - Albert Einstein
Rozcestník mých článků
„Inteligentní lidé se snaží problémy řešit, geniální se je snaží nedělat!“ - Albert Einstein
Rozcestník mých článků


