Доклад: Отчет по лабораторной работе №1
МОСКОВСКИЙ ИНСТИТУТ РАДИОТЕХНИКИ,
ЭЛЕКТРОНИКИ И АВТОМАТИКИ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Отчет по лабораторной работе №1
Программирование на языках В/У
Студент:
Группа:
Москва 2003
СОДЕРЖАНИЕ
1 ЗАДАНИЕ 3
2 БЛОК-СХЕМА ПРОГРАММЫ 3
3 ТЕКСТ ПРОГРАММЫ 4
4 ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ 5
5 РУКОВОДСТВО ОПЕРАТОРА 7
1 ЗАДАНИЕ
Программа должна вставить новый элемент E после первого элемента непустого
списка L.
2 БЛОК-СХЕМА ПРОГРАММЫ
да
нет
нет
да
нет
да
3 ТЕКСТ ПРОГРАММЫ
Program Project1;
{$APPTYPE CONSOLE}
Uses SysUtils;
type
spisok=^s;
s=record
i:integer;
p:spisok; end;
var
n,k:word;
E:integer;
L,FstL,LL:spisok;
BEGIN
Write('Kol. Elementov L:> ');ReadLn(k);
FOR n:=1 to k do BEGIN
New(L); Write('L',n,' :> '); ReadLn(L^.i);
L^.p:=nil;
IF n=1 THEN begin FstL:=L; LL:=L; end
ELSE begin LL^.p:=L;LL:=L; end;
END;
Write('Element E:> '); ReadLn(E);
New(L); L^.i:=E; L^.p:=FstL^.p; FstL^.p:=L; L:=FstL;
While L<>nil do begin Write(L^.i,' '); L:=L^.p; end;
ReadLn;
END.
4 ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ
ТАБЛИЦА ТИПОВ, ИСПОЛЬЗУЕМЫХ ПРОГРАММОЙ
Имя типа | Тип | Назначение |
spisok | | Тип динамической переменной со структурой s |
s | record | запись, содержащая переменную типа integer (i) и ссылку (p) |
ТАБЛИЦА ПЕРЕМЕННЫХ, ИСПОЛЬЗУЕМЫХ ПРОГРАММОЙ
Имя | Тип | Назначение |
n | Word | Счетчик циклов |
k | Word | Количество элементов в списке L |
E | integer | Элемент, который необходимо вставить после первого элемента в списке L |
L | spisok | Указатель, содержащий адрес произвольного элемента списка L |
FstL | spisok | Указатель, содержащий адрес первого элемента списка L |
LL | spisok | Указатель, содержащий адрес последнего элемента списка L |
Вначале работы программа выводит на экран строку "Kol. Elementov L:>", после
чего необходимо ввести значение количества элементов, которые будут
записываться в список L. Затем происходит считывание этого значения и
переменной k присваивается значение количества элементов списка L.
Далее организуется цикл для ввода элементов списка L c помощью операторов FOR и
TO. Начиная с n, принимающего значение единицы до значения k, которое равно
числу элементов списка, программа выполняет следующее. С помощью процедуры New
резервирует место в памяти ЭВМ под динамическую переменную, адрес которой
содержит указатель L. Выводит на экран строку, в которой содержится номер
элемента списка, который следует вводить. Строка заканчивается символами
":>". После вывода строки программа ждет ввода значения элемента. После
ввода значения оно присваивается в поле i динамической переменной структуры s,
на которую ссылается указатель L. В поле p этой переменной записывается
значение nil. Дальше проверяется условие: если n равно 1, что соответствует
первому элементу списка, тогда программа присваивает значение указателя L
указателям FstL (указатель, содержащий адрес первого элемента списка) и LL
(указатель, содержащий адрес последнего элемента списка). То есть указатель
FstL будет содержать адрес первого элемента списка. А иначе если n не равно 1,
что соответствует второму и последующим элементам списка, программа присваивает
ссылке последнего элемента списка, на который указывает указатель LL значение
указателя L, и указателю LL присваивает адрес указателя L. Элемент, на который
ссылается указатель L становится последним в списке. На этом цикл оператора FOR
завершается. Таким образом происходит заполнение списка значениями.
Далее программа выводит на экран строку "Еlement E:>", после чего необходимо
ввести значение элемента Е. Программа считывает это значение и присваивает его
переменной Е. Затем программа вставляет элемент Е в список после первого его
элемента. Для этого программа с помощью процедуры New резервирует место в
памяти ЭВМ под динамическую переменную, адрес которой содержит указатель L.
Затем поле i этого элемента получает значение переменной Е. В ссылку текущего
элемента записывается адрес, содержащийся в ссылке первого элемента списка. А
ссылка первого элемента списка получает значение нового элемента списка,
который имеет адрес, содержащийся в указателе L. Таким образом после первого
элемента списка программа вставила еще одни элемент.
Для вывода списка указателю L присваивается адрес первого элемента списка,
содержащийся в указателе FstL.
Затем организуется цикл: в то время как L имеет адрес отличающийся от
значения nil программа делает следующее. Он организуется операторами WHILE и
DO. Выводит на экран содержимое поля i динамической переменной структуры s,
на которую ссылается указатель L. Далее указателю L присваивается значение,
содержащееся в ссылке p данной динамической переменной. На этом один цикл,
организованный операторами WHILE и DO завершается. В результате этого цикла
будут выведены на экран значения всех элементов списка L.
Далее программа ждет нажатия на клавишу "Enter". Программа завершает работу.
5 РУКОВОДСТВО ОПЕРАТОРА
Программа вставляет новый элемент E после первого элемента непустого списка L.
Вначале программа формирует список произвольный список L. Для этого программа
выдает на экран строку:
После этого необходимо ввести количество элементов, которые будут заноситься
в список и нажать клавишу "Enter". Программа запоминает это значение.
После программа выдает на экран строки, после которых нужно вводить элементы
списка начиная с первого и заканчивая последним элементом. Программа вначале
выдаст на экран строку:
После этого нужно ввести значение элемента №1 списка и нажать клавишу "Enter".
После этого на экран будет выведена следующая строка:
Соответственно после нее следует ввести значение элемента №2 списка и нажать
клавишу "Enter". И так далее программа будет выводить строки, содержащие
номер элемента, который следует вводить. Например, если количество элементов,
которое вы ввели вначале работы с программой равно 10, то последняя строка
будет выглядеть так:
После вывода этой строки следует ввести значение этого элемента и нажать
клавишу "Enter". Все вводимые значения программа запоминает и формирует
список, содержащий все эти значения.
Далее программа выдаст на экран строку:
После этого следует ввести значение элемента Е и нажать клавишу "Enter".
Программа запоминает это значение. Затем программа корректирует список L
таким образом: вставляет значение элемента Е после первого элемента списка.
Таким образом в списке L появляется еще один элемент. Если вы вводили 10
элементов, то теперь их будет 11.
Далее на экран выводятся все значения скорректированного списка L начиная с
первого.
Если вы вводили следующие значения элементов начиная с первого: 1, 2, 3, 4,
5, 6, 7, 8, 9, 10 и ввели элемент Е равный 0, то на экране появится следующая
строка:
Далее программа ждет нажатия на клавишу "Enter". После этого программа
завершает работу.