Натуральные числа в математике определяются как целые положительные, получающиеся при счете. Т.е. это числа 1, 2, 3, ...
В языке Паскаль (собственно, как и в большинстве других языков программирования) нет специального типа данных для натуральных чисел. Поэтому натуральные числа отображаются на целочисленные типы. Указание на то, что Вы имеете дело с натуральным числом, дается с тем, чтобы учесть это при разработке алгоритма. Например, если сказано что n - натуральное число, можно не беспокоиться, что при делении на него будет ошибка деления на ноль. Можно не озабочиваться тем, что оно попадет под квадратный корень и даст ошибку из-за появления код корнем отрицательного числа. И так далее.
Подходящим типом данных в Паскале может быть тот целочисленный, в котором разместятся любые натуральные числа, которые заданы или могут образоваться в процессе вычислений, даже как промежуточные данные. Например, если Вы возьмете тип integer, современные версии Паскаль позволят разместить в нем значение, не превышающее 2 147 483 647, т.е. примерно 2.1 миллиарда. Пусть дано n = 2 000 000 000 и надо найти остаток от деления n² на 97.
Если написать Sqr(n) mod 97, получим забавный результат -41, хотя ответ тут 65. Это потому, что 2 миллиарда в квадрате нельзя разместить в переменной типа integer (но можно в int64) и часть разрядов числа будет <u>молча</u> утеряна. Это одна из неприятностей неграмотной работы с целыми числами. Одна - потому что есть и другие)).
Задача 1.
var a, k, l, m: Integer;
begin
s:= 0;
writeln ('Введите число');
readln(a);
if (a>=10) and (a<=999) then
k:=a div 100;
l:= k div 10;
m:= a mod 10;
s:= k+m+l;
writeln ('Сумма цифр в числе равна ', s);
end.
Задача 2.
var i, a, s: Integer;
begin
s:=0;
for i:= 1 to 3 do
begin
writeln ('Введите число №', i);
<span>readln(a);
</span>if (a>5) and (a mod 5 = 0) then
inc(s);
end;
writeln('Количество четных чисел, которые делятся на 5 - ', s);
end.
Задача 3
var a, b, c, d, max, med, min: Integer;
begin
writeln ('Введите число');
<span>readln(a);
</span>b:= a div 100;
c:= b div 10;
d:= a mod 10;
if (b<c) and (b<d) then
min:= b;
if (c<b) and (c<d) then
min:= c;
if (d<c) and (d<b) then
min:= d;
if (b>c) and (b>d) then
max:= b;
if (c>b) and (c>d) then
max:= c;
if (d>c) and (d>b) then
<span>max:= d;
</span>
if (b>c) and (b<d) or (b<c) and (b>d) then
med:= b;
if (c>b) and (c<d) or <span>(c<b) and (c>d) </span>then
med:= c;
if (d>c) and (d<b) or <span>(d<c) and (d>b) </span>then
med:= d;
writeln(min, med, max);
end.
такие деформации, которые, во-первых, выражают несправедливость социального устройства, открывают простор для произвола одних субъектов в ущерб другим; во-вторых, ущемляют права и свободы граждан, а в-третьих, ведут к дегуманизации и ущербности социального статуса и менталитета части населения.
Кроме того, в нашей стране имеются и правовые рычаги защиты как государственных интересов, так и интересов каждого гражданина от киберпреступности. И это несмотря на то, что ни административное, ни уголовное законодательство не предусматривают ответственности за совершение именно киберпреступлений.
Это обусловлено тем, что хотя киберпреступления и совершаются с помощью компьютеров, компьютерных систем и сетей и в виртуальной среде, тем не менее они выходят на физический уровень и причиняют материальный вред, а, значит, посягают на реальные правоотношения, затрагивают интересы конкретных людей, приносят негативные последствия. В связи с этим к данным преступлениям применимы и существующие нормы административного и уголовного законов, действующих на территории Российской Федерации.
1) 2.25; 7,29; 9,61
<span>2) 1,5; приблизительно 2,7</span>
Самое простое решение program znanijatop;
const n = 100;
var
k,i,j:byte;
s1,s2:real;
a:array[1..n,1..n] of real;
begin
writeln('vvedite poryadok matrice');
readln(k);
s1:=0;s2:=0;for i:=1 to k do begin
for j:=1 to k do begin
writeln('vvedite a[',i,',',j,']');
readln(a[i,j]);
end;
end;
for i:=1 to k do begin
for j:=1 to k do begin
if i<j then s1:=s1+a[i,j];
if i>j then s2:=s2+a[i,j];
end;
end;
if s1 > s2 then writeln('nad glavnoy diagonali summa bolshe');
if s1 < s2 then writeln('pod glavnoy diagonali summa bolshe');
if s1 = s2 then writeln('ravni');
end.