Perl/Ćwiczenie 1 odpowiedzi

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);


Treść ćwiczenia