1.В списке после преобразования есть элементы.
Исходный список
Info1 ... infon
Преобразованный список
Info1 ... infon
2.В списке после преобразования нет элементов.
Исходный список
Info1 ... infon
Преобразованный список
Список пуст
Описание алгоритма
Алгоритм ‘Меню’
Типы
Tspisok=^spisok
Spisok=запись
Info:веществен
Xnew,ynew:цел
Next:Tspisok
Prev:Tspisok
tspisok2=^spisok2;
spisok2=запись
info:веществен;
xnew,ynew:цел;
next:tspisok2;
prev:tspisok2;
Внутрен. перемен.
Driver,mode,error:цел.
Head, Tail: Tspisok;
hea,tai:tspisok2;
P: Tspisok;
r:tspisok2;
ch:символ;
Начало
Очистка экрана;
Меню один
Меню два
Driver:= автом. режим настройки граф. драйвера
Инициализация граф. режима (driver,mode, ‘C:\bgi’)
Error:=результат перехода в граф. режим
Если error<>успешный переход то
Вывод(‘Ошибка перехода в графический режим номер’,error)
Чтение нажатой клавиши
Иначе
Задать цвет фона (голубой)
Цикл-до
Меню иниц. (head^.xnew, head^.ynew)
Движение квадрата в главном меню
Если P^.info=1 то
Очистка экрана в графическом режиме
Задать цвет(жёлтый)
Вывод текста в графическом режиме(190,70, '--------О разработчике---------')
Задать цвет(белый)
Вывод текста в графическом режиме(190,110, ‘Курсовая работа’)
Вывод текста в графическом режиме(190,120, ‘Факультет Автоматики и Вычислительной Техники’)
Вывод текста в графическом режиме(190,130, ‘Студент группы С-21’)
Вывод текста в графическом режиме(190,140, ‘ Подгорный Александр’)
Задать цвет(жёлтый)
Квадрат(180,160,185,165)
Задать цвет(белый)
Вывод текста в графическом режиме(190,160, ‘Назад’)
Чтение нажатой клавиши
Кесли
Если P^.info=2 то
Очистка экрана в графическом режиме
Меню2(hea^.xnew,hea^.ynew)
Движение квадрата в меню 2
Очистка экрана в графическом режиме
Задать цвет(желтый)
Вывод текста в графическом режиме(100,1, ’-------Задание 1------‘)
Задать цвет(белый)
Если r^.info=1 то
Ввод матр
Иначе
Ввод из файла
Очистка экрана в графическом режиме
Задать цвет(жёлтый)
Вывод текста в графическом режиме(50,15, ‘Исходная матрица’)
Задать цвет(белый)
Вывод матрицы
Форм
Очистка экрана в графическом режиме
Задать цвет(жёлтый)
Вывод текста в графическом режиме(50,15, ‘Преобразованная матрица’)
Задать цвет(белый)
Вывод матирцы
Кесли
Если p^.info=3 то
Очистка экрана в графическом режиме
Меню2(hea^.xnew,hea^.ynew)
Движение квадрата в меню 2
Очистка экрана в графическом режиме
Задать цвет(жёлтый)
Вывод текста в графическом режиме(100,1, ‘-------Задание 2------‘)
Задать цвет(белый)
Если r^.info=1 то
Задать цвет(жёлтый)
Вывод текста в графическом режиме(100,1, ‘-------Задание 2---- --‘)
Задать цвет(белый)
Ввод списка с клавиатуры
Иначе
Вывод списка из файла
Кесли
Очистка экрана в графическом режиме
Задать цвет(жёлтый)
Вывод текста в графическом режиме(50,15,’Исходный сисок’)
Задать цвет(белый)
Вывод списка
Формиров
Очистка экрана в графическом режиме
Задать цвет(жёлтый)
Вывод текста в графическом режиме(50,15,’Преобразованный список’)
Задать цвет (белый)
Вывод списка
Кесли
Кцикла до код(ch)=13 и p^.info=4
Закрытие графического режима
Кесли
Конец.
Алгоритм “Форм”
Внутрен. перемен.
I,j,k,m,o,f:цел
A[1..6,1..6]:двумерный массив:строк.
Начало
I:=1
Цикл-пока I<=n
K:=0
Цикл-для j от 1 до m
Если a[I,j]=’0’ то
К:=k+1
Иначе
I:=I+1
Кесли
Кцикл
O:=I
Если k=m то
Цикл-пока O<=n
Цикл-для f от 1 до m
A[o,f]:=A[o+1,f]
Кцикл
O:=O+1
Кцикл
Иначе
I:=I+1
Кесли
Кцикл
Конец.
Алгоритм “Формиров”
Типы
Tlist=^spisok;
spisok=запись
info:строка
number:цел.
next:Tlist;
Внутрен. перемен.
P,head,tail,nex:Tlist
I:цел
Stroke:string
Начало
P:=head
Цикл-пока P<>пустое
Stroka:=P^.info
I:=1
Цикл-пока I<=длина(stroka)
Если не (stroka[i] в [‘A’..’Z’, ‘a’..’z’]) то
P^.info:=’mark’;
I:=I+1
кесли
P:=p^.next
Кцикл
Цикл-пока (Head^.info=’mark’) и (Head<>пустое)
P:=head
Head:=Head^.next
Dispose (p)
Кцикл
Если Head<>пустое то
Nex:=head
P:=head^.next
Цикл-пока P<>пустое
Если P^.info=’mark’ то
Nex^.Next:=p^.next
Dispose(p)
P:=nex^.next
Иначе
Nex:=p
P:=P^.next
Кесли
Кцикл
Кцикл
P:=head
Конец
Алгоритм ‘Меню один’
Типы
Tspisok=^spisok
Spisok=запись
Info:веществен
Xnew,ynew:цел
Next:Tspisok
Prev:Tspisok
Внутрен. перемен.
I:цел.
Head,Tail,p: Tspisok
Начало
I:=0
Цикл-пока I<>4
Новый(p)
I:=I+1
P^.info:=I;
Если Head=пустое то
Head:=p
Tail:=p
Head^.xnew:=90
Head^.ynew:=150
Иначе
Tail^next:=p;
P^.prev:=tail
Tail:=p
P^.xnew:=90
P^.ynew:=P^.prev^.ynew+21
Кцикл
Tail^.ynew:=250
Tail^.next:=head
Head^.prev:=tail
Алгоритм ‘Меню два’
Типы
tspisok2=^spisok2;
spisok2=запись
info:веществен;
xnew,ynew:цел;
next:tspisok2;
prev:tspisok2;
Внутр. Перемен.
hea,tai,r:tspisok2;
I:цел.
Начало
Hea:= пустое
Tai:=пустое
I:=0;
Цикл-пока I<>2
Новое(R);
I:=I+1;
R^.info:=i;
Если Hea = пустое то
Hea:=R;
tai:=R;
hea^.xnew:=90;
hea^.ynew:=150;
Иначе
Tai^.Next:=R;
R^.prev:=Tai;
Tai:=R;
R^.xnew:=90;
R^.ynew:=R^.prev^.ynew+21;
Кцикл
Tai^. Next:=hea;
hea^.prev:=tai;
end;
Конец
Алгоритм ‘Меню иниц.’
Типы
prect=^trect;
trect=объект
x,y:цел;
color:байт;
visible:boolean;
w,h:цел;
конструктор иниц (ix,iy:цел;iw,ih:цел; icolor:байт);
процедура показ; virtual;
процедура переместить(xnew,ynew:цел);
процедура убрать; virtual;
деструктор удалить; virtual;
Входные переменные
ix,iy:цел.
Внутр. перемен.
А: массив [1..6]: строк
x,y,n,i:цел.
T1:prect
Начало
А[1]:= ‘О разработчике.’
A[2]:= ‘Удаление строки матрицы, все элементы которых равны нулю.’
A[3]:= ‘Удаление из линейного списка слов, которые содержат’
A[4]:= ‘хотя бы один символ отличный от латинской буквы.’
A[5]:= ‘Выход’
Очистка экрана в графическом режиме
х:= максимальная координата экрана по горизонтали разделить на 6
y:=максимальная координата экрана по вертикали разделить на 6
Квадрат(х-30,у, 5*x+30, 5*y)
I:=0;
Задать цвет (жёлтый)
Вывод текста в графическом режиме(110,130, ‘--------------------Главное меню---------------------‘)
Задать цвет(белый)
Цикл-для n от 1 до 5
Вывод текста в графическом режиме(100,170+I, a[n])
I:=I+20
Кцикл
Новый(t1, иниц(ix,iy,5,5, жёлтый)
T1^показ
Конец
Алгоритм ‘Движение квадрата в главном меню’
Типы
Tspisok=^spisok
Spisok=запись
Info:веществен
Xnew,ynew:цел
Next:Tspisok
Prev:Tspisok
prect=^trect;
trect=объект
x,y:цел;
color:байт;
visible:boolean;
w,h:цел;
конструктор иниц (ix,iy:цел;iw,ih:цел; icolor:байт);
процедура показ; virtual;
процедура переместить(xnew,ynew:цел);
процедура убрать; virtual;
деструктор удалить; virtual;
Внутр. перемен.
P,head,tail:Tspisok
Т1:prect
Ch:символ
Начало
P:=head;
Цикл-до
Ch:=чтение нажатой клавиши;
Если код(ch)=0 то
ch:=чтение нажатой клавиши;
Кесли
Если код(ch)=80 то
t1^.переместить(P^.next^.xnew,P^.next^.ynew);
p:=P^.next;
Кесли
Если код(ch)=72 то
t1^.переместить(P^.prev^.xnew,P^.prev^.ynew);
P:=p^.prev;
Кесли
Кцикла-до код(ch)=13;
удалить(t1,done);
Конец
Алгоритм ‘Меню2’
Типы
prect=^trect;
trect=объект
x,y:цел;
color:байт;
visible:boolean;
w,h:цел;
конструктор иниц (ix,iy:цел;iw,ih:цел; icolor:байт);
процедура показ; virtual;
процедура переместить(xnew,ynew:цел);
процедура убрать; virtual;
деструктор удалить; virtual;
Входные переменные
ix,iy:цел.
Внутр. перемен.
А: массив [1..6]: строк
x,y,n,i:цел.
T1:prect
Начало
А[1]:= ‘Ввод с клавиатуры.’
A[2]:= ‘Ввод из файла.’
Очистка экрана в графическом режиме
х:= максимальная координата экрана по горизонтали разделить на 6
y:=максимальная координата экрана по вертикали разделить на 6
Квадрат(х-30,у, 5*x+30, 5*y)
I:=0;
Задать цвет (жёлтый)
Вывод текста в графическом режиме(110,130, ‘--------------------Выберите тип ввода информации---------------------‘)
Задать цвет(белый)
Цикл-для n от 1 до 2
Вывод текста в графическом режиме(100,170+I, a[n])
I:=I+20
Кцикл
Новый(t1, иниц(ix,iy,5,5, жёлтый)
T1^показ
Конец
Алгоритм ‘Движение квадрата в меню 2’
Типы
tspisok2=^spisok2;
spisok2=запись
info:веществен;
xnew,ynew:цел;
next:tspisok2;
prev:tspisok2;
prect=^trect;
trect=объект
x,y:цел;
color:байт;
visible:boolean;
w,h:цел;
конструктор иниц (ix,iy:цел;iw,ih:цел; icolor:байт);
процедура показ; virtual;
процедура переместить(xnew,ynew:цел);
процедура убрать; virtual;
деструктор удалить; virtual;
Внутр. перемен.
r,hea,tai:Tspisok
Т1:prect
Ch:символ
Начало
r:=hea;
Цикл-до
Ch:=чтение нажатой клавиши;
Если код(ch)=0 то
ch:=чтение нажатой клавиши;
Кесли
Если код(ch)=80 то
t1^.переместить(P^.next^.xnew,P^.next^.ynew);
R:=R^.next;
Кесли
Если код(ch)=72 то
t1^.переместить(P^.prev^.xnew,P^.prev^.ynew);
R:=R^.prev;
Кесли
Кцикла-до код(ch)=13;
удалить(t1,done);
Конец
Алгоритм ‘Ввод списка с клавиатуры’
Типы
Tlist=^spisok;
spisok=запись
info:строка
number:цел.
next:Tlist;
Внутр. перемен.
head,tail,р:tlist;
J,I,N:integer;
s:string;
Начало
N:=0;
head:=пустое;
tail:=пустое;
цикл-до
Задать цвет(жёлтый)
Вывод текста в графическом режиме(100,1,'-------Задание 2------')
Задать цвет (белый)
Вывод текст в графичском режиме(10,20, 'Введите количество элементов 0<n<=7');
Пепреместить курсор(1,1);
вывод
вывод
Ввод(J);
Очистка экрана в графичесоком режиме
кцикла-до (j>0) и (j<=7)
Очистка экрана в графическом режиме
Цикл-для I от 1 до j
Очистка экрана в графическом режиме
Переместить курсор(1,1);
Вывод
Вывод
Новый(p);
n:=n+1;
преобразовать в строку(I:5,s);
Задать цвет(жёлтый);
Вывод текста в графическом режиме(100,1,'-------Задание 2------');
Задать текст (белый);
Вывод текста в графическом режиме(10,20,'Введите значение елементa '+s);
Ввод(P^.info)
P^.number:=N;
Если head=пустое то
P^.next:= пустое;
Head:=P;
tail:=p;
Иначе
Tail^.next:=P;
P^.next:=пустое;
tail:=p;
Кесли
Кцикл
Конец.
Алгоритм ‘Ввод списка из файла’.
Типы
Tlist=^spisok;
spisok=запись
info:строка
number:цел.
next:Tlist;
Внутр. перемен.
F:текст
head,tail,р:tlist;
J,I,N:integer;
Назначить(F,'Stroki.txt');
Открыть(F);
Tail:=пустое;
Head:= пустое;
N:=0;
Цикл-пока не EOF(f) do
Новый(P);
Чтение(F, P^.info);
n:=n+1
P^.number:=N
Если head=пустое то
P^.next:= пустое
Head:=P;
tail:=p;
Иначе
Tail^.next:=P;
P^.next:=пустое;
tail:=p;
Кесли
Кцикл
Конец
КУРСОВАЯ РАБОТА
по дисциплине “Программирование на языке высокого уровня”
Вариант 21
Программа и методика испытаний.
Листов 6
Исполнитель: Руководитель:
Студент Подгорный А.Д. ст. преп. БЕЛИКОВА М.А.
Группа С-21
