Začátky programování - jaký jazyk zvolit?

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Alb43s
nováček
Příspěvky: 3
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Začátky programování - jaký jazyk zvolit?

Příspěvekod Alb43s » 05 črc 2012 22:12

Ahoj chtěl bych se zeptat jestli by mi někdo neporadil se začátky programování nic moc o tom nevím zkoušel jsem program Karel a zhruba jsem to pochopil. A o co mi jde jenom jestli by byl měkdo tak hodný a poradil mi jaký jazyk se mám na pro začátek naučit o pár jsem slyšel ale třeba jazyk c++ a ten se mi zdá pro začátek hodně složitý.Kdybyste měli ještě nějaká dobrá videa,články,rady prosím napište děkuji.
Naposledy upravil(a) Ltb dne 13 dub 2013 22:21, celkem upraveno 1 x.
Důvod: Doplnění nadpisu

Reklama
Uživatelský avatar
domitea
Tvůrce článků
Level 4.5
Level 4.5
Příspěvky: 1966
Registrován: červen 09
Bydliště: Královehradecký kraj
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Začátka programování

Příspěvekod domitea » 05 črc 2012 22:28

Pascal, vyvinut na výuku :wink:
UNIX je systém jednoduchý, jen musíte být geniální, aby jste tu jednoduchost pochopili. Jedině OSS, vše co napíšu je pod GNU/GPL
Linux je mé koření života. Nikdy nevím, co pokazím! Registered user #550849

Dnešní počítače mi nestačí, pracuji na vlastním

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod faraon » 06 črc 2012 11:03

A jak dlouho jsi toho Karla "zkoušel"? Podle tvého minulého dotazu tak deset minut? ;-)

Tak si zkus vyřešit tohle, přesně podle zadání, s tím bys měl zvládnout základy, tedy algoritmizaci, dekompozici a strukturování.

Napiš program, který naučí Karla stavět různé domy, podle těchhle podmínek:

1. Základní příkazy DOMEK, VILA a PANELÁK vytvoří každý svůj typ domu, přitom používají pomocné příkazy, které jsou společné. Takže nejdřív najdi společné prvky domů - proveď analýzu úlohy.

2. Karel se může na začátku nacházet v libovolném místě města otočený do libovolného směru, takže ho musíš dostat do nějaké výchozí pozice, třeba levého dolního rohu (kde má svůj domov), ze které začne svojí práci. Tak jako první vytvoř příkaz DOMŮ.

3. Po skončení práce se Karel přesune do dveří domu a otočí směrem k uživateli, ale aby dveře mohly být v libovolném místě domu (pro použití v jiné verzi programu, která bude umět navíc i jiné typy domů, třeba SKLADIŠTĚ), musí být Karel schopný dveře detekovat. Proto je v nich jen jedna značka - práh.

4. A jedna podmínka na závěr - žádný z příkazů nesmí mít víc než 12 řádků! Čím méně jich bude mít, tím lépe.


Až to budeš mít, zkus si přidat ten příkaz SKLADIŠTĚ, tak abys využil již existující části a nemusel vůbec nic upravovat!

Karel-domy.png


Druhá úloha je na naučení rekurze, jednoho z nejmocnějších programátorských nástrojů:

Napiš program, který z jakékoliv pozice provede Karla bludištěm, aby našel svůj domeček, umístěný na libovolném místě. Není-li cesta k domečku možná, musí se program ukončit, nesmí běhat donekonečna.

Bludiště si můžeš vymyslet jaké chceš, tohle je jen pro příklad. Dá se to zvládnout jediným příkazem, právě díky rekurzi, ale jinak si to řeš jak uznáš za vhodné. Jestli o procházení bludišť nic nevíš, tak pro inspiraci hledej termín "ariadnina nit".

Obrázek

Očekávám tvá řešení, a mezitím si stáhni a nainstaluj Pascal.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Alb43s
nováček
Příspěvky: 3
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod Alb43s » 06 črc 2012 21:11

