
- •Линейные алгоритмы
- •Даны три действительных положительных числа. Найти среднее геометрическое и среднее арифметическое этих чисел.
- •Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.
- •Мальчик купил несколько тетрадей по сто рублей и несколько обложек по 50 рублей. Составить программу, которая могла бы подсчитать стоимость всей покупки.
- •2. Разветвляющиеся алгоритмы
- •2.1 Условный оператор if
- •2.2 Условный оператор case
- •3. Циклические алгоритмы
- •3.1 Оператор цикла for
- •3.2 Оператор цикла while
- •4. Обработка массивов
- •4.1 Одномерные массивы
- •4.1.1 Алгоритмы поиска и присвоения значений элементам массива
- •4.1.2 Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •4.1.3 Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •4.1.4 Алгоритмы удаления, вставки и перестановки элементов
- •4.1.5 Алгоритмы сортировки числового массива
- •4.2 Двумерные массивы
- •4.2.1 Алгоритмы действий над элементами двумерного массива
- •4.2.2 Алгоритмы формирования одномерного массива
- •4.2.3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •4.2.4 Алгоритмы удаления, вставки и перестановки элементов
- •5. Обработка строк
- •5.1 Подсчет и вывод символов
- •5.2 Удаление символов
- •5.3 Вставка символов
- •5.4 Сложные варианты
- •6. Создание графических изображений. Модуль Graph
4.1.4 Алгоритмы удаления, вставки и перестановки элементов
Задача 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].
Удалить из него все элементы, в записи которых есть цифра 5.
Вставить число K после всех элементов, кратных своему номеру (К вводится с клавиатуры).
Поменять местами первый положительный и последний отрицательный элементы.}
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 (К вводится с клавиатуры)
Переставить первые три и последние три элемента местами, сохраняя порядок их следования.