Posted By

darkbaron1912 on 08/05/10


Tagged


Versions (?)

thi lth


 / Published in: Scheme
 

  1. ;Bo ngoac
  2.  
  3. (define (lamPhangDS L)
  4. (cond ((null? L) '())
  5. ((list? (car L)) (append (lamPhangDS (car L)) (lamPhangDS (cdr L))))
  6. (else (cons (car L) (lamPhangDS (cdr L))))))
  7.  
  8. (lamPhangDS '(a b c (d e) f g (h i (j k) l) m))
  9. ;(list? '(a b))
  10.  
  11. --------------------------------------------------------------------
  12. ;chuyen thap phan sang nhi phan
  13. (define (TP_to_NP x str)
  14. (if (zero? x)
  15. (string-append str "")
  16. (TP_to_NP (quotient x 2) (string-append str (number->string (remainder x 2))))))
  17. (define (inNP x)
  18. (list->string(reverse(string->list (TP_to_NP x "")))))
  19.  
  20. ;goi ham
  21. (inNP 14)
  22.  
  23. (define (luyThua x y) ;x^y (dung de quy)
  24. (if (= y 0) 1
  25. (* x (luyThua x (- y 1)))
  26. )
  27. )
  28. ;;chuyen nhi phan sang thap phan
  29. (define (NP_to_TP str2 s)
  30. (if (zero? (string-length str2))
  31. s
  32. (NP_to_TP (substring str2 1 (string-length str2)) (+ s (* (string->number(substring str2 0 1)) (luyThua 2 (- (string-length str2) 1)))))))
  33. (define (inTP str)
  34. (NP_to_TP str 0))
  35.  
  36. ;goi ham
  37. (inTP "1110")
  38. ------------------------------------------------------------------
  39.  
  40. (define (even_length L)
  41. (if (zero? (remainder (length L) 2))
  42. "Danh sach chan"
  43. (odd_length L)))
  44. (define (odd_length L)
  45. (if (zero? (remainder (length L) 2))
  46. (even_length L)
  47. "Danh sach le"))
  48.  
  49. ;goi ham
  50. ;(even_length (list 1 2 3 4 5 6))
  51. (odd_length (list 1 2 3 4 5 6))
  52. ------------------------------------------------------------
  53. (define vec '#())
  54. (define n 0)
  55. (define i 0)
  56. (define x 1)
  57. (define p 1)
  58. (define (Hoocner)
  59. (begin
  60. (display "Nhap bac n cua da thuc :")
  61. (set! n (read))
  62. (set! vec (make-vector (+ n 1)))
  63. (display "Nhap cac he so cua da thuc :")
  64. (newline)
  65. (while (<= i n)
  66. (begin
  67. (display "a") (display i) (display ":")
  68. (vector-set! vec i (read))
  69. (set! i (+ i 1))
  70. ))
  71. (display "Nhap gia tri x can tinh :")
  72. (set! x (read))
  73. ;Bat dau tinh da thuc
  74. ;i=n
  75. (set! i (- n 1))
  76. ;p=a[n]
  77. (set! p (vector-ref vec n))
  78. ;i=n-->1
  79. ;p=p*c + a[i]
  80. (while (>= i 0)
  81. (begin
  82. (set! p (+ (* p x) (vector-ref vec i)))
  83. (set! i (- i 1))
  84. ))
  85. (display "Gia tri cua bieu thuc :") (display p)
  86.  
  87.  
  88. ))
  89. ------------------------------------------------------------------
  90. (define (luyThua x y) ;x^y (dung de quy)
  91. (if (= y 0) 1
  92. (* x (luyThua x (- y 1)))
  93. )
  94. )
  95. ;;tinh tong lap phuong cua 1 so
  96. (define (tongLapPhuong x s)
  97. (if (= x 0)
  98. s
  99. (tongLapPhuong (quotient x 10) (+ s (luyThua (remainder x 10) 3)))))
  100.  
  101. ;;tra ve 1 neu tong so lap phuong = chinh no
  102. (define (isTongLapPhuong x)
  103. (if (and (= (tongLapPhuong x 0) x) (>= x 100))
  104. 1
  105. 0))
  106.  
  107. ;;tra ve string gom cac so lap phuong
  108. (define (lietKeSoLapPhuong n str)
  109. (if (zero? n)
  110. (if (zero? (string-length str))
  111. (string-append str "Khong co so nao ca.")
  112. (substring str 0 (- (string-length str) 2)))
  113. (if (= (isTongLapPhuong n) 1)
  114. (lietKeSoLapPhuong (- n 1) (string-append str (number->string n) ", "))
  115. (lietKeSoLapPhuong (- n 1) str))))
  116.  
  117. ;goi ham
  118. (lietKeSoLapPhuong 909090 "")
  119. -----------------------------------------------------------------------------------------
  120. (define (Bai5 n x)
  121. (cond ((= n 1) (sqrt x))
  122. (else (sqrt (+ x (Bai5 (- n 1) x))))))
  123. ----------------------------------------------------------------------
  124. ;Cho một sâu ký tự có độ dài N, N được xem rất lớn. Hãy phân loại mỗi ký tự
  125. ;theo 4 kiểu như sau: Kiểu chữ thường, kiểu chữ hoa, kiểu chữ số và kiểu
  126. ;khác (ký tự không thuộc 3 kiểu trên)?
  127.  
  128. (define (Dem S)
  129. (let((ct '())
  130. (ch '())
  131. (so '())
  132. (kh '())
  133. (i 0)
  134. (kt #\space))
  135. (while (< i (string-length S))
  136. (begin
  137. (set! kt (string-ref S i))
  138. (cond
  139. ((and (char>=? kt #\a)(char<=? kt #\z)) (set! ct (append ct (list kt))))
  140. ((and (char>=? kt #\A)(char<=? kt #\Z)) (set! ch (append ch (list kt))))
  141. ((and (char>=? kt #\0)(char<=? kt #\9)) (set! so (append so (list kt))))
  142. (else (if(not(char=? kt #\space)) (set! kh(append kh (list kt))))))
  143. (set! i (+ i 1))))
  144. (begin
  145. (display "Chu thuong: ")
  146. (display ct)
  147. (newline)
  148. (display "Chu hoa: ")
  149. (display ch)
  150. (newline)
  151. (display "Chu so: ")
  152. (display so)
  153. (newline)
  154. (display "Cac ky tu khac: ")
  155. (display kh)
  156. (newline)
  157. )))
  158. ;chay : (Dem "hhghghgh")
  159. -------------------------------------------------------------
  160. ;Viết hàm để :
  161. ;- Tính số lượng các ký tự trong một tập tin
  162. ;- Tính số lượng các ký tự không phải là ký tự phân cách (không phải là các dấu trống, nhảy cột, nhảy dòng)
  163. (define (Count-c)
  164. (define f (open-input-file "C:/hung.txt"))
  165. (define dem1 0)
  166. (define dem2 0)
  167. (define c 0)
  168. (set! c (read-char f))
  169. (while(and (char? c) (not (eof-object? c)))
  170. (if(and (not (eqv? c #\space)) (not (eqv? c #\newline)) (not (eqv? c #\tab)) (not (eqv?(char->integer c) 13)))
  171. (set! dem1 (+ dem1 1))
  172. )
  173. (set! dem2 (+ dem2 1))
  174. (set! c (read-char f))
  175. )
  176. (display "So luong cac ki tu: ")
  177. (display dem2)
  178. (newline)
  179. (display "So luong cac ki tu khong la ki tu trong : ")
  180. (display dem1)
  181. )
  182. ------------------------------------------------------------------------
  183. (define (canbac-2 n x)
  184. (if (> n 0)
  185. (sqrt( + x (canbac-2 (- n 1) x)))
  186. 0
  187. )
  188. )
  189. (define (tinhcan)
  190. (display "Nhap vao n va x theo thu tu") (newline)
  191. (let(
  192. (n (read))
  193. (x (read))
  194. )
  195. (canbac-2 n x)
  196. )
  197. )
  198. --------------------------------------------------------
  199.  
  200. (define dinhthuc
  201. (lambda (a11 a12 a13 a21 a22 a23 a31 a32 a33)
  202. (-(+(* a11 a22 a33)(* a21 a13 a32 )(* a12 a23 a31 ))
  203. (+(* a13 a22 a31)(* a11 a32 a23)( * a33 a12 a21))
  204. )
  205. )
  206. )
  207. (define (giai_he_phuong_trinh a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3)
  208. (
  209. let (
  210. (dx (dinhthuc b1 c1 d1 b2 c2 d2 b3 c3 d3))
  211. (dy (dinhthuc a1 d1 c1 a2 d2 c2 a3 d3 c3))
  212. (dz (dinhthuc a1 b1 d1 a2 b2 d2 a3 b3 d3))
  213. (d (dinhthuc a1 b1 c1 a2 b2 c2 a3 b3 c3 ))
  214. )
  215. ( if (zero? d )
  216. (if (and (zero? dx )(zero? dy )(zero? dz ))
  217. (display "he phuong trinh co vo so nghiem ")
  218. (display "he phuong trinh vo nghiem")
  219. )
  220. (begin
  221. (display "nghiem cua he la : ")
  222. (display (/ dx d))
  223. (display " ")
  224. (display (/ dy d))
  225. (display " ")
  226. (display (/ dz d))
  227. (display " ")
  228. )
  229. )
  230. )
  231. )
  232. ---------------------------------------------------------------------------
  233. (define (dinhthuc-3 a1 b1 c1 a2 b2 c2 a3 b3 c3)
  234. (-
  235. (+ (* a1 b2 c3)(* b1 c2 a3)(* c1 a2 b3))
  236. (+ (* a3 b2 c1)(* b3 c2 a1)(* c3 a2 b1))
  237. )
  238. )
  239. (define (he3-an)
  240. (display "Nhap vao cac he so theo thu tu sau")(newline)
  241. (display "a1 b1 c1 d1")(newline)
  242. (display "a2 b2 c2 d2")(newline)
  243. (display "a3 b3 c3 d3")(newline)
  244. (let* (
  245. (a1 (read))
  246. (b1 (read))
  247. (c1 (read))
  248. (d1 (read))
  249. (a2 (read))
  250. (b2 (read))
  251. (c2 (read))
  252. (d2 (read))
  253. (a3 (read))
  254. (b3 (read))
  255. (c3 (read))
  256. (d3 (read))
  257. (d (dinhthuc-3 a1 b1 c1 a2 b2 c2 a3 b3 c3))
  258. (dx (dinhthuc-3 d1 b1 c1 d2 b2 c2 d3 b3 c3))
  259. (dy (dinhthuc-3 a1 d1 c1 a2 d2 c2 a3 d3 c3))
  260. (dz (dinhthuc-3 a1 b1 d1 a2 b2 d2 a3 b3 d3))
  261. )
  262. (display "Nghiem x=")(write (/ dx d))(newline)
  263. (display "Nghiem y=")(write (/ dy d))(newline)
  264. (display "Nghiem z=")(write (/ dz d))(newline)
  265. )
  266. )
  267. -----------------------------------------------------------------
  268. (define (Hanoi n A B C)
  269. (cond
  270. ((= n 1) (display "Move ")(write A)(display " to ")(write B)(newline))
  271. (else (Hanoi (- n 1) A C B)
  272. (Hanoi 1 A B C)
  273. (Hanoi (- n 1) C B A))))
  274. ;(Hanoi 3 'A 'B 'C)
  275. --------------------------------------------------------------

Report this snippet  

You need to login to post a comment.