Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Perl Tk: Neliöjonot

koodaaja [22.08.2021 06:34:21]

#

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;

jlaire [22.08.2021 17:12:22]

#

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;

carabia [24.08.2021 16:12:22]

#

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

jlaire [25.08.2021 14:32:04]

#

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ä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta