Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите пожалуйста, ООП в С++ 
:(
    Опции темы
Veniamin
  Дата 3.3.2005, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.3.2005

Репутация: нет
Всего: нет



Привет всем! Подскажите пожалуйста как решить эти задачи с помощью ООП, или хотя бы идею как решать, сам курс ООП на Си++ у нас очень маленький - всего 9 дней, а сроки сдачи короткие.

1)даны действительные числа x, eps (x<>0, eps>0)
Вычислить сумму с точностью eps:
знак суммы от 0 до бесконечности
[ ( - 1)^n / n! (n + 1)! ] * ( x / 2 )^2n+1


2) написать программу для обработки матрицы, элементы матрицы вводить из текстового файла,
дано целое число N, сформировать матрицу:

N N-1 ..... 2 1
0 N ..... 3 2
A[i,j] = . . . . . . . . . .
0 0 ..... N N-1
0 0 ..... J N

3) Решение нелинейных уравнений
методом секущих: e^x - 10^x = 0 на отрезке [0, 1]

1. Отделить графическим способом корни уравнения и выбрать начальное приближение или начальный

интервал (в зависимости от метода).
2. Уточнить указанным методом корень уравнения с заданной точностью.
3. Повторяющиеся вычисления оформить в виде функции.
4. Результат решения задачи: корень уравнения, заданная точность, число потребовавшихся для нахождения

корня итераций.

4) Численное интегрирование
методом модифицированных прямоугольников: интеграл с пределами интегрирования от 0 до 3,

подынтегральная функция: под корнем x^2 - 4

1.Написать программу для вычисления определенного интеграла с заданной точностью. В каче-стве тестового

примера использовать заданный вариант.
2.Оформить в виде функции:
• вычисление интеграла с заданной точностью;
• вычисление интеграла с заданным числом разбиений интервала интегрирования;
• вычисление значения подынтегральной функции.
3.Функции вычисления интеграла разместить в отдельном файле.
4.Имя подынтегральной функции передавать в качестве параметра.
5.Предусмотреть обработку ситуации, когда заданная точность не может быть достигнута..

5) Требования к заданию:
1. Создания пользовательского интерфейса ( глобальное и локальное меню, окна, подсказки, и т.п.)
2. Использование технологии модульного программирования (разделение программы на функции,

группировка функций и связанных с ними данных в отдельные файлы).

Исходные данные хранятся в файле
____________________________________________
| | | |
| Наименование товара | Цена | Срок реализации |
| ____________________|______|________________|

Составить список товаров с просроченным сроком реализации(на текущую дату).
Использовать структурные переменные.

PM MAIL   Вверх
Ni@m
Дата 3.3.2005, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 11.3.2004
Где: почти Киев

Репутация: нет
Всего: 6



Есть уже готовый класс для работы с матрицами Matrix.
Можешь посмотреть его устройство и сделать сам или заюзать его.
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
Veniamin
Дата 7.3.2005, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.3.2005

Репутация: нет
Всего: нет



Ni@mСпасибо! Посмотрю. А первую я уже сдеалал! Но только компилятор выдает ошибку : divide by 0. Хотя все проверял, что на 4-м шаге итерации должны завершится
Код

# include <iostream.h>
# include <conio.h>
# include <complex.h>
double pow (double, double);
long fact (long);
long fact (long n)
{
 if (n == 1.0 || n == 0)
   return 1;
 return n * fact (n - 1);
}

class Summa
{
 private:
    double S; //сумма
    double x; //переменная
    double eps; //точность вычислений
 public:
     Summa (double S, double x, double eps);
     double formula (void);
};

Summa :: Summa (double S, double x, double eps)
{
  Summa :: S = S;
  Summa :: x = x;
  Summa :: eps = eps;
}

double Summa :: formula (void)
{
  double S_pred, // предыдущая сумма
  S_tek;  //текущая сумма
  long
     n, // номер элемента суммы
     chis; //множитель отвечающий за 1 в степени n
  S_pred = S_tek = 0;
  n = 1;
  do
  {
    chis = (n % 2 == 0) ? 1 : -1;
    S_pred = S + chis * pow (x / 2.0, 2 * n + 1) /         (fact (n) * fact (n - 1));
    cout<<"S_pred = "<< S_pred<<endl;
    S = S_pred;
    n++;
    chis = (n % 2 == 0) ? 1 : -1;
    S_tek = S + chis * pow (x / 2, 2 * n + 1) /
                 (fact(n) * fact(n - 1));
    cout<<"S_tek = "<< S_tek<<endl;
  }
  while (abs(S_tek - S_pred) < eps);
  return S;
}

int main()
{
  clrscr();
  Summa SM (0, 1, 0.0001);
  cout<< "сумма  = "<<SM.formula() <<endl;
  getch();
  return 0;
}

PM MAIL   Вверх
sergejzr
Дата 14.11.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Модератор: Название темы должно отражать ее суть!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.2927 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.