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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вылетает ошибка, VS 03 
:(
    Опции темы
hkklr
Дата 18.8.2007, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Но это не всегда удобно.
PM MAIL   Вверх
Grr
Дата 18.8.2007, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



hkklr, получится ошибка на этапе копмиляции)) 
bsa, да, им и делаю smile
через 2 часа выложу 3 задания, которые отказываются получаться корректно)
PM MAIL   Вверх
Grr
Дата 18.8.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

#include <iostream>
using namespace std;
/*Написать функцию, которая принимает в качестве параметров вещественное число и количество знаков после 
десятичной точки, которые должны остаться. Задачей функции является округление вышеуказанного вещественного 
числа с заданной точностью. */
float vichislenie (float ch, int vish)
{
    int sum = 0, sum_1 = 0; float drob, drob_1, itog;
    for (int i=ch; i>1; i--)
        sum++;
    drob=ch-sum; (int)ch;
    for (int i = 1; i < vish; i++)
        sum_1++;
    drob_1 = drob * sum_1; (int)drob_1;
    itog = (float)drob_1/sum_1;
    return itog+ch;
}
void main()
{
    float chislo;
    int tochnost;
    cout<<"Vvedite chislo dlya okrugleniya \n"; cin>>chislo;
    cout<<"\nZadayte kol-vo znakov kotorie dolgni ostatsya "; cin>>tochnost;
    cout<<"\n\n"<<vichislenie(chislo, tochnost)<<"\n\n";
}

беру число 12.1212, провожу округление до двух знаков, но получается 13.2424. Почему, не понимаю)
Код

#include <iostream>
#include <time.h>
#include <stdlib.h>
/*Написать шаблон функции для поиска среднего арифметического значений массива.*/
long Sred_arif (int n, int chisla[])
{
    double rezultat=0;
    for (int i=0; i<n; i++)
    {
        chisla[i]<n ? rezultat+=chisla[i] : false;
    }
    return rezultat/n;
}

/*тело программы для проверки*/
using namespace std;
void main()
{
    int massiv[15];
    srand(time(NULL));
    for (int i=0; i<15; i++)
        massiv[i] = rand()%10;
    for (int i=0; i<15; i++)
        cout<<massiv[i]<<", ";
    cout<<"\n\nSrednee arifmeticheskoe massiva : "<<Sred_arif(15, massiv)<<"\n";
}

как ни странно, но работает корректно smile
Код

#include <iostream>
#include <math.h>
using namespace std;
/*Написать перегруженные шаблоны функций для нахождения корней линейного (a*x + b = 0) и 
квадратного (a*x2+b*x + c = 0) уравнений. Замечание: в функции передаются коэффициенты уравнений. */
float vichislenie (int a, int b, int c)
{
    float x_1, x_2;
    int temp;
    double d;
    d=(b*2-4*a*c);
    a!=0 ? x_1=(-b+sqrt((double)d))/(2*a) : false;
    a!=0 ? x_2=(-b-sqrt((double)d))/(2*a) : false;
    d>=0 ? temp = 1 : false;
    d>0 ? temp = 2 : false;
    cout<<"uravnenie a*x2+b*x+c=0 imeet ";
    temp == 2 ? cout<<"2 kornya"<<x_1<<"\t"<<x_2<<"\n\n" : cout<<"1 koren"<<x_1<<"\n\n";
    return 0;
}

void main()
{
    int a, b, c;
    cout<<"vvedite a, b, c\n";
    cin>>a; cin>>b; cin>>c; cout<<"\n\n";
    cout<<"korni uravneniya (a*x2+b*x + c = 0) : "<<vichislenie (a, b, c);
}

попробовал через скрт, но всё равно ошибка :(

PM MAIL   Вверх
MAKCim
Дата 18.8.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Grr
первая задача
Код

double convert(double number, int precision) {
    double result = (double)((int)number), multiply = 10.0;
    number -= result;
    while (precision--) {
        number *= 10.0;
        result += (int)number / multiply;
        number -= (int)number;
        multiply *= 10.0;
    }
    return result;
}


Добавлено через 12 минут и 1 секунду
квадратное уравнение
Код

int calculate(int a, int b, int c) {
    int d = b * b - 4 * a * c;
    d == 0 ? printf("one solution: x = %F\n", (double) - b / (2 * a)) :
    d < 0 ? printf("no solutions\n") :
        printf("two solutions: x1 = %F, x2 = %F\n",
        ((double) - b + sqrt(d)) / (2 * a),
        ((double) - b - sqrt(d)) / (2 * a));
    return 0;
}



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bsa
Дата 18.8.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Вообще-то шаблонная функция - это несколько не то, что ты написал.
1. Функция округления:
Код
#include <cmath>
float my_round(float value, unsigned dig)
{
     const float pow_10 = static_cast<float>( pow(10, dig) );
/*pow - это стандартная функция возведения в степень
   если ее нельзя использовать, то можешь воспользоваться следующим кодом вместо этой строчки:
     float pow_10 = 1;
     for(unsigned i = 0; i < dig; ++i)
          pow_10 *= 10;
*/
     return static_cast<unsigned long>( value * pow_10  + 0.5) / pow_10;
}

2. Шаблон функции подсчета среднего арифметического:
Код
template<typename T>
T measure(const T *array, unsigned count)
{
    T sum = 0;
    for(unsigned i = 0; i < count; ++i, ++array)
       sum += *array;
    return sum / count;
}

3. Шаблон функции для нахождения корней квадратного уравнения:
Код
template<typename T>
struct SquareEquationResult
{
     T val1;
     T val2;
     SquareEquationResult(const T &v1, const T &v2) : val1(v1), val2(v2) {}
};
template <typename T>
SquareEquationResult<T> calcEquation(const T &a, const T &b, const T &c)
{
    const T d = b * b - 4 * a * c; //вообще-то надо считать не 2b-4ac, как у тебя, а b^2 - 4ac
    if (d < 0)
       throw("Invalid values");
    const T sqd = static_cast<T>( sqrt( static_cast<double>(d) ) );
    return SquareEquationResult<T>( (-b + sqd) / (2*a), (-b - sqd) / (2*a) );
}

PM   Вверх
Grr
Дата 18.8.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Офигеть, я тоже хочу всё знать, что и вы))
сейчас буду разбираться, половина в алгоритмах не понятно)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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