Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;(Барабаш Николай 3 гр. мех-мат 1999-2000)
- ;(wrs 'integr.prt)
- ;(setq echo t) ;echo = true
- ;(setq traceflag t) ;traceflag = true
- ;(defun trace(x) ;void trace(x){
- ; (cond (traceflag (traceprint x));? if (traceflag) return traceprint(x)?;
- ; ( t nil) ; else return false;
- ; ) ;}
- ;); trace ;
- ;(defun traceprint(x) ;void traceprint(x){
- ; (terpri) ; WriteLine(terpri)
- ; (princ x)) ;? sw.WriteLine(x) ?
- ; traceprint ;}
- ;
- (defun integr (l) ;void integr(list){
- (cond ((null l) nil ) ; if (list == null) return false;
- ((null (cdr l)) (list (end l))); else if (null == list[1:]) return new List(end, list);
- ((Tsin l) (create1 l)) ; else if (Tsin(list)) return create1(list);
- ((Tcos l) (create2 l)) ; else if (Tsin(list)) return create1(list);
- ((polinom l) (create3 l)) ; else if (polinom(list)) return create3(list);
- (t (cons (integr (car l)) ; else return new List(list[0],list[1:]);
- (integr (cdr l)) ;}
- )
- )
- )
- )
- ; integr ;
- (defun end (o) ;void end(o_list){
- (cond ((Tcos (car o)) (create2 (car o))); if (Tcos o_list[0]) return create2(o_list[0]);
- ((Tsin (car o)) (create1 (car o))); else if (Tsin o_list[0]) return create1(o_list[0])
- (t (create3 (car o))) ; else return create3(o_list[0]);
- )) ;}
- ; end ;
- (defun create1 (j) ;void create1(j){ (a 's' b).
- (setq q (caddr j)) ; q = j[2]; b
- (setq w (* (/ (car j) q) -1)); w = -j[0]/q; -a/b
- (list w 'c q) ; new List(-a/b,'c',b);
- ) ;}
- ; create1
- (defun create2 (g) ;void create2(g){ (2 c 5)
- (setq b (caddr g)) ;
- (setq a (/ (car g) b)) ; a = g[0]/g[2];
- (list a 's b) ; new List(a,s,g[2]); ? s
- ) ;}
- ; create2 ;
- (defun create3 (f) ;void create3(f){ (a b)
- (setq y (+ (cadr f) 1)); y = 1 + f[1]; 1 + b
- (setq h (/ (car f) y)) ; h = f[0]/y;
- (list h y) ; new List(h,y); a/(b+1), b+1
- ) ;}
- ; create3 ;
- (defun Tsin (n) ;void Tsin(n){
- (cond ((eq (cadr n) 's) t); if (n[1] == 's) return true;
- (t nil) ; else return false;
- )) ;}
- ; Tsin ;
- (defun Tcos (e) ;
- (cond ((eq (cadr e) 'c) t) ; e[1] == 'c
- (t nil) ;
- )) ;
- ; Tcos
- (defun polinom (k)
- (cond ((atom (cadr k)) t); k[1] - atom?
- (t nil)
- ))
- ;
- (princ (integr '((5 2)(4 8)(6 s 7)(2 c 5))))
- ;(rds)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement