From 512d4415170867ec71bb0298545418744281927b Mon Sep 17 00:00:00 2001 From: Dmitriy Gorshenin Date: Thu, 12 May 2022 19:12:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D0=BE=D1=80=D0=B5=D0=BC=D0=B0=20?= =?UTF-8?q?=D0=A1=D0=B8=D0=BC=D1=81=D0=BE=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md | 24 ++++++++++++ .../simson.rkt | 38 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 Погребицкий Евгений/README.md create mode 100644 Погребицкий Евгений/simson.rkt diff --git a/Погребицкий Евгений/README.md b/Погребицкий Евгений/README.md new file mode 100644 index 0000000..7334e20 --- /dev/null +++ b/Погребицкий Евгений/README.md @@ -0,0 +1,24 @@ +# Теорема Симсона +## Ссылка на видеоразбор +https://youtu.be/_ewjiWIH0VY +## Код из книги + START_INTERACTIVE;; + let simson = + < collinear(e,f,g)>>;; + + let vars = + ["g_y"; "g_x"; "f_y"; "f_x"; "e_y"; "e_x"; "d_y"; "d_x"; "c_y"; "c_x"; + "b_y"; "b_x"; "o_x"] + and zeros = ["a_x"; "a_y"; "o_y"];; + + wu simson vars zeros;; + diff --git a/Погребицкий Евгений/simson.rkt b/Погребицкий Евгений/simson.rkt new file mode 100644 index 0000000..c979efb --- /dev/null +++ b/Погребицкий Евгений/simson.rkt @@ -0,0 +1,38 @@ +#lang racket/base + +(define (square x) (* x x)) + +(define (lengths_eq x1 y1 x2 y2 x3 y3) +(if (equal? (+ (square(- x1 x2)) (square(- y1 y2))) (+ (square(- x3 x1)) (square(- y3 y1)))) +#t #f +)) + +(define (collinear x1 y1 x2 y2 x3 y3) +(if (equal? (* (- x1 x2) (- y2 y3)) (* (- y1 y2) (- x2 x3))) +#t #f +)) + +(define (perpendicular x1 y1 x2 y2 x3 y3 x4 y4) +(if (equal? (+ (* (- x1 x2) (- x3 x4)) (* (- y1 y2) (- y3 y4))) 0 ) +#t #f +)) + + + +(define (simson o_x o_y a_x a_y b_x b_y c_x c_y d_x d_y e_x e_y f_x f_y g_x g_y) +(if (and + (lengths_eq o_x o_y a_x a_y b_x b_y) + (lengths_eq o_x o_y a_x a_y c_x c_y) + (lengths_eq o_x o_y a_x a_y d_x d_y) + (collinear e_x e_y b_x b_y c_x c_y) + (collinear f_x f_y a_x a_y c_x c_y) + (collinear g_x g_y a_x a_y b_x b_y) + (perpendicular b_x b_y c_x c_y d_x d_y e_x e_y) + (perpendicular a_x a_y c_x c_y d_x d_y f_x f_y) + (perpendicular a_x a_y b_x b_y d_x d_y g_x g_y)) + + (begin (displayln "3 Points lie on one line.") (collinear e_x e_y f_x f_y g_x g_y) + ) (displayln "3 Points do not lie on one line.") +)) + +(simson 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) \ No newline at end of file