IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Программирование циклов с параметрами, Проверка задачки
Stas86
сообщение 21.11.2010 19:04
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Всем привет. Задание такое: найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 22.11.2010 12:10
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Уважаемые форумчане, вопрос еще в силе.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 22.11.2010 13:07
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Не компилируется что ли?
Не знаю, у меня всё заработало.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 22.11.2010 13:54
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


TarasBer, ты ведь наверняка делал какие-то мелкие поправки в задаче. Можешь выложить сюда свою версию это программы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 22.11.2010 14:10
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +



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}


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 22.11.2010 14:22
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Спасибо, теперь работает. Сейчас ошибку буду у себя искать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 22.11.2010 14:27
Сообщение #7


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Я только убрал uses Crt (в дельфе этого модуля нет), строчку с функцией не трогал, почему твой первый вариант не работал - не знаю.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 22.11.2010 14:47
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Ошибка была в написании команды function. Букву пропустил, из-за этого и весь кипишь. smile.gif

Сообщение отредактировано: Stas86 - 22.11.2010 14:52
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 22.11.2010 14:50
Сообщение #9


Гость






Однако, здесь, в первом посте, все правильно. Почему не копируешь программу, а перенабиваешь ее здесь?
 К началу страницы 
+ Ответить 
Stas86
сообщение 22.11.2010 14:54
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Да нет, на форум программу занес копированием. А в паскале каким-то образом ошибка была.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 26.11.2010 13:12
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Парни, приветствую. Подскажите, а как данная задача будет выглядеть без строки function. Преподша сказала, якобы функции мы не проходили, говорит или переделывай или объясняй.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 26.11.2010 14:21
Сообщение #12


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> или переделывай или объясняй.

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



--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 26.11.2010 14:26
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Объяснить? Нет, такое у меня не получится. Не силен я в этом деле.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 6.12.2010 18:38
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Народ, помогите в данном вопросе.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 6.12.2010 18:47
Сообщение #15


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


просто жесть! пойду повешусь
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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stas86
сообщение 6.12.2010 18:55
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: Стас

Репутация: -  0  +


Огромное спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 7.12.2010 1:01
Сообщение #17


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Просто чуток покороче..
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.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.04.2024 18:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"