Отчет по лабораторной работе №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Тип динамической переменной со структурой ssrecordзапись, содержащая переменную типа integer (i) и ссылку (p)

ТАБЛИЦА ПЕРЕМЕННЫХ, ИСПОЛЬЗУЕМЫХ ПРОГРАММОЙ

ИмяТипНазначениеnWordСчетчик цикловkWordКоличество элементов в списке LEintegerЭлемент, который необходимо вставить после первого элемента в списке LLspisokУказатель, содержащий адрес произвольного элемента списка LFstLspisokУказатель, содержащий адрес первого элемента списка LLLspisokУказатель, содержащий адрес последнего элемента списка 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.

Вначале программа формирует список произвольный списо?/p>