Напоминание

"Объектно-ориентированное программирование в среде PascalABC"


Автор: Филимонова Анна Александровна
Должность: учитель информатики
Учебное заведение: МБОУ СОШ №18
Населённый пункт: город Киров
Наименование материала: методическая разработка
Тема: "Объектно-ориентированное программирование в среде PascalABC"
Раздел: полное образование





Назад




Объектно-

ориентированное

программирование

в среде PascalABC

МОАУ СОШ №18 г. Кирова

2

Знакомство со средой PascalABC

Для

загрузки

PascalABC

нужно

запустить

файл

PascalABC.exe

из папки PABC.

После загрузки PascalABC вы увидите следующее:

Перечислим некоторые объекты, с которыми вам придётся постоянно работать:

окно формы, панель свойств и событий, объекты, кнопка запуска приложения

.

На

форме

выставляются

объекты,

на

панели

свойств

можно

установить

их

значения.

В

приложении

1

перечислены

часто

встречающиеся

свойства

объектов.

Окно формы

Панель свойств

Панель объектов

3

Первый урок – первая программа

Задание:

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

Естественно ФИО, класс должны соответствовать вашим данным.

Примерный порядок действий:

1.

Запускаем PascalABC;

2.

Меню – Сервис Создать форму;

3.

Для замены заголовка Form1 на Урок №1 нужно воспользоваться панелью

свойств. Измените свойство Caption с Form1 на текст «Урок №1». Данное

свойство присутствует во многих компонентах, где есть надписи, заголовки.

4.

Для замены цвета фона используйте свойство Color.

– нельзя менять Form1 в параметре Name. Значение свойства Name для

любых

компонентов

является

идентификатором

и

используется

для

обращения к объекту в коде программы.

объект

Вкладка “свойства”

Параметр

4

5.

Положите объект TextLabel на форму, и в свойстве Caption введите нужный

текст. Для этого:

Щелкните по иконке TextLabel на панели объектов.

Щелкните на форме, где должна находиться метка.

В свойстве Caption напишите свою фамилию. На форме отобразится

введенный текст.

В свойстве Font (шрифт) установите нужные вам гарнитуру, размер и

цвет текста.

Повторите это для строки с «именем и отчеством» и «классом».

6.

Запустите проект. Для этого щёлкните по иконке зелёного треугольника

.

Метка TextLabel

Кнопка Button

Текстовое поле Edit

5

Второй урок – ввод целочисленных данных

Задача:

Маша и Даша собирали грибы. Маша принесла a грибов, а Даша – b грибов.

Сколько всего грибов собрали девочки?

Данные для переменных a и b нужно ввести с клавиатуры.

После запуска форма может выглядеть так:

Компонент Edit

Находится на панели объектов. Используется для ввода текстовых данных

через свойство Text.

После

изменения

данных

в

любом

из

компонентов

Edit

можно

снова

пересчитать результат, нажав на кнопку ОПРЕДЕЛИТЬ.

Компонент Button

Находится на панели объектов. Чтобы вставить действия на щелчок, дважды

кликните на кнопке. Вы войдете в код процедуры для данной кнопки. В пустой

строке между begin и end вы будете писать команды.

Замечание:

в

разделе

описания

процедуры

обработки

события

описать

переменные, которые используются в процедуре.

Содержимое текстового поля – величина строкового типа (тип string), чтобы

перевести её в числовые типы используются функции:

StrToInt – преобразование строковой переменной в целочисленный тип;

StrToFloat – преобразование строковой переменной в вещественное число.

Для

вывода числового

результата в

текстовое поле

необходимо обратное

преобразование:

IntToStr – преобразование целочисленной переменной в строковой тип;

FloatToStr – преобразование вещественного числа в строковый тип.

Код программы

Рассмотрим код процедуры Button1OnClick для кнопки «Определить»:

procedure Button1OnClick;

var a, b: integer;

begin

a:= StrToInt(Edit1.Text);

// В переменные a и b заносим

b:= StrToInt(Edit2.Text);

