Portál AbcLinuxu, 8. května 2025 15:45

Dotaz: Kalkulačka v perlu

22.8.2012 12:54 Jack Hokus | skóre: 34 | blog: LostHeaven
Kalkulačka v perlu
Přečteno: 477×
Odpovědět | Admin
Příloha:
Ahoj,

trochu se učím perl. Jsem naprostý začátečník. Jako cíl jsem si zvolil vytvoření kalkulačky. Zatím se mi podařilo úspěšně sečíst dvě čísla.

Ale zatím se mi nepodařilo přijít na to, jak ošetřit situaci, kdy bude potřeba sečíst více čísel najednou.

Prošel jsem pár článků o perlu a první co mne napadlo bylo použít pole, ale přiznávám dobrovolně, nepochopil jsem to. Prošel jsem dost dalších návodů, ale spíš než cokoli jiného jsem z nich ještě zmatenější. Můžete mi prosím poradit? Doufám, že se zase chytím.

Petr

PS: kód je v příloze
http://www.jackhokus.cz/

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 22.8.2012 15:14 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Třeba takhle:
!/usr/bin/perl -w
use strict;
use warnings;
use 5.010;

say
'Tento program má jediný účel, sečist  čísla. Prosím, zadej čísla a potom (CTRL-d)';

my $soucet;

while ( my $cislo = <> ) {
    chomp $cislo;
    say "Vložené číslo bylo $cislo";
    $soucet += $cislo;
}

say "Součet čísel  je $soucet";
This would have been so hard to fix when you don't know that there is in fact an easy fix.
22.8.2012 15:29 Jack Hokus | skóre: 34 | blog: LostHeaven
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
Dobrý den,

dík za radu. Použít cyklus mne nenapadlo.

Dík moc

Petr
http://www.jackhokus.cz/
12.10.2012 21:45 tom
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
perl -MList::Util -e 'print "Soucet: ", List::Util::sum(<>), "\n"'
1
2
3
4
Soucet: 10
1.9.2012 14:54 smazáno | skóre: 18 | blog: smazáno
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hele, totalne off-topic, ale ... ucit se perl v roce 2012? Vzdyt perl je uz za zenitem.
12.10.2012 11:41 Kamil
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
Pro některé typy úloh (zpracování textu, některé systémové skripty..) je perl stále tím nejlepším nástrojem. Jsou tu živé a zajímavé projekty (mě osobně velice zaujal třeba Moose nebo Mojolicious), je tu CPAN. Na unixových systémech je perl všudypřítomný. A kromě toho, někteří lidi v něm prostě (z různých důvodů) rádi programují a dávají mu přednost před konkurencí, která má být údajně víc IN.
pepe_ avatar 12.10.2012 16:34 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Kalkulačka v perlu

A co je mimo děravej Javy COOL teď ?

13.10.2012 11:00 Kit
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
Řekl bych, že nejvíc cool bude teď asi Python. Ale Perl tu má stále své místo a ještě dlouho bude mít.
Brilantní modř avatar 13.10.2012 15:36 Brilantní modř | skóre: 14
Rozbalit Rozbalit vše Re: Kalkulačka v perlu

JavaScript, Ruby, Python, Java, PHP… Ale Perl je devátý nejpopulárnější jazyk na GitHub.com.

Brilantní modř avatar 12.10.2012 18:24 Brilantní modř | skóre: 14
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Kalkulačka v Perlu:

#!/usr/bin/perl
print("> ");
while (<>) {
    chomp();
    print(eval(), "\n> ");
}

A není třeba vytvářet něco složitějšího. Mimochodem: Perl je nejlepší jazyk, jen tak dál, pokračuj a uvidíš sám, jak si Perl oblíbíš. Nenech se zastrašit tím, že je údajně out, za zenitem nebo podobnými nesmysly.

martin-ux avatar 13.10.2012 10:30 martin-ux | skóre: 18 | Bratislava
Rozbalit Rozbalit vše Re: Kalkulačka v perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
caf,

podla mna zbytocne pouzivas "say", klasicke print/printf je stara dobra klasika. ostatne kvoli tomu si musel pouzit use 5.010 a tym si (podla mna zbytocne) specifikoval aka najnizsia verzia perlu musi byt. Moja verzia tvojho scitania:
#!/usr/bin/perl

use warnings;
use strict;

my $i = 0;
while (<>) {
        $i += $1 if (/(\d+)\n/);   # scitaj len vtedy, ak riadok je jedna az viac cifier + \n
}
print "total: $i\n";
@luv: <irony> tak urciteeee</irony>
..when you do things right, people won't be sure you've done anything at all..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.