
- •Задание на курсовое проектирование
- •1.Представление расписания занятий вуз’а
- •2. Алгоритм решения задачи – описательная модель программы
- •3.Модель на основе абстракций и спецификаций
- •3.2 Процедура выбора занятия
- •3.3 Процедура проверки занятости группы
- •3.4 Процедура проверки занятости преподавателя
- •3.5 Процедура проверки занятости аудитории
- •3.6 Процедура замены значений
- •3.7. Процедура очистки значений
- •3.8. Процедура выбора занятия среди тех которые требуют корректировки
- •3.9. Замена значений в занятиях требующих корректировку
3.2 Процедура выбора занятия
В(10) : массив
с(10) : массив
а(66;11) : таблица
выбор_занятия=proc(a,в,c) returns(a;в;c)
пока (пользователь не выбрал) делать
если (пользователь не выбрал)
то
если атрибут(а;11)=0
то
вызов(а)
иначе
переход(а)
конец если
иначе
для i=1 по 10
в(i)=атрибут(а;i)
конец цикла
замена_элемента(а;11;1)
если атрибут(а;5)="лекция"
то
пока (ненайдена пара) делать
вызов(а)
для i=6 по 10
если атрибут (а;i)=в(i)
то
L=L+1
иначе
переход(а)
L=0
конец если
конец цикла
если (L=5)и(атрибут(а;1)<>в(1))
то
замена_элемента(а;11;1)
для i=1 по 10
с(i)=атрибут(а;i)
иначе
переход(а)
конец если
конец цикла
иначе
для i=1 по 10
с(i)=“ ”
конец если
конец если
конец цикла
3.3 Процедура проверки занятости группы
а(66;11) : таблица
D(3) //здесь хранятся временные значения день1 , пара1 , признак1
g : data type
проверка_занятости_группы=proc(a;g;D) returns(z:bool;a)
z=false
для i=1 по 66
если g=атрибут(а;1)
то
если D(1)=атрибут(а;8)
то
если D(2)=атрибут(а;9)
то
если D(3)=атрибут(а;10)
то
z=true
замена_элемента(а;11;2)
иначе
переход(а)
конец если
иначе
переход(а)
конец если
иначе
переход(а)
конец если
иначе
переход(а)
конец если
конец цикла
3.4 Процедура проверки занятости преподавателя
а(66;11) : таблица
D(3) : массив
g : data type
проверка_занятости_преподавателя=proc(а;g;D;z) returns(z:bool;a)
для i=1 по 66
если g=атрибут(а;6)
то
если D(1)=атрибут(а;8)
то
если D(2)=атрибут(а;9)
то
если D(3)=атрибут(а;10)
то
z=true
замена_элемента(a;11;2)
иначе
переход(а)
конец если
иначе
переход(а)
конец если
иначе
переход(а)
конец если
иначе
переход(а)
конец если
конец цикла
3.5 Процедура проверки занятости аудитории
а(66;11) : таблица
D(3) : массив
g : data type
проверка_занятости_аудитори(a;g;b;z) returns(z:bool; a)
для i=1 по 66
если g=атрибут(а;7)
то
если D(1)=атрибут(а;8)
то
если D(2)=атрибут(а;9)
то
если D(3)=атрибут(а;10)
то
z=true
замена_элемента(а;11;2)
иначе
переход(а)
конец если
иначе
переход(а)
конец если
иначе
переход(а)
конец если
иначе
переход(а)
конец если
конец цикла
3.6 Процедура замены значений
а(66;11) : таблица
В(10) : массив
D(3) : массив
замена_значений=proc(a;B;D) returns(a)
t=false
пока t=false делать
вызов(а)
р=0
для i=1 по 10
если В(i)=атрибут(а;i)
то
p=p+1
конец если
конец цикла
если р=10
то
для i=8 по 10
атрибут(а;i)=D(i-7)
конец цикла
атрибут(а;11)=3
p=true
иначе
переход(а)
конец если
конец цикла