Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ОАиПрг_2курс_лабораторные.doc.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
663.33 Кб
Скачать

Лабораторная работа № 11.

ТЕМА: Разработка рекурсивных алгоритмов и программ.

ЦЕЛЬ РАБОТЫ:

Знакомство с понятием рекурсии. Выработка навыков составления программ с использованием процедур и функций.

ЗАДАНИЯ ПО ВАРИАНТАМ:

  1. Вычислить сумму ряда с позиции N до позиции M.

  2. Вычислить сумму ряда с позиции N до позиции M.

  3. Вычислить сумму ряда с позиции N до позиции M.

  4. Вычислить сумму ряда с позиции N до позиции M.

  5. Вычислить сумму ряда с позиции N до позиции M.

  6. Вычислить сумму ряда с позиции N до позиции M.

  7. Вычислить сумму ряда с позиции N до позиции M.

  8. Вычислить сумму ряда с позиции N до позиции M.

  9. Вычислить сумму ряда с позиции N до позиции M.

  10. Вычислить сумму ряда с позиции N до позиции M.

  11. Вычислить сумму ряда с позиции N до позиции M.

  12. Вычислить сумму ряда с позиции N до позиции M.

  13. Вычислить сумму ряда с позиции N до позиции M.

  14. Вычислить сумму ряда с позиции N до позиции M.

  15. Вычислить сумму ряда с позиции N до позиции M.

Контрольные вопросы

1.Что такое рекурсия?

2.Какие виды рекурсии существуют?

3.В каких случаях при использовании рекурсивной функции может наблюдаться зацикливание?

4.Когда возможна замена рекурсии на нерекурсивный алгоритм?

Лабораторная работа № 13

Тема: Использование процедур и функций модуля GraphABC.

Цель: научится применять на практике поцедуры и функции модуля GraphABC для создания простейших рисунков, состоящих из графических примитивов.

Задание: выберите один из приведенных ниже рисунков и постройте данное изображение программным образом. Цвета выберите по желанию. В верхнем углу напишите свою фамилию.

Контрольные вопросы:

Какие графические примитивы вы использовали? Как задать цвет фигуры? Цвет неправильной области? Как вывести надпись на рисунок?

Лабораторная работа № 14.

ТЕМА: Разработка алгоритмов и программ с использованием динамических массивов.

ЦЕЛЬ РАБОТЫ:

  1. Получить практические навыки по разработке программ с использованием динамических массивов.

  2. Развивать абстрактное мышление.

Задание.

Изучите предложенный пример создания динамической структуры – стек.

Разработайте пользовательский интерфейс для использования функций стека.

unit Stack;

interface

function Push(v: Integer): Boolean;

function Pop(var v: Integer): Boolean;

function Top(var v: Integer): Boolean;

implementation

type TpTElem = ^TElem;

TElem = record Info: Integer; Link: TpTElem end;

var sp: TpTElem;

function Push(v: Integer): Boolean;

var p: TpTElem;

begin

if MemAvail < 8 then begin Push:=False; Exit end;

New(p);

p^.Info:=v;

p^.Link:=sp;

sp:=p;

Push:=True;

end; {Push}

function Pop(var v: Integer): Boolean;

var p: TpTElem;

begin

if sp=nil then begin Pop:=False; Exit end;

p:=sp;

sp:=sp^.Link;

v:=p^.Info;

Dispose(p);

Pop:=True;

end; {Pop}

function Top(var v: Integer): Boolean;

var Res: Boolean;

begin

Res:=sp<>nil;

if Res then v:=sp^.Info;

Top:=Res;

end; {Top}

begin sp := nil end.

КОНТРОЛЬНЫЕ ВОПРОСЫ.

  1. Статическая память

  2. Автоматическая память

  3. Динамическая память

  4. Динамическая память в языке Turbo Pascal