А) цикл <span>for i:=0 to 5 do s:=s+1; выполнится 6 раз. Переменная s будет равна 6,так как действие s:=s+1 будет увеличивать значение переменной s на 1 с каждым шагом цикла, а значение переменной i будет равно 5, так как for i:=0 to 5 do означает,что цикл будет выполняться, пока значение i, с начала цикла равное 0, не достигнет значения 5.
S=6 , i = 5.
б) В данном случае цикл не выполнится ни разу, так как значение n меньше значения i и используется команда to : </span><span>for i:=2 to n do.
Команда to используется для цикла,значение которого идет вверх. В данном случае, чтобы алгоритм выполнился хотя бы раз, нужно было использовать команду downto, которая работает в сторону уменьшения.
Так как алгоритм не будет выполнен, то и значения переменных не изменятся: S=1, i= 2.</span>
<span>По ссылке наверняка что-нибудь есть:
http://bfy.tw/EOx3</span>
Для двоичных чисел 1+0=1,1+1=10,0+0=0
Под а)110111
б)10100
<span> в)11100</span>
Var
S,C,C1,R:string;
i,j,m,n,k:integer;
Begin
Write('Введите строку: ');
ReadLn(S);
i:=1;
LowerCase(S);
While S[i]<>' ' do
Begin
C:=C+S[i];
i:=i+1
End;
i:=i+1;
For i:= i to Length(S) do
if (S[i]<>' ')and(i<>Length(S)) then C1:=C1+S[i]
else
Begin
k:=1;
j:=1;
For j:= 1 to Length(C1) do
Begin
n:=0;
For m:= 1 to Length(C) do
if C1[j] = C[m] then n:=1;
if n = 0 then k:=0
End;
if (k = 1)and(C1 <> '') then R:=R+C1+' ';
C1:='';
End;
if R = '' then WriteLn('Нет')
else WriteLn(R)
End.
Число считается совершенным, если оно равно сумме своих делителей, исключая себя самого. Для проверки, является ли число N совершенным, полагаем будущую сумму делителей равной 1 (на единицу число всегда делится) и последовательно делим N на числа, начиная от 2 и заканчивая N/2.
Если число делится без остатка на очередной делитель, добавляем его к сумме. После завершения цикла делений сравниваем сумму с N и в случае равенства объявляем число N совершенным. В начале алгоритма проверяем, чтобы N было больше 1, в противном случае сразу объявляем число не совершенным.
var
i,n,s:longint;
begin
Write('Введите натуральное число: '); Read(n);
if n=1 then Writeln('Число 1 не является совершенным')
else begin
s:=1;
for i:=2 to (n div 2) do
if (n mod i)=0 then s:=s+i;
if s=n then Writeln('Число является совершенным')
else Writeln('Число не является совершенным')
end
end.
<em><u>Тестовое решение:</u></em>
Введите натуральное число: 33550336
Число является совершенным
Введите натуральное число: 543252
Число не является совершенным