Нужно перевести оба числа в (10) и сложить
7*8^0+1*8^1=7+8=15(10)
7*16^0+1*16^1=7+16=23(10)
23+15=38
Первая
var n,a:integer;
begin
a:=0;
WriteLn(n);
while n>0 do
begin
a:=a + (n mod 10);
n:=n div 10;
end;
end.
Вторая
var n,a:integer;
begin
a:=0;
WriteLn(n);
while n>0 do
begin
if n mod 10>5 then
begin
a:=a + (n mod 10);
end;
n:=n div 10;
end;
end.
Программу я не смогу написать, но примерный алгоритм дам.
Если (M = 1, 3, 5, 7, 8, 10, или 12) И (D <= 30), то (D = D + 1)
Если (M = 1, 3, 5, 7, 8, 10) И (D = 31), то (M = M + 1, D = 1)
Если (M = 12) И (D = 31), то (G = G + 1, M = 1, D = 1)
Если (M = 4, 6, 9, 11) И (D <= 29), то (D = D + 1)
Если (M = 4, 6, 9, 11) И (D = 30), то (M = M + 1, D = 1)
Если (M = 2) И (D <= 27), то (D = D + 1)
Если (M = 2) И (G mod 4 <> 0) И (D = 28), то (M = 3, D = 1)
Если (M = 2) И (G mod 4 = 0) И (D = 28), то (D = D + 1)
Если (M = 2) И (G mod 4 = 0) И (D = 29), то (M = 3, D = 1)
Если (M = 2) И (G = 1900 или 2100) И (D = 28), то (M = 3, D = 1)
В последней строчке я учёл разницу между Григорианским и Юлианским календарями.
По Юлианскому после 28.02 1900 или 2100 года наступит 29.02.
По Григорианскому наступит 01.03.
Const n=20;
var a:array[1..n]of integer;
i,b,k,c,f,g,h:integer;
begin
for i:=1 to n do a[i]:=Random(70)-20;
for i:=1 to n do
write(a[i],' ');
writeln;
for i:=1 to n do begin
if (a[i] mod 5 = 0) and (a[i] mod 10<>0) or (a[i]=50) then begin
b:=i;
for b:=i to (n-1) do
a[i]:=a[i+1];
end; end;
for i:=1 to n do
write(a[i],' ');
write('введите к ');
read(k);
for i:=1 to n do begin
if a[i] mod i = 0 then begin
c:=i;
for i:=n downto c+1 do begin
a[i]:=a[i-1];
a[c+1]:=k;
end;end;end;
for i:=1 to n do
write(a[i],' ');
writeln;
f:=0; g:=0;
for i:=n downto 1 do begin
if (a[i]>0) then f:=i;
end;
if a[f]=0 then write('нет положительных ');
for i:=n downto 1 do begin
if (a[i]<0) then g:=i;
end;
if (a[g]=0) then write('нет отрицательных ');
if (a[f]<>0) and (a[g]<>0) then begin
h:=a[f]; a[f]:=a[g]; a[g]:=h; end;
for i:=1 to n do
write(a[i],' ');
writeln;
<span>end.</span>