Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Паскаль-переплет.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
626 Кб
Скачать
☆
  1. Задачи, которые можно решить как частный случай обобщенной

Если нельзя извлечь рекурсию из постановки задачи, то можно расширить задачу, обобщить ее (например, введя дополнительный параметр). Удачное обобщение может помочь увидеть рекурсию. После этого возвращаемся к частному случаю и решаем исходную задачу.

Пример 1 Определить, является ли заданное натуральное число простым.

Данную задачу можно обобщить, например, так: определить, верно ли, что заданное натуральное число N не делится ни на одно число, большее или равное М (2MN), но меньше N.

Соответствующая функция должна принимать значение «истина» в двух случаях:

  • если M=N;

  • если N не делится на М и функция принимает значение «истина» для чисел М+1 и N.

Function Simple(m,n : integer): boolean;

begin

if m=n Then Simple:=True

else Simple:=(n Mod m <> 0) And Simple(m+1,n);

end;

  1. Задачи, в которых можно использовать характеристику или свойство функции

Пример 1. Для заданного натурального числа N1 определить натуральное число a, для которого выполняется неравенство :

2а-1  N < 2a.

a(N) = 1 , если N=1

a(N)=a(N div 2) + 1, если N>1

Рассмотрим пример. Пусть N=34.

2a-134<2a, прибавим 1 и переходим к 34 div 2

2a-117<2a +1

2a-1 8<2a +1

2a-1 4<2a +1

2a-1 2<2a +1

2a-1 1<2a ; получим а=1

А теперь возвращаемся назад, к последней единице прибавляем все предыдущие. Таким образом, получается 6.

Function A(N : integer) : integer;

begin

if N=1 then a:=1 else a:=a (N div 2) +1;

end;

§19. Графика

В графическом режиме экран рассматривается как последовательность точек (пикселов), из которых строится изображение.

Количество пикселов в строке и количество строк на экране характеризуют его разрешающую способность.

640х480 - в строке 640 пикселов , а строк всего 480.

Пиксел определяют : координаты X, Y и цвет. Х

(0,0) (640,0)

(0,480) (640,480)

Для работы в графическом режиме разработана библиотека GRAPH, содержащая множество графических процедур и набор драйверов.

Драйвер находится в файле с расширением .BGI

Для того, чтобы в программе можно было использовать процедуры модуля GRAPH, его надо подключить к программе, использовав раздел описаний модулей:

USES GRAPH;

С момента подключения модуля GRAPH программисту доступны все находящиеся в ней подпрограммы.

В первую очередь вызывается процедура InitGraph, которая устанавливает один из возможных графических режимов.

Формат процедуры :

InitGraph( Driver, Mode,’c:\tp7\bgi’);

В программе нужно описать переменные Driver и Mode :

var Driver, Mode : integer;

В разделе операторов, перед тем как написать первый графический оператор, следует выполнить :

Driver:=Detect; InitGraph(Driver, Mode,’c:\tp7\bgi’);

Перед окончанием программы следует закрыть видеорежим с помощью процедуры CloseGraph.