Jak na programování?

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

Uživatelský avatar
Tomina
Level 5.5
Level 5.5
Příspěvky: 2690
Registrován: březen 08
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jak na programování?

Příspěvekod Tomina » 09 kvě 2011 20:56

Assembler - fuj... :lol:

// btw. asi jsem negramot, ale já toho Karla nechápu.. :oops:

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

Re: Jak na programování?

Příspěvekod faraon » 09 kvě 2011 21:18

Tomina: Co na Karlovi nechápeš? Zvládají ho sedmileté děti :lol:

V editoru vlevo dole napíšeš třeba

Kód: Vybrat vše

PŘÍKAZ KE-ZDI
  DOKUD NENÍ ZEĎ
    KROK
  KONEC
KONEC

První konec ukončuje cyklus DOKUD, druhý konec ukončuje celý příkaz. Odsazení napoví. Na rozdíl od Pascalu tu není potřeba psát i begin :P
Pomocí ikony s knížkou příkaz uložíš do slovníku vlevo nahoře, a když si klikneš na zelenou šipku před tím příkazem ve slovníku, tak se vykoná.
Když máš ten příkaz ve slovníku, tak ho můžeš použít v dalších příkazech, včetně toho původního, Karel zvládá rekurzi přímou i vzájemnou!
A až Karla naučíš dost nových příkazů, jako VPRAVO-VBOK, COUVNI nebo DOKOLA, můžeš z nich poskládat celý program...
(Assembler jsem naposledy zkoušel na osmibitovém Didaktiku Gama, pak jsem radši zůstal u BASICu :wink:)



Superior: něco jsem ti sem přidal pro inspiraci: viewtopic.php?f=62&t=29994&p=494773#p494773 :lol:
Naposledy upravil(a) faraon dne 09 kvě 2011 21:30, celkem upraveno 1 x.
"Král Lávra má dlouhé oslí uši, král je ušatec!

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

Superior
Level 3
Level 3
Příspěvky: 497
Registrován: srpen 10
Pohlaví: Muž
Stav:
Offline

Re: Jak na programování?

Příspěvekod Superior » 09 kvě 2011 21:26

Ha ha, Karel je zábavný :D :D :D

Uživatelský avatar
Tomina
Level 5.5
Level 5.5
Příspěvky: 2690
Registrován: březen 08
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jak na programování?

Příspěvekod Tomina » 09 kvě 2011 21:52

Ajo takhle, já právě nevěděl jak mu dávat příkazy..jsem do něj cpal anglické if, while, apod. :-D

// ale i přesto, je to tak primitivní, až je to složité. Marně hledám tlačitko kompilovat či Run..zkusil jsem nějaké přikázy a robor Karel se nehejbe :-D radši se po tom nebudu pídit, ze mě holt programátor nikdy nebude.. :lol:

Superior
Level 3
Level 3
Příspěvky: 497
Registrován: srpen 10
Pohlaví: Muž
Stav:
Offline

Re: Jak na programování?

Příspěvekod Superior » 09 kvě 2011 22:00

Mohli byste mi popsat funkci Visual Basic a Maker?

Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: květen 07
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jak na programování?

Příspěvekod X » 09 kvě 2011 23:06

To je odporné, ta čeština v programovacích jazycích ...

Uživatelský avatar
tux
Elite Level 10
Elite Level 10
Příspěvky: 9627
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: Jak na programování?

Příspěvekod tux » 09 kvě 2011 23:19

a co Baltík? :D s tim sem se učil ve 4. třídě :D
Just Fucking Google It!

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

Re: Jak na programování?

Příspěvekod faraon » 10 kvě 2011 03:54

X píše:To je odporné, ta čeština v programovacích jazycích ...


To je záměr, vždyť je to pro malé děti :D Podobně jako Logo:

Kód: Vybrat vše

 PŘÍKAZ ČTVEREC
   OPAKUJ 4 [
     DOPŘEDU 100
     VPRAVO 90
   ]
 KONEC


Ale jsou i skutečné programovací jazyky založené na jiných jazycích než je angličtina, třeba ruský Glagol:

Kód: Vybrat vše

 ОТДЕЛ Привет+;
 
 ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\";
 
 УКАЗ
   Вывод.Цепь("Здравствуй, мир!")
 
 КОН Привет.


A co teprve Chinese BASIC, používaný v osmdesátých letech na klonech Apple II:

Kód: Vybrat vše

