![]() |
Помогите найти ошибки в решении выражения
Составить программу по вычислению заданного выражения тремя циклами. Все неизвестные переменные вводятся с клавиатуры. Результаты вычислений выдать на экран и в файл.
http://forum.oszone.net/attachment.p...1&d=1372325496 вот что получилось у меня: Код:
#include "stdafx.h" |
Цитата:
Цитата:
Вообще сделайте так: Запишите выражение, пронумеруйте порядок действий, а когда будете писать код, то в комментариях укажите этот самый номер. Все ориентироваться и понимать будет проще. Цитата:
|
Произведения можно считать в одном цикле, а вот сумму нужно вынести в отдельный. Переменные ph1 и ph2 обязательно нужно инициализировать. Нужно так же проверить инициализацию переменной счетчика и условие выхода в каждом цикле.
Цитата:
|
Цитата:
Код:
float so=0,ph1=1,ph2=1; Цитата:
Цитата:
Цитата:
|
Цитата:
Нахождение строки в цикле мне все равно не понятно. Здесь ошибка. Что значит "По заданию три цикла" ? Три цикла всего? На всю программу? Или три цикла на решение (решение не учитывает в себе инициализацию переменных[подготовку входных данных]!) Цитата:
---- Послушайте, а что это вообще за бред? Причем здесь указатели? Проще то никак нельзя объявить? Зачем вам работа с памятью, если вы только циклы начали проходить? Цитата:
Дальше самое решение. Ладно, бог с ней, инициализацией. Допустим с горем пополам память выделили. Цитата:
По хорошему тут надо спросить. Где именно должны формироваться значения a[i], b[i]? До циклов счета произведений ИЛИ во время счета циклов произведений? Цитата:
Цитата:
Далее хорошо бы уточнить, как именно соотносится переменная i=1..n в сумме, с i=1..(n-3) и i=3..(n) в произведениях, и в ai,bi ? Допустим соотносятся верно и ошибок нет, и я просто паникую. Допустим. Какой смысл считать 5 раз произведения, если от i (что в сумме) не зависит получаемое значение в скобках? Может как то к умножению перейти? ---- Еще раз: Записать выражение, пронумеровать порядок действий, в комментариях к циклам указать номер действия!(Это не прихоть, это объязаловка) Проверить, что порядок выполняется правильно! Т.к. сейчас вы просто что-то написали, не понимая "что именно" вы написали. Строки с циклами (т.е. все что между float *p2 = new float[n]; и printf("%2.3f",so);) стереть, забыть и написать решение заново. Не забывая про нумерацию действий! |
Код:
попробЫвал иначе у меня просто в чём проблема я учил ВБ 2010, а сейчас С++ 6ой версии. вот и сижу почти всё подряд гуглю. и пока что си в голове хреново укладывается |
399Dmitr933,
Цитата:
Цитата:
---- В остальном похоже на правду. Хоть и неказисто. |
Цитата:
не подскажите как переделать? |
Цитата:
От банального "лень", среднего "диплом у меня уже есть", и далее куда то туда, в облака и высокие цели. |
Цитата:
И кстати, зачем вы используете объявление кучи переменных в одной строке? Лучше не жалеть строк. Цитата:
Цитата:
Цитата:
Цитата:
Сам алгоритм вычисления тут довольно простой. Сначала считаете произведения. Как я уже упоминал, в данном случае их можно посчитать в одном цикле. Затем считаете сумму. Самое интересное, что суммируемое выражение тут не зависит от i. Так что можно просто вычислить выражение в скобках и умножить на n. Попробуйте сначала нарисовать блок-схему или записать алгоритм псевдокодом, а потом уже переносить это на C++. |
В общем сдал как было. Приняли как есть, тройка стоит. Всем большое спасибо за помощь! Тему закрываем.
|
Время: 06:16. |
Время: 06:16.
© OSzone.net 2001-