Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var old, new : real;

F : BOOLEAN;

BEGIN

WRITE('BBEДИTE X = ');

READLN (OLD);

WRITE('BBEДИTE X = ');

READLN (NEW);

F := TRUE;

REPEAT

IF NEW<= OLD THEN F := FALSE;

OLD := NEW;

WRITE('BBEДИTE X = ');

READLN (NEW)

UNTIL NEW = 0;

If f then

WRITELN('ПOCЛEДOBATEЛЬHOCTЬ ВОЗРАСТАЮЩАЯ')

ELSE

WRITELN('ПOCЛEДOBATEЛЬHOCTЬ HE ЯВЛЯЕТСЯ ВОЗРАСТАЮЩЕЙ')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим два первых числа как OLD и NEW, задаем началь­ное значение флага;

- в цикле ищем нарушение свойства членов возрастающей последовательности;

- переприсваиваем значение OLD := NEW и вводим новое -NEW;

- в зависимости от флага выводим результат.

Переменные:

OLD - предыдущее число;

NEW - рассматриваемое число;

F - флаг.

ВВЕДИТЕ X = 4

ВВЕДИТЕ X = 10

ВВЕДИТЕ X = 11

ВВЕДИТЕ X = 14

ВВЕДИТЕ X = 124

ВВЕДИТЕ X = 444

ВВЕДИТЕ X = 0

ПОСЛЕДОВАТЕЛЬНОСТЬ ВОЗРАСТАЮЩАЯ

ВВЕДИТЕ X = 4

ВВЕДИТЕ X = 4

ВВЕДИТЕ X = 0

ПОСЛЕДОВАТЕЛЬНОСТЬ НЕ ЯВЛЯЕТСЯ ВОЗРАСТАЮЩЕЙ

Рис. 3.7. Результат работы PRG3_9

Задача 3.10 Вводится последовательность ненулевых чисел, 0 - конец последовательности. Определить, явля­ется ли последовательность знакопеременной.

В знакопеременной последовательности нет ни одной пары соседних элементов, у которых бы совпадали знаки, например 1-1 2-3 0 - знакопеременная последовательность, а 1 1-2 3-4 0 - нет. PROGRAM PRG3_10;

Var old, new : real;

F : BOOLEAN;

BEGIN

WRITE('BBEДИTE X = ');

READLN (OLD);

WRITE('BBEДИTE X = ');

READLN (NEW);

F := TRUE;

REPEAT

IF NEW*OLD> = 0 THEN F := FALSE;

OLD := NEW;

WRITE('BBEДИTE X = ');

READLN (NEW)

UNTIL NEW = 0;

If f then

WRITELN('ПOCЛEДOBATEЛЬHOCTЬ ЗНАКОПЕРЕМЕННАЯ')

ELSE

WRITELN('ПOCЛEДOBATEЛЬНОСТЬ HE ЯВЛЯЕТСЯ ЗНАКОПЕРЕМЕННОЙ')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим два первых числа как OLD и NEW, задаем началь­ное значение флага;

- в цикле ищем нарушение свойства знакопеременное™ чле­нов последовательности;

- переприсваиваем значение OLD := NEW и вводим новое - NEW;

- в зависимости от флага выводим результат.

Переменные:

OLD - предыдущее число;

NEW - рассматриваемое число;

F - флаг.

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

Задача 3.11 На выставке собак, где были представлены разные породы, отбор животных производился по возрас­ту и высоте холки. Определить, сколько было бок­серов 2-3-летнего возраста с высотой холки не менее 55 сантиметров.

PROGRAM PRG3_11;

Var poroda : string;

I, к, n : integer;

AGE, L: REAL;

BEGIN

REPEAT

WRITE('BBEДИTE ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N = ');

READLN (N);

UNTIL N>0;

К := 0;

FOR I := 1 TO N DO

BEGIN

WRITELN('BBEДИTE ПОРОДУ, ВОЗРАСТ, ВЫСОТУ ХОЛКИ ');

READLN (PORODA);

READLN (AGE, L);

IF (PORODA = 'БОКСЕР') AND (AGE<= 3) AND (AGE> = 2) AND (L> = 55)

THEN К := K+1;

END;

IF К = 0 THEN WRITELN('TAKИX СОБАК НЕТ')

ELSE

WRITELN('БOKCEPOB 2-3 ЛЕТ С ВЫСОТОЙ ХОЛКИ НЕ НИЖЕ 55 СМ', К, ' ШТУК')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим длину последовательности, задаем начальное значе­ние счетчика К;

- в цикле вводим породу собаки, возраст и высоту холки;

- если собака удовлетворяет всем требованиям, то увеличива­ем значение счетчика на единицу;

- в зависимости от К выводим результат.

Переменные:

К - счетчик;

I - переменная цикла;

N - количество собак;

AGE - возраст собаки;

L - высота холки;

PORODA - порода.

ВВЕДИТЕ ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N = 3

ВВЕДИТЕ ПОРОДУ, ВОЗРАСТ, ВЫСОТУ ХОЛКИ

БОКСЕР

3

56

ВВЕДИТЕ ПОРОДУ, ВОЗРАСТ, ВЫСОТУ ХОЛКИ

КОЛЛИ

5

68

ВВЕДИТЕ ПОРОДУ, ВОЗРАСТ, ВЫСОТУ ХОЛКИ

БОКСЕР

6

56

БОКСЕРОВ 2-3 ЛЕТ С ВЫСОТОЙ ХОЛКИ НЕ НИЖЕ 55 СМ 1 ШТУК

Рис. 3.8. Результат работы PRG3_11

Задача 3.12 В очереди за билетами стоят мужчины и женщи­ны. Какое количество мужчин стоит в начале оче­реди до первой женщины.

PROGRAM PRG3_12;