Originál:              Překlad:

10 卜=0                10 Y=0
20 入 水, 火            20 INPUT E, F
30 從 日 = 水 到 火     30 FOR A = E TO F
40 卜 = 卜+對數(日)     40 Y = Y + LOG (A)
50 下一 日              50 NEXT A
60 印 卜               60 PRINT Y


Je jich docela slušná řádka, a kromě toho spousta jazyků existuje v lokalizované verzi, třeba Algol. Ale jsou i jazyky které nemají s lidskou řečí nic společného, třeba matematický APL:

Obrázek

Kromě toho jsou jazyky určené pro zábavu, třeba Whitespace:

Kód: Vybrat vše

           
                       
     
                   
                         
           
       
 


Nebo Brainfuck:

Kód: Vybrat vše

 ,>,>++++++++[<------<------>>-]
 <<[>[>+>+<<-]>>[<<+>>-]<<<-]
 >>>++++++[<++++++++>-]<.>.


Zdroj: Wikipedia

petaq: a naučil ses v Baltíkovi skutečně programovat nebo jen klikat na ikony a tahat obrázky?
"Král Lávra má dlouhé oslí uši, král je ušatec!

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

Uživatelský avatar
Žbeky
Moderátor
Guru Level 13
Guru Level 13
Příspěvky: 22288
Registrován: květen 08
Bydliště: Vsetín - Pardubice
Pohlaví: Muž
Stav:
Offline

Re: Jak na programování?

Příspěvekod Žbeky » 10 kvě 2011 09:30

Baltík se učí i na středních školách. Ty ikony jsou pro začátek podle mě dobrá věc. Začátečník se nemusí moc drbat se syntaxí a spíš se naučí programátorsky myslet a pochopí, co a jak. A když se mu to zalíbí, tak si nechá zobrazit C# kód a postupně může začít přímo psát své vlastní konzolové aplikace
V SZ řeším jen záležitosti týkající se fóra. Na prosby a žádosti o technickou podporu nereaguji. Díky za pochopení.

HiJackThis + návod - HW Monitor - Jak označit příspěvek za vyřešený - Pravidla fóra

Uživatelský avatar
tux
Elite Level 10
Elite Level 10
Příspěvky: 9627
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: Jak na programování?

Příspěvekod tux » 10 kvě 2011 10:52

no já chodil v 4. třídě do DDM a tam sem se učil Baltíka jenom s těma ikonama, pak sem se v 5. třídě učil s nějakým QBasicem ale dneska bych si určitě nevzpoměl jak se s tim dělá :D
Just Fucking Google It!

Superior
Level 3
Level 3
Příspěvky: 497
Registrován: srpen 10
Pohlaví: Muž
Stav:
Offline

Re: Jak na programování?

Příspěvekod Superior » 10 kvě 2011 14:33

To je sice všechno hezké, ale ptal jsem se na Makra a Basic.

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

Re: Jak na programování?

Příspěvekod faraon » 10 kvě 2011 18:34

Žbeky píše:... spíš se naučí programátorsky myslet ...


Karel a Langtonův mravenec:

Kód: Vybrat vše

MRAVENEC
  KDYŽ JE ZEĎ
    VLEVO-VBOK
    VLEVO-VBOK
  KONEC
  DOKUD NENÍ ZEĎ
    DOKUD NENÍ ZEĎ
      KROK
      KDYŽ JE ZNAČKA
        OPAKUJ 8-KRÁT
          ZVEDNI
        KONEC
        VLEVO-VBOK
      KONEC, JINAK
        OPAKUJ 8-KRÁT
          POLOŽ
        KONEC
        OPAKUJ 3-KRÁT
          VLEVO-VBOK
        KONEC
      KONEC
    KONEC
    VLEVO-VBOK
    VLEVO-VBOK
  KONEC
KONEC


Ale myslím že tohle
for(maska=~INT_MAX;maska;putchar(cislo&maska?'1':'0'),maska>>=1);
v Baltíkovi nikdo nenakliká :twisted:




Superior: pozor, nepleť si BASIC a Visual Basic, to jsou dvě naprosto rozdílné věci, které mají společné jen to, že jimi zaplavuje svět Microsoft!

Tady najdeš něco o Visual Basicu v češtině: http://www.bozena.net/
tady jak udělat VB makra v Excelu: http://www.slezak-petr.cz/VBA/VBA_web.htm
a na Wikiversitě pár lekcí pro začátečníky, anglicky: http://en.wikiversity.org/wiki/Visual_Basic
včetně seznamu výhod a nevýhod VB6. Malá ukázka:

