> 1 <

Автор Сообщение

Burneive

Members


Статус

1 сообщений

Где: Russia
Род занятий:
Возраст:

#7889   2018-06-30 17:37 GMT+3 часа(ов)      
Обратился сюда по совету преподавателя, необходима помощь со всеми задачами заданиями.
Буду очень признателен за помощь с любой из этих задач.
1. Найти максимальный общий фрагмент двух списков.
2. Задано два файла. Выписать в третий файл общие слова из латинских букв без
повторений. Словом считаем последовательность букв любого алфавита.
3. Дан текстовый файл, содержащий в каждой строке информацию об отрезках в виде
координат вершин.
Выписать в выходной файл отрезки, имеющие общие точки с первой координатной
четвертью, в порядке возрастания их длины. Для каждого отрезка указать длину.
4. Задан список различных натуральных чисел. Сколькими способами можно переставить
элементы так, чтобы никакие три элемента не представляли собой арифметическую
прогрессию.
Пример правильной перестановки: 5 2 4 1 7
5. В файле задано бинарное дерево (сдвигами), например
Например,
7
3
8
5
4
6
Проверить, что для каждого узла справедливо свойство: его левый потомок (при
наличии) меньше правого (при наличии).
6. Множества натуральных чисел от 1 до N хранятся в виде типа vector из N элементов. На
соответствующем месте вектора хранится 1 если число имеется во множестве, иначе 0.
Реализовать операцию пересечения двух множеств.
7. Граф хранится в файле в виде списков смежных вершин. Записать его во второй файл,
соединив указанную вершину со всеми остальными.
8. Задан текстовый файл. Словом является любая последовательность символов между
разделителями: пробелами, концами строк. Проверить, что все слова одинаковой длины.
9. Существуют ли три вершины заданного многоугольника, которые образуют правильный
треугольник.
10. Задан текстовый файл. Посчитать, сколько раз в нем встречается слово «ДОПУСК»,
записанное по вертикали или горизонтали. Известно, что в файле не больше 100 строк, а
каждая строка содержит не более 100 символов.

_sg

Members


Статус

42 сообщений

Где: Russia
Род занятий:
Возраст:

#7895   2018-07-12 15:09 GMT+3 часа(ов)      
10. Common Lisp:

Например, слово: "bc", файл test.txt:

