var
i, p, n, q, sum: integer;
a : array[1..1000000] of byte;
begin
Write('Введите число N: ');
ReadLn(n);
Write('Введите основание системы счисления q: ');
ReadLn(q);
p := n;
while p > 0 do
begin
i := i + 1;
a[i] := p mod q;
sum := sum + a[i];
p := p div q;
end;
Write(n,'(10) = ');
for p := i downto 1 do
Write(a[p]);
WriteLn('(', q, ')');
WriteLn('Сумма цифр полученного числа равна ', sum);
WriteLn('Количество цифр полученного числа равна ', i);
end.
Объяснение:
3, 6 (но с уловием, что это последняя строка кода перед end.)
Объяснение:
1.) if x>0 or y>0 then k:= k+1 else k:= 0; - неверно, потому что при использовании and или or сравниваемые условия необходимо указывать в ( )
2.) if 10 then k:= k+1; - должно быть указано условие, просто число не может быть условием (по крайней мере в pascal)
3.) if x<>0 then y:=100/x; - всё ОК
4.) if x - нет then,
5.) if x>0 then y:= 100 div x; else y:= 0; - перед else не ставится ;
6.) if (x mod y=0) then else writeln(‘no’) - всё ОК, с условием, что это последняя срока кода перед end. Если условие будет истинно, то просто ничего не выполнится. И ещё небольшой комментарий: символ ’ не используется для написания строки, нужен символ '. Возможно это ты малость ошибся, при переписывании задания