, я сегодня добрый : ) первая .
var s, mn: set of integer; f: boolean; k, n, c, i, j, kol: integer; begin writeln('введите трехзначное число: '); repeat readln(n) until n in [100..999]; // защита от "дурака" k : = n; // записываем число, чтобы вывести на результат while n < > 0 do begin // пока число не станет равно c : = n mod 10; // последняя цифра числа include(s, c); // вносим эту цифру в множество n : = n div 10 // у числа отсекаем рассмотренную цифру end; for i : = 100 to 999 do begin // рассматриваем все трехзначные числа mn : = s; j : = i; f : = true; // все обнуляем while j < > 0 do begin // пока рассматриваемое число не будет равно нулю c : = j mod 10; // последняя цифра числа if c in mn then exclude(mn, c) else f : = false; // если число во множестве, то убираем его оттуда, чтобы избежать повторений, иначе - не рассматриваем его. j : = j div 10; // у числа отсекаем рассмотренную цифру end; if f then begin inc(kol); write(i: 6) end // если проверка прошла успешно, то выводим число на экран и прибавляем значение переменной-счетчика! end; writeln; writeln('из ', k, ' можно составить ', kol, ' чисел! '); // выводим результат readln; end.
==========================================================
а вот вторая, комменты к ней писать было уже лень:
var k, i, n, kol: integer; begin writeln('количество трехзначных чисел, которые вы далее введете? '); repeat readln(k) until k in [1..10]; for i : = 1 to k do begin writeln('введите ', i, ' трехзначное число: '); repeat readln(n) until n in [100..999]; while n < > 0 do begin if ((n mod 10) mod 2 = 0) then inc(kol); n : = n div 10; end; end; writeln('количество четных чисел = ',kol); readln end.
Поделитесь своими знаниями, ответьте на вопрос:
По заданным координатам точек а и в вычислите длину отрезка ав.