Díky moc už jdu na to.

funnyman
nováček
Příspěvky: 33
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod funnyman » 23 bře 2013 15:11

ahoj,

udělal jsem domek, vilu a panelák, prosím o kontrolu, jestli jsme splnil zadání.

Kód: Vybrat vše

DOMEK
  ZÁKLADY
  O-PATRO-VÝŠ
  PATRO-S-OKNY
  O-PATRO-VÝŠ
  PATRO
  O-PATRO-VÝŠ
  STŘECHA
  DO-DVEŘÍ
KONEC


Kód: Vybrat vše

VILA
  ZÁKLADY
  O-PATRO-VÝŠ
  PATRO-S-OKNY
  O-PATRO-VÝŠ
  PATRO
  O-PATRO-VÝŠ
  PATRO-S-OKNY
  O-PATRO-VÝŠ
  PATRO
  O-PATRO-VÝŠ
  STŘECHA
  DO-DVEŘÍ
KONEC


Kód: Vybrat vše

PANELÁK
  ZÁKLADY
  O-PATRO-VÝŠ
  PATRO-S-OKNY
  O-PATRO-VÝŠ
  PATRO
  O-PATRO-VÝŠ
  PATRO-S-OKNY
  O-PATRO-VÝŠ
  PATRO
  O-PATRO-VÝŠ
  PATRO-S-OKNY
  O-PATRO-VÝŠ
  PATRO
  O-PATRO-VÝŠ
  PATRO-S-OKNY
  O-PATRO-VÝŠ
  PATRO
  DO-DVEŘÍ
KONEC


pomocné příkazy:

Kód: Vybrat vše

ZÁKLADY
  NA-START
  OPAKUJ 3-KRÁT
    KROK
    VYPLŇ
  KONEC
  KROK
  OPAKUJ 3-KRÁT
    KROK
    VYPLŇ
  KONEC
KONEC

Kód: Vybrat vše

PATRO
  OPAKUJ 7-KRÁT
    KROK
    VYPLŇ
  KONEC
KONEC

Kód: Vybrat vše

STŘECHA
  DVOJKROK
  VYPLŇ
  OPAKUJ 4-KRÁT
    KROK
  KONEC
  VYPLŇ
  VLEVO-VBOK
  KROK
  VLEVO-VBOK
  KROK
  VYPLŇ
  DVOJKROK
  VYPLŇ
  VPRAVO-VBOK
  KROK
  VPRAVO-VBOK
  KROK
  VYPLŇ
KONEC

Kód: Vybrat vše

DO-DVEŘÍ
  NA-START
  KROK
  DOKUD JE ZNAČKA
    KROK
  KONEC
  VPRAVO-VBOK
  POLOŽ
KONEC

Kód: Vybrat vše

PATRO-S-OKNY
  KROK
  OPAKUJ 4-KRÁT
    VYPLŇ
    DVOJKROK
  KONEC
KONEC


teď se jdu pustit do řešení labyrintu

--- Doplnění předchozího příspěvku (23 Bře 2013 15:33) ---

Kód: Vybrat vše

HLEDEJ-DOMOV
  OPAKUJ 200-KRÁT
    KDYŽ NENÍ DOMOV
      VPRAVO-VBOK
      DOKUD JE ZEĎ
        VLEVO-VBOK
      KONEC
      KROK
    KONEC
  KONEC
KONEC

Uživatelský avatar
CrazyC0de
Level 3
Level 3
Příspěvky: 517
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Začátka programování

Příspěvekod CrazyC0de » 23 bře 2013 15:59

Čau, a co by jsi chtěl v budoucnu tvořit ?

Weby, nebo nějaké desktopové, či konzolové aplikace :-) ?
Vtípek

