Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию..pdf
Скачиваний:
10
Добавлен:
15.11.2022
Размер:
12.2 Mб
Скачать

Приведем текст программы целиком.

Program DlUmn;

Uses Strings;

Const

NMax

** 2000;

Type Digit = 0..9;

DIChislo = Array[1..Nraax] Of Digit;

Stroka = Array[0..NMax] Of Char;

Var S

Stroka;

M,

N, R

DIChislo;

{Процедура

 

обнуления длинного числа}

Procedure

Zero(Var A DIChislo);

Var I

Integer;

Begin

 

:= 1 To NMax Do

For I

 

A [I]

:= 0;

End;

{Фунхция определения количества цифр в записи длинного чисп}

Function Dlina(C

DIChislo)

Integer;

Var I

Integer;

 

 

Begin

:* NMax;

 

 

 

I

1)

And (С[I]

= 0) Do

While

(I >

I

 

I -

1;

 

 

Dlina

:* I

 

 

 

End;

 

 

 

 

 

{Процедура печати длинного числа}

PROCEDURE Print(A

DIChislo);

Var I

Integer;

 

 

Begin

I := Dlina(A) DovnTo

1 Do

For

Write(A[I]

 

1);

 

WriteLn

 

 

 

 

End;

{Процедура преобразования длинного числа в массив цифр}

PROCEDURE Translate(S

Stroka; Var A

DIChislo);

Var I,

Code

Integer;

 

 

 

Begin

Zero(A);

 

 

 

 

 

 

 

 

 

 

0 Do

 

For I

:= StrLen(S) - 1 DownTo

Val(S[I],

A[StrLen(S)

I],

Code);

 

End;

 

 

 

 

В

DIChislo; Var C DIChislo);

PROCEDURE Multiplication^,

Var I,

J, VspRez

Integer;

 

 

 

P

Digit;

 

 

 

 

 

Begin

Zero(C);

 

 

 

 

 

 

 

Dlina(A)

Do

 

 

For I

:= 1 To

 

Библиографический список

Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. М.: Наука, 1988.

Вирт Н. Алгоритмы и структуры данных. М.: Мир, 1989. Г^огоно П. Программирование на языке Паскаль. М.: Мир, 1982.

Дагене В.А., Г]ригас Г.К., Аугутис К.Ф. 100 задач по программированию. М.: Просвещение, 1993.

Епашников А.М., Епашников В.А. Программирование в среде Turbo-Pascal 7.0. М.: МИФИ, 1994.

Залогова Л.А., Русаков С.В., Семакин И.Г., Хеннер Е.К., Шестакова Л.В. Основы информатики и вычислительной техники в базовой школе: Пособие для учителя. Пермь, 1995.

Йенсен К., Вирт Н. Паскаль — руководство для пользователей и описание языка. М.: Мир, 1982.

Пильщиков В.Н. Сборник упражнений по языку Паскаль. М.: Наука, 1989. Семакин И.Г. Информатика. Беседы об информации, компьютерах и програм­

мах. Часть 2. Из-во Перм. ун-та, Пермь, 1997.

 

 

Таблица 1. Константы режимов работы

Имя константы Номер режима

 

Режим

BW40

0

Черно-белый, 40 символов, 25 строк

С040

1

Цветной, 40 х 25

BW80

2

Черно-белый, 80 х 25

СО80

3

Цветной, 80 х 25

Mono

7

Монохромный, 80 х 25

 

 

для монохромных дисплеев

 

 

 

Таблица 2. Константы цветов

Имя константы

Номер цвета

Цвет

Black

0

 

Черный

Blue

1

 

ТЫно-синий

Green

2

 

Темно-зеленый

Cyan

3

 

Бирюзовый

Red

4

 

Красный

Magenta

5

 

Фиолетовый

Brown

6

 

Коричневый

LightGray

7

 

Светло-серый

DarkGray

8

 

Темно-серый

LightBlue

9

 

Синий

LightGreen

10

 

Светло-зеленый

LightCyan

11

 

Светло-бирюзовый

LightRed

12

 

Розовый

LightMagenta

13

 

Малиновый

Yellow

14

 

Желтый

White

15

 

Белый

Blink

128

 

Мерцание символа

ClrEol
ClrScr
DelLine
GotoXY
InsLine
Window
WhereX
WhereY
KeyPressed
ReadKey
Sound NoSound
Delay AssignCrt
TextMode
HighVideo
LowVideo
NormVideo TextBackGround TextColor
Имя

Таблица 3. Процедуры и функции модуля CRT

Назначение

Процедуры задания режимов работы

Задание текстового режима

Процедуры управления цветом

Задание высокой яркости символов Задание малой яркости символов Задание исходной яркости символов Задание цвета фона Задание цвета символов

Процедуры работы с экраном

Удаление символа от курсора до конца строки Очистка экрана Удаление строки, в которой находится курсор

