Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Задача 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. Переставить первые три и последние три элемента местами, сохраняя порядок их следования.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.