Alenka v říši divů : <div> <div><div><div><div>ALENKA</div> </div> </div> </div></div>

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod faraon » 24 bře 2013 11:18

funnyman píše:

Kód: Vybrat vše

HLEDEJ-DOMOV
  OPAKUJ 200-KRÁT
    KDYŽ NENÍ DOMOV
      VPRAVO-VBOK
      DOKUD JE ZEĎ
        VLEVO-VBOK
      KONEC
      KROK
    KONEC
  KONEC
KONEC

Tohle najde DOMOV jen když leží u zdi, ale pokud je někde "v prostoru", tak Karel jenom bezradně běhá dokola. Pravidlo pravé(levé) ruky v tomhle případě nefunguje, musíš použít Ariadninu nit, tedy značit si cestu, kterou už jsi prošel, značkami.
A protože tohle je úkol na rekurzi, tak by bylo vhodné ji použít místo počítaného cyklu ;-)

Ty domy nejsou špatné, jen by neškodilo je víc rozdrobit, protože třeba přízemí a patro mají společné prvky, které můžeš využít. A práh by měl ve dveřích ležet už během stavby, právě podle toho že je tam jen jedna značka Karel pozná že jde o dveře, také by tam mohl být prázdný prostor, ve kterém ale stát nemá! Co kdyby šlo o příkaz KŮLNA, která bude stát až u pravé zdi a bude obsahovat jen dveře a stěny? To by k ní Karel ani nedošel!

Takhle nějak bych na to šel já:

Kód: Vybrat vše

VILA
  PŘÍZEMÍ
  PATRO
  STŘECHA
  DO-DVEŘÍ
KONEC

Jaké společné prvky mají PŘÍZEMÍ a PATRO?
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

funnyman
nováček
Příspěvky: 33
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod funnyman » 26 bře 2013 16:17

děkuji za odpověď

snažím se přepsat Karlovo hledání prahu v domě. Teď postaví budovu už s prahem, a chci ho nechat najít práh takto:

pokud vím, neumí karel počítat, proto ho nechávám zjišťovat, zda je víc značek tak, aby jednu zvedl a pak zjistil, zda tam je ještě další. Příkaz ale není dopsaný do konce, při testování se program ukončí s chybou: "nelze udělat krok, v cestě je zeď". Proč se Karel snaží dělat krok, když je celý program uzavřený v podmínce Dokud není zeď?

*Příkazu předchází příkaz na-start, karel je tedy vlevo dole otočený na východ

Kód: Vybrat vše

DO-DVEŘÍ
  DOKUD NENÍ ZEĎ
    KDYŽ NENÍ ZNAČKA
      KROK
      DO-DVEŘÍ
    KONEC, JINAK
      ZVEDNI
    KONEC
    KDYŽ NENÍ ZNAČKA
      VPRAVO-VBOK
    KONEC, JINAK
      POLOŽ
      KROK
      DO-DVEŘÍ
    KONEC
  KONEC
KONEC

funnyman
nováček
Příspěvky: 33
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod funnyman » 02 dub 2013 15:30

doplním předchozí příspěvek:

Stále jsem na to nepřišel. Příkaz ke zdi vypadá takto:

Kód: Vybrat vše

Ke-zdi
  dokud není zeď
    krok
  konec
konec


Proč tedy o něco složitější příkaz, který je ale také uzavřený v podmínce "Dokud není zeď", nefunguje jak bych očekával a Karel se snaží dělat krok do zdi?
Jsem začátečník, předpokládám, že jsem špatně napsal ten sled příkazů. Prosím vás o nápovědu.


DOPLNĚNO:
je to zvláštní, ale dnes to tu chybu už nedělá, a Karel běhal podél zdi dokola :) příkaz jsem nijak nezměnil, nahrál jsem příkazy z minula a spustil jsem je. Je to tedy vyřešené a já jsem rád, že to nebyla moje chyba, protože mám pocit, že tomu začínám rozumět, a tohle mě dost mátlo.