//целочисленные значения

edit3.text:= IntToStr(a + b);

end;

Компоненты Edit1 и Edit2 для

ввода данных

Компонент Edit3 для вывода

результата

После щелчка на кнопке

«Определить» появится

результат

6

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

1.

Катя

нашла

A

грибов,

а

Слава

B.

Среди

этих

грибов

оказалось

C

несъедобных. Сколько съедобных грибов было собрано?

Контрольный пример:

А = 64, В = 89, С = 17, ответ: 136

2.

Монгольский

воин

за

7

секунд

выпускает

обычную

стрелу,

а

за

10 –

зажженную. За какое время воин выпустит А обычных и В зажженных стрел?

Контрольный пример:

4 обычных, 5 зажженных – 78 секунд

3.

У фермера дяди Вася в загоне паслись коровы и гуси. Каждый час дядя Вася

заходил в загон и подсчитывал количество голов и общее количество ног и лап, не

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

цифрами. Помогите подсчитать фермеру дяде Васе количество голов и количество

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

Контрольный пример: 12 коров, 4 гуся, ответ: 16 голов и 56 ног и лап.

7

Третий урок – использование оператора ветвления

Задача:

Константину

нужно

вычислить

модуль

введенной

числовой

величины

(расстояние от начала координат) с помощью программы. Он не знает стандартной

функции Pascal abs. Помогите ему это сделать (использовать стандартную функцию

нельзя).

Контрольный пример:

-17,78 ответ: 17,78

3 ответ: 3

По щелчку на кнопке ОПРЕДЕЛИТЬ появится результат:

После запуска форма может выглядеть так:

После

изменения

данных

в

любом

из

компонентов

Edit

можно

снова

пересчитать результат, нажав на кнопку ОПРЕДЕЛИТЬ.

Код программы

Процедура Click для кнопки ОПРЕДЕЛИТЬ с дополнительным заданием

procedure Button1OnClick;

var a:real;

begin

a := strtofloat(edit1.Text);

{получаем число }

if

a

<

0

then

{не

полная

форма

оператора

ветвления}

a := -a;

edit2.text:= floattostr(a);

end;

Дополнительное задание:

Вывести

сообщение

в

следующем

виде

после

нажатия

на

кнопку

ОПРЕДЕЛИТЬ – “модуль числа | число | = модель числа”

Пример: модуль числа | -17,78 | = 17,78

8

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

1.

Для созревания картофеля нужно 90 дней. Прошло N дней после посадки.

Можно ли выкапывать картофель?

Контрольный пример:

N – 67, ответ: рано.

N – 90, ответ: можно выкапывать.

2.

*Усложним предыдущую задачу.

До 85 – “рано”, от 85 до 89, “в принципе можно”, от 90 – 110 дней – “время

выкапывать”, более 110 дней – “можешь все проспать”.

3.

Молодой богатырь Данило Забияка решил мир посмотреть и себя показать.

Взял с собой он сумму в A рублей (не менее 50). Вот подъезжает он к перекрестку и

видит камень, на котором написано, – “налево пойдешь – пол суммы потеряешь и

еще 20 рублей, направо пойдешь – утроишь свою сумму”. Данило подумал, что это

вранье, да и не пристало добру молодцу кого-то бояться и поехал налево. Все

случилось пописанному. Вернулся Данило к перекрестку и решил поехать направо.

Снова

все

получилось,

как

написано на

камне.

Интересно

в

проигрыше ли

оказался Данило?

Контрольный пример:

A = 60

Ответ: в проигрыше

A = 200

Ответ: в выигрыше

4.

Сестры подсчитали свои денежные накопления, у них оказались разные

суммы. Какая сестра должна дать другой денег и сколько, чтобы у обеих сестер

суммы стали равными?

Контрольный пример:

24,50 13, 48 ответ: первая сестра 5,51

20, 30

ответ: вторая сестра 5

5.

Коля,

Вася

и

Маша

решили

купить

в

столовой

комплексный

обед

