Ohjelma sisältää kolmenlaisia neliöjonoja. Ensimmäinen muodostaa luvun neliöstä parittomien lukujen summan. Toinen muodostaa kaavan neliöiden summasta ja kolmas muodostaa kaavan, kun vain parilliset luvut otetaan huomioon.
use Tk; #Tämä ohjelma muodostaa lausekkeita ja kaavoja neliöjonoista. #Ohjelma sisältää kolmenlaisia neliöjonoja my $main = MainWindow->new; $main->title("Neliöt"); #Luodaan kontrollit. my $teksti = ""; my $nappain = $main->Button(-text=>"Perus",-command=>\&Perus)->pack(); my $nappain2 = $main->Button(-text=>"Summa",-command=>\&Summa)->pack(); my $nappain3 = $main->Button(-text=>"Summa2",-command=>\&Summa2)->pack(); my $lappu = $main->Label(-textvariable=>\$teksti)->pack(); my $tlaatikko = $main->Entry()->pack(); #Luodaan tapahtumat. sub Perus(){ $luku = int $tlaatikko->get(); #Muodostetaan lauseke. #Luvun neliöiden summa voidaan esittää parittomien lukujen summana. $tulos = ""; $l = 1; for ($x = 0; $x < $luku; $x+=1){ $tulos .= $l . " "; $l += 2; } #Näytetään tulos. $teksti = $tulos; } sub Summa(){ $luku = int $tlaatikko->get(); #Muodostetaan kaava neliöiden summasta. $tulos = ""; $tulos = "(" . ($luku). "*" . ($luku+1) . "*" . (2*$luku+1) . ")/ 6"; #Näytetään tulos. $teksti = $tulos; } sub Summa2(){ $luku = int $tlaatikko->get(); #Muodostetaan kaava neliöiden summasta. $tulos = ""; $tulos = "4 * (" . ($luku). "*" . ($luku+1) . "*" . (2*$luku+1) . ")/ 6"; #Näytetään tulos. $teksti = $tulos; } MainLoop;
Harrastatko jotain uskontoa, joka kieltää "use strict":n käytön ja järkevän sisennyksen? Nautitko muuten vain tällaisesta oksennuksesta?
rtfm ja aloita vaikka tästä https://perldoc.perl.org/perlstyle
$teksti = join " ", map { 2*$_-1 } 1 .. $luku;
jlaire kirjoitti:
Harrastatko jotain uskontoa
Taitaapi hra jlaire itse harrastaa jonkin sortin pärlli uskontoa kulttia taikka lahkoa joka kieltää muun laisen coodin kuin sen mikä on siunattu pörlin pyhässä kirjassa.
itse sain paljon enemmän selvää tuosta alkuperäisestä kuin sinun
$teksti = join " ", map { ;D (.)(.) -1 } ... $ ..
oksennuksesta
carabia kirjoitti:
joka kieltää muun laisen coodin kuin sen mikä on siunattu pörlin pyhässä kirjassa.
Turhat globaalit muuttujat ja koodirivit ovat huonoa koodia kielestä riippumatta. Lisääkö $tulos = "";
summafunktioissa koodin selkeyttä sinun mielestäsi?
Maalaisjärjen käyttö on suositeltavaa, ja lisäksi joka kielessä on omat parhaat käytäntönsä jotka on hyvä tietää. Niitä ei ole pakko noudattaa, mutta pitäisi osata perustella miksi.
Jos vaikka map, grep ja vastaavat funktiot ovat liian vaikeita, ymmärrän silmukoiden käytön. Mutta montaa muuta asiaa näistä koodeista en ymmärrä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.