Pozměnil jsem příkazy pro stavbu budov tak, že příkaz "o-patro-výš" jsem napsal na konec příkazů "přízemí", "patro" a "patro s okny". Příkaz "patro-s-okny" jsem zároveň napsal na konec příkazu patro. Příkaz "přízemí" jsem změnil tak, aby práh karel stavěl už při stavbě přízemí.
Teď už myslím stavění budov odpovídá zadání.

Viz příkazy:

Kód: Vybrat vše

PŘÍZEMÍ
  NA-START
  OPAKUJ 3-KRÁT
    KROK
    VYPLŇ
  KONEC
  KROK
  POLOŽ
  OPAKUJ 3-KRÁT
    KROK
    VYPLŇ
  KONEC
  O-PATRO-VÝŠ
KONEC

Kód: Vybrat vše

O-PATRO-VÝŠ
  ČELEM-VZAD
  DOKUD NENÍ ZEĎ
    KROK
  KONEC
  VPRAVO-VBOK
  KROK
  VPRAVO-VBOK
KONEC

Kód: Vybrat vše

PATRO-S-OKNY
  KROK
  OPAKUJ 4-KRÁT
    VYPLŇ
    DVOJKROK
  KONEC
  O-PATRO-VÝŠ
  PATRO
  O-PATRO-VÝŠ
KONEC

Kód: Vybrat vše

PATRO
  OPAKUJ 7-KRÁT
    KROK
    VYPLŇ
  KONEC
KONEC

Kód: Vybrat vše

STŘECHA
  DVOJKROK
  VYPLŇ
  OPAKUJ 4-KRÁT
    KROK
  KONEC
  VYPLŇ
  VLEVO-VBOK
  KROK
  VLEVO-VBOK
  KROK
  VYPLŇ
  DVOJKROK
  VYPLŇ
  VPRAVO-VBOK
  KROK
  VPRAVO-VBOK
  KROK
  VYPLŇ
KONEC

Kód: Vybrat vše

DO-DVEŘÍ
  NA-START
  DOKUD NENÍ ZEĎ
    KROK
    KDYŽ JE ZNAČKA
      ZVEDNI
    KONEC
    KDYŽ JE ZNAČKA
      POLOŽ
    KONEC, JINAK
      VPRAVO-VBOK
      POLOŽ
    KONEC
  KONEC
KONEC

Kód: Vybrat vše

DOMEK
  PŘÍZEMÍ
  PATRO-S-OKNY
  STŘECHA
  DO-DVEŘÍ
KONEC

Kód: Vybrat vše

VILA
  PŘÍZEMÍ
  PATRO-S-OKNY
  PATRO-S-OKNY
  STŘECHA
  DO-DVEŘÍ
KONEC

Kód: Vybrat vše

PANELÁK
  PŘÍZEMÍ
  OPAKUJ 4-KRÁT
    PATRO-S-OKNY
  KONEC
  DO-DVEŘÍ
KONEC


A já si teď jdu lámat hlavu s bludištěm


DOPLNĚNO 2:
tak musím opět napsat, že příkaz "dokud není ..." zlobí. Zkouším to bludiště, a když příkaz uzavřu do "dokud není domov", očekávám, že jakmile bude Karel doma, zastaví se. Jenže on se nezastaví a pokračuje v provádění příkazů, jako by tahle podmínka vůbec neexistovala.
pomohl restart Karla (refresh stránky) a znovunahrání příkazů

DOPLNĚNO 3:
Karel řeší bludiště :)

Kód: Vybrat vše

HLEDEJ-DOMOV
  KDYŽ JE ZNAČKA
    ČELEM-VZAD
    KROK
    ČELEM-VZAD
  KONEC, JINAK
    POLOŽ
    KDYŽ JE DOMOV
      STOP
    KONEC, JINAK
      VLEVO-VBOK
      OPAKUJ 3-KRÁT
        KDYŽ NENÍ ZEĎ
          KROK
          HLEDEJ-DOMOV
        KONEC
        VPRAVO-VBOK
      KONEC
      KROK
      ČELEM-VZAD
    KONEC
  KONEC
