![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Написал программу подсчитывает логарифм вида lg(2*c-a)+d-152)/(a/4+c) и обрабатывает возможные исключительные ситуации по следующему заданию. Какие буду замечание к программе, что стоит переделать в программе и т.д.
1. Описание класса: Переменные - операнды выражения; конструкторы; методы установления значений объекта, вычисления выражения, выведения объекта 2. Задание - Создать массив объектов; вычислить выражение для каждого объекта, вывести результат. Код программы:
|
|||
|
||||
toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
ArniLand
Добавить страж включения в .h файл
Это сообщение отредактировал(а) toxx - 3.5.2010, 16:02 |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
ArniLand
не любишь ты стражей порядка включения © ![]() |
|||
|
||||
toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
azesmcar
я думал из какой это темы...теперь вспомнил ![]() |
|||
|
||||
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
добавил стражей включений, еще будут какие то замечания к программе?
|
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
найдутся ![]()
Это сообщение отредактировал(а) azesmcar - 4.5.2010, 08:29 |
||||
|
|||||
ArniLand |
|
||||||||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Здесь храниться результат подсчета нашей функция
А в чем будет разница если я его использую, не совсем понимаю для чего он?
} выводят первоначальные результаты, нужно чтобы выводило 2 раза, то есть я отсылаю в конструктор два раза параметры. Но как я понимаю вынести за пределы блока try нужно эти три строки.
А как же я использую throw без try-catch, если try проверяет код на ошибки, а catch перехватывает эти ошибки?
в throw та строка которая пишется под "...." строка в моем случае является указателем типа char, во всяком случае такой пример есть в Шилдте
Здесь сделал я проверяю на три условия при которых функция не имеет смысл. Первое, функция имеет смысле когда a больше нуля, во втором условии проверяю чтобы знаменатель не равнялся нулю. А с третьим условием ошибся, нужно его убрать. Нам вообще показывали пример с исключениями такого плана. Рассматривали функцию или выражение(в плане простое математическое выражение со школьной программы) и проверяли на условия при которых оно имеет смысл, пример кода который показывали был похож на мой. Это сообщение отредактировал(а) ArniLand - 4.5.2010, 11:16 |
||||||||||||||
|
|||||||||||||||
azesmcar |
|
||||||||||||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
тоже что и тут
это присваивание (твой случай)
это инициализация (случай со списком инициализации), лучше инициализировать. твой класс не должен ничего выводить на экран, пока его об этом не попросят (лучше чтобы он вообще ничего не выводил, а предоставлял возможность другим обеспечить вывод данных на экран/файл или куда-то еще), таков принцип, я попросил его подсчитать логарифм а не выводить на экран какие-то аргументы, зачем мне оно надо?
Перехватывать надо не на том же уровне, если есть возможность обрабатывать ошибку на том же уровне - обрабатывай сразу, без throw, try-catch. пример
заменить на
исключения надо использовать лишь в исключительных ситуациях
Я тебе говорю как правильно. Да, в C++ можно и const char * как исключение использовать, но лучше использовать типы, специально созданные для этого.
Зачем? нарушаешь условия задачи, и еще добавляешь от себя что-то совсем ненужное. Это сообщение отредактировал(а) azesmcar - 4.5.2010, 11:30 |
||||||||||||||||
|
|||||||||||||||||
ArniLand |
|
||||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
[quote]
Перехватывать надо не на том же уровне, если есть возможность обрабатывать ошибку на том же уровне - обрабатывай сразу, без throw, try-catch.
Так цель этой лабораторной состоит в использованием throw, try-catch. Мне нужно нужно придумать самому ситуации когда мое выражение не имеет смысл и придумать исключительные ситуации с использованием throw, try-catch, без них ее принимать у меня не будут.
Твоя мысль понятна, но мы еще не проходили специальные для этого типы и потому я умею пока только так и преподаватель показывал на своем примере именно так и говорил чтобы делали так
Покажи пожалуйста пример как правильно реализовать с массивом объектов в main.
я всего лишь вывожу первоначальные значения аргументов логарифма a, c, d, про сделал чтобы они уже были даны в программе и все. Это сообщение отредактировал(а) ArniLand - 4.5.2010, 11:55 |
||||||||||
|
|||||||||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
т.е. у тебя задание использовать try-catch, не важно где, не важно как, не важно к месту или нет? ну ты спросил что не так - я ответил ![]()
ну хотя бы как-то так
а то у тебя и массив и объекты, в итоге смысл у этого массива весьма сомнительный. хотя все задание в целом фигня конечно ![]() |
||||
|
|||||
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
azesmcar, ну задание заключается в том что, дана какая то функция(пример со школьной программы) и нужно проверить случаи когда функция не имеет смысл с использованием исключений
Это сообщение отредактировал(а) ArniLand - 4.5.2010, 12:13 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |