Perl/Ćwiczenie 1 odpowiedzi
Wygląd
< Perl
A. Zaczynamy, wyświetlanie tekstu
[edytuj]#!/usr/bin/perl print "Witaj świecie!\n";
B. Wyświetlanie liczb
[edytuj]#!/usr/bin/perl # Rozpoczęcie definiowania wartości zmiennych $licznik = 4000; # To jest licznik $mianownik = 7; # To jest mianownik $odp1 = $licznik / $mianownik; # Odpowiedź na część i $cyfr_dziesietn=3; # Koniec definiowania wartości zmiennych print "$licznik podzielony przez $mianownik to: $odp1\n"; $zmod_licz = $licznik * 10**$cyfr_dziesietn; # Zmodyfikowany licznik $reszta_z_dzielenia = $zmod_licz % $mianownik; $licz_dziel_mian = ($zmod_licz - $reszta_z_dzielenia); # $licz_dziel_mian jest podzielny przez mianownik $bez_cyfr_dziesietnych = $licz_dziel_mian / $mianownik; # Ta liczba nie ma miejsc dziesiętnych $odp2 = $bez_cyfr_dziesietnych / 10**$cyfr_dziesietn; # Odpowiedź na część ii print "$licznik podzielony przez $mianownik z 3 cyframi dziesiętnymi: $odp2\n"; # zaokragla w gore jesli reszta z dzielenia / mianownik jest > 0.5 $zaokr = $reszta_z_dzielenia / $mianownik; if ($zaokr > 0.5) { $bez_cyfr_dziesietnych += 1; } $odp3 = $bez_cyfr_dziesietnych / 10**$cyfr_dziesietn; # Odpowiedź do części iii print "$licznik podzielony przez $mianownik z 3 cyframi dziesiętnymi, po zaokrągleniu: $odp3\n"; print "Liczba z trzema wiodącymi zerami: "; print "0" x 3 . "$odp3\n"; # Odpowiedź do części iv if ( $odp1 >= 0 ) { print "Liczba jest dodatnia (+)\n"; # Odpowiedź do części v, część pierwsza } else { print "Liczba jest ujemna(-)\n"; # Odpowiedź do części v, część druga }
C. Funkcje
[edytuj]Funkcja obliczająca pierwiastki równania kwadratowego (jeśli istnieją):
sub znajdz_delte_i_wyniki { my($x,$y,$z) = @_; if ($x != 0) { $delta = ($y**2 - (4 * $x * $z)); if ( $delta < 0 ) { print "b^2-4ac jest mniejsze niż zero. Funkcja nie ma rzeczywistych miejsc zerowych.\n\n"; print "Koniec programu. Pa pa, Kaziu.\n\n" } elsif ($delta == 0) { $pierwiastek = 0 - $y / (2 * $x); print "b^2-4ac = 0. Jest tylko jeden pierwiastek: " . $pierwiastek . "\n\n"; print "Pa pa, Kaziu.\n\n"; } elsif ($delta > 0) { print "b^2-4ac > 0. Są dwa pierwiastki.\n\n"; $pierwiastek1 = ((0 - $y) - ($delta)**(0.5)) / (2 * $x); $pierwiastek2 = ((0 - $y) + ($delta)**(0.5)) / (2 * $x); print "Pierwszy pierwiastek, x1 = " . $pierwiastek1 . "\n\n"; print "Drugi pierwiastek, x2 = " . $pierwiastek2 . "\n\n"; print "Pa pa, Kaziu.\n\n"; } } else { print "a = 0. To nie jest równanie kwadratowe.\n"; print "Pa pa, Kaziu.\n"; } }
D. Połączenie wszystkiego
[edytuj]Pozostała część programu:
print "Program pobiera trzy liczby (a, b i c) jako współczyniki\n"; print "równania kwadratowego, oblicza pierwiastki, i wyświetla\n"; print "je dla Ciebie na ekranie.\n\n"; print "Proszę podać wartość liczby a i wcisnąć <ENTER>: "; $a = <STDIN>; print "\n"; print "Proszę podać wartość liczby b i wcisnąć <ENTER>: "; $b = <STDIN>; print "\n"; print "Proszę podać wartość liczby c i wcisnąć <ENTER>: "; $c = <STDIN>; print "\n"; znajdz_delte_i_wyniki($a,$b,$c);