Pēteris Caune
 
[Most Recent Entries] [Calendar View] [Friends View]

Sunday, June 12th, 2005

    Time Event
    12:34p
    Dzegužkalns

    Ja ar 5. tramvaju brauc līdz Buļļu ielai un tad pa Dzegužu ielu drusku paiet Daugavas virzienā - nokļūst Dzegužkalnā. Ziemā tur šļūcām uz plēves. Bija itin jautri. Īpašu asumu piedeva tas, ka, ja nošļūciena beigās nepagūst nobremzēt - trāpa vai nu jaunā nogāzē krūmos, ķieģeļu sienā, uz ielas, vai celmā. Lūk, uzskatāmībai, bildīte:

    Bilde ir nedaudz maldinoša - šī izprieca notika jau vakarā, tumsā, bet man bija slinkums glīti iekrāsot tumšas debesis. Ar sarkanu krustiņu iezīmēta vieta, kurā parasti šļūkšanas ekipāža izjūk - tālāk kats, rijot sniegu, šļūc pa savam.

    Piektdien atkal biju tajā pusē - tur ir ierīkota jauna izklaide - Tarzāna-džungļu tipa šūpoles! Stāvas kraujas malā augstā koka zarā iesieta virve ar stienīti lejasgalā. Bildīte:

    Atrast vienkārši - jādodas uz Dzegužkalna augstāko punktu (zaļā bultiņa pirmajā bildē).

    5:10p
    Smalkais stils

    Sendienās, kad rakstīju paskālā, manām funkcijām arvien bija tieši viens izejas punkts - funkcijas beigās. Dažādie iespējamie izpildes ceļi tika būvēti ar if-then konstrukcijām lielā dziļumā, boolean tipa karodziņiem (bija standarta nosaukumi continue, changes_done utml.). Lai vai kā, katra funkcija tomēr tika izpildīta no sākuma līdz beigām, ar lielākiem vai mazākiem lēcieniem pāri izlaižamajiem koda gabaliem.

    Function saknes(a,b,c:integer);
    Var res: string;
        d: integer;
    Begin
      If (a = 0) Then
        res := 'nav kvadrātvienādojums'
      Else Begin
        d := b*b - 4*a*c;
        If (d < 0) Then
          res := 'sakņu nav';
    
        If (d = 0) Then
          res := '1 sakne';
    
        If (d > 0) Then
          res := '2 saknes';
    
      End;
      saknes := res;
    End;
    

    Citādi jau nevarēja - nebija tāda return operatora.

    Tagad apmēram vienādi daudz lietoju Python, PHP un Javascript. Ievēroju, ka manas funkcijas vairs nav tādas, kā agrāk, - tagad funkcijām ir apmēram tikpat izejas punktu, cik ir būtiski atšķirīgu izpildes ceļu. Apmēram šādi:

    function saknes(a,b,c):
      if (a == 0) return 'nav kvadrātvienādojums'
     
      d = b*b - 4*a*c
      if (d < 0) return 'sakņu nav'
      if (d == 0) return '1 sakne'
      if (d > 0) return '2 saknes'
    

    Manuprāt, šādi ir lasāmāk - ja, piemēram, funkcijas sākumā ir 7 ievaddatu korektuma pārbaudes, nav jātaisa if-then konstrukcijas 7 līmeņu dziļumā un/vai jālieto karodziņi.

    Vienu brīdi, kad šīs stila, piegājiena un metodes izmaiņas ievēroju, palika bailīgi - vai otrais paraugs - ar daudzām izejām no funkcijas - nav slikts (līdzīgi, kā goto, break utml.) Pagudroju, nekādi sliktumi nenāca prātā. Visā visumā, tas atgādina tādu elastīgāku switch operatoru.

    Man gadās visādas muļķības izdomāt - varbūt otrajam variantam tomēr ir kāds ievērojams trūkums?

    9:22p
    Es ceru, derēs

    Kursadarbs apmēram pabeigts, tikai vēl nav anotācijas visās trijās valodās. Latviski un angliski ir, vajag trešo. Patlaban gudroju par šādu variantu:

    << Previous Day 2005/06/12
    [Calendar]
    Next Day >>

Paviānu štelles   About Sviesta Ciba