Вопрос № 107670: В Паскале есть возможность сохранения результатов работы программы в текстовый файл. Можно ли и как осуществить сохранение результатов программы построения графики в файл? Есть ли такая возможность в Delphi?...Вопрос № 107723: Здравствуйте, мне тут надо найти количество трезначных натуральных чисел, сумма цифр которых равна заданному числу N.
Трехзначное число я знаю ка определить: a:=length(b);
А вот как считать их я не знаю.
Подскажите пожалуйста...
Вопрос № 107.670
В Паскале есть возможность сохранения результатов работы программы в текстовый файл. Можно ли и как осуществить сохранение результатов программы построения графики в файл? Есть ли такая возможность в Delphi?
Отправлен: 01.11.2007, 17:09
Вопрос задала: Sphinx2007 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Дмитрий Т.
Здравствуйте, Sphinx2007!
вариант - изучить формат bmp(довольно просто) или jpg. Или сохраните в файл данные необходимые для построения графика...
Ответ отправил: Дмитрий Т. (статус: 2-ой класс)
Ответ отправлен: 01.11.2007, 19:12
Вопрос № 107.723
Здравствуйте, мне тут надо найти количество трезначных натуральных чисел, сумма цифр которых равна заданному числу N.
Трехзначное число я знаю ка определить: a:=length(b);
А вот как считать их я не знаю.
Подскажите пожалуйста
Отвечает: Дмитрий Т.
Здравствуйте, Исаак Моисеевич!
А зачем вам хранить само число в string'e? Лучше задайте цикл от 100 до 999, и проверяйте сумму цифр, а не равна ли она N. Таким образом не надо будет проверять длину числа...
Куда лучшее решение цикл запустить от 10 до 99, а третье число, если оно будет влазить(к примеру для 99Х нужно N не меньше 18), вычислять как N-сумма двух цифр.
Сумму цифр следует считать примерно так(см. приложение)
a mod b - остаток от деления числа а на число b
a div b - деление нацело числа а на число b
После этого цикла у вас есть сумма, проверяйте, а не больше ли она чем N, если нет, то у вас будет еще одно трехзначаное число...
Приложение:
Ответ отправил: Дмитрий Т. (статус: 2-ой класс)
Ответ отправлен: 02.11.2007, 07:57 Оценка за ответ: 5 Комментарий оценки: так мне ведь надо чтобы введенные числа проверялись
Отвечает: Форсман Павел Вячеславович
Здравствуйте, Исаак Моисеевич!
Программа примет следующий вид:
Program T107723;
const {Константы для определения нижней и верхней границы перебора.}
Lower=100; {В общем виде, можно задать любые границы}
Upper=999;
var
C,N:byte; {Переменные под число N и переменная для записи количества чисел}
Function CountSum(n:byte):Word; {Подсчет количества чисел}
var
i,T,C,S:Word; {Счетчик, временная переменная, количество, сумма цифр в числе}
begin
C:=0; {Изначально чисел не обнаружено}
for i:=Lower to Upper do {Начало перебора}
begin
T:=I; {Сохранение значения счетчика}
S:=0; {Подготовка переменной суммы}
while T<>0 do {Подсчет суммы цифр}
begin
S:=S+T mod 10;
T:=T div 10;
end;
if S=N then {Сумма совпадает с числом N}
begin
inc(C); {Увеличение счетчика}
writeln(I); {Вывод найденого числа}
end;
end;
CountSum:=C; {Возврат значения функции}
end;
begin
write('N='); {Запрос числа N}
readln(N);
C:=CountSum(N); {Подсчет}
writeln('Count=',C); {Вывод результата}
readln; {Ждем нажатия ENTER}
end.
--------- Научить нельзя, но можно попробовать научиться!!!
Ответ отправил: Форсман Павел Вячеславович (статус: 2-ой класс)
Ответ отправлен: 02.11.2007, 12:08 Оценка за ответ: 5
Отвечает: Артём1983
Здравствуйте, Исаак Моисеевич!
Ваша задача практически сводится к одному действию: найти число при котором целочисленный остаток при делении на это число больше 100.
Смотрите код в приложении.
Приложение:
--------- Программирование - дело Путное!
Ответ отправил: Артём1983 (статус: 6-ой класс)
Ответ отправлен: 02.11.2007, 22:38 Оценка за ответ: 4 Комментарий оценки: Зачем мне целочисленный остаток больше ста :( Мне надо всего-то чтобы программа выяснила, какое число из введенных трехзначное и сумма его равна заданному числу, константе :(