На паскаль цикл for 1.вывести на экран все числа на промежутке [5..999] заканчивающиеся на 5 2.вывести все трехзначные числа, делящиеся на 5, 11 или 13 3.вывести на экран все двузначные числа, сумма цифр которых четное число
PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018Внимание! Если программа не работает, обновите версию!
begin
for var i := 5 to 999 do
if i mod 10 = 5 then i.Print;
Println; Println;
for var i := 100 to 999 do
if (i mod 5 = 0) or (i mod 11 = 0) or (i mod 13 = 0) then i.Print;
Println; Println;
for var i := 10 to 99 do
if (i mod 10 + i div 10).IsEven then i.Print
end.
РоманТрофимов2012
08.02.2020
Сначала надо избавиться от ошибок (пункт №3) иначе не сможем выполнить 1 и 2 пункт задания. Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10; Исправляем N:N div 10; на N:= N div 10;
После исправления ошибок при вводе 537 получим 3 Программа будет работать правильно для любого числа, у которого вторая цифра слева меньше первой цифры, например: 7193
Чтобы программа работала правильно для всех чисел надо изменить это: while N > 10 do на while N > 0 do
После всех исправлений код программы стал таким: var N, k: integer; begin readln(N); k := 9; while N > 10 do begin if (N mod 10 < k) then k := N mod 10; N := N div 10; end; write(k) end.
begin
for var i := 5 to 999 do
if i mod 10 = 5 then i.Print;
Println; Println;
for var i := 100 to 999 do
if (i mod 5 = 0) or (i mod 11 = 0) or (i mod 13 = 0) then i.Print;
Println; Println;
for var i := 10 to 99 do
if (i mod 10 + i div 10).IsEven then i.Print
end.