Надеюсь вам можно использовать массивы, если нет, то скажите, переделаем
<em>PascalABC.NET 3.2, сборка 1382 от 06.02.2017</em>
<em>Внимание! Если программа не работает, обновите версию!</em>
<em>1. Заданный контрольный пример:</em>
begin
var a:=Arr(4,-5,3,10,-4,-6,8,-10,1,0); a.Println;
var im1,im2:integer;
if a[im1]<a[im2] then Swap(im1,im2);
for var i:=2 to a.High do
if a[i]>a[im1] then begin im2:=im1; im1:=i end
else
if a[i]>a[im2] then im2:=i;
WritelnFormat('a[{0}]={1}, a[{2}]={3}',im1+1,a[im1],im2+1,a[im2])
end.
<u>Результат</u>
4 -5 3 10 -4 -6 8 -10 1 0
a[4]=10, a[7]=8
<em>2. Решение задания</em>
begin
var a:=ArrRandom(10,-10,10); a.Println;
var im1,im2:integer;
if a[im1]<a[im2] then Swap(im1,im2);
for var i:=2 to a.High do
if a[i]>a[im1] then begin im2:=im1; im1:=i end
else
if a[i]>a[im2] then im2:=i;
WritelnFormat('a[{0}]={1}, a[{2}]={3}',im1+1,a[im1],im2+1,a[im2])
end.
<u>Пример</u>
-1 10 -6 3 -4 -3 -4 7 0 -7
a[8]=7, a[4]=3
Var
a:array[1..100]of integer;
n,i,c,k,j,x:integer;
begin
readln(n);
c:=n;
while n<>0 do begin
n:=n div 10;
k:=k+1;
end;
for i:=1 to k do begin
a[i]:=c mod 10;
c:=c div 10;
end;
for i:=1 to k do
write(a[i],' ');
j:=2;
for i:=1 to k do begin
while j<>k do begin
if (a[i]=a[j]) and (i<>j) then
x:=x+1;
j:=j+1;
end;
j:=2;
end;
writeln;
write(x,' повторов');
writeln;i
f x=0 then writeln('все числа различны')
else writeln('числа в числе повторяются')
<span>end.</span>
<u>PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var f:=ArrRandom(9,-50,50); f.Println;
var k:=f.Select(t->t*t).ToArray; k.Println
end.
<u>Пример</u>
39 0 28 31 -35 -2 -11 -48 -32
1521 0 784 961 1225 4 121 2304 1024
Ответ:
49 div 10 = 4
49 div 5 = 9
53 div 5 = 10
39 div 6 = 6
16 div 7 = 2
345 div 10 = 34
1234 div 1000 = 1
44 div 1000 = 0
123 div 500 = 0
31 mod 17 = 14
18 mod 3 = 0
245 mod 10 = 5
1243 mod 100 = 43
15 mod 7 = 1
4413 mod 10 = 3
45 mod 100 = 45
36 mod 100 = 36
10 mod 5 = 0
11 mod 5 = 1
10 mod 3 = 1
14 mod 5 = 4
22 mod 5 = 2
31 mod 16 = 15
div mod
17 mod -5 = 2 17 = -5 * (-3) + 2
div mod
-17 mod 5 = 3 -17 = 5 * (-4) + 3
Объяснение:
div - вычисляет целую часть от деления
mod - вычисляет остаток от деления
(не путать с целой и дробной частью, которая получается при делении на калькуляторе!!!)
причем, остаток от деления это неотрицательное число, которое больше или равно нулю, но меньше делителя!