Išmokau programuoti Java

Įrašyta 2007-10-15, 00:33 | 22 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