(фиксированный

набор

продуктов,

следовательно,

фиксированная

цена

одного

обеда) стоимостью A рублей. Смогут ли они купить обед на каждого, если у Коли

B рублей, Васи С рублей, а у Маши D рублей?

Контрольный пример:

A = 19,50; B = 4,8;

C = 23,1;

D = 20,1 Ответ: нет

A = 19,50; B = 14,8;

C = 23,1;

D = 20,1 Ответ: да

6.

Коля, Вася и Маша собирали ягоды. После окончания сбора Маша решила

отдать свои ягоды тому, кто меньше собрал ягод. Если же мальчики собрали

одинаковое количество (в литрах), то разделить ягоды поровну. Сколько стало ягод

у Коли и Васи, если ребята соответственно собрали A, B и C литров ягод?

Контрольный пример:

3, 4,5 4 ответ: 7 4,5

4,5 4,5 6 ответ: 7,5 7,5

9

7.

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

блюда в другое, используя соответственно чашку и кружку. Их команда проиграла.

Кролик обвинил бобра в том, что тот медленно бегал. На это бобер ответил, что в

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

прав, если кролик A раз вылил воду из чашки, бобр B раз из кружки? В кружку

входило по C мл, а в чашку по D мл.

Контрольный пример:

A = 5 B = 3 C = 50 D = 70 – прав кролик

A = 5 B = 4 C = 50 D = 70 – прав бобёр

A = 7 B = 5 C = 50 D = 70 – оба ошиблись

10

Четвертый урок – цикл с параметром (For)

Цикл с параметром:

For <1> := <2> to/downto <3> do

<4>;

1

– переменная порядкового типа;

2

– начальное значение переменной;

3

– конечное значение переменной;

4

– оператор;

to

– шаг +1;

downto – шаг -1.

Задача:

Сколько

трехзначных

чисел

имеют

удвоенную

сумму

цифр

равную

произведению цифр? Напечатать эти числа.

Пусть наша форма будет иметь следующий вид:

Код программы

procedure Button1OnClick;

begin

n := 0;

{счетчик количества цифр}

s := '';

{строковая переменная для вывода результата}

for a := 1 to 9 do

{цифра сотен}

for b := 0 to 9 do

{цифра десятков}

for c := 0 to 9 do

{цифра единиц}

if 2*(a + b + c) = (a * b * c) then

begin

n := n + 1;

s := s + inttostr(100*a + 10*b + c) + ' ';

end;

edit1.text:= IntToStr(n);

edit2.text:= s;

end;

11

Примерные задания для четвертого урока

1.

Насекомое

ляпсус-папсус

размножается

с

удивительной

скоростью

и

закономерностью:

каждую секунду их становится в три раза больше;

каждую секунду погибает после этого половина;

Определите,

a)

сколько их будет через A секунд, если сейчас насекомых B?

b)

сколько их было A секунд назад, если сейчас их B?

Контрольный пример:

A = 5; B = 4 ответ: 22

2.

У гусей и кроликов вместе 64 лапы. Сколько могло быть кроликов и гусей

(указать все сочетания, которые возможны, и количество)?

Результат: 17 (сочетаний).

12

Пятый урок – цикл с предусловием (While … do)

Цикл с предусловием:

While <1> do <2>; // делать, пока условие верно

1 – логическое выражение (условие);

2 – оператор;

– цикл выполняется до тех пор, пока логическое выражение истинно;

– после ключевого слова выполняется один оператор.

Если

нужно

выполнить более одного оператора, то их заключают в операторные скобки Begin

end;

– в теле цикла обязательно должно произойти событие, которое сделает

логическое выражение ложным.

Задача:

Два жадных медвежонка нашли по головке сыра разного веса и стали спорить,

кому какая достанется. В это время рядом бежала лиса и, увидев это, предложила

свою помощь:

а)

она

откусывает

от

большей

головки

столько,

сколько

весит

меньшая

головка;

б) если они окажутся не равными, то повторит откусывание для большей

головки;

в) иначе - закончит дележ.

