Ввод элементов массива
| Рrogram vvod; Const N=10; Type mas=array[1..N] of real; Var a:mas; i: integer: Begin Writeln(‘Введите элементы массива’); For i:=1 to N do Begin Write(‘a[‘,i,’]=’); Readln( a[i]) End; … End. |
Пример1:
Составить программу для нахождения наибольшего элемента одномерного массива х, содержащего 15 элементов.
начало |
i=1,15,1 |
Ввод x[i] |
Вывод big |
конец |
big=x[1] |
i=1,15,1 |
Big<x[i] |
big=x[i] |
| Programmas_1; var i:integer; big:real; x: array[1..15] ofreal; begin fori:=1 to15 do begin write (' x [',i:2,']='); readln(x[i]); end; big:=x[1]; fori:=2 to15 do ifbig <x[i] thenbig :=x[i]; writeln('big = ',big:7:2) end. Резуььтат решения задачи x [ 1]=1 x [ 2]=2 x [ 3]=3 x [ 4]=4 x [ 5]=5 x [ 6]=4 x [ 7]=3 x [ 8]=5 x [ 9]=6 x [10]=4 x [11]=3 x [12]=5 x [13]=6 x [14]=4 x [15]=5 big= 6.00 |
Чтобы осуществить перестановку любых элементов массива необходимо объявить дополнительную переменную для временного хранения любого элемента массива. Переменная должна быть того же типа, что и тип элементов массива. Сортировка и сдвиг элементов относится к перестановке.
Сортировка - один из наиболее распространенных процессов современной обработки данных. Сортировкой называется распределение элементов по группам в соответствии с определенными правилами. Существуют различные способы сортировки элементов массива: метод обмена (пузырька), метод выбора, метод вставок, бинарная сортировка и др.
Сдвиги бывают арифметические и циклические. При арифметическом сдвиге часть элементов теряется, а при циклическом сдвиге элементы массива только меняют свое местоположение.
До сдвига вправо
… P:=a[n]; For i:=n downto 2 do A[i]:=a[i-1]; A[1]:=P; … |
После сдвига вправо |
a[5] | a[1] | a[2] | a[3] | a[4] |
Пример2: В одномерном массиве, содержащем N элементов, осуществить циклический сдвиг элементов на 1 вправо (или влево). Для определения направления сдвига будем использовать переменную j. Если значение переменной j=0, то осуществляется циклический сдвиг элементов массива на единицу вправо, в противном случае – влево.
programpr;
Type
masiv = array[1..15] ofinteger;
vari,key,j,n:integer;
mas:masiv;
Begin
writeln('Введите количество элементов ');
readln(n);
fori:=1 ton do
Begin
writeln('Введите Mas[',i,']');
readln(mas[i]);
end;
writeln('Введите 0 для сдвига вправо ,или 1 -влево');
readln(j);
if(j=0) then
Begin
key:=mas[n];
fori:=n downto2 do
mas[i]:=mas[i-1];
mas[1]:=key;