Более изящное решение :)
Проблема в строке c:= (b*b*b);
Ты ищешь сумму кубов, а для 4-значных чисел нужно искать сумму 4-х степеней. Нужно проверять число а: если от 100 до 999, то выполняем c:= (b*b*b); а если от 1000 до 9999, то выполняем c:= (b*b*b*b);
Код ниже работает и выдаёт результат:
число Армстронга ==> 153
число Армстронга ==> 370
число Армстронга ==> 371
число Армстронга ==> 407
число Армстронга ==> 1634
число Армстронга ==> 8208
число Армстронга ==> 9474
****************************************************************
var a,b,c,d,a2:integer;
begin
for a:=100 to 9999 do begin
d:=0;
a2:=a;
while (a2 <> 0) do begin
b:= a2 mod 10;
a2:= a2 div 10;
if a<1000 then c:= (b*b*b)
else c:= (b*b*b*b);
d:= d+c;
end;
if (a = d) then writeln('число Армстронга ==> ', a);
end;
end.
Ос это операционная система ,а по это програмное обеспечени
<span>ос- комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем
</span><span>Программное обеспечение (software) – это набор команд, управляющих работой компьютера. Без программного обеспечения компьютер не сможет выполнять задачи, которые мы обычно связываем с компьютерами. </span>
1) function MaxArr(a: array of integer): integer;
var i,l,ma: integer;
begin
l:=high(a);
ma:=a[0];
for i:=1 to l do
if a[i]>ma then ma:=a[i];
MaxArr:=ma;
end;
var a: array of array of integer;
i,j,l: integer;
begin
write('Введите длину матрицы: ');
readln(l);
setlength(a,l);
for i:=0 to l-1 do setlength(a[i],l);
for i:=0 to l-1 do
begin
writeln;
for j:=0 to l-1 do
begin
a[i,j]:=random(50)+1;
write(a[i,j],' ');
end;
end;
a[0,0]:=MaxArr(a[0]);
a[1,1]:=MaxArr(a[1]);
a[2,2]:=MaxArr(a[2]);
a[3,3]:=MaxArr(a[3]);
a[4,4]:=MaxArr(a[4]);
writeln;
writeln('Преобразованный массив');
for i:=0 to l-1 do
begin
writeln;
for j:=0 to l-1 do
begin
write(a[i,j],' ');
end;
end;
end.
2) function SumArr(a: array of integer): integer;
var i,l,s: integer;
begin
l:=high(a);
s:=0;
for i:=0 to l do
s:=s+a[i];
SumArr:=s;
end;
var a: array of array of integer;
i,j,n,m,s: integer;
begin
write('Введите длину матрицы N: ');
readln(n);
write('Введите длину матрицы M: ');
readln(m);
setlength(a,n);
for i:=0 to n-1 do setlength(a[i],m);
for i:=0 to n-1 do
begin
writeln;
for j:=0 to m-1 do
begin
a[i,j]:=random(50)+1;
write(a[i,j],' ');
end;
end;
s:=0;
for i:=0 to n-1 do s:=s+SumArr(a[i]);
writeln;
writeln('Сумма всех элементов матрицы равна: ',s);
end.
В код программы (после команды загрузки картинки) напиши
Setwindowsize (10,10);
Вместо 10,10 можешь вставить свое число
Надеюсь мое объяснение вам помогло. Буду рад если вы отметите мое решение как лучшее