Перемещение курсора в заданную позицию Добавление пустой строки на экране Задание размеров окна

Функции работы с экраном

Текущая координата X курсора

Текущая координата Y курсора

Функции работы с клавиатурой

Проверка нажатия клавиши Чтение символа с клавиатуры

Процедуры управления звуком

Включение звука Отключение звука

Процедуры разнообразного назначения

Задержка выполнения программы

Связь текстового файла с устройством CRT

Таблица 1. Коды драйверов графических устройств

Имя

 

Значение

 

Назначение

 

Detect

 

0

Автоматический выбор драйвера

CGA

 

1

 

 

 

MCGA

 

2

 

 

 

EGA

 

3

 

 

 

EGA64

 

4

 

 

 

EGAMono

 

5

 

 

 

IBM8514

 

6

 

 

 

HercMono

 

7

 

 

 

ATT400

 

8

 

 

 

VGA

 

9

 

 

 

PC3270

 

10

 

 

 

CurrentDriver

-128

Текущий драйвер

 

 

 

Таблица. 2. Константы графических режимов

Имя

Значение Размер поля

Палитра

Число страниц

АТТ400С0

 

0

320 х 200

СО

1

АТТ400С1

 

1

320 х 200

С1

1

АТТ400С2

 

2

320 х 200

С2

1

АТТ400СЗ

 

3

320 х 200

СЗ

1

ATT400Med

 

4

640 х 200

2 цвета

1

АТТ400Ш

 

5

640 х 400

2 цвета

1

CGAC0

 

0

320 х 200

СО

1

CGAC1

 

1

320 х 200

С1

1

CGAC2

 

2

320 х 200

С2

1

CGAC3

 

3

320 х 200

СЗ

1

CGACHi

 

4

640 х 200

2 цвета

1

Имя константы

Номер цвета

Black

0

Blue

1

Green

2

Cyan

3

Red

4

Magenta

5

Brown

6

LightGray

7

DarkGray

8

LightBlue

9

LightGreen

10

LightCyan

11

LightRed

12

LightMagenta

13

Yellow

14

White

15

Цвет

Черный Темно-синий Темно-зеленый Бирюзовый Красный Фиолетовый Коричневый Светло-серый Темно-серый Синий Светло-зеленый Светло-бирюзовый Розовый Малиновый Желтый Белый

 

Таблица 4. Коды линий

Имя

Значение Назначение

Коды типов линий (для процедуры SetLineStyle)

SolidLn

0

Сплошная

DottedLn

1

Пунктирная

CenterLn

2

Штрихпунктирная

DashedLn

3

Штриховая

UserBitLn

4

Заданная пользователем

 

Коды толщины линии

NormWidth

1

Нормальная

ThickWidth

3

Толстая

Таблица 5. Константы орнамента заполнения (для процедуры SetF illStyle)

Имя

Значение Назначение

EmptyFiU

0

Заполнение цветом фона

SolidFill

1

Однородное заполнение цветом

LineFill

2

Заполнение

LtSlashFill

3

Заполнение / / /

SlashFill

4

Заполнение / / / толстыми линиями

BkSlashFill

5

Заполнение \\\ толстыми линиями

LtBkSlashFill

6

Заполнение \\\

HatchFill

7

Заполнение клеткой

XHatchFill

8

Заполнение косой клеткой

InterleaveFill

9

Заполнение частой клеткой

WideDotFill

10

Заполнение редкими точками

CloseDotFill

11

Заполнение частыми точками

UserFin

12

Определяется пользователем

 

 

Таблица 6. Процедуры и функции

Имя

 

Назначение

 

Процедуры управления графическим режимом

CloseGraph

Прекращение работы графического режима

DetectGraph

Проверка оборудования и режима

GetModeRange

Получение минимального и максимального номера

 

 

графического режима

GraphDefaults

Сброс параметров графического режима

InitGraph

 

Инициализация графического режима

RestoreCrtMode

Возвращение в текстовый режим

SetGraphBufSize

Изменение размера графического буфера

SetGraphMode

Вход в графический режим и очистка экрана

Функции управления графическим режимом

GetGraphMode

Получение номера текущего графического режима

GetMaxMode

Максимальное число режимов текущего драйвера

GetModeName

Получение имени заданного графического режима

GraphErrorMsg

Формирование сообщения об ошибке

GraphResult

Получение кода ошибки

GetDriverName

Получение имени текущего драйвера

InstallUserDriver

Размещение драйвера в таблице

InstallUserFont

Установка нового шрифта

RegisterBGIdriver

Регистрация драйвера

RegisterBGIfont

Регистрация шрифта

Процедуры управления экраном, окном, страницей

ClearDevise

Очистка графического экрана

ClearViewPort

Очистка графического окна

GetAspectRatio

Получение относительного масштаба изображения

 

