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

Var n, X, max, I: integer;

BEGIN

REPEAT

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

READLN (N);

UNTIL N>0;

MAX := 0;

REPEAT

WRITE('ВВЕДИТЕ X = ');

READLN (X);

N := N - 1

UNTIL (X<0) OR (N<= 1);

IF X<0 THEN MAX := X;

FOR I := 1 TO N DO

BEGIN

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

READLN (X);

IF (X<0) AND(X>MAX) THEN MAX := X;

END;

IF MAX = 0 THEN WRITELN('OTPИЦATEЛЬHЫX ЧИСЕЛ НЕТ')

ELSE

WRITELN('HAБОЛЬШЕЕ ИЗ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ MAX = ', MAX);

END.

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

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

- вводим длину последовательности N;

- устанавливаем начальное значение МАХ по первому отрица­тельному числу;

- последовательно считываем числа, и если очередное отрица­тельное число X больше МАХ, то перепрнсваиваем значение МАХ : = X;

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

Переменные:

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

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

X - очередное число;

МАХ - наибольшее число.

Задача 3.5 Вводится последовательность целых чисел, 0 - ко­нец последовательности. Найти два наименьших числа.

PROGRAM PRG3_5;

Var X, min1, min2 : integer;

BEGIN

WRITE('ВВЕДИТЕ X = ');

READLN (X);

MIN1 :=X;

MIN2 := X;

{MIN2 > = MIN1}

REPEAT

IF X<= MIN1 THEN

BEGIN

MIN2:=MIN1;

MIN1 :=X

END

ELSE

IF (MIN1<X) AND (X<MIN2) THEN MIN2 := X;

WRITE('ВВЕДИТЕ X = ');

READLN (X);

UNTIL (X = 0);

WRITELN('ДBA НАИМЕНЬШИХ ЧИСЛА РАВНЫ ', MIN1, 'И', MIN2);

END.

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

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

- устанавливаем начальное значение MIN1 и MIN2 по перво­му числу;

- последовательно считываем числа и, если очередное число X меньше или равно MIN1(MIN1 < MIN2), то переприсваи­ваем значение MIN1 и MIN2;

- если X попадает в интервал от MIN1 до MIN2, то перепри­сваиваем только MIN2;

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

Переменные:

X - очередное число;

MIN1 - первое наименьшее число;

MIN2 - второе наименьшее число (MIN2 >= MIN1).

ВВЕДИТЕ Х = 5

ВВЕДИТЕ Х = 4

ВВЕДИТЕ Х = 3

ВВЕДИТЕ X = 2

ВВЕДИТЕ X = 0

ДВА НАИМЕНЬШИХ ЧИСЛА РАВНЫ 2 И 3

ВВЕДИТЕ X = 4

ВВЕДИТЕ Х = 2

ВВЕДИТЕ Х = 2

ВВЕДИТЕ х = 0

ДВА НАИМЕНЬШИХ ЧИСЛА РАВНЫ 2 И 2

Рис. 3.3. Результат работа PRG3_5

Другой вид задач по обработке последовательностей - контек­стный поиск - требует одновременно рассматривать пару A i и А i+1 или более соседних членов. В этом случае мы храним значение A i как OLD, а А i+1 – как NEW. Обработав эти два члена, мы при­сваиваем OLD значение А i+1 (OLD := NEW) и считываем А i+2 как NEW.

Задача 3.6 Вводится последовательность чисел, 0 - конец последовательности. Определить, содержит ли по­следовательность хотя бы два равных соседних члена (аi, = аi+1).

PROGRAM PRG3_6;

Var old, new : real;

F : BOOLEAN;

BEGIN

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

READLN (OLD);

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

READLN (NEW);

F := FALSE;

REPEAT

IF NEW = OLD THEN F := TRUE;

OLD := NEW;

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

READLN (NEW)

UNTIL NEW = 0;

If f then

WRITELN('B ПОСЛЕДОВАТЕЛЬНОСТИ ЕСТЬ РАВНЫЕ');

WRITELN('COCEДНИE ЧЛЕНЫ')

ELSE

WRITELN('B ПОСЛЕДОВАТЕЛЬНОСТИ НЕТ РАВНЫХ');

WRITELN('COCEДHИX ЧЛЕНОВ')

END.

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

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

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

- в цикле сравниваем два этих числа и, если они равны, уста­навливаем флаг F;

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

NEW;

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

Переменные:

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

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

F - вспомогательный флаг.

ВВЕДИТЕ X = 5

ВВЕДИТЕ X = 4

ВВЕДИТЕ X = 4

ВВЕДИТЕ X = 4

ВВЕДИТЕ X = 0

В ПОСЛЕДОВАТЕЛЬНОСТИ ЕСТЬ РАВНЫЕ

СОСЕДНИЕ ЧЛЕНЫ

ВВЕДИТЕ X = 4

ВВЕДИТЕ X = 2

ВВЕДИТЕ X = 88

ВВЕДИТЕ X = О

В ПОСЛЕДОВАТЕЛЬНОСТИ НЕТ РАВНЫХ

СОСЕДНИХ ЧЛЕНОВ

Рис. 3.4. Результат работы PRG3_6

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

PROGRAM PRG3_7;