Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Замены и перестановки в массиве



Задачи замены в массивах предполагают изменение значений элементов массива в соответствии с условием (заменить все отрицательные значения их модулями, все четные положительные элементы уменьшить вдвое и т.д.).

Упражнение 36. Дан целочисленный массив, заданный случайными числами на промежутке [-50; 50]. Заменить в массиве все отрицательные элементы им противоположными.

Для решения задачи выполним просмотр массива с начала. Каждый элемент сравним с нулем, при этом отрицательные значения элементов заменим им противоположными (if (x[i]<0) then x[i]=-x[i]). Чтобы мы могли увидеть произведенные изменения, надо выполнить вывод массива дважды: до и после замены.

Program Zameny;

Const N=10;

Var x: array [1..N] of integer;

I: integer; {счетчик индексов элементов}

Begin

{цикл заполнения и вывода массива:}

For i:=1 to N do

Begin x[i]:=random(101)-50;

Write (x[i]: 4);

End;

Writeln; {- после вывода элементов массива переходим на новую строку}

{цикл замены отрицательных значений элементов массива на противоположные и вывода элементов:}

For i:=1 to N do

Begin if (x[i]<0) then x[i]:=-x[i];

Write (x[i]: 4);

End;

Writeln; {- после вывода элементов массива переходим на новую строку}

End.

Задачи перестановок в массивах предполагают в первоначально заданном массиве выполнить обмен местами отдельных элементов в соответствии с условием (поменять местами наибольший и наименьший элементы, элементы четных позиций с элементами нечетных позиций и т.д.).

Упражнение 37. Дан целочисленный массив, заданный случайными числами на промежутке [-10; 10]. Сдвинуть элементы массива влево на 1 ячейку, первый элемент становится на место последнего.

То есть должна быть реализована схема перестановок: x[1] -> x[N], x[2] -> x[1], x[3] -> x[2],..., x[N] -> x[N-1].    

Одним из алгоритмов такого циклического сдвига является следующая последовательность действий. Поместим в переменную-буфер первый элемент массива (buf:=x[1]). Выполним смещение остальных элементов влево на одну позицию (x[i]:=x[i+1]). При этом важен порядок смещения: на освободившееся место первого элемента перемещается второй, на место второго – третий и т.д. В результате таких перемещений освобождается место последнего элемента, на которое перемещается элемент из буфера. В данной задаче целесообразно выполнить вывод массива дважды: до и после циклического сдвига.





Дата публикования: 2014-10-30; Прочитано: 431 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...