Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса



Задача 1. Дан массив K, состоящий из 45 элементов. Элементы массива - произвольные целые числа. Определить минимальный элемент массива и его индекс.

USES Crt;

VAR

K: ARRAY[0..45] OF INTEGER;

I, IND: BYTE; MIN: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива');

FOR I: =1 TO 45 DO Begin

K[I]: =Random(35)+6; Write(K[I]: 3);

End; WriteLn;

MIN: =K[1]; IND: =1;

{ нахождение минимального значения и его индекса }

FOR I: =2 TO 45 DO

IF K[I]< MIN THEN Begin MIN: =K[I]; IND: =I; End;

WriteLn(' Минимальное значение = ', MIN);

WriteLn(' Индекс минимального значения = ', IND);

END.

Задача 2. Дан массив B, состоящий из N элементов. Элементы массива - произвольные целые числа. Определить сумму элементов, расположенных до максимального элемента массива.

USES Crt;

CONST N=20;

VAR

B: ARRAY[0..N] OF INTEGER;

I, IND: BYTE; MAX, S: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива');

FOR I: =1 TO N DO Begin

B[I]: =Random(35); Write(B[I]: 3);

End; WriteLn;

MAX: =B[1]; IND: =1;

{ нахождение максимального значения и его индекса }

FOR I: =2 TO N DO

IF B[I]> MAX THEN Begin MAX: =B[I]; IND: =I; End;

WriteLn(' Максимальное значение = ', MAX);

{ нахождение суммы элементов, расположенных до максимального элемента }

S: =0;

FOR I: =1 TO IND-1 DO

S: =S+B[I];

WriteLn(' Cумма элементов, расположенных до максимального элемента =', S);

END.

Задача 3. Дан массив A, состоящий из N элементов. Элементы массива - произвольные целые числа. Заменить нулями все элементы массива, расположенные за минимальным элементом массива. Измененный массив вывести на экран.

USES Crt;

CONST N=15;

VAR

A: ARRAY[0..N] OF INTEGER;

I, IND: BYTE; MIN: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива');

FOR I: =1 TO N DO Begin

A[I]: =Random(400); Write(A[I]: 4);

End; WriteLn;

MIN: =A[1]; IND: =1;

{ нахождение минимального значения и его индекса }

FOR I: =2 TO N DO

IF A[I]< MIN THEN Begin MIN: =A[I]; IND: =I; End;

WriteLn(' Минимальное значение = ', MIN);

{ замена нулями элементов, расположенных за минимальным значением }

FOR I: =IND+1 TO N DO

A[I]: =0;

WriteLn(' Измененный массив');

FOR I: =1 TO N DO

Write(A[I]: 4);

END.

Задача 4. Дан массив A, состоящий из N элементов. Элементы массива - произвольные целые числа. Заменить нулями все элементы массива, расположенные между минимальным и максимальным элементами массива, кроме их самих. Измененный массив вывести на экран.

USES Crt;

CONST N=15;

VAR

A: ARRAY[0..N] OF INTEGER;

I, IMIN, IMAX, k1, k2: BYTE; MIN, MAX: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива');

FOR I: =1 TO N DO Begin

A[I]: =Random(270); Write(A[I]: 4);

end; WriteLn;

MIN: =A[1]; MAX: =A[1]; IMIN: =1; IMAX: =1;

{ нахождение минимального и максимального значения и их индексов }

FOR I: =2 TO N DO Begin

IF A[I]< MIN THEN Begin MIN: =A[I]; IMIN: =I; End;

IF A[I]> MAX THEN Begin MAX: =A[I]; IMAX: =I; End;

End;

WriteLn(' Минимальное значение = ', MIN);

WriteLn(' Максимальное значение = ', MAX);

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

значением }

IF IMIN< IMAX THEN Begin K1: =IMIN+1; K2: =IMAX-1; End

ELSE Begin K1: =IMAX+1; K2: =IMIN-1; End;

FOR I: =K1 TO K2 DO

A[I]: =0;

WriteLn(' Измененный массив');

FOR I: =1 TO N DO

Write(A[I]: 4);

END.

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

USES Crt;

CONST M=100;

VAR

MAS: ARRAY[1..100] OF INTEGER;

I, K, N, NEW: INTEGER;

BEGIN

ClrScr;

Write(' Введите размер массива N= '); ReadLn(N);

{ Заполнение массива с клавиатуры }

