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

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

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

 
 Ответить  Открыть новую тему 
> простая но не рабочая программа задача, exitcode 200, теперь 207
compiler
сообщение 29.04.2007 18:33
Сообщение #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 - 29.04.2007 18:50


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 29.04.2007 18:36
Сообщение #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 
 К началу страницы 
+ Ответить 
compiler
сообщение 29.04.2007 18:54
Сообщение #3


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

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

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


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


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


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

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

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


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


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


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


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


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

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

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


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


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


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

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

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


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


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


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

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

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


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

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

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


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


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

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

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


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


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


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

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

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


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


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


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

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

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


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


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


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

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

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


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

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


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


Гость






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

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

Сообщение отредактировано: volvo - 30.04.2007 20:31
 К началу страницы 
+ Ответить 
klem4
сообщение 30.04.2007 20:32
Сообщение #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 
 К началу страницы 
+ Ответить 
compiler
сообщение 1.05.2007 20:38
Сообщение #14


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

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

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


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

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

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

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

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


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

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

 



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