Perl

Sekcia: Programovanie 29.03.2014 | 20:11
Začiatočník   Návštevník

Zdravím, začínam sa učiť v Perli a hľadám niekoho kto by mal čas a mohol ma doučiť pár vecí pri programovaní( hlavne tvorba cyklov). + otázka: viete niekto, či je možné naprogramovať derivácie v Perli?A ak áno, tak ako veľmi to je obtiažne??

    • RE: Perl 30.03.2014 | 00:16
      Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

      V Perly som programoval pred veľa rokmi, od vtedy sa s ním nejak nestretávam, cykly sú tam rovnaké ako v hocijakom inom jazyku. Matematika sa rieši špeciálnou knižnicou (riešila sa, musel by som pozrieť ako je to teraz) páč Perl nemal až takú presnú matematiku. Derivácie a Integrácie sa samozrejme dajú riešiť. Vďaka tomu, že je to vyšší programovací jazyk, tak obtiažnosť bude rovnaká asi ako v Pythone, Jave, alebo PHP.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Perl 30.03.2014 | 11:36
        Avatar Začiatočník   Návštevník

        a nepamätáš si z toho ešte niečo? teda mám v poli načítaný súbor, ktorý tvoria 4 stĺpce hodnôt...potrebujem napísať program, pomocou ktorého otestujem najskôr prvú hodnotu v prvom stĺpci, potom prvú hodnotu v druhom st´lpci, prvú hodnotu v treťom stĺpci a ak spĺňajú podmienku tak prvá hodnota v 4.stĺpci sa priradí do určitej premennej....

        • RE: Perl 30.03.2014 | 11:50
          Avatar WlaSaTy   Návštevník

          Ak už máš načítaný súbor do matice, tak Ti stačí podmienka IF.

          • RE: Perl 30.03.2014 | 12:11
            Avatar Začiatočník   Návštevník

            no len neviem ako to mám spraviť, keď chcem, aby skontrolovalo každý riadok?..teda že prvá hodnota v každom riadku sa skontroluje....potom druhá hodnota v každom riadku...tretia hodnota v každom riadku....a ak v niektorom riadku sedia všetky tri hodnoty, tak 4. priradí danú hodnotu: takto mi to skontroluje len prvý riadok a chcem aby to fungovalo pre celý súbor. if ($uhly[1] == 21 and $uhly[2] == 22 and $uhly[3] == 23) { $u8 = $uhly[4]; } else { print "uhol nebol merany\n"; }

    • RE: Perl 30.03.2014 | 12:21
      Avatar Začiatočník   Návštevník

      skúsila som to zapísať, vo vrchnej časti je len načítanie do súboru. Zasekla som na konci pri tom testovaní, neviete mi poradiť ak oto mám zapísať, aby to bolo dobre?

      • RE: Perl 30.03.2014 | 16:20
        Avatar wamba   Návštevník
        #!/usr/bin/perl
        use 5.010;
        use strict;
        use warnings;
        
        our $VERSION = 0.001;
        
        while (<>) {
            chomp;
            my ( $stanovisko, $lavy_ciel, $pravy_ciel, $merany_uhol ) =
              split / \s+ /xms;
        
            if ( $stanovisko == 21 and $lavy_ciel == 22 and $pravy_ciel == 23 ) {
                say $merany_uhol;
            }
            else {
                say 'uhol nebol merany';
            }
        }

        Tak třeba takhle. Načte data se standarntího vstupu a tiskne na standartní výstup (nerad používám open, close, když nemusím).

        Jinak používáte zastaralou nebo nestandartní příručku, některé konstrukce se takto nedoporučují zapisovat. Zkuste si na váš program spustit perlcritic. U mého výše uvedeného kódu si ztěžuje na to, že 21, 22, 23 jsou magická čísla a odkáže mě na ValuesAndExpressions::ProhibitMagicNumbers.

        Na perl tutorial lze nalézt doporučenou literatůru. Já doporučuji začít s Learn Perl in about 2 hours 30 minutes a pak pokračovat s Modern Perl: The Book, česky pak vycházel pěkný seriál článků na linuxsoft.

        • RE: Perl 30.03.2014 | 21:17
          Avatar Začiatočník   Návštevník

          ďakujem, pomohlo mi to. Áno mám asi staršiu príručku je z roku 2000(Satrapa Pavel). Začala som si prezerať tie články na linuxsoft sú dobré. Ak by som sa ešte mohla opýtať, ako by sa dali naprogramovať tie derivácie? Nemám tam ťažké funkcie len sinusy a súčiny. Vedel by si mi niečo poradiť?

          • RE: Perl 30.03.2014 | 21:30
            Avatar Začiatočník   Návštevník

            A potom ešte mám jednu otázku. Mám asi 80 roznych rovnic. Ako zapíšem podmienku, že ak premenné v rovnici nie sú definované, tak sa rovnica preskočí a pokračuje sa na ďalšiu? A zároveň, aby sa tá rovnica, ktorá má definované všetky premenné uložila do nejakého poľa?

            • RE: Perl 31.03.2014 | 14:45
              Avatar bedňa antiX, Devuan, LegacyIce  Administrátor
              if ($x && $y) {
                print '$x + $y';
                push (@functions, '$x + $y');
              }
              
              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org