Forum studentów Informatyki Zaocznej na Uniwersytecie Opolskim

Forum studentów Informatyki Zaocznej na Uniwersytecie Opolskim


#1 2010-11-07 18:40:23

Andrzej

Użytkownik

Zarejestrowany: 2008-10-13
Posty: 50
Punktów :   

Okno - TurboProlog

Kod programu z użyciem okna.

DATABASE
osoba(string,string)
PREDICATES
pytanie1

zawieranie(string,string)
/* zawieranie(T1,T2) – tekst T1 zawarty jest w tekście T2, np. tekst „bc” zawarty jest
w tekście „aabcd” */
podstawienie(string,string,string,string)
/* podstawienie(T1,T2,T3,T4) – tekst T4 jest wynikiem podstawienia tekstu T1 za
tekst T2 w tekście T3 na pierwszym miejscu, na którym tekst T2 występuje w tekście T3. Np.
tekst „aabbc” jest wynikiem podstawienie tekstu „a” za tekst „b” na pierwszym miejscu w
tekście „abbbc” , gdzie tekst „b” występuje */
poczatek(string,string,string)
/* poczatek(T1,T2,P) – tekst P jest częścią tekstu T2 poprzedzającą występowanie w
nim tekstu T1 */
koniec(string,string,string)
/* koniec(T1,T2,P) – tekst P jest częścią tekstu T2 następującą po występowaniu w nim
tekstu T1 */
podstawienie_globalne(string,string,string,string)
/* podstawienie_globalne(T1,T2,T3,T4) – tekst T4 jest wynikiem podstawienia
tekstu T1 za tekst T2 w tekście T3 w kaSdym miejscu, na którym tekst T2 występuje w
tekście T3. Np. tekst „aaaac” jest wynikiem podstawienie tekstu „a” za tekst „b” w kaSdym
miejscu w tekście „abbbc” , gdzie tekst „b” występuje */
cyfra(string)
/* predykat cyfra(T)rozpoznaje wśród łańcuchów znaków cyfry: „0”, „1”, ...”9” */
ciag_cyfr(string)
/* predykat ciag_cyfr(T)rozpoznaje wśród łańcuchów znaków ciągi cyfr: np. „019” */
ciag_cyfr_w_tekscie(string,string,string)
/* ciag_cyfr_w_tekscie(T,L,R) – L jest ciągiem cyfr na początku tekstu T, a R jest
pozostałą częścią tekstu T */
napis_liczby(string)
/* predykat napis_liczby(T) rozpoznaje wśród ciągów cyfr napisy liczb, tj. ciągi cyfr
nie zaczynające się od cyfry „0” */
napis_liczby_w_tekscie(string,string,string) /* - predykat rozpoznaje
na początku tekstu napis liczby oraz wyróSnia pozostałą część takstu */
CLAUSES
osoba("","").
pytanie1:- write("Jak masz na imie"),nl,
readln(X),nl,
write("Ile masz lat"),nl,
readln(Y),nl,
asserta(osoba(X,Y)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ZAWIERANIE TEKSTÓW
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
zawieranie("","").
zawieranie(T1,T2):-
T2<>"",concat(T1,_,T2);
T2<>"",frontStr(1,T2,_,N_T2),
zawieranie(T1,N_T2).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
koniec(T1,T2,K):-
T2<>"",concat(T1,K,T2),!;
T2<>"",frontStr(1,T2,_,N_T2),
koniec(T1,N_T2,K).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
poczatek(T1,T2,P):-
koniec(T1,T2,K),concat(T,K,T2),concat(P,T1,T).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PODSTAWIANIE TEKSTU ZA TEKST W TEKŚCIE %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
podstawienie(T1,T2,T3,T4):-
T1<>T2, T3<>"",
poczatek(T2,T3,P),koniec(T2,T3,K),!,
concat(P,T1,T),concat(T,K,T4).
podstawienie_globalne(T1,T2,T3,T4):-
podstawienie(T1,T2,T3,N_T3),!,
podstawienie_globalne(T1,T2,N_T3,T4);
T4=T3,!.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% NAPIS LICZBY %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cyfra("0"). cyfra("1"). cyfra("2"). cyfra("3"). cyfra("4").
cyfra("5"). cyfra("6"). cyfra("7"). cyfra("8"). cyfra("9").
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rozpoznawanie napisu jako ciągu cyfr
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ciag_cyfr(X):-
X<>"", cyfra(X),!;
X<>"", cyfra(C), concat(C,N_X,X),cyfra(N_X),!;
X<>"", cyfra(C), concat(C,N_X,X),!, napis_liczby(N_X).
napis_liczby(X):-
ciag_cyfr(X),frontStr(1,X,C,_),C<>"0",!.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Rozpoznawanie na początku napisu ciągu cyfr
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ciag_cyfr_w_tekscie("","","").
ciag_cyfr_w_tekscie(T,L,R):-
T<>"",ciag_cyfr(T),L=T,R="",!;
T<>"", frontStr(1,T,L,R),cyfra(L),
frontStr(2,T,L1,_),not(ciag_cyfr(L1));
T<>"", frontStr(1,T,C,N_T), cyfra(C),
ciag_cyfr_w_tekscie(N_T,N_L,R),
concat(C,N_L,L).
napis_liczby_w_tekscie(T,L,R):-
ciag_cyfr_w_tekscie(T,L,R), frontStr(1,L,C,_),C<>"0",!.

GOAL makewindow(4,10,25,"Pytanie1",0,0,25,38),
pytanie1,
osoba(X,Y),write("Imie="), write(X),nl,
write("Wiek="),write(Y),nl, retractAll(osoba(_,_)),
asserta(osoba("","")).

Offline

 

#2 2010-11-10 17:08:24

anubiss

Użytkownik

6888343
Skąd: .
Zarejestrowany: 2008-10-11
Posty: 65
Punktów :   

Re: Okno - TurboProlog

Jak programy w latach 70

Podobno na zaliczenie będzie trzeba zrobić z tego taśmę którą przetworzy ODRA

http://dcserwis.pl/gfx/odra/Odra_1001.jpg


Pogotowie Komputerowe REAKTOR - Częstochowa
www.pogotowie-komputerowe.info
www.vrsolutions.com.pl

Offline

 

#3 2010-11-12 07:35:56

willy

Użytkownik

Zarejestrowany: 2008-10-19
Posty: 33
Punktów :   

Re: Okno - TurboProlog

Nie no taki wypas

http://upload.wikimedia.org/wikipedia/commons/4/4e/Eniac.jpg

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.pokemon-adventure22.pun.pl www.zmierzch-twilight.pun.pl www.bleachx.pun.pl www.granarutofan.pun.pl www.medyk2004.pun.pl