Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :- dynamic osoba/3.
- programDatabase:-
- nl,
- wirte('1 - wyswietlanie biezacego stanu bazy danych'), nl,
- write('2 - dopisanie nowej osoby'), nl,
- write('3 - usuniecie osoby'), nl,
- write('4 - obliczenie sredniego wieku'), nl,
- write('q - koniec pracy'),
- nl, nln, nl,
- write('PODAJ OPCJE [1-4,q]:'), get_char(Ch), get_char(_),
- opcja(Ch), programDatabase.
- opcja('1'):- wyswietl, !.
- opcja('2'):- nowaOsoba,!.
- opcja('3'):- usunOsobe, !.
- opcja('4'):- sredniWiek,!.
- opcja('q'):-!, fail.
- opcja( _ ):- write('Zly numer opcji ([1-4,q]'),nl.
- wyswietl:- nl, write('Elementy BAZY DANYCH:'), nl,
- osoba(Imie, Nazwisko, Wiek),
- write(Imie), write(' '),
- write(Nazwisko), write(' '),
- write(Wiek), write(' '),
- fail.
- wyswietl:- nl.
- nowaOsoba:-
- nl,
- write('Podaj Imie:'), getNazwe(Imie),
- write('Podaj Nazwisko:'), getNazwe(Nazwisko),
- write('Podaj Wiek:'), getLiczbe(Wiek),
- assertz(osoba(Imie, Nazwisko, Wiek)),
- nl.
- getNazwe(Nazwa):-
- get_char(Ch),
- getReszte(Ch,ListaZnakow),
- atom_chars(Nazwa,ListaZnakow),!.
- getReszte('\n',[]).
- getReszte(' ', []).
- getReszte(Ch, [Ch|Ogon]):-
- get_char(_Ch),
- getReszte(_Ch,Ogon).
- getLiczbe(Liczba) :-
- get_char(Ch),
- getReszteLiczby(Ch, ListaCyfr),
- number_charts(Liczba,ListaCyfr),!.
- getReszteLiczby('\n', []).
- getReszteLiczby(Ch, [Ch|ListaCyfr]) :-
- czyCyfra(Ch),
- get_char(_Ch),
- getReszteLiczby(_Ch, ListaCyfr).
- czyCyfra('1'):-!.
- czyCyfra('2'):-!.
- czyCyfra('3'):-!.
- czyCyfra('4'):-!.
- czyCyfra('5'):-!.
- czyCyfra('6'):-!.
- czyCyfra('7'):-!.
- czyCyfra('8'):-!.
- czyCyfra('9'):-!.
- czyCyfra('0'):-!.
- czyCyfra(Ch):-nl, write('Znak: '), write(Ch), write(' nie jest cyfra!'), !, fail.
- usunOsobe :-
- nl,
- write("Podaj imie usuwanej osoby"), getNazwe(Imie),
- retract(osoba(Imie, _Nazwisko, _Wiek)),
- !.
- usunOsobe :- nl, write('Brak takiego elementu').
- sredniWiek :-
- findall(Wiek, osoba(_Imie, _Nazwisko, Wiek), Lista),
- obliczSume(Suma,Lista),
- obliczLiczbe(Liczba,Lista),
- ( Liczba > 0,
- Srednia is Suma/Liczba,
- nl,
- write('Sredni wiek wynosi: '), write(Srednia),
- nl, !
- ); /* ; - oznacza alternatywe */
- ( nl, nl,
- write(' Baza danych jest pusta ->'),
- write(' Obliczanie sredniej nie jest mozliwe')
- ).
- obliczSume(0, []).
- obliczSume(Suma, [Glowa|Ogon]):-
- obliczSume(SumaOgona,Ogon),
- Suma is SumaOgona + Glowa.
- obliczLiczbe(0, []).
- obliczLiczbe
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement