Рефераты

Отчет по лабораторной работе №1

Отчет по лабораторной работе №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. Для этого

программа выдает на экран строку:

|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". После этого программа

завершает работу.

-----------------------

L<>nil

L:=FstL;

Write(L^.i,' ');

L:=L^.p;

LL^.p:=L;

LL:=L;

n=1

Выход

ReadLn

n:=1

New FstL:=L;

LL:=L;

Write('Element E:> ');

ReadLn(E);

New(L);

L^.i:=E;

L^.p:=FstL^.p;

stL^.p:=L;

n:=n+1

New(L);

Write('L',n,' :> ');

ReadLn(L^.i);

L^.p:=nil;

n=k

Начало программы

Write('Kol. Elementov L:> ');

ReadLn(k);


© 2010 Современные рефераты