abcdbce
acaac
aabca
aacbc
(defun count-hv (s path &aux (w (read-lines-chars path)))
(+ (count-h s (car w))
(count-h s (loop for a in (mapcar
#'reverse
(transpose (cadr w)))
collect (coerce a 'string)))))
 
(defun count-h (z w)
(loop for a in w sum (cnt z a)))
 
(defun cnt (a s
&optional (p 0)
&aux (z (search a s :start2 p)))
(if z (1+ (cnt a s (1+ z))) 0))
 
(defun read-lines-chars (path &aux u v)
(with-open-file (s path :direction :input)
(do ((line (read-line s nil :eof)
(read-line s nil :eof)))
((eql line :eof))
(setf u (cons line u))
(setf v (cons (loop for c across line
collect c)
v))))
(list u v))
 
(defun transpose (m) (apply #'mapcar #'list m))
 
> (count-hv "bc" "c:/temp/test.txt")
7

отредактировал(а) _sg: 2018-07-14 18:40 GMT+3 часа(ов)

_sg

Members


Статус

42 сообщений

Где: Russia
Род занятий:
Возраст:

#7896   2018-07-14 18:38 GMT+3 часа(ов)      
8. Вариант со знаками препинания, Common Lisp:

Например, test.txt:

aaaa, bbbb, cccc.
dddd, eeee,
ffff.
(defun same-length-word-textp (path &aux w)
(with-open-file (s path :direction :input)
(do ((line (read-line s nil :eof)
(read-line s nil :eof)))
((eql line :eof))
(setf w (nconc (list-string line) w)))
(loop for a in w
always (= (length (string (car w)))
(length (string a))))))
 
(defun list-string (s)
(read-from-string
(concatenate
'string "(" (delete-if-not #'(lambda (x)
(or (alpha-char-p x)
(equal x #\space)
(equal x #\-)))
s) ")")))
 
> (same-length-word-textp "c:/temp/test.txt")
T

_sg

Members


Статус

42 сообщений

Где: Russia
Род занятий:
Возраст:

#7897   2018-07-15 09:16 GMT+3 часа(ов)      
4. Common Lisp
(defun not-arithmetic-progression-permutations (v)
(not-arithmetic (permutate v)))
 
(defun permutate (w)
(when w (if (cdr w)
(loop for a in w
nconc (mapcar #'(lambda (e) (cons a e))
(permutate (remove a w))))
(list w))))
 
(defun not-arithmetic (w)
(cond ((null (cddr w)) nil)
((arithmetic-progressionp (caar w) (cadar w) (caddar w))
(not-arithmetic (cdr w)))
(t (cons (car w) (not-arithmetic (cdr w))))))
 
(defun arithmetic-progressionp (a b c)
(or (and (< a b c) (= (- b a) (- c b)))
(and (> a b c) (= (- a b) (- b c)))))
 
> (not-arithmetic-progression-permutations '(1 2 4 5 7))
((1 2 4 5 7) (1 2 4 7 5) (1 2 5 4 7) (1 2 5 7 4) (1 2 7 4 5) (1 2 7 5 4)
(1 4 2 5 7) (1 4 2 7 5) (1 4 5 2 7) (1 4 5 7 2) (1 5 2 4 7) (1 5 2 7 4)
(1 5 4 2 7) (1 5 4 7 2) (1 5 7 2 4) (1 5 7 4 2) (1 7 2 4 5) (1 7 2 5 4)
(1 7 4 2 5) (1 7 4 5 2) (1 7 5 2 4) (1 7 5 4 2) (2 1 4 5 7) (2 1 4 7 5)
(2 1 5 4 7) (2 1 5 7 4) (2 1 7 4 5) (2 1 7 5 4) (2 4 1 5 7) (2 4 1 7 5)
(2 4 5 1 7) (2 4 5 7 1) (2 4 7 1 5) (2 4 7 5 1) (2 5 1 4 7) (2 5 1 7 4)
(2 5 4 1 7) (2 5 4 7 1) (2 5 7 1 4) (2 5 7 4 1) (2 7 1 4 5) (2 7 1 5 4)
(2 7 4 1 5) (2 7 4 5 1) (2 7 5 1 4) (2 7 5 4 1) (4 1 2 5 7) (4 1 2 7 5)
(4 1 5 2 7) (4 1 5 7 2) (4 1 7 2 5) (4 1 7 5 2) (4 2 1 5 7) (4 2 1 7 5)
(4 2 5 1 7) (4 2 5 7 1) (4 2 7 1 5) (4 2 7 5 1) (4 5 1 2 7) (4 5 1 7 2)
(4 5 2 1 7) (4 5 2 7 1) (4 5 7 1 2) (4 5 7 2 1) (4 7 1 2 5) (4 7 1 5 2)
(4 7 2 1 5) (4 7 2 5 1) (4 7 5 1 2) (4 7 5 2 1) (5 1 2 4 7) (5 1 2 7 4)
(5 1 4 2 7) (5 1 4 7 2) (5 1 7 2 4) (5 1 7 4 2) (5 2 1 4 7) (5 2 1 7 4)
(5 2 4 1 7) (5 2 4 7 1) (5 2 7 1 4) (5 2 7 4 1) (5 4 1 2 7) (5 4 1 7 2)
(5 4 2 1 7) (5 4 2 7 1) (5 4 7 1 2) (5 4 7 2 1) (5 7 1 2 4) (5 7 1 4 2)
(5 7 2 1 4) (5 7 2 4 1) (5 7 4 1 2) (5 7 4 2 1) (7 1 2 4 5) (7 1 2 5 4)
(7 1 4 2 5) (7 1 4 5 2) (7 1 5 2 4) (7 1 5 4 2) (7 2 1 4 5) (7 2 1 5 4)
(7 2 4 1 5) (7 2 4 5 1) (7 2 5 1 4) (7 2 5 4 1) (7 4 2 1 5) (7 4 2 5 1)
(7 4 5 1 2) (7 4 5 2 1) (7 5 1 2 4) (7 5 1 4 2) (7 5 2 1 4) (7 5 2 4 1))
 

_sg

Members


Статус

42 сообщений

Где: Russia
Род занятий:
Возраст:

#7898   2018-07-16 01:12 GMT+3 часа(ов)      
1. Common Lisp
(defun common-max-length-fragments
(w
v
&aux
(z (intersection (tails w) (tails v) :test #'equalp))
(m (loop for a in z maximize (length a))))
(remove-if #'(lambda (a) (< (length a) m )) z))
 
(defun tails (w)
(loop for d on w append (cut d)))
 
(defun cut (w)
(cons w (loop for n from 1 to (1- (length w))
collect (butlast w n))))
 
> (common-max-length-fragments '(1 2 3 4 5 6 7 8) '(0 2 3 4 0 6 7 8))
((2 3 4) (6 7 8))

_sg

Members


Статус

42 сообщений

Где: Russia
Род занятий:
Возраст:

#7899   2018-07-16 01:14 GMT+3 часа(ов)      
2. Common Lisp. Например, файлы:

test1.in:
abcd, abcd.
bcde, bcde.
cdef, cdef.

test2.in:
bcde, bcde.
cdef, cdef.
defg, defg.

test.out:
CDEF BCDE
(defun common-words (p1 p2 p &aux v1 v2)
(with-open-file (s1 p1 :direction :input)
(do ((line (read-line s1 nil :eof)(read-line s1 nil :eof)))
((eql line :eof))
(setf v1 (nconc (list-string line) v1))))
(with-open-file (s2 p2 :direction :input)
(do ((line (read-line s2 nil :eof)(read-line s2 nil :eof)))
((eql line :eof))
(setf v2 (nconc (list-string line) v2))))
(with-open-file (s p
:direction :output
:if-exists :supersede
:if-does-not-exist :create)
(format s "~{~a~^ ~}"
(remove-duplicates (intersection v1 v2)))))
 
(defun list-string (s)
(read-from-string
(concatenate
'string "(" (delete-if-not #'(lambda (x)
(or (alpha-char-p x)
(equal x #\space)
(equal x #\-)))
s) ")")))
 
> (common-words "d:/test1.in" "d:/test2.in" "d:/test.out")
NIL
> 1 <


Онлайн :

0 пользователь(ей), 36 гость(ей) :




Реклама на сайте: