bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [232]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
Файловый архив
Файлы » ИТиУвТС » Другое

ИТиУвТС (з.), ТРПОСУ, Контрольная работа, вар.19, 2015
Подробности о скачивании 05.10.2016, 18:27
Министерство образования Республики Беларусь
УО «Белорусский государственный университет информатики и радиоэлектроники»

Факультет заочного обучения

Кафедра систем управления

Контрольная работа № 1
по дисциплине ‹‹Теория разработки программного обеспечения систем управления››



Выполнила студентка
Проверил:
Оценка:_____________
____________________
(подпись)
_________________(дата)

Минск 2016
Задание
ВАРИАНТ 19
Сортировка чисел, хранящихся в файле. В файле хранятся положительные, отрицательные, чётные, нечётные, целые и числа с десятичной точкой. Программа должна обеспечивать чтение чисел из файла, возможность сортировки по возрастанию или убыванию, либо по другим критериям и сохранение результата в другом файле. Указание местоположения исходного и файла с результатами через стандартное диалоговое окно. Окно программы должно отображать содержимое исходного файла, и результата.
Код программы
Файл sortirovka.dcl
sortirovka : dialog {
label = "Сортировка чисел";

: row {
: button {label = "Открыть"; key = "open_file"; width=30;}
: button { label = "Сохранить"; key = "save_file"; width=30;} }
: boxed_column { label = "Строка ";
: edit_box { key = "ish_string";}}
:boxed_column { label = "Сортированная строка";
: edit_box { key = "sort_string";}}
: boxed_column { label= "Методы сортировки";
: row {
: button {label = "Возрастание"; key="vozr"; width=30;}
: button { label = "Убывание"; key = "ybiv"; width=30;} }
: row {
: button { label = "Целые"; key = "cel"; width=30;}
: button { label = "Дробные"; key = "drob"; width=30;} }
: row {
: button {label = "Положительные"; key = "poloz"; width=30;}
: button { label = "Отрицательные"; key = "otric"; width=30;} }
: row {
: button {label = "Четные"; key = "chet"; width=30;}
: button { label = "Нечетные"; key = "nechet"; width=30;}}}
: button {label = "Закрыть"; is_cancel = true; key = "accept"; fixed_width=true; alignment=centered; }}

Файл Pivovarova_19.lsp
(defun loadfromfile ()
(setq ff (getfiled "FILE TO OPEN" "" "" 16))
(setq list_file (list))
(setq filename (open ff "r"))
(setq file_line (read-line filename))
(setq line_for_editbox "")
(while (/= file_line nil)
(setq list_file (cons file_line list_file))
(setq line_for_editbox (strcat file_line " " line_for_editbox))
(setq file_line (read-line filename)) ) (set_tile "ish_string" line_for_editbox)
)

;функция записи параметров в файл
(defun savetofile ()
(setq ff (getfiled "FILE TO SAVE" "" "" 1)) (setq filename (open ff "w")) (setq ii 0)
(while (< ii (length save_list)) (write-line (nth ii save_list) filename) (setq ii (+ ii 1))
)
(close ff) )

