Доклад: Отчет по лабораторной работе №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
srecordзапись, содержащая переменную типа integer (i) и ссылку (p)
ТАБЛИЦА ПЕРЕМЕННЫХ, ИСПОЛЬЗУЕМЫХ ПРОГРАММОЙ

Имя

Тип

Назначение

nWordСчетчик циклов
kWordКоличество элементов в списке L
EintegerЭлемент, который необходимо вставить после первого элемента в списке L
LspisokУказатель, содержащий адрес произвольного элемента списка L
FstLspisokУказатель, содержащий адрес первого элемента списка L
LLspisokУказатель, содержащий адрес последнего элемента списка 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. Для этого программа выдает на экран строку:
Kol. Elementov L:>
После этого необходимо ввести количество элементов, которые будут заноситься в список и нажать клавишу "Enter". Программа запоминает это значение. После программа выдает на экран строки, после которых нужно вводить элементы списка начиная с первого и заканчивая последним элементом. Программа вначале выдаст на экран строку:
L1 :>
После этого нужно ввести значение элемента №1 списка и нажать клавишу "Enter". После этого на экран будет выведена следующая строка:
L2 :>
Соответственно после нее следует ввести значение элемента №2 списка и нажать клавишу "Enter". И так далее программа будет выводить строки, содержащие номер элемента, который следует вводить. Например, если количество элементов, которое вы ввели вначале работы с программой равно 10, то последняя строка будет выглядеть так:
L10 :>
После вывода этой строки следует ввести значение этого элемента и нажать клавишу "Enter". Все вводимые значения программа запоминает и формирует список, содержащий все эти значения. Далее программа выдаст на экран строку:
Element Е:>
После этого следует ввести значение элемента Е и нажать клавишу "Enter". Программа запоминает это значение. Затем программа корректирует список L таким образом: вставляет значение элемента Е после первого элемента списка. Таким образом в списке L появляется еще один элемент. Если вы вводили 10 элементов, то теперь их будет 11. Далее на экран выводятся все значения скорректированного списка L начиная с первого. Если вы вводили следующие значения элементов начиная с первого: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 и ввели элемент Е равный 0, то на экране появится следующая строка:
1 0 2 3 4 5 6 7 8 9 10
Далее программа ждет нажатия на клавишу "Enter". После этого программа завершает работу.