PRO:
- je velmi oblíbený
- na netu najdeš mnoho příkladů programů
- beží na každém počítači s WXP a novějšími
- v mnoha případech běží mnohem rychleji než VB.NET

PROTI:
- mnoho C a C++ programátorů nenávidí VB a VB kodéry
- na netu najdeš mnoho velmi špatně napsaných příkladů programů
- má schopnost naučit tě programovat extrémně líně
- v mnoha případech běží mnohem pomaleji než C nebo C++ programy


No tak si z toho vyber :lol:
A takhle nějak vypadá kód ve Visual Basicu (ze stránky http://vbuilder.webz.cz/):

Kód: Vybrat vše

    Function Seřaď(xListBox As ListBox)
    Dim MeziVýpočet As Integer
    Dim Největší As Integer
    Dim xSeznam As String
    Dim Položka() As String
    Dim počet As Integer

        počet = xListBox.ListCount
        For i = 0 To xListBox.ListCount - 1
            MeziVýpočet = 0
            For i1 = 0 To xListBox.ListCount - 1
                If Len(xListBox.List(i1)) > MeziVýpočet Then
                    MeziVýpočet = Len(xListBox.List(i1))
                    Největší = i1
                End If
            Next
            xSeznam  = xSeznam  & ";" & xListBox.List(Největší)
            xListBox.RemoveItem Největší
        Next
        Položka() = Split(xSeznam , ";")

        For i = 1 To počet
            xListBox.AddItem Položka(i)
        Next
    End Function





Pro srovnání, abys viděl ten rozdíl, jeden program v klasickém BASICu:

Kód: Vybrat vše

10 PRINT "+-----------------------------------------------+"
20 PRINT "| Simulátor německého šifrovacího stroje ENIGMA |"
30 PRINT "|       v1.1 - vojenské modely I, M3, M4        |"
40 PRINT "+-----------------------------------------------+"

100 DIM p$(10),q$(10),o$(10),r$(4),k$(4),tr(4),op(4),ov(4)
110 DEF FNv$(w$)=CHR$(ASC(w$)-(w$>="a" AND w$<="z")/(1>0)*32)
120 DEF FNn(w$)=w$<"A" OR w$>"Z"

200 READ s$:RESTORE
210 FOR i=0 TO 10
220     READ q$(i),o$(i):p$(i)=q$(i)
230     FOR j=1 TO 26
240         MID$(p$(i),ASC(MID$(q$(i),j,1))-64)=CHR$(j+64)
250     NEXT j
260 NEXT i
270 FOR i=0 TO 4
280     READ r$(i)
290 NEXT i
300 FOR i=0 TO 4
310     READ k$(i)
320 NEXT i
330 mo=3

400 DATA "ABCDEFGHIJKLMNOPQRSTUVWXYZ"," "
410 DATA "EKMFLGDQVZNTOWYHXUSPAIBRCJ","Q"
420 DATA "AJDKSIRUXBLHWTMCQGZNPYFVOE","E"
430 DATA "BDFHJLCPRTXVZNYEIWGAKMUSQO","V"
440 DATA "ESOVPZJAYQUIRHXLNFTGKDCMWB","J"
450 DATA "VZBRGITYUPSDNHLXAWMJQOFECK","Z"
460 DATA "JPGVOUMFYQBENHZRDKASXLICTW","ZM"
470 DATA "NZJHGRCXMYSWBOUFAIVLPEKQDT","ZM"
480 DATA "FKQHTLXOCBJSPDZRAMEWNIUYGV","ZM"
490 DATA "LEYJVCNIXWPBQMDRTAKZGFUHOS"," "
500 DATA "FSOKANUERHMBTIYCWLQPZXVGJD"," "
510 DATA "EJMZALYXVBWFCRQUONTSPIKHGD"
520 DATA "YRUHQSLDPXNGOKMIEBFZCWVJAT"
530 DATA "FVPJIAOYEDRZXWGCTKUQSBNMHL"
540 DATA "ENKQAUYWJICOPBLMDXZVFTHRGS"
550 DATA "RDOBJNTKVEHMLFCWZAXGYIPSUQ"
560 DATA "B123","AAA","AAA",""
570 DATA "BJELRQZVJWARXSNBXORSTNCFME"

1000 PRINT " Zadej sestavení kotoučů (Einstellung)"
1010 PRINT "ENIGMA I - například A213"
1020 PRINT " 1. znak = typ reflektoru: A (Umkehrwalze)"
1030 PRINT " 2.-4. znak = rotory zleva doprava: 1 až 3 (Walzen)"
1040 PRINT "ENIGMA M3 - například B213"
1050 PRINT " 1. znak = typ reflektoru: B,C (Umkehrwalze)"
1060 PRINT " 2.-4. znak = rotory zleva doprava: 1 až 8 (Walzen)"
1070 PRINT "ENIGMA M4 - například CG864"
1080 PRINT " 1. znak = typ 'tenkého' reflektoru: B,C (Umkehrwalze 'dünn')"
1090 PRINT " 2. znak = typ 'tenkého' rotoru: B=Beta,G=Gamma (Griechenwalze)"
1100 PRINT " 3.-5. znak = rotory zleva doprava: 1 až 8 (Walzen)"
1200 PRINT "Aktuální nastavení: ";k$(0)
1210 PRINT "Zapiš novou konfiguraci nebo nic pro ponechání:"
1220 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(0)
1230 mo=LEN(t$)-1:IF mo<3 OR mo>4 THEN PRINT "*** Chybná konfigurace!"+CHR$(7):GOTO 1200
1240 IF LEFT$(t$,1)<"A" OR LEFT$(t$,1)>"C" THEN PRINT "*** Špatný typ reflektoru!"+CHR$(7):GOTO 1200
1250 tr(0)=ASC(LEFT$(t$,1))-65
1260 IF mo=3 THEN GOTO 1400
1300 IF tr(0)=0 THEN PRINT "*** ENIGMA M4 nemohla používat reflektor A!"+CHR$(7):GOTO 1200
1310 tr(0)=tr(0)+2
1320 z$=MID$(t$,2,1)
1330 IF z$<>"B" AND z$<>"G" THEN PRINT "*** Špatný typ 'tenkého' rotoru!"+CHR$(7):GOTO 1200
1340 tr(1)=(ASC(z$)-61)/5+8
1400 FOR i=mo-2 TO mo
1410     z$=MID$(t$,i+1,1)
1420     IF z$<"1" OR z$>"8" THEN PRINT "*** Špatný typ rotoru!"+CHR$(7):GOTO 1200
1430     tr(i)=VAL(z$)
1440 NEXT i
1450 k$(0)=t$

2000 PRINT " Zadej nastavení prstenců (Ringstellung),"
2010 PRINT "například EZY pro ENIGMU M3 nebo AEZY pro ENIGMU M4:"
2020 PRINT "Aktuální nastavení: ";k$(1)
2030 PRINT "Zapiš novou hodnotu nebo nic pro ponechání:"
2040 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(1)
2050 IF LEN(t$)<>mo THEN PRINT "*** Chybná délka!"+CHR$(7):GOTO 2000
2060 FOR i=1 TO mo
2070     z$=MID$(t$,i,1)
2080     IF FNn(z$) THEN PRINT "*** Chybné nastavení!"+CHR$(7):GOTO 2000
2090     op(i)=ASC(z$)-65
2200 NEXT i
2210 k$(1)=t$

3000 PRINT " Zadej počáteční postavení rotorů (Grundstellung),"
3010 PRINT "například XPI pro ENIGMU M3 nebo FXPI pro ENIGMU M4"
3020 PRINT "Aktuální otočení: ";k$(2)
3030 PRINT "Zapiš novou pozici nebo nic pro ponechání:"
3040 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(2)
3050 IF LEN(t$)<>mo THEN PRINT "*** Chybná délka!"+CHR$(7):GOTO 3000
3060 FOR i=1 TO mo
3070     z$=MID$(t$,i,1)
3080     IF FNn(z$) THEN PRINT "*** Chybné nastavení!"+CHR$(7):GOTO 3000
3090     ov(i)=ASC(z$)-65
3200 NEXT i
3210 k$(2)=t$

4000 PRINT " Zadej propojovací kabely (Steckerverbindungen),"
4010 PRINT "max. 13 dvojic písmen, oddělených jednou mezerou,"
4020 PRINT "například AF ZM XV WN CP KL"
4030 PRINT "Aktuální nastavení: ";k$(3)
4040 PRINT "Zapiš nové propojení, tečku pro zrušení nebo nic pro ponechání:"
4050 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN GOTO 5000
4060 IF LEFT$(t$,1)=" " THEN t$=MID$(t$,2):GOTO 4060
4070 IF RIGHT$(t$,1)=" " THEN t$=LEFT$(t$,LEN(t$)-1):GOTO 4070
4080 IF LEFT$(t$,1)="." THEN PRINT "Odpojuji vše.":RESTORE:READ s$:k$(3)="":GOTO 5000
4090 t$=t$+" ":IF LEN(t$)<3 THEN GOTO 5000
4100 RESTORE:READ z$
4110 PRINT "Zapojuji: ";
4120 FOR i=1 TO LEN(t$)-2 STEP 3
4130     MID$(t$,i+2)=" ":PRINT MID$(t$,i,3);
4140     IF FNn(MID$(t$,i,1)) OR FNn(MID$(t$,i+1,1)) THEN PRINT " *** Chybný znak!"+CHR$(7):GOTO 4000
4150     x=ASC(MID$(t$,i,1))-64:y=ASC(MID$(t$,i+1,1))-64
4160     IF MID$(z$,x,1)<>CHR$(x+64) OR MID$(z$,y,1)<>CHR$(y+64) THEN PRINT " *** Pozice už je obsazena!"+CHR$(7):GOTO 4000
4170     w$=MID$(z$,x,1):MID$(z$,x)=MID$(z$,y,1):MID$(z$,y)=w$
4180 NEXT i:PRINT
4190 s$=z$:k$(3)=t$

5000 PRINT " Napiš text pro (de)šifrování: "
5010 INPUT "",t$:GOSUB 7000:IF LEN(t$)=0 THEN t$=k$(4)
5020 FOR i=1 TO LEN(t$)
5030     z$=MID$(t$,i,1)
5040     IF FNn(z$) THEN GOTO 5600
5100     FOR j=1 TO LEN(o$(mo-1))
5110         IF ov(mo-1)+65<>ASC(MID$(o$(tr(mo-1)),j,1)) THEN GOTO 5150
5120         ov(mo-2)=(ov(mo-2)+1)MOD 26
5130         ov(mo-1)=(ov(mo-1)+1)MOD 26
5140         GOTO 5190
5150     NEXT j
5160     FOR j=1 TO LEN(o$(mo))
5170         IF ov(mo)+65=ASC(MID$(o$(tr(mo)),j,1)) THEN ov(mo-1)=(ov(mo-1)+1)MOD 26
5180     NEXT j
5190     ov(mo)=(ov(mo)+1)MOD 26
5300     PRINT "|";
5310     FOR j=1 TO mo
5320       PRINT CHR$(ov(j)+65)+"|";
5330     NEXT j
5340     PRINT " "+z$;
5400     z$=MID$(s$,ASC(z$)-64,1)
5410     FOR j=mo TO 1 STEP -1
5420         z$=CHR$(65+(ASC(MID$(q$(tr(j)),1+(ASC(z$)+ov(j)-op(j)-13)MOD 26,1))-ov(j)+op(j)-13)MOD 26)
5430     NEXT j
5440     z$=MID$(r$(tr(0)),ASC(z$)-64,1)
5450     FOR j=1 TO mo
5460         z$=CHR$(65+(ASC(MID$(p$(tr(j)),1+(ASC(z$)+ov(j)-op(j)-13)MOD 26,1))-ov(j)+op(j)-13)MOD 26)
5470     NEXT j
5480     z$=MID$(s$,ASC(z$)-64,1)
5490     PRINT " = "+z$:MID$(t$,i)=z$
5600 NEXT i
5700 PRINT t$:k$(4)=t$
5710 PRINT "Konečné postavení rotorů: ";
5720 FOR i=1 TO mo
5730     z$=CHR$(ov(i)+65)
5740     PRINT z$;
5750     MID$(k$(2),i)=z$
5760 NEXT i
5770 PRINT

6000 INPUT "Pokračovat v práci? (A/N) ",t$:t$=t$+" "
6010 IF LEFT$(FNv$(t$),1)<>"N" THEN GOTO 1000
6020 PRINT "(C)2010 FARAON"
6030 EXIT

7000 FOR i=1 TO LEN(t$)
7010     MID$(t$,i) = FNv$(MID$(t$,i,1))
7020 NEXT i
7030 RETURN
"Král Lávra má dlouhé oslí uši, král je ušatec!

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


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 2 hosti