Если найденные головки сыра весят M и N гр., то сколько будут весить они после

дележа, сколько раз будет лиса откусывать и сколько грамм сыра она съест?

Пусть наша форма будет иметь следующий вид:

Вывод результатов будем производить в три объекта Edit.

Код программы

procedure Button1OnClick;

var

a, b, z, n : integer;

// локальные переменные

begin

a := strtoint(Edit1.Text);

// вес первой головки сыра в граммах

13

b := strtoint(Edit2.Text);

//

вес

второй

головки

сыра

в

граммах

n := 0;

// количество откусываний

z := a + b;

// вес двух головок сыра до дележа

While a <> b do

begin

inc(n);

If a > b then

a := a - b

Else

b := b - a;

end;

edit3.text:= inttostr(a) + ' гр.';

edit4.text:= inttostr(z - 2*a) + ' гр.';

edit5.text:= inttostr(n) + ' раз.';

end;

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

1.

Количество муравьев в муравейнике с каждой неделей увеличивается втрое.

Определить через сколько недель, муравьев станет больше А, если первоначально

их было 99?

Контрольный пример:

A = 5000, ответ: 3-я неделя;

А = 250 000, ответ: 7-я неделя

2.

Александр

Вятский

взял

у

Юрия

Долгорукова

взаймы

10000 рублей

с

условием, что каждый месяц он будет возвращать ему 1/5 часть от остатка (целую

его часть). Как только оставшаяся сумма не будет превышать А рублей, он отдаст

ему весь остаток сразу. Через сколько месяцев Александр Вятский возвратит весь

долг Юрию Долгорукову?

Контрольный пример:

А = 10 000, ответ: 7 месяцев

А = 150, 30 месяцев

3.

Для работы робота на бесконечной ленте записаны случайным образом

натуральные числа (значения до 32 000). Робот подсчитывает нужные числа до тех

пор, пока не встретится 0 (не натуральное число). Определить сколько было чисел:

а) кратных 7 и заканчивающихся цифрой 1 или 2;

б) кратных 5 и начинающихся с цифры 2 или 3;

в) кратных 11 и не имеющих цифру 2.

Контрольный пример:

а) 15, 11, 350, 2, 0 ответ: 1

б) 15, 30, 21, 55, 302, 235,0

ответ: 2

в) 121, 1111, 101, 66, 88, 220, 0

ответ: 3

14

Шестой урок – цикл с постусловием (Repeat … Until)

Цикл с постусловием:

Repeat <1> Until <2>;

1

– операторы;

2

– логическое выражение (условие);

– после выполнения тела цикла происходит проверка условия выхода.

Выход по верному условию.

ключевые

слова

Repeat

и

Until

являются

операторными

скобками,

поэтому между ними можно вставить более одного оператора;

– в теле цикла обязательно должно произойти событие, которое сделает

логическое выражение верным.

Задача:

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

N с помощью компьютера получить другое число, записанное в обратном порядке.

А вы сможете это сделать?

Контрольный пример:

Введено число 12023, новое число 32021.

Пусть наша форма будет иметь следующий вид:

Вывод результата осуществим в Edit2.

Код программы

procedure Button1OnClick;

var

a, b, x : integer;

begin

a := StrToInt(Edit1.Text);

x := a;

b := 0;

repeat

b := b * 10 + x mod 10;

// 1

x := x div 10;

// 2

until x = 0;

// 3

Edit2.Text := IntToStr(b);

end;

15

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

1.

Света нашла число, которое при последовательном делении на 2, 3, 4, 5, 6, 7, 8,

9, 10, дает соответственно остатки 1, 2, 3, 4, 5, 6, 7, 8, 9. Владик попросил ее

найти число с такими же свойствами, но наименьшее. А вы сможете найти

это число?

(Квант, № 5, 1991 г.)

2.

Вася ехал на троллейбусе с номером 4554. Его заинтересовала проблема: если

номера троллейбусов начинаются с числа A и заканчиваются B то, сколько

троллейбусов и

какие

