mac12
/*chiede1 */ /* richiesta dati e attivazione con menu inserito in programma */
ese:- whide(chiede1),wfront(user),nl, write('seleziona opzione desiderata'),nl, write('1....somma'),nl, write('2....differenza'),nl, write('3....prodotto'),nl, write('4....quoziente'),nl, write('5....fine'),nl, prompt_read(['scrivi numero opzione'],N),nl, verifica(N).
verifica(1):-nl,somma. verifica(2):-nl,differenza. verifica(3):-nl,prodotto. verifica(4):-nl,quoziente. verifica(5):-nl,fine.
somma:-nl, write('chiamata somma'),nl, A=5,B=6,Somma is A+B,write(Somma),nl, message('premi enter'), ese.
differenza:-nl, write('chiamata differenza'),nl, A=30,B=20,Differenza is A-B,write(Differenza),nl, message('premi enter'), ese.
prodotto:-nl, write('chiamata prodotto'), message('premi enter'), ese.
quoziente:-nl, write('chiamata quoziente'), message('premi enter'), ese.
fine:-nl, write('chiamata per fine operazione'), message('premi enter'), uscita.
uscita:- wfront(chiede1).
/* chiede2 */ /* richiesta dati e attivazione con menu inserito in programma */
ese:-whide(chiede1),ese1.
verifica(1):-nl,somma. verifica(2):-nl,differenza. verifica(3):-nl,prodotto. verifica(4):-nl,quoziente. verifica(5):-nl,fine.
somma:-nl, write('chiamata somma'),nl, A=5,B=6,Somma is A+B,write(Somma),nl, message('premi enter'), wfront(menu),ese1.
differenza:-nl, write('chiamata differenza'),nl, A=30,B=20,Differenza is A-B,write(Differenza),nl, message('premi enter'), wfront(menu),ese1.
prodotto:-nl, write('chiamata prodotto'), message('premi enter'), wfront(menu),ese1.
quoziente:-nl, write('chiamata quoziente'), message('premi enter'), wfront(menu),ese1.
fine:-nl, write('chiamata per fine operazione'), message('premi enter'), uscita.
uscita:- wfront(chiede1).
ese1:- whide(chiede1),wfront(user),nl, write('seleziona opzione desiderata'),nl, write('1....somma'),nl, write('2....differenza'),nl, write('3....prodotto'),nl, write('4....quoziente'),nl, write('5....fine'),nl, prompt_read(['scrivi numero opzione'],N),nl, verifica(N).
/* chiede3 */ /* richiesta dati e attivazione con menu inserito in programma */ /* legge generale dei gas in funzione di dati da inserire */
ese:-whide(chiede1),ese1.
verifica(1):-nl,pressione. verifica(2):-nl,volume. verifica(3):-nl,temperatura. verifica(4):-nl,pesomolecolare. verifica(5):-nl,massa. verifica(6):-nl,fine.
pressione:-nl, prompt_read(['volume in litri='],Volume),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['peso molecolare='],Pesom),nl, Pressione is (Massa*0.082*Temperatura)/(Volume*Pesom), write(['pressione in atmosfere=',Pressione]),nl, message('premi enter'), wfront(menu),ese1.
volume:-nl, prompt_read(['pressione in atmosfere='],Pressione),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['peso molecolare='],Pesom),nl, Volume is (Massa*0.082*Temperatura)/(Pressione*Pesom), write(['volume in litri=',Volume]),nl, message('premi enter'), wfront(menu),ese1.
temperatura:-nl, prompt_read(['volume in litri='],Volume),nl, prompt_read(['pressione in atmosfere='],Pressione),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['peso molecolare='],Pesom),nl, Temperatura is (Pressione*Volume*Pesom)/(Massa*0.082), write(['temperatura in kelvin=',Temperatura]),nl, message('premi enter'), wfront(menu),ese1.
pesomolecolare:-nl, prompt_read(['volume in litri='],Volume),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['pressione in atmosfere='],Pressione),nl, Pesom is (Massa*0.082*Temperatura)/(Pressione*Volume), write(['peso molecolare=',Pesom]),nl, message('premi enter'), wfront(menu),ese1.
massa:- prompt_read(['volume in litri='],Volume),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['pressione in atmosfere='],Pressione),nl, prompt_read(['peso molecolare='],Pesom),nl, Massa is (Pressione*Volume*Pesom)/(0.082*Temperatura), write(['massa in grammi=',Massa]),nl, message('premi enter'), wfront(menu),ese1.
fine:-nl, write('chiamata per fine operazione'), message('premi enter'), uscita.
uscita:- wfront(chiede1).
ese1:- whide(chiede1),wfront(user),nl, write('seleziona opzione desiderata'),nl, write('indicare incognita da trovare'),nl, write('1....pressione ATMOSFERE'),nl, write('2....volume LITRI'),nl, write('3....temperatura KELVIN'),nl, write('4....peso molecolare'),nl, write('5....massa in grammi'),nl, write('6....fine'),nl, prompt_read(['scrivi numero opzione'],N),nl, verifica(N).
/* chiede4 */ /* richiesta dati e attivazione con menu inserito in programma */ /* legge generale dei gas in funzione di dati da inserire */
ese:-whide(chiede1),wkill(risposte), wcreate(risposte,1,30,30,200,400),ese1.
verifica(1):-nl,pressione. verifica(2):-nl,volume. verifica(3):-nl,temperatura. verifica(4):-nl,pesomolecolare. verifica(5):-nl,massa. verifica(6):-nl,fine.
pressione:-nl, prompt_read(['volume in litri='],Volume),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['peso molecolare='],Pesom),nl, Pressione is (Massa*0.082*Temperatura)/(Volume*Pesom), fw(risposte,['~M',c(40),f(10,5)],['pressione in atmosfere=',Pressione]),nl, message('premi enter'), wfront(menu),ese1.
volume:-nl, prompt_read(['pressione in atmosfere='],Pressione),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['peso molecolare='],Pesom),nl, Volume is (Massa*0.082*Temperatura)/(Pressione*Pesom), fw(risposte,['~M',c(40),f(10,5)],[volume_in_litri,Volume]),nl, message('premi enter'), wfront(menu),ese1.
temperatura:-nl, prompt_read(['volume in litri='],Volume),nl, prompt_read(['pressione in atmosfere='],Pressione),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['peso molecolare='],Pesom),nl, Temperatura is (Pressione*Volume*Pesom)/(Massa*0.082), fw(risposte,['~M',c(40),f(10,5)],[temperatura,Temperatura]),nl, message('premi enter'), wfront(menu),ese1.
pesomolecolare:-nl, prompt_read(['volume in litri='],Volume),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['massa in grammi='],Massa),nl, prompt_read(['pressione in atmosfere='],Pressione),nl, Pesom is (Massa*0.082*Temperatura)/(Pressione*Volume), fw(risposte,['~M',c(40),f(10,5)],[peso_molecolare,Pesom]),nl, message('premi enter'), wfront(menu),ese1.
massa:- prompt_read(['volume in litri='],Volume),nl, prompt_read(['temperatura in kelvin='],Temperatura),nl, prompt_read(['pressione in atmosfere='],Pressione),nl, prompt_read(['peso molecolare='],Pesom),nl, Massa is (Pressione*Volume*Pesom)/(0.082*Temperatura), fw(risposte,['~M',c(40),f(10,5)],[massa_in_grammi,Massa]),nl, message('premi enter'), wfront(menu),ese1.
fine:-nl, write('chiamata per fine operazione'), message('premi enter'), uscita.
uscita:- wfront(chiede1).
ese1:- whide(chiede1),wfront(user),nl, write('seleziona opzione desiderata'),nl, write('indicare incognita da trovare'),nl, write('1....pressione ATMOSFERE'),nl, write('2....volume LITRI'),nl, write('3....temperatura KELVIN'),nl, write('4....peso molecolare'),nl, write('5....massa in grammi'),nl, write('6....fine'),nl, prompt_read(['scrivi numero opzione'],N),nl, verifica(N).