Составьте программу, которая заполняет массив а [1..10] случайными целыми числами в диапазоне от 1 до 10, затем элементы с четными индексами удваивает, а элементы с нечетными индексами утраивает. выведите на экран исходный и полученный массивы!
Var a:array [1..10] of integer; b:array [1..10] of integer; i:integer; begin randomize; for i:=1 to 10 do a[i]:=random(10); for i:=1 to 10 do write(a[i],' '); writeln; i:=1; while i<=9 do begin b[i]:=a[i]*3; i:=i+2; end; i:=2; while i<=10 do begin b[i]:=a[i]*2; i:=i+2; end; for i:=1 to 10 do write(b[i],' '); end.
Этому есть несколько причин. 1. Если имеется требование объявлять ВСЕ переменные в программе, то это хранит программиста от искаженного указания имен переменных, например, xl вместо x1 или suma вместо summa. 2. Объявление переменных позволяет явно указать их типы, а использование типизированных переменных позволяет с меньшими усилиями добиться правильной записи алгоритма. Например, при типизации переменных последовательность команд c=5 a=3*c c=a/3 недопустима. В самом деле, присваивание необъявленной переменной "с" значения целочисленной константы 5 подразумевает, что она тоже становится целочисленной. Далее, по той же причине необъявленная переменная "а" также получает целый тип. И третий оператор выполняет деление. А такая операция деления дает вещественный результат и присваивание его целочисленной переменной "с" недопустимо, потом что приведет к потере дробной части. И мы получаем сообщение об ошибке, т.е. можем вовремя ошибку увидеть и исправить её. 3. Некоторые системы программирования независимо от того, объявлена переменная или нет, очищают её нулём (или делают пустой, если переменная символьная). А некоторые этого не делают. Появление в программе необъявленной переменной с таким неопределенным значением может вызывать неожиданное поведение этой программы. Многие системы, в которых объявление переменных обязательно, выдают сообщение, что переменной не было присвоено начальное значение, что также избегать ошибок. 4. При объявлении переменных в одном месте, им всем отводится одна область памяти, что уменьшает затраты вычислительной системы на адресацию памяти и делает программу компактнее, а также ускоряет её работу. Особенно это важно при нехватке оперативной памяти, когда программа вынужденно использует виртуальную память, которая располагается на внешнем носителе.
b:array [1..10] of integer;
i:integer;
begin
randomize;
for i:=1 to 10 do
a[i]:=random(10);
for i:=1 to 10 do
write(a[i],' ');
writeln;
i:=1;
while i<=9 do
begin
b[i]:=a[i]*3;
i:=i+2;
end;
i:=2;
while i<=10 do
begin
b[i]:=a[i]*2;
i:=i+2;
end;
for i:=1 to 10 do
write(b[i],' ');
end.