;убывание числа
(defun ybiv_funct ()
(setq save_list (list)) (setq ii 0) (setq ll (list))
(while (< ii (length list_file))
(setq ll (cons (atof (nth ii list_file)) ll)) (setq ii (+ ii 1)) )
(setq ll (vl-sort ll '>)) (setq iii 0) (setq lll "")
(while (< iii (length ll))
(setq save_list (cons (rtos (nth iii ll)) save_list)) (setq lll (strcat lll " " (rtos (nth iii ll) 2 2))) (setq iii (+ iii 1)) )
(set_tile "sort_string" lll)
)

;возрастание числа
(defun vozr_funct ()
(setq save_list (list)) (setq ii 0) (setq ll (list))
(while (< ii (length list_file))
(setq ll (cons (atof (nth ii list_file)) ll))
(setq ii (+ ii 1))
)
(setq ll (vl-sort ll '< wink )
(setq iii 0)
(setq lll "")
(while (< iii (length ll))
(setq save_list (cons (rtos (nth iii ll)) save_list))
(setq lll (strcat lll " " (rtos (nth iii ll) 2 2)))
(setq iii (+ iii 1))
)
(set_tile "sort_string" lll)
)

;целые числа
(defun cel_funct ()
(setq save_list (list))
(if (/= list_file nil)
(progn
(setq list_file_to_editbox "")
(setq ii 0)
(while (< ii (length list_file))
(if (= (fix (atof (nth ii list_file))) (atof (nth ii list_file)))
(progn
(setq list_file_to_editbox (strcat list_file_to_editbox " " (nth ii list_file)) )
(setq save_list (cons (nth ii list_file) save_list))
)
)
(setq ii (+ ii 1))
)
(set_tile "sort_string" list_file_to_editbox))))

;дробные числа
(defun drob_funct ()
(setq save_list (list))
(if (/= list_file nil)
(progn
(setq list_file_to_editbox "")
(setq ii 0)
(while (< ii (length list_file))
(if (/= (fix (atof (nth ii list_file))) (atof (nth ii list_file)))
(progn
(setq list_file_to_editbox (strcat list_file_to_editbox " " (nth ii list_file)) )
(setq save_list (cons (nth ii list_file) save_list))
)
)
(setq ii (+ ii 1))
)
(set_tile "sort_string" list_file_to_editbox))))


;отрицательные числа
(defun otric_funct ()
(setq save_list (list))
(if (/= list_file nil)
(progn
(setq list_file_to_editbox "") (setq ii 0)
(while (< ii (length list_file))
(if (= (minusp (atof (nth ii list_file))) T)
(progn
(setq save_list (cons (nth ii list_file) save_list))
(setq list_file_to_editbox (strcat list_file_to_editbox " " (nth ii list_file)) )))
(setq ii (+ ii 1))
)
(set_tile "sort_string" list_file_to_editbox))))

;положительные числа
(defun poloz_funct ()
(setq save_list (list))
(if (/= list_file nil)
(progn
(setq list_file_to_editbox "") (setq ii 0)
(while (< ii (length list_file))
(if (/= (minusp (atof (nth ii list_file))) T)
(progn
(setq save_list (cons (nth ii list_file) save_list))
(setq list_file_to_editbox (strcat list_file_to_editbox " " (nth ii list_file)) )))
(setq ii (+ ii 1))
)
(set_tile "sort_string" list_file_to_editbox))))

;четные числа
(defun chet_funct ()
(setq save_list (list))
(if (/= list_file nil)
(progn
(setq list_file_to_editbox "")
(setq ii 0)
(while (< ii (length list_file))
(if (= (rem (atof (nth ii list_file)) 2) 0)
(progn
(setq save_list (cons (nth ii list_file) save_list))
(setq list_file_to_editbox (strcat list_file_to_editbox " " (nth ii list_file)) )))
(setq ii (+ ii 1))
)
(set_tile "sort_string" list_file_to_editbox))))

;нечетные числа
(defun nechet_funct ()
(setq save_list (list))
(if (/= list_file nil)
(progn
(setq list_file_to_editbox "")
(setq ii 0)
(while (< ii (length list_file))
(if (and (/= (rem (atof (nth ii list_file)) 2) 0) (= (fix (atof (nth ii list_file))) (atof (nth ii list_file))))
(progn
(setq save_list (cons (nth ii list_file) save_list))
(setq list_file_to_editbox (strcat list_file_to_editbox " " (nth ii list_file)) )))
(setq ii (+ ii 1))
)
(set_tile "sort_string" list_file_to_editbox))))

;функция вызова диалогового окна
(defun c:sortirovka ()
(setq dcl_id (load_dialog "C:\\sortirovka.dcl")) (if (not (new_dialog "sortirovka" dcl_id) ) (exit))
(action_tile "open_file" "(loadfromfile)")
(action_tile "save_file" "(savetofile)")
(action_tile "cel" "(cel_funct)")
(action_tile "drob" "(drob_funct)")
(action_tile "otric" "(otric_funct)")
(action_tile "poloz" "(poloz_funct)")
(action_tile "chet" "(chet_funct)")
(action_tile "nechet" "(nechet_funct)")
(action_tile "vozr" "(vozr_funct)")
(action_tile "ybiv" "(ybiv_funct)")
(action_tile "accept" "(done_dialog 3)")
(setq what_next (start_dialog))
(cond
((= what_next 1))
((= what_next 2))
((= what_next 3))
((= what_next 4))
)
(unload_dialog dcl_id)
)
(c:sortirovka)


Результат выполнения программы:
Вызываем окно формы:

Открываем файл:





Сортировка по возрастанию:


По убыванию:


Целые числа:


Дробные:



Положительные:


Отрицательные:



Чётные:


Нечётные:



Сохраняем результат в файл:
Категория: Другое | Добавил: masher2161
Просмотров: 621 | Загрузок: 12
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]