FOR I: =1 TO N DO Begin

Write(' Введите ', I, ' элемент массива '); ReadLn(MAS[I]);

End;

NEW: =MAS[N]; K: =N;

{ Нахождение наибольшего элемента и его индекса }

FOR I: =N DOWNTO 1 DO

IF MAS[I]> NEW THEN Begin NEW: =MAS[I]; K: =I; End;

{ Перестановка местами первого и наибольшего элементов }

MAS[K]: =MAS[1]; MAS[1]: =NEW;

WriteLn(' Измененный массив');

FOR I: =1 TO N DO

Write(MAS[I]: 4);

END.

Задача 6. Известны данные о среднемесячной температуре за год. Определить, какая была самая высокая температура летом и самая низкая зимой.

USES Crt;

VAR

MAS: ARRAY[1..12] OF REAL;

I: INTEGER; MIN, MAX: REAL;

BEGIN

ClrScr;

{ Заполнение массива с клавиатуры }

FOR I: =1 TO 12 DO Begin

Write(' Введите среднюю температуру за ', I, ' месяц '); ReadLn(MAS[I]);

End;

MAX: =MAS[6]; MIN: =MAS[12];

{ Определение самой высокой температуры летом }

FOR I: =7 TO 8 DO

IF MAX< MAS[I] THEN MAX: =MAS[I];

{ Определение самой низкой температуры зимой }

FOR I: =1 TO 2 DO

IF MIN> MAS[I] THEN MIN: =MAS[I];

WriteLn(' Самая высокая температура летом ', MAX);

WriteLn(' Самая низкая температура зимой ', MIN);

END.

.....................................................................................................................................

Практические задания

.....................................................................................................................................

1. Дан массив чисел. Найти значение максимального элемента. Если таких элементов несколько, то определить, сколько их.

2. Дан массив чисел. Найти среднее арифметическое максимального и минимального элемента. Вывести значения и индексы этих элементов.

3. Дан массив чисел. Определить количество элементов, находящихся в интервале от1 до 12 и расположенных до максимального элемента массива.

 

Алгоритмы удаления, вставки и перестановки элементов

Задача 1. Дан массив A, состоящий из 12 элементов. Элементы массива - произвольные целые числа. Поменять местами значения 1 и 2 элементов, 3 и 4 и т.д. Измененный массив вывести на экран.

USES Crt;

VAR

A: ARRAY[0..12] OF INTEGER;

I: BYTE; PP: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива');

FOR I: =1 TO 12 DO Begin

A[I]: =Random(20); Write(A[I]: 3);

End; WriteLn;

I: =1;

WHILE I< =12 DO Begin

{перестановка элементов местами, используя промежуточную переменную PP }

PP: =A[I]; A[I]: =A[I+1]; A[I+1]: =PP;

I: =I+2;

End;

WriteLn(' Значения элементов измененного массива');

FOR I: =1 TO 12 DO

Write(A[I]: 3);

END.

Задача 2. Дан массив целых чисел из 15 элементов, заполненный случайным образом числами из промежутка [-20, 50].

1. Удалить из него все элементы, в записи которых есть цифра 5.

2. Вставить число K после всех элементов, кратных своему номеру (К вводится с клавиатуры).

3. Поменять местами первый положительный и последний отрицательный элементы.}

USES Crt;

VAR

P, P1: ARRAY[0..15] OF INTEGER; P2: ARRAY[0..30] OF INTEGER;

I, J, E, D, PP, PO, FL: BYTE; K, PRP: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива P');

FOR I: =1 TO 15 DO Begin

P[I]: =Random(70)-20; Write(P[I]: 4);

End; WriteLn;

J: =1;

{ 1. Удаление }

FOR I: =1 TO 15 DO Begin

E: =ABS(P[I]) mod 10; {Выделение единиц}

D: =ABS(P[I]) div 10; {Выделение десятков}

{ формирование нового массива }

IF (E< > 5) AND (D< > 5) THEN Begin P1[J]: =P[I]; J: =J+1; End;

End;

WriteLn(' Массив, в котором нет элементов с цифрой 5');

FOR I: =1 TO J-1 DO

Write(P1[I]: 4);

WriteLn;

{ 2. Вставка }

Write(' Введите значение переменной '); ReadLn(K);

J: =1;

FOR I: =1 TO 15 DO Begin

P2[J]: =P[I]; J: =J+1;

