Разработать алгоритм нахождения суммы и кол-ва нечетных чисел натурального ряда, которые больше М, но меньше К. Значение К и М вводятся с клавиатуры.
До завтрешнего утра!

просто я ноль в алгоритмах=(

@темы: Информатика

Комментарии
23.04.2009 в 21:55

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Вам нужна блок-схема или текст программы?
23.04.2009 в 21:57

блок-схема
23.04.2009 в 22:12

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Я могу предложить пошаговый алгоритм, а Вы попробуете его оформить.
1. Ввод K, M
2. Цикл для N от 1 до 1000 (в зависимости от того, сколько нужно чисел вывести).
3. Если M<(2*N-1)<K, то write(2*N-1)
4. Конец программы.

Получится?
23.04.2009 в 22:16

я без понятия)
23.04.2009 в 22:21

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Прочитайте этот материал и задайте конкретные вопросы, что Вам непонятно.
Блок-схемы
23.04.2009 в 22:27

а с чего такой третий пункт
Если M<(2*N-1)
23.04.2009 в 22:30

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Пункт там такой: M<(2*N-1)
(2*N - 1) - это формула нечетного числа, подставьте любые целые значения (1, 2, 3...) и Вы увидите, что у Вас получится последовательный ряд нечетных чисел.

23.04.2009 в 22:33

о боже,нифига понять не могу
23.04.2009 в 22:37

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Или Вы не хотите понимать? Довольно часто проблема заключается именно в этом. Вы прочли тот материал, который я Вам предложила?
И заметьте: в этом сообществе мы не делаем за Вас задания - мы даём указания и помогаем Вам разобраться с ними.
23.04.2009 в 22:40

да я все понимаю,сижу обложившись конспектами и курсовиком еще занимаюсь параллельно.
вот и стараюсь понять
23.04.2009 в 22:52

Все равно спасибо , ч то уделили время
23.04.2009 в 22:53

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Ладно, я Вам помогу.

У Вас есть начало программы и конец программы - это мы заключаем в кружок. Это понятно?
Далее у нас идёт ввод данных с клавиатуры. Это наши M и K. Рисуем параллелограмм, в нём пишем: "ввод m, k"
Затем следует цикл. Мы рисуем шестиугольник и пишем значения N, допустим от 1 до 1000: "n = 1, 1000"
После него рисуете ромб, в нем пишете условие: M<(2*N-1)
От ромба идет ветка, подписываем над ней yes, в прямоугольнике пишем: "write(2*N-1)"
Вторую ветку от ромба ведем к шестиугольнику, подписываем над ней no.
От прямоугольника также начертите стрелку к шестиугольнику.
Потом от шестиугольника проводите стрелку, рисуете кружок, в нем пишете "конец".

23.04.2009 в 23:03

несли я не ошибаюсь,то это же не полный алгоритм, мне же надо найти сумму нечетных натуральных чисел.
Или я не права?
23.04.2009 в 23:10

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Извините, невнимательно прочитала...
Значит, количество и сумму...
Тогда между вводом и циклом вставим прямоугольник, в нем две переменные, скажем, S и Z, и присвоим им нули, т.е. внутри пишем: "S:=0 ; Z:=0"
Затем в том прямоугольнике, который ответвляется от ромба, мы пишем: "Z := Z + 1 ; S := S + (2*N -1).
Z - количество
S- сумма
23.04.2009 в 23:14

а в начале после ввода не надо проверять что N>0 ?
23.04.2009 в 23:16

Для кого даже честь - пустяк, для того и все прочее ничтожно.
Жанна0703
Зачем? Мы ведь N не вводим, мы вводим M и K. Значения N мы уже задали в цикле: n = 1, 1000
23.04.2009 в 23:17

ну в принципе да...
спасибо большое
24.04.2009 в 00:00

Le_Taon
а зачем от 1 до N ?
я думаю так будет проще и понятней.

Suma сума
Kolvo кол-во

Цикл N принимает поочередно все значения от М до К
Если N нечетное (N / 2 имеет нулевой остаток)
ТО Suma = Suma + N, Kolvo = Kolvo + 1.
24.04.2009 в 00:02

да кстати не плохо бы проверить что М меньше K
24.04.2009 в 18:44

Для кого даже честь - пустяк, для того и все прочее ничтожно.
ArcheryMask
да кстати не плохо бы проверить что М меньше K
Я вначале так и написала, если Вы внимательно читали комментарии, просто когда я "вставила цитату", эта часть не отобразилась.
Если N нечетное (N / 2 имеет нулевой остаток)
Что за ерунда? Нечетные числа имеют в остатке от деления на 2 единицу :)

А вот теперь позвольте мне поинтересоваться: что я сделала не так? Полагаю, что мое решение тоже нормально, Вы просто предложили альтернативу. И если использовать Ваш вариант, то тогда M и N должны быть целочисленными, а в рассмотренном мною случае они могут быть переменными типа real. Разве что если Вы сначала отбросите дробную часть с помощью функции Trunc :)
24.04.2009 в 20:50

Le_Taon
Вообщем да их надо целочислить) Но я думала что подразумевается что они integer изначально.
У вас другой просчет. Что если М или К не входят в промежуток от 1 до 1000? или скажем м=15, K = 20, а мы перелопачиваем целую тысячу. Здесь это не существенно, но что если цыкл куда тяжелее?

Если N нечетное (N / 2 имеет ненулевой остаток)
каюсь описки это мой грех

да кстати не плохо бы проверить что М меньше K
Я вначале так и написала, если Вы внимательно читали комментарии, просто когда я "вставила цитату", эта часть не отобразилась.

Нет не видела. Щас просмотрела тоже не заметила.

ЗЫ: Le_Taon почему вы со мной вечно сорритесь? я против вас ничего не имею
24.04.2009 в 21:14

Для кого даже честь - пустяк, для того и все прочее ничтожно.
ArcheryMask

Нет не видела. Щас просмотрела тоже не заметила.
Да, действительно, что-то я этот момент упустила. Извините.
Да ещё здесь плохо отображаются знаки "меньше-больше", видимо, это воспринимается как HTML тег ...

Что если М или К не входят в промежуток от 1 до 1000?
Я 1000 просто для примера привела. А так можно указать какие-то ограничения на k и m при вводе.

почему вы со мной вечно сорритесь? я против вас ничего не имею
Я ни с кем не ссорюсь, как Вы изволите утверждать, говорю лишь по сути материала, и не забывайте, что в этом случае Вы обратились ко мне сами =)