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

I=1,N,1
Ввод A[i]
выход
Ввод N

Р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]


big=x[i]
Big<x[i]
i=1,15,1
big=x[1]

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

Чтобы осуществить перестановку любых элементов массива необходимо объявить дополнительную переменную для временного хранения любого элемента массива. Переменная должна быть того же типа, что и тип элементов массива. Сортировка и сдвиг элементов относится к перестановке.

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

Сдвиги бывают арифметические и циклические. При арифметическом сдвиге часть элементов теряется, а при циклическом сдвиге элементы массива только меняют свое местоположение.

До сдвига вправо
 
 
 


a[1] a[2] a[3] a[4] a[5]
p

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, то осуществляется циклический сдвиг элементов массива на единицу вправо, в противном случае – влево.

program pr;

Type

masiv = array [1..15] of integer;

var i,key,j,n:integer;

mas:masiv;

Begin

writeln('Введите количество элементов ');

readln(n);

for i:=1 to n do

Begin

writeln('Введите Mas[',i,']');

readln(mas[i]);

end;

writeln('Введите 0 для сдвига вправо,или 1 -влево');

readln(j);

if (j=0) then

Begin

key:=mas[n];

for i:=n downto 2 do

mas[i]:=mas[i-1];

mas[1]:=key;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: