Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Алгоритмы удаления, вставки и перестановки элементов
Задача 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. Переставить первые три и последние три элемента местами, сохраняя порядок их следования.
|