Помощь - Поиск - Пользователи - Календарь
Полная версия: Программирование циклов с параметрами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Stas86
Всем привет. Задание такое: найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9.

Program st;
uses crt;
function Summ(n:integer):byte;
var s:byte;
begin
s:=0;
while n>0 do
begin
s:=s+n mod 10;
n:=n div 10;
end;
Summ:=s;
end;
var i,j:integer;
begin
clrscr;
for i:=2 to 9 do
begin
writeln('*',i);
for j:=10 to 99 do
if Summ(j)=Summ(j*i) then
write(j,'-',i*j,' ');
writeln;
end;
readln;
end.



Задачка не запускается, выдает ошибки. Посмотрите пожалуйста, подскажите что исправить.


Добавлено через 4 мин.
Ссылается на строку function
Stas86
Уважаемые форумчане, вопрос еще в силе.
TarasBer
Не компилируется что ли?
Не знаю, у меня всё заработало.
Stas86
TarasBer, ты ведь наверняка делал какие-то мелкие поправки в задаче. Можешь выложить сюда свою версию это программы?
TarasBer

Program st;
{$APPTYPE CONSOLE}
function Summ(n:integer):byte;
var s:byte;
begin
s:=0;
while n>0 do
begin
s:=s+n mod 10;
n:=n div 10;
end;
Summ:=s;
end;
var i,j:integer;
begin
for i:=2 to 9 do begin
writeln('*',i);
for j:=10 to 99 do
if Summ(j)=Summ(j*i) then
write(j,'-',i*j,' ');
writeln;
writeln;
end;
readln;
end.



Это для D7. Для Турбо надо убрать строчку {$APPTYPE CONSOLE}
Stas86
Спасибо, теперь работает. Сейчас ошибку буду у себя искать.
TarasBer
Я только убрал uses Crt (в дельфе этого модуля нет), строчку с функцией не трогал, почему твой первый вариант не работал - не знаю.
Stas86
Ошибка была в написании команды function. Букву пропустил, из-за этого и весь кипишь. smile.gif
volvo
Однако, здесь, в первом посте, все правильно. Почему не копируешь программу, а перенабиваешь ее здесь?
Stas86
Да нет, на форум программу занес копированием. А в паскале каким-то образом ошибка была.
Stas86
Парни, приветствую. Подскажите, а как данная задача будет выглядеть без строки function. Преподша сказала, якобы функции мы не проходили, говорит или переделывай или объясняй.
TarasBer
> или переделывай или объясняй.

Выбирай "объясняй".
Объяснить-то сможешь же? Ну так какие проблемы?

Stas86
Объяснить? Нет, такое у меня не получится. Не силен я в этом деле.
Stas86
Народ, помогите в данном вопросе.
Client
просто жесть! пойду повешусь
Program st;
{$APPTYPE CONSOLE}

var i,j:integer;
MyS1, MyS2, s : integer;
i1, j1 : integer;

begin
for i:=2 to 9 do begin
writeln('*',i);
for j:=10 to 99 do begin
MyS1:=0;
j1 := j;
while j1>0 do
begin
MyS1:=MyS1+j1 mod 10;
j1:=j1 div 10;
end;

MyS2:=0;
i1 := j*i;
while i1>0 do
begin
MyS2:=MyS2+i1 mod 10;
i1:=i1 div 10;
end;

if MyS1 = MyS2 then
write(j,'-',i*j,' ');
end;
writeln;
writeln;
end;
readln;
end.
Stas86
Огромное спасибо!
Lapp
Просто чуток покороче..
var
i,j,k,l: integer;

begin
for k:=2 to 9 do begin
Write(k,':');
for i:=1 to 9 do
for j:=0 to 9 do begin
l:=(i*10+j)*k;
if l mod 10+l div 10 mod 10+l div 100=i+j then Write(' ',i,j,'~',l)
end;
WriteLn
end;
ReadLn
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.