Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
30.04.2013
Размер:
206.85 Кб
Скачать

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

Соседние файлы в папке курсач