Функция isSevenHere возвращает истину, если в числе есть семерка, и ложь - если ее нет. В цикле for перебираем все значения от 1 до K (число, введенное с клавиатуры), и выводим на экран только те, где есть семерка.
Код программы:
function isSevenHere(number : integer) : boolean;var digit : integer;begin Result := true; while (number > 0) do begin digit := number mod 10; if (digit = 7) then exit; number := number div 10; end; Result := false;end;
var i,k :integer;begin write('Введите k: '); readln(k);
for i := 1 to k do if (isSevenHere(i) = true) then write(i,' ');end.
154
+ 65
-------
241
На самом деле мы знаем, что в десятичной системе счисления 4+5=9. А у нас стоит в младшем разряде суммы единица, что меньше 9. Следовательно, был перенос единицы в старший разряд, а само число получилось равным 11. 11-9=2, значит основание системы счисления на 2 меньше, чем десять. 10-2=8. Предполагаем, что система восьмеричная.
Выполняем сложение по правилам восьмеричной системы.
154
+ 65
-------
241
1) 4+5 = 9₁₀ = 11₈, пишем 1 и единица идет в старший разряд
2) 5+6+1 = 12₁₀ = 14₈, пишем 4 и единица идет в старший разряд.
3) 1+1=2.
Все верно.
<u><em>Ответ: В системе счисления по основанию 8</em></u>
Program qwe;
Uses crt;
var x:real;
begin
clrscr;
writeln('Vvedite x');
Readln(x);
if sqr(x)-4>0 then writeln('Da') else writeln('Net');
Readkey;
<span>end.</span>
<span>индекс последнего отрицательного элемента
P.S. в Пайтоне списки индексируются с 0, т.е. 0 <= i <= n - 1</span>