Podstawowe I/O Liczby Informatyka Jolanta Bachan
Implementacja algorytmów, cd. I/O: Keyboard in, screen out, no loops Jolanta Bachan 2
Implementacja algorytmów, cd. I/O: Keyboard in, screen out, no loops print "Give a: " ; $a = <STDIN> ; print "Give b: " ; $b = <STDIN> ; print "Give c: " ; $c = <STDIN> ; $sum = $a + $b + $c ; print "The sum of a, b and c is $sum." ; Jolanta Bachan 3
Suma a, b, c START a, b, c ; sum = 0 ; sum = a+b+c ; Print sum ; sum Jolanta Bachan 4
Implementacja algorytmów, cd. I/O: Keyboard in, screen out, while loop (pętla while kończy działanie, kiedy sprawdzane wyrażenie jest fałszywe) Jolanta Bachan 5
Znajdź liczbę największą spośród pięciu liczb? Jolanta Bachan 6
START Give n ; n = YES Znajdź liczbę największą spośród pięciu liczb NO max = n ; max = n ; i = 1 ; Print No input. ; STOP i <= 5 NO Print max ; max YES Give n ; i = i + 1 ; NO max < n YES max = n ; Jolanta Bachan 7
print "Give a number: "; $n = <STDIN> ; if ($n == "" ) { print "No input."; } else { $max = $n ; $i = 1 ; while ($i < 5) { Znajdź liczbę największą spośród pięciu liczb print "Give a number: " ; $n = <STDIN> ; $i++ ; if ($max < $n) { $max = $n ; }} print "The max number is: $max" ;} Jolanta Bachan 8
Wyjście do pliku I/O: Keyboard in, file out (i.e. file handles, print), while loop Jolanta Bachan 9
Wyjście do pliku I/O: Keyboard in, file out (i.e. file handles, print), while loop Print OUT function Ćwiczenie: Napisz program obliczający obwód okręgu. Program ma pobierać wartość promienia od użytkownika programu. (Wzór na obwód wynosi 2π razy promień.) Jolanta Bachan 10
Wyjście do pliku I/O: Keyboard in, file out (i.e. file handles, print), while loop Print OUT function Ćwiczenie: Napisz program obliczający obwód okręgu. Program ma pobierać wartość promienia od użytkownika programu. (Wzór na obwód wynosi 2π razy promień.) Następnie drukuj do nowego pliku. Jolanta Bachan 11
Wyjście do pliku I/O: Keyboard in, file out (i.e. file handles, print), while loop Print OUT function Ćwiczenie: Napisz program obliczający obwód okręgu. Program ma pobierać wartość promienia od użytkownika programu. (Wzór na obwód wynosi 2π razy promień.) Następnie drukuj do nowego pliku. open (OUT, ">circumference.txt") ; print OUT "The circumference is: $circumference\n"; Jolanta Bachan 12
Wyjście do pliku I/O: Keyboard in, file out (i.e. file handles, print), while loop Print OUT function Ćwiczenie: Napisz program obliczający obwód okręgu. Program ma pobierać wartość promienia od użytkownika programu. (Wzór na obwód wynosi 2π razy promień.) Następnie drukuj do nowego pliku. open (OUT, ">circumference.txt") ; print OUT "The circumference is: $circumference\n"; Jolanta Bachan 13
Dopisywanie do pliku open (OUT, ">>circumference.txt") ; print OUT "The circumference is: $circumference\n"; close (OUT) ; Jolanta Bachan 14
Dopisywanie do pliku open (OUT, ">>circumference.txt") ; print OUT "The circumference is: $circumference\n"; close (OUT) ; Ćwiczenie: Uruchom kilkakrotnie programy circumfenrence_part2.pl i circumference_part3.pl i zobacz, co się dzieje z plikiem wyjściowym. Jolanta Bachan 15
Zamykanie pliku open (OUT, ">>circumference.txt") ; print OUT "The circumference is: $circumference\n"; close (OUT) ; Jolanta Bachan 16
die die jest wykonywane, kiedy rezultat open jest fałszywy open (INPUT, circumference.txt ) die Cannot open circumference.txt: $! ; - lub logiczne $! - zmienna, która przechowuje tekst związany z najbardziej bieżącym będem systemu, np.: Cannot open circumference.txt: No such file or directory at C:\Documents and Settings\aaa\Pulpit\open.pl at line 1. Jolanta Bachan 17
Wejście z pliku Operator diamentowy <> - operator diamentowy otrzymuje dane z pliku, który jest podany w linii komand lub w programie. Ćwiczenie 1: Utwórz program whilediamond.pl. while (<>) { } print $_ ; Jolanta Bachan 18
Wejście z pliku Operator diamentowy <> - operator diamentowy otrzymuje dane z pliku, który jest podany w linii komand lub w programie. Ćwiczenie 2: Utwórz program z procedurą, która otworzy plik, przeczyta dane z pliku i wydrukuje dane na ekranie. open (IN, myfile.txt ) die Cannot open myfile.txt: $! ; while (<IN>) { } print $_ ; Jolanta Bachan 19
I/O do pliku Pamiętaj, aby zamknąć otwarty plik, kiedy operacja na nim wykonywana jest zakończona!!! Jolanta Bachan 20
Ćwiczenie 1 Zmodyfikuj program obliczający sumę pięciu liczb tak, aby składniki sumy były pobierane z pliku. Dodatkowo dodaj procedurę obliczania średniej. Suma i średnia mają być drukowane do pliku zewnętrznego. Jolanta Bachan 21
Ćwiczenie 2 Zmodyfikuj program obliczający sumę pięciu liczb tak, aby składniki sumy były pobierane z pliku. Dodatkowo dodaj procedurę obliczania średniej. Suma i średnia mają być drukowane do pliku zewnętrznego. Teraz dodaj procedurę, która będzie znajdowała w pliku pewną liczbę, np. 1, i jeśli taką znajdzie wydrukuje na ekranie komunikat: 1 is at line... (numer wiersza) Jolanta Bachan 22
Do zobaczenia za tydzień! Jolanta Bachan 23