по горизонтали и вертикали

GetViewSettings

Получение параметров текущего графического окна

SetActivePage

Задание активной страницы

SetAspectRatio

Изменение относительного масштаба изображения

 

по горизонтали и вертикали

SetViewPort

Задание размеров окна

SetVisualPage

Задание отображаемой на экране страницы

Процедуры управления цветом и палитрой

GetDefaultPalette

Получение исходных параметров палитры

GetPalette

Получение параметров палитры

SetAllPalette

Задание всех цветов палитры

SetBkColor

Задание цвета фона экрана

SetColor

Задание текущего цвета

SetPalette

Задание одного цвета палитры

SetRGBPalette

Задание палитры для адаптеров IBM-8514 и VGA

GetBKColor GetColor GetMaxColor GetPaletteSize
GetMaxX
GetMaxY
GetPixel GetX GetY
PutPixel
GetLineSettings Line
LineRel
LineTo
MoveRel
MoveTo
SetLineStyle
SetWriteMode
Bar Bar3D DrawPoly FillPoly FloodFill

Функции управления цветом и палитрой

Получение цвета фона Получение текущего цвета

Получение максимального кода цвета Получение количества цветов в палитре

Функции работы с точками

Получение максимального значения координаты X Получение максимального значения координаты Y Получение цвета пикселя Активной страницы Получение координаты К текущей позиции на экране Получение координаты Y текущей позиции на экране

Процедуры работы с точками

Помещение пикселя в активную страницу

Процедуры работы с линиями

Получение параметров линии Построение линии от одной точки до другой

Построение линии с относительными координатами Построение линии с абсолютными координатами Перемещение указателя в точку с относительными координатами Перемещение указателя в точку с абсолютными координатами

Задание характеристик линии Задание способа построения линии

Процедуры построения фигур из линий

Построение закрашенного прямоугольника Построение закрашенного параллелепипеда Построение многоугольника Построение закрашенного многоугольника

Заполнение области текущим орнаментом

Arc
Circle
Ellipse
FillEllips GetArcCoords PieSlise Sector
GetTextSettings OutText OutTextXY
SetTextJustify
SetTextStyle
SetUserCharSize:
TextHeight
TextWidth
Getlmage
PutImage
ImageSize
GetFillPattem GetFillSettings Rectangle SetFillPattern SetFillStyle

Получение орнамента заполнения фигур Получение параметров заполнения фигур Построение прямоугольника

Задание произвольных параметров заполнения фигур Задание стандартных параметров заполнения фигур

Процедуры построения криволинейных фигур

Построение дуги окружности Построение окружности Построение дуги эллипса Построение закрашенного эллипса Получение координат последней дуги

Построение закрашенного сектора круга Построение закрашенного сектора эллипса

Процедуры работы с текстом

Получение характеристик текста Вывод последовательности символов Вывод последовательности символов, начиная с заданных координат Задание способа выравнивания текста

Задание типа, начертания шрифта и коэффициента увеличения символов Задание высоты и ширины символов

Функции работы с текстом

Получение высоты строки в пикселях

Ширина строки в пикселях

Процедуры обмена с памятью Сохранение изображения в буфере Вывод изображения из буфера на экран

Функции обмена с памятью

Получение размера требуемой для изображения памяти

Приложение III Задачи по программированию

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

Задачи систематизированы по конструкциям языка, охватывают 16 тем и сгруппированы в разделы. Нумерация упражнений в каждом разделе начинается с 1.

Кроме того, задачи в некоторых разделах дифференцированы по трудности на три уровня:

А — содержит простые задачи, решение которых сводится к типовым алго­ ритмам;

В — содержит более сложные задачи, требующие сочетания типовых алго­ ритмов и в некоторой степени творческого подхода;

С — содержит задачи, рекомендованные для более подготовленных учащихся. Сборник составлен с учетом опыта проведения практических и лаборатор­ ных занятий по программированию на математическом факультете Пермского государственного педагогического университета. Использованы также задачи из сборников, приведенных в списке литературы. Раздел “Задания по теме

“Модули” содержит только авторские разработки.

Составители сборника выражают благодарность преподавателям кафедры информатики и вычислительной техники Пермского государственного педагоги­ ческого университета за полезные советы и помощь при подготовке сборника.

В конце сборника представлены задачи районных и областных туров олим­ пиад школьников по программированию, проводившихся в Пермской области в 1986-1997 гг. В данном учебном издании содержатся в основном авторские за­ дачи. Назовем некоторых авторов задач: В.П. Гладков, Е.А. Еремин, А.А. Сайдашев, И.Г. Семакин, М.И. Федотов, А.Г. Деменев, И.В. Каганов, А.П. Шестаков, Л.В. Пономарева, М.А. Южаков. Олимпиадные задачи могут быть использованы при подготовке школьников и студентов к соревнованиям по про­ граммированию.