230 likes | 762 Views
Случайные числа на языке Паскаль. Нахождение суммы всех элементов массива. Program summa; const N = 5; var a: array [1..N] of integer; i , s: integer; begin writeln (' Исходный массив :'); for i :=1 to N do begin a[ i ] := random(100) + 50; write(a[ i ]:4); end;
E N D
Нахождение суммы всех элементов массива Program summa; const N = 5; var a: array [1..N] of integer; i, s: integer; begin writeln('Исходный массив:'); for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; writeln; {перейти на новую строку} writeln(‘Суммаэлементов массива‘ ,s:4); end. сумма всех элементов массива for i:=1 to n do s:=s+a[i];
Нахождение суммы элементов массива с заданными условиями Program summa; const N = 5; var a: array [1..N] of integer; i, s: integer; { заполнение массива} ------------------------------ writeln; {перейти на новую строку} writeln(‘Суммаполж-ыхэл-ов массива‘,s:4); end. сумма всех положительных элементов массива for i:=1 to n do if a[i]>0 then s:=s+a[i];
Нахождение кол-ва элементов массива с заданными условиями Program summa; const N = 5; var a: array [1..N] of integer; i, k: integer; { заполнение массива} ------------------------------ writeln; {перейти на новую строку} writeln(‘Кол-вополож-ыхэл-ов массива‘,k); end. количество положительных элементов массива for i:=1 to n do if a[i]>0 then k:=k+1;
Вывод на экран элементов массива с заданными условиями Program summa; const N = 5; var a: array [1..N] of integer; i: integer; { заполнение массива} ------- writeln; {перейти на новую строку} writeln(‘Результат:‘); end. замена положительных элементов массива нулями for i:=1 to n do begin if a[i]>0 then a[i]:= 0; write(a[i]:4); end;
Определение макс-ого эл-та и его номера (индекса) program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; { заполнение массива} ------- writeln; {перейти на новую строку} writeln('Максимальный элемент a[', iMax, ']=',a[iMax]); end. поиск максимальногоэлемента и его индекса iMax := 1; for i:=2 to N if a[i] > a[iMax] then iMax := i;
Определение максимального по заданному условию program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; { заполнение массива} ------- writeln; {перейти на новую строку} writeln('Макс. эл-т из отрицательных a[', iMax, ']=',a[iMax]); end. поиск максимальногоиз отрицательных элементов iMax:= 1; for i:=2 to N if (a[i]<0) and(a[i] > a[iMax]) then iMax := i;
? Что неверно? Реверс массива • Задача: переставить элементы массива в обратном порядке. • Алгоритм: • поменять местами A[1] и A[N], A[2] и A[N-1], … • Псевдокод: сумма индексов N+1 for i:=1 to N do { поменять местами A[i] и A[N+1-i]} N div 2 do
? Можно ли обойтись без c? Как переставить элементы? 2 Задача: поменять местами содержимое двух чашек. 1 3 Задача: поменять местами содержимое двух ячеек памяти. y x 2 6 4 4 6 c := x; x := y; y := c; x := y; y := x; 3 1 ? 4 c
Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin { заполнить массив } { вывести исходный массив } { вывести полученный массив } end; for i:=1 to N div 2 do begin c:=A[i]; A[i]:=A[N+1-i]; A[N+1-i]:=c; end;
? Что неверно? Циклический сдвиг • Задача: сдвинуть элементы массива влево на 1 ячейку, первый элемент становится на место последнего. • Алгоритм: • A[1]:=A[2];A[2]:=A[3];…A[N-1]:=A[N]; • Цикл: почему не N? for i:=1 to N-1 do A[i]:=A[i+1];
Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin { заполнить массив } { вывести исходный массив } { вывести полученный массив } end; c := A[1]; for i:=1 to N-1 do A[i]:=A[i+1]; A[N] := c;
Удаление из массива k-ого элемента со сдвигом влево Program summa; const N = 5; var a: array [1..N] of integer; i, k: integer; { заполнение массива} ------- end. writeln(‘Введите номер эл-та для удаления:'); read(k); for i:=k to N-1 do a[i]:=a[i+1]; writeln(‘Результат:'); for i:=1 to N-1 do write(a[i]:4);
Вставка в массив заданного числа на k-ое место со сдвигом вправо Program summa; const N = 5; var a: array [1..N+1] of integer; i, k, c: integer;{ заполнение массива} ------- end. writeln(‘Введите номер эл-та для вставки:'); read(k); writeln(‘Введите значение для вставки:'); read(с); for i:=n+1 downto k+1 do a[i]:=A[i-1]; a[k]:=c; writeln(‘Результат:'); for i:=1 to N-1 do write(a[i]:4);