Išmokau programuoti Java

Įrašyta 2007-10-15, 00:33 | 24 Komentarai

DĖMESIO! Turiu atsiprašyti žmonių, atėjusių iš paieškos svetainių, norinčių sužinoti apie programavimą Java kalba. Čia tokios informacijos nėra. Esu įsitikinęs, kad daugiausiai atklystančių žmonių yra pradedantieji programuotojai, todėl galiu jums pasiūlyti įvadą į programavimą, kuris palengvins jūsų dalią su Java ir ne tik.

Turiu draugą, studijuojantį KTU. Kadangi pas juos yra tokia taktika - mokyti tai, kas nelabai į temą, tai jam prisireikė mano pagalbos. Žmogus studijuoja humanitarinius mokslus, gyvenime su programavimu nesusidūręs, o univieras verčia jį programinti su java. Nepasakyčiau, kad geras sprendimas, juolab, kad "pradmenys" pas juos yra oop ir susiję dalykai.

Užduotis: Duotas sakinys. Surasti simbolių skaičių, tarp pirmo ir antro kablelių. Dalį kodo jam padėjo parašyti kursiokė, bet jis iki galo neveikė. Pradinis sprendimas buvo verstis eilutę į char tipo masyvą ir einant pro kiekvieną simbolį tikrinti. Na pradžiai labai daug vargom, kadangi su java sintakse nebuvau pažįstamas visiškai, bet galiausiai priėjom paprastą sprendimą:

int pirmasKablelis()
{
    for (int i=0; i<mas.length;i++)
    {
        if ( mas[i] == ',' )
            return i+1;
    }
    return -1;
}

int antrasKablelis()
{
    boolean pirmasKablelis=false;
    for (int i=0; i<mas.length;i++)
    {
        if ( mas[i] == ',' )
        {
            if (pirmasKablelis==false)
            {
                pirmasKablelis=true;
            }
            else
                return i+1;
        }
    }
    return -1;
}

Tačiau tai dar nebuvo pabaiga. Bėda atsirado main() metode, kur vėlgi kažkas nesiderino su sintakse. Draugė peržiurėjo mano pasiūlytą variantą, ir privertė jį veikti. Turbūt būtų viskas gerai, jei ne mano programuotojo charakteris. Nusprendžiau patobulinti kodą iki galo. Nežinau ar reikėjo viską talpinti į atskirą klasę, bet mano sintaksės žinios neleido to padaryti, tai tiesiog sukišau viską į main metodą. Po šiokio tokio googlinimo, ir karo su Eclipse (taip, netgi IDE instaliavau šiam darbui :D) pavyko sukurti "šedevrą":

public class pirmasLab
{
    public pirmasLab()
    {
    }

    public static void main(String[] args)
    {
        String t = "Ba,ndymas";

        int k = t.indexOf( ',' );
        int l = t.indexOf(',', k+1);

        if (k==-1)
            System.out.println("Kableliu nera, eilutes ilgis: " + t.length());
        else
        {
            System.out.println("Pirmas kablelis yra " +k+ " -as");

            if (l==-1)
                System.out.println("Antro kablelio nera. Nuo pirmo kablelio, iki galo yra " + (t.length()-k-1) + " simboliai/-iu");
            else
                System.out.println("Antras kablelis yra " +l+ " -as");
        }
        if (k!=-1 & l!=-1)
            System.out.println("Tarp pirmo kablelio ir antro kablelio yra " + (l-k-1) + " simboliai/-iu");
    }
}

Išvada: svarbiausia ne kalba/sintaksė, o bendros žinios ir mąstymas (ir mokėjimas naudotis Google :D).

Gairės: Java, Programavimas

24 Komentarai

Dummas

1. Dummas

2007-10-15, 09:13

Java nereikalauja konstruktoriaus, jeigu yra main metodas; O šiaip neblogai :-)

Armandas

2. Armandas

2007-10-15, 10:23

Dėkui ;D

Vortex

3. Vortex

2007-10-18, 18:17

Idomiai tu cia :) niekad kazkaip neesu susidures su java :D

Armandas

4. Armandas

2007-10-18, 18:41

Sako, kad žmonės savo noru Java neprogramina :D

ichmbch

5. ichmbch

2007-10-23, 18:40

Turi draugą studijuojantį KTU, bet humanitarinius mokslus? kažkaip nesiriša :p

Armandas

6. Armandas

2007-10-24, 15:07

Man, tiesą pasakius, daug kas nesiriša Lietuvos švietimo sistemoje :)
http://www.ktu.lt/lt/apie_struktura/fakultetai/hum/apie_fak.asp

Pawka

7. Pawka

2007-11-02, 15:33

