Для замены значений переменных в Pascal используется следующая конструкция:
zam:=x;
x:=y;
y:=zam;
Переменная zam используется как временное хранилище значения переменной x. Результатом выполнения трёх перечисленных команд будет обмен значений переменных x и y между собой.
Причиной для замены может быть присвоение какой-то из нескольких переменных максимального (или минимального, или ещё какое-то условие) значения из тех значений, что имеется в наличии. Например, есть переменная max и переменная x. Проверяем условие максимальности из них переменной max и если условие не соблюдается (т.е. max меньше x), то значения этих переменных заменяем меж собой. В Pascal это выглядит так:
………;
……….;
if max
zam:=max;
max:=x;
x:=zam;end;
………..;
………..;
Это фрагмент программы, многоточия обозначают возможные другие команды, не относящиеся непосредственно к нашей теме.
Переменными в Pascal могут быть элементы массива, который объявляется так:
var mas:array[1..20]of integer; Это мы объявили массив целых чисел из 20-ти элементов.
Присваивать значения элементам массива можно в цикле с параметром:
for i:=1 to 20 do begin
writeln(‘Введите значение элемента массива’);
readln(mas[i]);end;
В этом случае значения каждому элементу присваиваем вручную. Можно использовать генератор случайных чисел:
for i:=1 to 20 do
mas[i]:=random(100);
где последняя команда означает, что очередному элементу массива будет присвоено случайное число из диапазона 0...99 (все включительно).
Теперь собственно задание:
Составленная Вами программа должна будет:
1. Присвоить значения элементам массива целых чисел, состоящем из не менее чем 20-ти элементов. Случайным образом или с клавиатуры;
2. Вывести весь массив в окне вывода;
3. Отсортировать элементы массива по возрастанию;
4. Вывести отсортированный массив в окне вывода.
const
nn=30;
mm=30;
var
a:array[1..mm,1..nn] of integer;
m,n,i,j,k,s:integer;
begin
Writeln('Введите число строк и столбцов массива: '); Read(m,n);
Randomize;
Writeln('*** Исходный массив ***');
k:=0;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4);
if Odd(a[i,j]) then Inc(k)
end;
Writeln
end;
if k>5 then begin
Writeln('Средние арифметические отрицательных элементов по строкам');
for i:=1 to m do begin
s:=0; k:=0;
for j:=1 to n do
if a[i,j]<0 then begin Inc(k); s:=s+a[i,j] end;
if k>0 then Writeln(s/k:9:5) else Writeln(' 0.00000');
end
end
else begin
Writeln('*** Результирующий массив ***');
for i:=1 to m do begin
for j:=1 to n do begin a[i,j]:=2*a[i,j]; Write(a[i,j]:4) end;
Writeln
end
end
end.
Тестовые решения:
Введите число строк и столбцов массива:
8 6
*** Исходный массив ***
-16 -8 -1 24 -22 1
-9 -20 -25 13 -11 10
-15 10 -12 20 -22 3
-6 25 -3 25 -14 22
24 -4 24 17 -4 -17
-23 -9 -22 1 -18 -13
-12 13 6 -16 2 -13
19 8 -22 14 -3 4
Средние арифметические отрицательных элементов по строкам
-11.75000
-16.25000
-16.33333
-7.66667
-8.33333
-17.00000
-13.66667
-12.50000
Введите число строк и столбцов массива:
3 5
*** Исходный массив ***
3 24 -21 -22 -8
-21 14 -22 0 -22
15 -16 -2 6 22
*** Результирующий массив ***
6 48 -42 -44 -16
-42 28 -44 0 -44
30 -32 -4 12 44
2.Корневые волоски находятся на всем протяжении корня.
3.Клетки корневого чехлика недолговечны.
4.Поступление воды и минеральных солей происходит только в зоне всасывания.
5.Зона всасывания находится между зоной роста и проводящей зоной.
6.Лист – единственный орган растения, в котором происходит фотосинтез.
7.Устьичные клетки не имеют хлорофилла.
8.Почка – это зачаточный побег.
9.Стержневая корневая система имеет один корень.
10.Придаточные корни развиваются из корешка зародыша.
11.Докажите, что луковица видоизмененный побег.