Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_Метод_Часть_4_Массивы.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
620.54 Кб
Скачать

2.8. Задачи для дополнительного решения

  1. Дан массив. Поменять местами третий четный элемент массива и максимальный элементы.

  2. В последовательности B из n чисел поменять местами максимальный элемент и первый элемент массива, если количество отрицательных элементов больше количества положительных. Если элементов с максимальным значением несколько, то в обмене должен участвовать второй из них.

Задача 3*. Дан массив чисел. Определить второе четное значение в данном массиве. Домножить все элементы на найденное число.

  1. В последовательности из n чисел определить сумму чисел до первого положительного элемента и сумму после второго положительного элемента. Сравнить полученные суммы и распечатать наибольшую.

  2. В последовательности из n чисел определить значения первого и второго по порядку отрицательного элемента. Если первое значение больше второго, то распечатать сумму элементов до первого отрицательного числа.

    1. Удаление элемента из массива

Алгоритм решения

Допустим, требуется удалить элемент под номером К из массива А, состоящего из N элементов. Для этого необходимо сдвинуть влево на одну позицию все элементы, следующие за элементом под номером К.

Программная реализация

FOR i = K TO n-1

A(i) = A(i + 1)

NEXT i

n = n - 1

пример 11

Дан массив чисел. Удалить первый отрицательный элемент.

Тест

Данные

Результат

N=10

A=(3, 5, -2, -4, 0, 7, 2, 8, 3, -2)

A=(3, 5, -4, 0, 7, 2, 8, 3, -2)

Исполнение алгоритма

Определение позиции первого отрицательного элемента

i

Проверка условия

Первый отрицательный элемент

Номер первого отрицательного элемента К

1

A(1)<0 (ложь)

3>0

2

A(2)<0 (ложь)

5>0

3

A(3)<0 (истина)

-2<0

A(3)=-2

3

Удаление первого отрицательного элемента

i

Cдвиг

Массив

n

3

A(3)=A(4)

A=(3, 5, -4, -4, 0, 7, 2, 8, 3, -2)

4

A(4)=A(5)

A=(3, 5, -4, 0, 0, 7, 2, 8, 3, -2)

5

A(5)=A(6)

A=(3, 5, -4, 0, 7, 7, 2, 8, 3, -2)

6

A(6)=A(7)

A=(3, 5, -4, 0, 7, 2, 2, 8, 3, -2)

7

A(7)=A(8)

A=(3, 5, -4, 0, 7, 2, 8, 8, 3, -2)

8

A(8)=A(9)

A=(3, 5, -4, 0, 7, 2, 8, 3, 3, -2)

9

A(9)=A(10)

A=(3, 5, -4, 0, 7, 2, 8, 3, -2, -2)

n=n-1=10-1=9

A=(3, 5, -4, 0, 7, 2, 8, 3, -2)

Блок-схема алгоритма

Начало

Ввод n

i=1,n

ввод Ai

i=1

Ai<=0 ; i<=n

i=i+1

K=i

i=K,n

Ai = Ai + 1

n=n-1

i=1,n

Вывод Ai

Конец

программа

CLS

INPUT "введи размер массива " ; n

DIM A(n)

PRINT "введи массив"

'Цикл по элементам массива

FOR i = 1 TO n

'Ввод элементов массива

INPUT A(i)

NEXT i

FOR i = 1 TO n

'Поиск первого отрицательного элемента

IF A(i) < 0 THEN K = i : EXIT FOR

NEXT i

IF К = 0 THEN

PRINT "отрицательных элементов нет "

ELSE

'Удаление первого отрицательного элемента

FOR i = K TO n-1

A(i) = A(i + 1)

NEXT i

n = n - 1

END IF

FOR i = 1 TO n

'Вывод элементов массива

PRINT A(i);

NEXT i

ЕND

пример 12

Дан массив чисел. Удалить все максимальные значения.

программа

CLS

INPUT "введи размер массива " ; n

DIM A(n)

PRINT "введи массив"

FOR i = 1 TO n

'Ввод элементов массива

INPUT A(i)

NEXT i

'Задание начального значения максимума

MAX = A(1)

'Определение наибольшего значения массива

FOR i = 2 TO n

IF A(i) > MAX THEN MAX = A(i)

NEXT i

j = 1

'Удаление максимальных значений

DO

IF A(j) = MAX THEN

K = j

FOR i = K TO n-1

A(i) = A(i + 1)

NEXT i

n = n – 1

END IF

j = j + 1

IF j > n THEN EXIT DO

LOOP

FOR i = 1 TO n

'Вывод элементов массива

PRINT A(i);

NEXT i

END

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]