przygotował Dariusz Wardowski 1 Paradygmaty programowania - Laboratorium 13 (Prolog, cz. III)
Zadanie 1. Napisz predykat o nazwie powtorz, działający w następujący sposób:
?- powtorz(‘Ale proste!!!’, 5).
Ale proste!!!
Ale proste!!!
Ale proste!!!
Ale proste!!!
Ale proste!!!
Zadanie 2. Napisz predykat kalkulator, który dla podanych przez użytkownika dwóch liczb zwróci ich sumę, różnicę oraz iloczyn.
Przykładowe działanie:
?- kalkulator.
Witamy w super programie Kalkulator!
Podaj a: 10.
Podaj b: 14.
suma: 24 różnica: -4 iloczyn: 140 true .
Wskazówki:
Predykat read służy do wczytywania danych ze standardowego wejścia.
Predykat nl – przejście do nowej linii
write(‘tekst’) – wypisuję tekst na standardowe wyjście (ekran).
Zadanie 3. Używając ! (przerwanie nawracania), zmodyfikuj program z zadania 1, aby program działał w pętli:
?- kalkulator.
Witamy w super programie Kalkulator!
Podaj a:15.
Podaj b:-1.
suma: 14 różnica: 16 iloczyn: -15
liczysz dalej [tak/nie]?tak.
Witamy w super programie Kalkulator!
Podaj a:7.
Podaj b:3.
suma: 10 różnica: 4
przygotował Dariusz Wardowski 2 iloczyn: 21
liczysz dalej [tak/nie]?nie.
true.
Zadanie 4. Napisz program, który po podaniu liczby naturalnej n zapisze do pliku o nazwie przekazanej jako argument ciąg liczb o wartościach 1, 2, 6, 24, …, n!.
silnie(6,’silnie.txt’).
Wskazówka
Poniżej przedstawiam prosty kod zapisujący tekst do pliku:
zapisz_do_pliku :-
open('plik.txt',write,X), current_output(SW),
set_output(X),
write('Sprawdź plik o nazwie plik.txt'), close(X),
set_output(SW).
W przypadku operacji odczytu używamy odpowiednio: read, current_input, set_input.
Zadanie 5. Napisz program, który dla podanej tablicy zapisze do pliku tę tablicę oraz element maksymalny i minimalny tej tablicy. Np.
minmax([1,5,4,2,3],’minmax.txt’).
Zadanie 6. Napisz program, który po odczytaniu z danego pliku liczby n, dopisze (atrybut append) do tego samego pliku listę n kolejnych kwadratów.
np.
?- kwadraty(‘plikZLiczba.txt’).
Zawartość plikZLiczba.txt
5. %kropka jest konieczna
[25,16,9,4,1]