:- use_module(library(clpr)).

% Schaltkreiseanalys: Strom und Spannung in elektrischen Schaltkreisen

sk(wider(R),U,I) :- { U = R*I }.

sk(reihe(S1,S2), U, I) :-
        sk(S1,U1,I1),
        sk(S2,U2,I2),
        {U = U1+U2, I=I1, I=I2}.

sk(parallel(S1,S2), U, I) :-
        sk(S1,U1,I1),
        sk(S2,U2,I2),
        {I = I1+I2, U=U1, U=U2}.

% Hypothekenberechnung
% Parameter:
% P: Kapital
% T: Laufzeit in Monaten
% IR: monatliche Zinssatz (z.B. 0.01)
% B: Restbetrag nach Ende der Laufzeit
% MP: monatliche Rueckzahlung

mortgage(P,T,IR,B,MP) :-
        { T>=0, T=<1, B = P*(1 + IR*T) - MP*T }.
        
mortgage(P,T,IR,B,MP) :-
        { T>1 },       
        mortgage(P * (1+IR) - MP, T-1, IR, B, MP).