Labai jau apibrėžtai skamba "išmokau", kas nelabai derinasi su "programuoti" :-) O šiaip Java labai smagus dalykas. Nors mano mėgstamiausiai kalba yra C++, tačiau dažnai renkuosi būtent Java, kai noriu ką nors pakankamai greitai sukurpti.

Armandas

8. Armandas

2007-11-02, 23:10

Tas "išmokau" tai čia perkeltine prasme :) Šiaip tai man buvo vienkartinė patirtis su Java, panašiai ir su Ruby turėjau programavimo sesiją. Negaliu pasakyti, kad pajaučiau didelį potraukį šiom kalbom :)

Karolis

9. Karolis

2008-01-23, 01:53

StringTokenizer
nextToken
array.lenght

Sprendimas toks i C panasus :) Java yra OOP etalonas! :D minusas vykdymo spartumas. Minusas gavosi, nes java kurejai optimistai ir nenorejo kreipti demesio, jog gyvename ne tobulam pasauli (Microsoft-*nix).
Nekritikuokite sio gerio :)

G0Dhack

10. G0Dhack

2008-07-19, 01:29

>Išvada: svarbiausia ne kalba/sintaksė, o bendros žinios ir mąstymas (ir mokėjimas naudotis Google :D).

Labai bloga isvada per daug rozinio optimizmo!
JAVA sintakse panasi i C ir C++ ir tikriausiai arba viena arba kita arba abi tau zinomos ir todel buvo salyginai lengva.

Paziureciau kaip reaguotum i panasaus sudetingumo COBOL uzduoti kur tektu net vietoj elementariu y += x; kodint taip:
ADD X TO Y.

Armandas

11. Armandas

2008-07-19, 16:50

Programavau Assembly (68k), ir ten sintaksė:
ADD a1, a2

Uždavinius pirmas baigdavau ne todėl, kad sintaksė man pažįstama :) Užrašymas yra lengviausia dalis, kurią gali išmokt per ~kelis mėnesius. Programavimo tenka mokytis daug metų.

Simas

12. Simas

2008-09-22, 11:44

Reik pagalbos su java...kas galetu padet nes jau depresija..reikia kontaktu

Armandas

13. Armandas

2008-09-22, 14:57

Susirask atitinkamą programuotojų forumą ar ką.

Simas

14. Simas

2008-10-03, 09:37

tai matau kat tu gerai kerti :) ten nedaug reika, nesigaudau if'uose

Coderis

15. Coderis

2008-10-21, 14:14

Jei reik pagalbos su java rsykit i jjx256@gmail.com

JAVA

16. JAVA

2009-04-01, 14:24

Ar kasnors galietu padieti su java kodu kaip sukurt array list

Marius

17. Marius

2009-06-24, 21:48

Na as turbut daryciau taip (jei neskaidyti i atskirus atvejus, kai kableliu nera arba jis tik vienas):

String inputString = new String("Pirmas kablelis, antras kablelis, pabaiga");
String[] commaSplit = inputString.split(",");
try {
System.out.println("Simboliu skaicius po pirmo kablelio: "+commaSplit[1].length());
} catch(ArrayOutOfBoundsException e) {
System.out.println("Nepakankamas kableliu skaicius");
}

PS. Nepatiko, kad yra emailo parseris, kuris neleidzia (at) vietoj @ naudot (dabar mane uzspamins :|)

Armandas

18. Armandas

2009-06-25, 20:22

Niekas neužspamins, paštas nerodomas ;)

Jonas

19. Jonas

2011-01-20, 17:07

Jei kam pagalbos reikia su java rašykit: jonas.ragaisis@gmail.com :)) pagelbėsiu kuo galėsiu ;]

nesvarbu

20. nesvarbu

2011-04-18, 19:17

Jonai, parašiau tau į emeilą, bet nesulaukiu atsakymo. :/ O labai reikėtų pagalbos su java užduotim!

Kaskas

21. Kaskas

2011-05-05, 16:14

Man ta Java labai panasi i LUI v.5 lygtais

kkk

22. kkk

2011-12-21, 16:00

Pats vidutiniskai moku, bet kam reik pagalbos su java - wecna@yahoo.com. Aisku ne uz dyka:-)

Arnas

23. Arnas

2012-08-08, 16:44

http://www.youtube.com/watch?v=16L5iMlsWdA
Stai lietuviu kalba pradetos leisti vaizdines Java programavimo pamokos

Programuotojas

24. Programuotojas

2015-10-30, 10:05

JAVA ko gero viena geriausių kalbų programavimo mokymuisi ir yra pakankamai populiari. Įgavus bazines žinias galima pradėti ieškotis darbo.