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

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

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

 
 Ответить  Открыть новую тему 
> простая но не рабочая программа задача, exitcode 200, теперь 207
сообщение
Сообщение #1


Человек
*****

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

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


есть задача
Код
8.Вычислите сумму и среднее арифметическое всех четных делителей числа N: Longint.

моё решение
var
n, j,i,s:integer;
begin
s:=0;
i:=0;
ReadLn(n);
While n<>0 do begin
j:=n mod 10;
if j<>0 then begin
if (j mod 2 =0) and (n mod j =0) then begin
inc(i);
s:=s+j;
end;
end;
n :=n div 10;
end;
writeLn(i);
writeLn(s/i);

ReadLn(i);
end.



ошибка при запуске. как исправить?

добавлено позже
программа подправлена.

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

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

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


for j := 0 ... n mod j


остаток от деления на 0 ?!


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Человек
*****

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

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


я подправил, но появилась новая ошибка...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


я чего-то не понимаю...
Цитата
8.Вычислите сумму и среднее арифметическое всех четных делителей числа N: Longint.


Цитата
var
n, j,i,s:integer;


считает неправильно.
по-моему, ты намудрил сильно...
и, по-моему, задача на длинную арифметику. сумма может быть значительно больше самого n, то есть в longint не влезет...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Человек
*****

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

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


Цитата(мисс_граффити @ 29.04.2007 19:37) *
по-моему, ты намудрил сильно...
и, по-моему, задача на длинную арифметику.
та хотя бы с маленькими числами работала...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


ну, с маленькими и простым перебором можно smile.gif
напишешь сам? просто перебираешь все четные числа меньше n/2 (и при необходимости приплюсовываешь само n). если делится - добавляешь к сумме.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Человек
*****

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

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


Цитата(мисс_граффити @ 29.04.2007 20:53) *

ну, с маленькими и простым перебором можно smile.gif
напишешь сам? просто перебираешь все четные числа меньше n/2 (и при необходимости приплюсовываешь само n). если делится - добавляешь к сумме.

Прошу прощение. Поправка условия. делителя читать как цыифра числа.


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


то есть для числа 124598 это будет 2+4+8?
а для 22 получится 2+2?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Человек
*****

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

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


Цитата(мисс_граффити @ 30.04.2007 16:43) *
то есть для числа 124598 это будет 2+4+8?
а для 22 получится 2+2?
Да! но для 22 прога работает правильно, а для 124598-нет.


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

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

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


Цитата
124598
В турбопаскалевский Integer не влезет.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Человек
*****

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

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


Цитата(klem4 @ 30.04.2007 20:11) *

В турбопаскалевский Integer не влезет.
дело не в размере 11 -- тоже даёт ошибку..


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата
11 -- тоже даёт ошибку..
11 тебе будет давать ошибку только потому, что i = 0, а ты на i делишь!!!

P.S. И потом... Тебе надо сумму? Чего ты счетчик печатаешь? S зачем вычислял?

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Perl. Just code it!
******

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

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



count := 0; s := 0;

while (n > 0) do begin
if not(odd(n mod 10)) then begin
inc(count); inc(s, n mod 10);
end;
n := n div 10;
end;

if count = 0 then writeln('no')
else writeln('s = ', s, #10#13, 'sr = ', (s / count):2:3);


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Человек
*****

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

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


Цитата(volvo @ 30.04.2007 20:30) *

11 тебе будет давать ошибку только потому, что i = 0, а ты на i делишь!!!
знаеш что обидно. только сам нашел ошибки как начались проблемы с телефоном

Цитата(volvo @ 30.04.2007 20:30) *
P.S. И потом... Тебе надо сумму? Чего ты счетчик печатаешь? S зачем вычислял?
та хотел отредактировать да срок истек...(к стате сколько он сейчас составляет)

Виноват кругом..

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 3:47
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name