имеют

номера

палиндромы.

Палиндром

это

число,

одинаково читающееся слева направо и наоборот, например, 4554, 454.

Контрольный пример:

А = 200, В = 300

ответ: 10

16

Приложения

Приложение № 1

Некоторые свойства объектов:

Align

Выравнивание объекта к контейнеру

Caption

Надпись, заголовок

Color

Цвет фона объекта

Cursor

Вид курсора на объекте

Enabled

Доступен ли объект (значения true, false)

Font

Color

Height

Name

Size

Style

Параметры шрифта, шелчёк на - вызов диал. окна

цвет

высота

название (гарнитура)

размер (в пунктах)

стиль – начертание

Height

Высота объекта в пикселях

Hint

Текст подсказки для объекта

Icon

Замена стандартной иконки

Left

Отступ от левой границы в пикселях (окна, формы,

контейнера)

Name

Название объекта – лучше не менять стандартные, иначе

правила идентификатора

Top

Отступ от верхней границы в пикселях (окна, формы,

контейнера)

Visible

Видимый объект или нет (значения: true, false)

Width

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

17

Приложение № 2

Математические операции и некоторые функции в Pascal-е

Порядок

Математика

PascalABC

Пример

1

возведение x в степень y

power(x,y)

2

3

→ power(2,3)

2

умножение

*

2 * 56

→ 112

деление

/

134 / 4

→ 33,5

целочисленное деление

div

17 div 3

→ 5

остаток от целочисленного

деления

mod

17 mod 3

→ 2

3

сложение

+

17 + 8

→ 25

вычитание

36,7 – 9,4 → 27,3

4

операции сравнения:

>

>

=

=

<

<

<>

<=

>=

18

Приложение № 3

Стандартные математические функции Pascal

Обращение

Тип

параметра

Тип

результата

Примечание

abs(x)

Real,

Integer

Тип

аргумента

Модуль аргумента

ArcTan(x)

Real

Real

Аргтангенс (значение в радианах)

cos(x)

Real

Real

Косинус, угол в радианах

exp(x)

Real

Real

Экспонента

frac(x)

Real

Real

Дробная часть

int(x)

Real

Real

Целая часть числа

ln(x)

Real

Real

Логарифм натуральный

pi

-

Real

= 3б141592653 …

Random

-

Real

Псевдослучайное число, равномерно

распределенное в диапазоне 0 … [1]

Random(x)

Integer

Integer

Псевдослучайное число, равномерно

распределенное в диапазоне 0 … (x-1)

Randomize

-

-

Инициация генератора

псевдослучайных чисел

sin(x)

Real

Real

Синус, угол в радианах

sqr(x)

Real

Real

Квадрат аргумента

sqrt(x)

Real

Real

Корень квадратный

В этой таблице Real означает любой вещественный тип, Integer – любой целый

тип.

19

Приложение № 4

Типы числовых данных в Pascal

Целые типы

Название

Длинна,

байт

Диапазон значений

Byte

1

0 … 255

Word

2

0 … 65 535

Integer

4

-2 147 483 648 … +2 147 483 647

LongInt

4

-2 147 483 648 … +2 147 483 647

Вещественные типы

Название

Длина, байт

Количество

значащих

цифр

Диапазон значений

Real

8

15 … 16

5,0·10

-324

… 1,7·10

308

20

Контрольная работа

1.

Население некоторой страны в 1904 году составляло a человек. По переписи

населения,

проведённой

в

прошлом

году,

зарегистрировано

b

человек.

Составить программу вычисления среднегодового прироста населения за этот

период.

2.

Составить программу определения, является ли введённый год високосным?

Замечание: Високосный год – год, номер которого кратен 4, но не кратен 100,

а также кратен 400.

3.

Составить программу определения размера денежного вклада через t лет после

его внесения, если заданы размер начального взноса n и банковский процент b.

4.

Для условий из предыдущей задачи определить, через сколько лет размер

вклада превысит вдвое первоначальный взнос.

21

Комментарии



В раздел образования