KONEC

funnyman
nováček
Příspěvky: 33
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod funnyman » 03 dub 2013 17:39

pustil jsem se do vytváření koně, co navštíví všechny políčka.

psal jsem to dvě hodiny a mělo to přes 200 řádků, než jsem si uvědomil, že jsem to vzal ze špatného konce a nezvážil jsem na začátku, které pohyby se opakují a je tedy vhodné je napsat jako samostatný příkaz :)

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7359
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod faraon » 03 dub 2013 18:11

To ses pěkně rozjel, na 200 řádků :P
Ale dá se to udělat jedním příkazem bez jakéhokoliv příslušenství, pomocí rekurze.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

funnyman
nováček
Příspěvky: 33
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod funnyman » 04 dub 2013 20:59

bludiště je v pořádku?

Všechnu práci na koni jsem zahodil a zkusil to znovu, ale jestli to jde řešit jedním příkazem, tak opět špatně. napsal jsem si 4 příkazy pro 4 různé pohyby (dva kroky rovně a jeden vlevo či vpravo nebo jeden krok rovně a dva vlevo či vpravo) a volám je postupně za sebou. Karel skáče jako kůň docela vesele, ale po chvíli se zasekne u zdi. Není to ještě hotové.
Ale to nepřetržité psaní dlouhatánského příkazu, ač úplně špatné, mělo taky něco do sebe - abych se v tom kódu neztratil (nakonec jsem se samozřejmě ztratil), musel jsem se pořádně soustředit a ty dvě hodiny utekly jako nic...
Psal jsem to v Gedit, nakonec jsem nainstaloval Geany a litoval, že neumí syntaxi Karla :) ale i tak to dost pomohlo a psalo se to mnohem snáz.

Jestli to tedy jde řešit jedním příkazem v rekurzi, tak to zase smažu a budu si lámat hlavu jak má vypadat ten jeden příkaz :)


tady je nejjednodušší příkaz pro koně, jaký umím napsat.

Kód: Vybrat vše

JAKO-KŮŇ
  POLOŽ
  KDYŽ NENÍ ZEĎ
    KROK
    KDYŽ NENÍ ZEĎ
      KROK
      VLEVO-VBOK
      KDYŽ NENÍ ZEĎ
        KROK
        JAKO-KŮŇ
      KONEC, JINAK
        ČELEM-VZAD
        KDYŽ NENÍ ZEĎ
          KROK
          JAKO-KŮŇ
        KONEC
      KONEC
    KONEC, JINAK
      VLEVO-VBOK
      KDYŽ NENÍ ZEĎ
        KROK
        KDYŽ NENÍ ZEĎ
          KROK
          JAKO-KŮŇ
        KONEC, JINAK
          ČELEM-VZAD
          KROK
          KDYŽ NENÍ ZEĎ
            KROK
            KDYŽ NENÍ ZEĎ
              KROK
              JAKO-KŮŇ
            KONEC
          KONEC
        KONEC
      KONEC
    KONEC
  KONEC
KONEC

obsahuje všechny čtyři varianty Karlova "skoku" a přidal jsem tam na začátek "polož", aby značkoval stopy. Nevím ale, jak si poradit s tím, aby Karel vynechával už navštívená políčka. Když jsem se to pokoušel vyřešit minule, přidal jsem za ty čtyři rozhodující "když není zeď, krok" ještě "když není značka", a vždy, když byla, napsal jsem další "konec, jinak", kde jsem ale musel vypsat celý zbývající kód.
Předpokládám, že jsem to pořád ještě nepochopil a moje pokusy jsou úplně špatně.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 27 hostů