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

Var mas : array[1..M] of integer;

I, max, k, n : integer;

BEGIN

WRITE('BBEДИTE РАЗМЕР МАССИВА N = ');

READLN(N);

WRITE('BBEДИTE ЭЛЕМЕНТ МАССИВА');

READLN(MAS[1]);

MAX := MAS[1];

K:= 1;

FOR I := 2 TO N DO

BEGIN

WRITE('BBEДИTE ЭЛЕМЕНТ МАССИВА');

READLN(MAS[I]);

IF MAX<MAS[I] THEN

BEGIN

MAX := MAS[I];

K:= 1

END

ELSE

IF MAX = MAS[I] THEN К := K+1;

END;

WRITELN('MAX =', MAX, 'ЭТИХ ЭЛЕМЕНТОВ', К)

END.

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

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

- вводим длину массива N, значение элементов массива и устанавливаем начальное значение МАХ по первому числу;

- последовательно просматриваем элементы, и если очередной MAS[ I ] больше МАХ, то переприсваиваем значение МАХ:=Х и К:= 1;

- если MAS[ I ] = МАХ, то увеличиваем значение К на еди­ницу;

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

Переменные:

MAS - массив чисел;

N - размер массива;

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

МАХ - значение наибольшего элемента;

К - количество наибольших элементов.

ВВЕДИТЕ РАЗМЕР МАССИВА N = 6

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 5

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 6

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА -12

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 148

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 54

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 148

МАХ = 148 ЭТИХ ЭЛЕМЕНТОВ 2

Рис. 6.1. Результат работы PRG6_1

Задача 6.2 Дан массив чисел. Найти, сколько в нем пар оди­наковых соседних элементов.

PROGRAM PRG6_2;

CONST M = 100;

Var mas : array[1..M] of integer;

I, k, n : integer;

BEGIN

WRITE('BBEДИTE РАЗМЕР МАССИВА N = ');

READLN(N);

К:= 0;

FOR I:= 1 TO N DO

BEGIN

WRITE('BBEДИTE ЭЛЕМЕНТ МАССИВА');

READLN(MAS[I]);

END;

FOR I:= 1 TO N-1 DO

IF MAS[I] = MAS[I+1] THEN К := K+1;

WRITELN('OДИНАКОВЫХ ПАР СОСЕДНИХ ЭЛЕМЕНТОВ', К)

END.

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

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

- вводим длину массива N, значение элементов массива и устанавливаем начальное значение К;

- последовательно просматриваем элементы, и если очередной MAS[ I ] равен следующему MAS[I +1], то увеличиваем зна­чение К на единицу;

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

Переменные:

MAS - массив чисел;

N - размер массива;

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

К - количество одинаковых пар соседних элементов.

ВВЕДИТЕ РАЗМЕР МАССИВА N = 6

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 5

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 6

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА -12

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 148

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 148

ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА 148

ОДИНАКОВЫХ ПАР СОСЕДНИХ ЭЛЕМЕНТОВ 2

Рис. 6.2. Результат работы PRG6J2

Задача 6.3 Дан массив чисел. Найти наибольший элемент, поставить его первым.

PROGRAM PRG6_3;

CONST M = 100;

Var mas : array[1..M] of integer;

I, k, new, n : integer;

BEGIN

WRITE('BBEДИTE РАЗМЕР МАССИВА N = ');

READLN(N);

WRITELN('BBEДИTE ', N,' ЭЛЕМЕНТОВ МАССИВА');

FOR I := 1 TO N DO

READ(MAS[I]);

WRITELN;

NEW := MAS[N];

K:=N;

FOR I := N DOWNTO 1 DO

IF MAS[I]>NEW THEN

BEGIN

K:=l;

NEW := MAS[I]

END;

MAS[K] := MAS[1];

MAS[1] := NEW;

FOR I := 1 TO N DO

WRITE(MAS[I] : 4);

WRITELN

END.

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

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

- вводим длину массива N, значение элементов массива;

- последовательно, справа налево, просматриваем элементы и находим наибольший элемент NEW := MAS[I], запоминая его порядковый номер К := I;

- меняем местами первый элемент и найденный;

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

Переменные:

MAS - массив чисел;

N - размер массива;

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

К - порядковый номер наибольшего элемента;

NEW - значение наибольшего элемента.

ВВЕДИТЕ РАЗМЕР МАССИВА N = 6

ВВЕДИТЕ 6 ЭЛЕМЕНТОВ МАССИВА

5 12 48 48 44 6

48 12 5 48 44 6

Рис. 6.3. Результат работы PRG6_3

Задача 6.4 Дан массив чисел. Расставить их по убыванию.

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

1. Выбирается наибольший элемент.

2. Меняем его местами с первым элементом.

3. Повторяем процесс с оставшимися N - 1 элементами, N - 2 элементами и т. д., до тех пор, пока не останется один, самый маленький элемент.

Как видно из описания алгоритма, сама сортировка осуществ­ляется с помощью двух вложенных циклов:

FOR J := 1 ТО N-1 DO

BEGIN

NEW := MAS[N];

К := N;

FOR I := N DOWNTO J DO

IF MAS[I]>NEW THEN

BEGIN

K:=l;

NEW := MAS[I]

END;

MAS[K] := MAS[J];

MAS[J] := NEW;

END;

Цикл FOR J := 1 TO N-1 DO определяет место J, на которое будет поставлен наибольший эле­мент, найденный в цикле: FOR I := N DOWNTO J DO.

PROGRAM PRG6_4;

CONST M = 100;