IF ABS(P[I]) mod I = 0 THEN Begin P2[J]: =K; J: =J+1; End;

End;

WriteLn(' Массив, в котором после элементов, кратных своему номеру, вставлено число =', K);

For I: =1 TO J-1 DO

Write(P2[I]: 4);

WriteLn;

{ 3. Перестановка }

{ Нахождение первого положительного и последнего отрицательного элемента }

FL: =0;

FOR I: =1 TO 15 DO Begin

IF (P[I]> 0) AND (FL=0) THEN Begin PP: =I; FL: =1; End;

IF P[I]< 0 THEN PO: =I;

End;

{ перестановка местами первого положительного и последнего отрицательного'}

PRP: =P[PP]; P[PP]: =P[PO]; P[PO]: =PRP;

WriteLn(' Массив, в котором первый положительный и последний отрицательный');

WriteLn(' поменяли местами');

FOR I: =1 TO 15 DO

Write(P[I]: 4);

END.

.....................................................................................................................................

Практические задания

.....................................................................................................................................

Дан массив целых чисел из 10 элементов, заполненный случайным образом из промежутка [-40, 30].

1. Удалить из него все элементы, которые состоят из одинаковых цифр ( включая однозначные числа).

2. Вставить число К перед всеми элементами, в которых есть цифра 1 (К вводится с клавиатуры)

3. Переставить первые три и последние три элемента местами, сохраняя порядок их следования.

Алгоритмы сортировки числового массива

Задача 1. Отсортировать числовой массив. Первый способ.

USES Crt;

CONST N=30;

VAR

A: ARRAY[0..N] OF INTEGER;

I, J: BYTE; PP: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива ');

FOR I: =1 TO N DO Begin

A[I]: =Random(50); Write(A[I]: 4);

End; WriteLn;

{ Сортировка массива }

FOR I: =2 TO N DO

FOR J: =N DOWNTO I DO

IF A[J-1]> A[J] THEN Begin PP: =A[J]; A[J]: =A[J-1]; A[J-1]: =PP; End;

WriteLn(' Отсортированный массив ');

FOR I: =1 TO N DO

Write(A[I]: 4);

END.

Задача 2. Отсортировать числовой массив. Второй способ.

USES Crt;

CONST N=30;

VAR

A: ARRAY[0..N] OF INTEGER;

I, J: BYTE; PP: INTEGER;

BEGIN

ClrScr; Randomize;

WriteLn(' Значения элементов массива ');

FOR I: =1 TO N DO Begin

A[I]: =Random(50); Write(A[I]: 4);

End; WriteLn;

{ Сортировка массива }

FOR I: =1 TO N-1 DO

FOR J: =I+1 TO N DO

IF A[I]> A[J] THEN Begin PP: =A[I]; A[I]: =A[J]; A[J]: =PP; End;

WriteLn(' Отсортированный массив ');

FOR I: =1 TO N DO

Write(A[I]: 4);

END.

.....................................................................................................................................

Практические задания

.....................................................................................................................................

Даны два упорядоченных массива целых чисел М1 и М2. Слить их в упорядоченный массив. Рассмотреть случаи, когда массивы М1 и М2 упорядочены одинаково и когда по-разному.

Двумерные массивы


Поделиться:



Популярное:

  1. A. Оценка будущей стоимости денежного потока с позиции текущего момента времени
  2. A. Смещение суставной головки через вершину суставного бугорка на передний его скат
  3. A.27. Процедура ручной регулировки зеркала заднего вида
  4. B. С нарушением непрерывности только переднего полукольца
  5. Bilignostum seu Adipiodon. Бис-(2,4,6-трийод -3-карбокси)анилид адипиновой к-ты
  6. Bizz: Белье стирается вперемешку с чужим или как?
  7. Chasek, Тьма, первобытная пустота – то, откуда появились Князь Тьмы и жизнь. То, откуда двинулся Самаель.
  8. Cсрочный трудовой договор и сфера его действия.
  9. F. Оценка будущей стоимости денежного потока с позиции текущего момента времени
  10. G) определение путей эффективного вложения капитала, оценка степени рационального его использования
  11. H) опцион на продажу, или опцион пут
  12. H) Такая фаза круговорота, где устанавливаются количественные соотношения, прежде всего при производстве разных благ в соответствии с видами человеческих потребностей.


Последнее изменение этой страницы: 2016-05-30; Просмотров: 2286; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.058 с.)
Главная | Случайная страница | Обратная связь