Другие языки программирования и технологии
Заполнить случайным образом одномерный массив из n элементов и обменять местами последний и максимальный (в паскале)
Заполнить случайным образом одномерный массив из n элементов и обменять местами последний и максимальный элементы массива. Вывести оба массива на экран. ( в паскале)
Объявим массив из 100 элементов и переменную n, а также переменные для хранения максимального элемента, его позиции в массиве и переменную для цикла for:
var
a: array [1..100] of integer;
n, i, max, maxPos: integer;
Так как выводить массив будем дважды, объявим процедуру вывода массива (чтобы не повторять код). Выводить будем в цикле for от 1 до n. В конце добавим переход на новую строку:
procedure outputArray;
var i: integer;
begin
for i:=1 to n do
print(a[i]:4);
println;
end;
В основной программе нам нужно:
1) запросить размер массива n и проверить, чтобы n было от 2 до 100 (иначе запросить по новой);
2) заполнить первые n элементов массива случайными числами;
3) вывести исходный массив (мы уже описали процедуру outputArray);
4) найти позицию максимального элемента;
5) поменять местами его значение и значение последнего элемента;
6) вывести полученный массив.
Итак:
begin
1. Запрашиваем n в цикле, пока не получим нужное число:
repeat
write('Input array size: ');
readln(n);
if (n < 2) or (n > 100) then
writeln('Array size must be between 2 and 100');
until (n >= 2) and (n <= 100);
2. Запускаем генератор случайных чисел и заполняем массив при помощи функции Random числами от 0 до 999:
Randomize;
for i:=1 to n do
a[i]:=Random(1000);
3. Выводим полученный массив на экран:
writeln('Generated array:');
outputArray;
4. Ищем позицию максимального элемента. Принцип такой: сначала считаем максимальным первый элемент, а его значение сравниваем со вторым, третьим и так далее - пока не найдем что-то "покрупнее". Если нашли - запоминаем его позицию и значение и ищем дальше.
maxPos:=1;
max:=a[maxPos];
for i:=2 to n do
if a[i]>max then
begin
maxPos:=i;
max:=a[maxPos];
end;
5. Меняем местами максимальный элемент (с индексом maxPos) и последний элемент (n). Для этого нам нужна третья переменная - max. В ней уже хранится максимальное значение. Значит, максимальный элемент можно спокойно "затереть":
a[maxPos]:=a[n];
a[n]:=max;
6. Выводим то, что получилось:
println('After swapping:');
outputArray;
Всё :)
end.
var
a: array [1..100] of integer;
n, i, max, maxPos: integer;
Так как выводить массив будем дважды, объявим процедуру вывода массива (чтобы не повторять код). Выводить будем в цикле for от 1 до n. В конце добавим переход на новую строку:
procedure outputArray;
var i: integer;
begin
for i:=1 to n do
print(a[i]:4);
println;
end;
В основной программе нам нужно:
1) запросить размер массива n и проверить, чтобы n было от 2 до 100 (иначе запросить по новой);
2) заполнить первые n элементов массива случайными числами;
3) вывести исходный массив (мы уже описали процедуру outputArray);
4) найти позицию максимального элемента;
5) поменять местами его значение и значение последнего элемента;
6) вывести полученный массив.
Итак:
begin
1. Запрашиваем n в цикле, пока не получим нужное число:
repeat
write('Input array size: ');
readln(n);
if (n < 2) or (n > 100) then
writeln('Array size must be between 2 and 100');
until (n >= 2) and (n <= 100);
2. Запускаем генератор случайных чисел и заполняем массив при помощи функции Random числами от 0 до 999:
Randomize;
for i:=1 to n do
a[i]:=Random(1000);
3. Выводим полученный массив на экран:
writeln('Generated array:');
outputArray;
4. Ищем позицию максимального элемента. Принцип такой: сначала считаем максимальным первый элемент, а его значение сравниваем со вторым, третьим и так далее - пока не найдем что-то "покрупнее". Если нашли - запоминаем его позицию и значение и ищем дальше.
maxPos:=1;
max:=a[maxPos];
for i:=2 to n do
if a[i]>max then
begin
maxPos:=i;
max:=a[maxPos];
end;
5. Меняем местами максимальный элемент (с индексом maxPos) и последний элемент (n). Для этого нам нужна третья переменная - max. В ней уже хранится максимальное значение. Значит, максимальный элемент можно спокойно "затереть":
a[maxPos]:=a[n];
a[n]:=max;
6. Выводим то, что получилось:
println('After swapping:');
outputArray;
Всё :)
end.
вот тут куча примеров работы с массивами. есть заполнение случайным образом, есть поиск минимума и максимума и еще куча ненужного тебе, но не менее от этого полезного материвала
http://pascalabc.net/primeri-programm/programmi-i-algoritmi-dlya-nachinaiuschich
а тут прям попробовать можешь http://pascalabc.net/WDE/?file=AlgBegin/05_Arrays/02_FillRandom.pas
http://pascalabc.net/primeri-programm/programmi-i-algoritmi-dlya-nachinaiuschich
а тут прям попробовать можешь http://pascalabc.net/WDE/?file=AlgBegin/05_Arrays/02_FillRandom.pas
Похожие вопросы
- Дан двумерный массив А [7,8], заполненный случайным образом. Заменить нечетные элементы массива на число 0 СРОЧНОО ГАЙСЫ
- поменяйте местами наибольший элемент данного одномерного массива с первым элементом и найменьший с последним ( язык си)
- Написать программу, создающую одномерный массив из 10 элементов. . Помогите
- СРОЧНО ПАСКАЛЬ задан одномерный массив с (1..10), дать ответ: каких элементов больше: положительных или отрицательных
- Дан одномерный целочисленный массив a, состоящий из n элементов.
- Задан массив m на n. Числа m и n вводятся вручную. Заполнить массив случайным образом. Найти произведение чисел от 10 до
- Массив заполнен случайными величинами в диапазоне от -30 до 29 и состоит из N элементов. Подсчитать сколько в нём
- Составьте программу, отыскивающую наибольший элемент массива A(N) из числа принадлежащим интервалу {min,(min+max\2))
- Паскаль, одномерн массив, вычислить сумму элементов массива, расположенных после последнего элемента, равного нулю. Спасибо)
- Помогите Задан массив Р(N).Переписать все его элементы,за исключением максимального и минимального в массив D.(язык C++)