Var
V,r:real;
begin
readln(r);
V:=4/3*pi*r*r*r;
writeln(V);
end.
Этому есть несколько причин.
1. Если имеется требование объявлять ВСЕ переменные в программе, то это хранит программиста от искаженного указания имен переменных, например, xl вместо x1 или suma вместо summa.
2. Объявление переменных позволяет явно указать их типы, а использование типизированных переменных позволяет с меньшими усилиями добиться правильной записи алгоритма. Например, при типизации переменных последовательность команд c=5 a=3*c c=a/3 недопустима. В самом деле, присваивание необъявленной переменной "с" значения целочисленной константы 5 подразумевает, что она тоже становится целочисленной. Далее, по той же причине необъявленная переменная "а" также получает целый тип. И третий оператор выполняет деление. А такая операция деления дает вещественный результат и присваивание его целочисленной переменной "с" недопустимо, потом что приведет к потере дробной части. И мы получаем сообщение об ошибке, т.е. можем вовремя ошибку увидеть и исправить её.
3. Некоторые системы программирования независимо от того, объявлена переменная или нет, очищают её нулём (или делают пустой, если переменная символьная). А некоторые этого не делают. Появление в программе необъявленной переменной с таким неопределенным значением может вызывать неожиданное поведение этой программы. Многие системы, в которых объявление переменных обязательно, выдают сообщение, что переменной не было присвоено начальное значение, что также помогает избегать ошибок.
4. При объявлении переменных в одном месте, им всем отводится одна область памяти, что уменьшает затраты вычислительной системы на адресацию памяти и делает программу компактнее, а также ускоряет её работу. Особенно это важно при нехватке оперативной памяти, когда программа вынужденно использует виртуальную память, которая располагается на внешнем носителе.
// PascalABC.NET 3.3, сборка 1576 от 16.11.2017
// Внимание! Если программа не работает, обновите версию!
// Индексация с "1", если номера даются, начиная с "0", заменить (i+1)*(i+1) на (i*i)
begin
var a:= ArrRandom(14,-20,30).Println.Select((v,i)->v.IsEven?(i+1)*(i+1):v).Println;
end.
Пример:
<span>28 -12 -8 21 -16 11 3 21 11 -13 26 4 -19 23
</span>1 4 9 21 25 11 3 21 11 -13 121 144 -19 23
ДОКУМЕ́НТМужской род<span>1. Деловая бумага, подтверждающая какой-н. факт или право на что-н."Расходные документы"2. То, что удостоверяет личность предъявителя (паспорт и т. п.)."Проверка документов"3. Письменное свидетельство о чём-н."Древнерусские грамоты являются историческими документами"</span><span>Перевести "документ" на</span>
Program task1;
var i :integer;
function kub (x :integer) :integer; var k :integer; begin k:= x*x*x; kub:= k; end; begin
for i:= 9 downto 1 do if i mod 2 = 1 then write(sqr(i),' '); writeln; for i:= 9 downto 1 do if i mod 2 = 1 then write(kub(i),' ');
<span>end.
program task2;
var i, sum :integer;
begin
sum:= 0; for i:= 1 to 150 do if (i mod 5 = 0) or (i mod 7 = 0) then sum:= sum + i; writeln(sum);
<span>end.
program task3;
var i, sum :integer;
begin
sum:= 0; for i:= 10 to 50 do if (i mod 4 = 0) and (i mod 6 <> 0) then sum:= sum + i; writeln(sum);
<span>end.
program task4;
var i, p :integer;
begin
p:= 1; for i:= 10 to 50 do if (i mod 2 = 1) and (i mod 13 = 0) then p:= p*i; writeln(i);
end.</span></span></span>