Rambler's Top100
Проблема в C++...

 
Начать новую тему   Ответить на тему    Список форумов forums.1580.ru -> Hard & Soft
Предыдущая тема :: Следующая тема  
Автор Сообщение
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Чт Окт 26, 2006 06:24    Заголовок сообщения: Проблема в C++... Ответить с цитатой

Не уверен, что кто-то поможет мне ее решить, но все-таки спрошу. Короче, я создал простенькую программу для закрепления знаний о пространствах имен. Я написал следующий код:
Код:
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
#include <iostream>
#include <conio.h>

namespace Dima
{
int Power (int, int);
}

Dima::Power (int NumberUser, int PowerUser)
{
int i;
long double Result = 1;
        if (PowerUser == 0)  {return (1);}
        if (PowerUser > 0)
        {
                for (i = 1; i <= PowerUser; i++)
                {
                        Result = Result * NumberUser;
                }
        return (Result);
        }
        if (PowerUser < 0)   
        {
                for (i = 1; i <= PowerUser; i++)
                {
                        Result = Result / NumberUser;
                }
        return (Result);
        }
return (Result);
}

// MAIN FUNCTION OF PROGRAM \\

int main()
{
long double Result, NumberUser, PowerUser;
        std::cout<<"Enter a number: ";
        std::cin>>NumberUser;
        std::cout<<"And now enter a power: ";
        std::cin>>PowerUser;
        if (PowerUser == 0)
        {
                std::cout<<"Myhahaha! You are fool! Any number on the 0 power is 1!";
        getch();
        return (0);
        }
        if (PowerUser == 1)
        {
                std::cout<<"You are very stupid. Look at here: "<<NumberUser<<" on the 1 power is "<<NumberUser<<". Do you understand it?";
        getch();
        return (0);
        }
        if (PowerUser == -1)
        {
                std::cout<<"It is very easy, but if you don't want to think, you can believe that it's "<<1/NumberUser;
        getch();
        return (0);
        }
        Result = Dima::Power (NumberUser, PowerUser);
        std::cout<<NumberUser<<" on the "<<PowerUser<<" power is "<<Result;
        getch();
        return (0);
}

Как видно, программа считает число в какой-то степени, и то и другое вводит пользователь. Но при отрицательной степени программа дает один результат: 1. Это потому, что функция Power типа int. Однако когда я int меняю на long double (во всех местах программы), компилятор выдает ошибку о несоответствии типов... Что не так?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Чт Окт 26, 2006 17:29    Заголовок сообщения: Ответить с цитатой

тип у NumberUser и PowerUser тоже меняешь?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Чт Окт 26, 2006 18:08    Заголовок сообщения: Ответить с цитатой

Вообще эти типы должны автоматически преобразовываться. Я пробовал и эти типы менять, но результат тот же.
Вообще, вот вариант этой программы, который по моим расчетам должен работать, к тому же именно его мне подсказали на программистском форуме. Но он тоже не работает!
Код:
#include <iostream>
#include <conio.h>

namespace Dima
{
[b]long double[/b] Power (int, int);
}

[b]long double[/b] Dima::Power (int NumberUser, int PowerUser)
{
int i;
long double Result = 1;
        if (PowerUser == 0)  {return (1);}
        if (PowerUser > 0)
        {
                for (i = 1; i <= PowerUser; i++)
                {
                        Result = Result * NumberUser;
                }
        return (Result);
        }
        if (PowerUser < 0)   
        {
                for (i = 1; i <= PowerUser; i++)
                {
                        Result = Result / NumberUser;
                }
        return (Result);
        }
return (Result);
}

// MAIN FUNCTION OF PROGRAM \\

int main()
{
long double Result, NumberUser, PowerUser;
        std::cout<<"Enter a number: ";
        std::cin>>NumberUser;
        std::cout<<"And now enter a power: ";
        std::cin>>PowerUser;
        if (PowerUser == 0)
        {
                std::cout<<"Myhahaha! You are fool! Any number on the 0 power is 1!";
        getch();
        return (0);
        }
        if (PowerUser == 1)
        {
                std::cout<<"You are very stupid. Look at here: "<<NumberUser<<" on the 1 power is "<<NumberUser<<". Do you understand it?";
        getch();
        return (0);
        }
        if (PowerUser == -1)
        {
                std::cout<<"It is very easy, but if you don't want to think, you can believe that it's "<<1/NumberUser;
        getch();
        return (0);
        }
        Result = Dima::Power (NumberUser, PowerUser);
        std::cout<<NumberUser<<" on the "<<PowerUser<<" power is "<<Result;
        getch();
        return (0);
}

Раз даже на форумах такой вариант предлагают, а он не работает, то что-то тут не так... Уже 3 дня сижу и никак не пойму, в чем дело Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Чт Окт 26, 2006 18:09    Заголовок сообщения: Ответить с цитатой

и , естественно, не включено в прогу Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Чт Окт 26, 2006 18:11    Заголовок сообщения: Ответить с цитатой

Опять не то Smile
[b] и [/b] в программу не включено - это я не знал, что в код нельзя вставлять теги Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Чт Окт 26, 2006 18:19    Заголовок сообщения: Ответить с цитатой

в какой строке пишет ошибку?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Чт Окт 26, 2006 21:18    Заголовок сообщения: Ответить с цитатой

Вот как плохо писать в нескольких форумах сразу... Я и не знал, что забыл здесь написать, что теперь программа не выдает ошибку, а ошибка появляется по ходу работы программы: при возведении в отрицательную степень (кроме -1) результат всегда равен 1! Что это может быть??? Не понимаю...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Чт Окт 26, 2006 22:12    Заголовок сообщения: Ответить с цитатой

DimaKasparyan писал(а):
Вот как плохо писать в нескольких форумах сразу... Я и не знал, что забыл здесь написать, что теперь программа не выдает ошибку, а ошибка появляется по ходу работы программы: при возведении в отрицательную степень (кроме -1) результат всегда равен 1! Что это может быть??? Не понимаю...


нда. очень странно.

вот как вариант
Код:

long double Dima::Power (int NumberUser, int PowerUser)
{
int i;
long double Result = 1;
        if (PowerUser == 0)  {return (1);}
        if (PowerUser > 0)
        {
                for (i = 1; i <= PowerUser; i++)
                {
                        Result = Result * NumberUser;
                }
        return (Result);
        }
        if (PowerUser < 0)   
        {
               
               
                        Result = 1/Dima::Power (NumberUser, -PowerUser);;
                 
        return (Result);
        }
return (Result); }


но хотелось бы понять
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Чт Окт 26, 2006 22:19    Заголовок сообщения: Ответить с цитатой

лол Laughing всё элементарно

long double Dima::Power (int NumberUser, int PowerUser)
{
int i;
long double Result = 1;
if (PowerUser == 0) {return (1);}
if (PowerUser > 0)
{
for (i = 1; i <= PowerUser; i++)
{
Result = Result * NumberUser;
}
return (Result);
}
if (PowerUser < 0)
{
for (i = 1; i <= -PowerUser; i++)
{
Result = Result / NumberUser;
}
return (Result);
}
return (Result);
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Берчун Юрий Валерьевич
Участник
Участник


Зарегистрирован: 24.09.2005
Сообщения: 142
Откуда: МГТУ РК6, 11-6-2000

СообщениеДобавлено: Пт Окт 27, 2006 10:18    Заголовок сообщения: Ответить с цитатой

Ошибка была в том, что в левой части оператора присваивания стояла переменная long double, но в правой части было выражение с целыми константами и переменными. В данном случае нужно было или явно преобразовать операнды к типу long double, или при работе с константой (1), писать (1.), т.е. явно прописывать точку, указывая компилятору, что будет производиться действие с числами с плавающей точкой.
Второй момент, на который следует обратить внимание. Код
Код:
if (PowerUser < 0)
{
for (i = 1; i <= -PowerUser; i++)
{
Result = Result / NumberUser;
}
return (Result);
нерационален, поскольку требует большого количества операций деления, которые наиболее ресурсоёмкие и вносят наибольшую погрешность (хотя для типа long double и небольших значений исходных опереандов погрешность всегда будет одинаковой).
В этом отношении код
Код:
if (PowerUser < 0)   
{
Result = 1/Dima::Power (NumberUser, -PowerUser);
return (Result);
}
гораздо более эффективен, поскольку содержит всего одно деление (желательно поставить точку после 1!), а все остальные операции -замененены умножением.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Пт Окт 27, 2006 17:46    Заголовок сообщения: Ответить с цитатой

Берчун Юрий Валерьевич писал(а):
Ошибка была в том, что в левой части оператора присваивания стояла переменная long double, но в правой части было выражение с целыми константами и переменными.

я тоже так думал, однако компилятор это "проглотил"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Пт Окт 27, 2006 18:27    Заголовок сообщения: Ответить с цитатой

Kura
Все равно не работает...
Берчун Юрий Валерьевич
Вставлять вызов функции в ее описание, насколько я знаю, нельзя, даже если компилятор позволит запустить прогу, все равно такая конструкция работать правильно не будет.

Я укоротил программу как мог, учел все советы - и вот что у меня вышло:
Код:
#include <iostream>
#include <conio>
#include <math>
#include <stdlib>
// Vision of names "Dima" \\
namespace Dima
{
long double Power (long double, long double);
}
// Function of power \\
long double Dima::Power (long double NumberUser, long double PowerUser)
{
long double i, Result = 1;
        if (PowerUser == 0)  {return (1);}
        else
        {
                for (i = 1; i <= fabsl(PowerUser); i++)
                {
                        Result = Result * NumberUser;
                }
        }
        if (PowerUser > 0) {return (Result);}
return (1/Result);
}
// Main function \\
void main()
{
long double Result, NumberUser, PowerUser;
        std::cout<<"Enter a number: ";
        std::cin>>NumberUser;
        std::cout<<"Enter a power: ";
        std::cin>>PowerUser;
        std::cout<<NumberUser<<" on the "<<PowerUser<<" power is "<<Dima::Power (NumberUser, PowerUser);
        getch();
}

Даже теперь, после уничтожения специальных продолжений программы для значений PowerUser = 1, -1 и 0, все равно степень -1 работает правильно, а вот уже -2 не работает...
Да что же такое? Как в такой простой программе может быть ошибка?!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Пт Окт 27, 2006 18:38    Заголовок сообщения: Ответить с цитатой

я оба предложенных варианта попробовал - и всё работает
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Пт Окт 27, 2006 20:10    Заголовок сообщения: Ответить с цитатой

И мой тоже работает?! Тогда я уже совсем ничего не понимаю...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Берчун Юрий Валерьевич
Участник
Участник


Зарегистрирован: 24.09.2005
Сообщения: 142
Откуда: МГТУ РК6, 11-6-2000

СообщениеДобавлено: Сб Окт 28, 2006 13:16    Заголовок сообщения: Ответить с цитатой

DimaKasparyan писал(а):
Берчун Юрий Валерьевич
Вставлять вызов функции в ее описание, насколько я знаю, нельзя, даже если компилятор позволит запустить прогу, все равно такая конструкция работать правильно не будет.

Question А по моему это просто очень хороший пример применения рекурсии - когда подпрограмма вызывает саму себя с другими парамерами. Тебе как "пингвину" Very Happy надо бы это знать!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Берчун Юрий Валерьевич
Участник
Участник


Зарегистрирован: 24.09.2005
Сообщения: 142
Откуда: МГТУ РК6, 11-6-2000

СообщениеДобавлено: Сб Окт 28, 2006 13:35    Заголовок сообщения: Ответить с цитатой

И вообще - несколько замечаний по твоему коду. Привести всё к одному типу - это, конечно, хорошо, но не надо фанатизма Very Happy. Спрашивается, зачем нужно было делать показатель степени действительным? Ведь твоя функция не умеет работать с дробными значениями и условие в цикле будет неверным. Сделав показатель степени действительным, ты сделал действительным и счётчик цикла i - это, конечно, допустимо в С/С++, но является "плохим тоном", а, например, компилятор Паскаля на тебя бы выругался.
Наконец, такой вопрос - а почему long double? Чем тебя просто double не устраивает? Long double имеет достаточно ограниченное применение даже в научных приложениях и поддерживается не всеми компиляторами, а также не имеет аппаратной поддержки (т.е., любое действие с ним влечёт за собой выполнение целого набора операций с более простыми типами данных).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Сб Окт 28, 2006 17:51    Заголовок сообщения: Ответить с цитатой

Я-то "пингвин", но не труп страуса Very Happy И такие вещи, как рекурсия и перегрузка, знаю довольно плохо...
Long double я поставил, чтобы быть уверенным, что ошибка не в типах переменных. Только что попробовал все заменить на float, и все равно не получилось...
Так почему же моя программа все-таки не работает? И самое главное: почему возводить в -1-ю степень можно, а в -2-ю уже нельзя???
P.S. Прошу прощения у Б. Страуструпа за невинную шутку Embarassed
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Сб Окт 28, 2006 18:10    Заголовок сообщения: Ответить с цитатой

DimaKasparyan писал(а):
Я-то "пингвин", но не труп страуса


и хорошо. лично я ненавижу c++ные фишки.
[quote="DimaKasparyan"]Так почему же моя программа все-таки не работает? И самое главное: почему возводить в -1-ю степень можно, а в -2-ю уже нельзя???
[quote]

приведённые МНОЙ примеры работают (у меня)

-1 степень у тебя считается без вызова функции
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Сб Окт 28, 2006 21:21    Заголовок сообщения: Ответить с цитатой

Хм... А у меня ничего из предложенного не работает... Не мог бы ты для полной ясности привести полный код хотя-бы одного варианта, который у тебя заработал?
Хотя, я подозреваю, что во всем виноват компилятор. У меня он - C++ Builder 6, и он, видимо, не полностью соответствует стандарту C++. А у тебя какой?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Берчун Юрий Валерьевич
Участник
Участник


Зарегистрирован: 24.09.2005
Сообщения: 142
Откуда: МГТУ РК6, 11-6-2000

СообщениеДобавлено: Сб Окт 28, 2006 23:41    Заголовок сообщения: Ответить с цитатой

Код:
#include <stdio.h>

namespace tst_ns
{
double Power (double , int );
}

double tst_ns::Power (double N, int P)
{
   if ( P < 0 ) return (1. / tst_ns::Power (N, -P));
   
   double R = 1.;
   for (int i=1; i<=P; i++) R *= N;
   return R;
}

int main (void )
{
   double N;
   int P;

   fprintf (stdout, "Input a number (real value)\n");
   fscanf (stdin, "%lf", &N);
   fprintf (stdout, "Input a power (integer value only)\n");
   fscanf (stdin, "%d", &P);
   fprintf (stdout, "%6.4lf ^ %d = %6.4lf\n", N, P, tst_ns::Power (N, P));
   return 0;}
Компилировалось под MS VC++ 6.0 и под gcc (специально для любителей Linux is not UNIX) Very Happy
Всё пашет просто на ура Cool
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kura
Ветеран
Ветеран


Зарегистрирован: 31.12.2004
Сообщения: 301
Откуда: иу6-13

СообщениеДобавлено: Сб Окт 28, 2006 23:58    Заголовок сообщения: Ответить с цитатой

DimaKasparyan писал(а):
Хм... А у меня ничего из предложенного не работает... Не мог бы ты для полной ясности привести полный код хотя-бы одного варианта, который у тебя заработал?
Хотя, я подозреваю, что во всем виноват компилятор. У меня он - C++ Builder 6, и он, видимо, не полностью соответствует стандарту C++. А у тебя какой?


MS VC++ 6.0

отличие в моём варианте всего 1 - это минус перед степенью в цикле
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Вс Окт 29, 2006 10:47    Заголовок сообщения: Ответить с цитатой

Огромное спасибо за примеры!!! Благодаря им я разобрался!
Надо было просто прописать в финальном cout перед вызовом функции "(long double)":
Код:
#include <iostream>
#include <conio>
#include <math>
#include <stdlib>
// Vision of names "Dima" \\
namespace Dima
{
long double Power (long double, int);
}
// Function of power \\
long double Dima::Power (long double NumberUser, int PowerUser)
{
long double i, Result = 1;
        if (PowerUser == 0)  {return (1);}
        else
        {
                for (i = 1; i <= fabsl(PowerUser); i++)
                {
                        Result = Result * NumberUser;
                }
        }
        if (PowerUser > 0) {return (Result);}
return (1/Result);
}
// Main function \\
void main()
{
long double Result, NumberUser;
int PowerUser;
        std::cout<<"Enter a number: ";
        std::cin>>NumberUser;
        std::cout<<"Enter a power: ";
        std::cin>>PowerUser;
        std::cout<<NumberUser<<" on the "<<PowerUser<<" power is "<<(long double)Dima::Power (NumberUser, PowerUser);
        getch();
}

Видимо, при простом вызове функции cout не преобразовывает integer ни к какому другому типу. Так что необходимо написать указание на преобразование типа...
Ошибка, как всегда, оказалась простейшей Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Берчун Юрий Валерьевич
Участник
Участник


Зарегистрирован: 24.09.2005
Сообщения: 142
Откуда: МГТУ РК6, 11-6-2000

СообщениеДобавлено: Вс Окт 29, 2006 11:03    Заголовок сообщения: Ответить с цитатой

DimaKasparyan писал(а):
Ошибка, как всегда, оказалась простейшей Laughing

Это лишний раз доказывает, что использование iostream приводит к появлению слабо диагностируемых ошибок, зачастую зависящих от компилятора. Когда работаешь с функциями ввода-вывода из stdio - в форматной строке чётко указываешь типы данных и резко снижаешь вероятность появления таких вот "подводных камней".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DimaKasparyan
Участник
Участник


Зарегистрирован: 26.04.2006
Сообщения: 131
Откуда: 11-дальше не скажу

СообщениеДобавлено: Пн Окт 30, 2006 07:16    Заголовок сообщения: Ответить с цитатой

Берчун Юрий Валерьевич писал(а):
Это лишний раз доказывает, что использование iostream приводит к появлению слабо диагностируемых ошибок, зачастую зависящих от компилятора. Когда работаешь с функциями ввода-вывода из stdio - в форматной строке чётко указываешь типы данных и резко снижаешь вероятность появления таких вот "подводных камней".

Зато Stdio не позволяет управлять потоками ввода-вывода, хотя, я согласен, в использовании она гораздо проще.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Берчун Юрий Валерьевич
Участник
Участник


Зарегистрирован: 24.09.2005
Сообщения: 142
Откуда: МГТУ РК6, 11-6-2000

СообщениеДобавлено: Пн Окт 30, 2006 10:16    Заголовок сообщения: Ответить с цитатой

DimaKasparyan писал(а):
Зато Stdio не позволяет управлять потоками ввода-вывода, хотя, я согласен, в использовании она гораздо проще.

Что ты имеешь в виду под словом "управлять"?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
MixRin
Ветеран
Ветеран


Зарегистрирован: 31.08.2005
Сообщения: 315
Откуда: СМ1-21

СообщениеДобавлено: Вс Dec 10, 2006 20:22    Заголовок сообщения: Ответить с цитатой

Лол вопрос, но разве 'Dima' - не класс? Точнее чем оно все отличается?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Берчун Юрий Валерьевич
Участник
Участник


Зарегистрирован: 24.09.2005
Сообщения: 142
Откуда: МГТУ РК6, 11-6-2000

СообщениеДобавлено: Пн Dec 11, 2006 10:08    Заголовок сообщения: Ответить с цитатой

MixRin писал(а):
Лол вопрос, но разве 'Dima' - не класс? Точнее чем оно все отличается?
А ты попробуй создать экземпляр такого класса Very Happy
_________________
Подчинённый перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mr_Snork
Новый
Новый


Зарегистрирован: 30.11.2006
Сообщения: 42
Откуда: ФМСОШ 1180 11-1 выпуск 1993

СообщениеДобавлено: Пн Dec 11, 2006 14:59    Заголовок сообщения: Ответить с цитатой

2 All:
Я бы еще в цикле умножения писАл бы строгое неравенство - это как-то изящнее Smile Соответственно, инициализировал бы переменную цикла нулем. И при рекурсивном вызове не писАл бы namespace.

2 MixRin:
namespace, даже если судить только по переводу сего слова, служит для логического объединения объектов компиляции (aka class, struct, function, constant etc.). Используется, в основном, для разделения пространства имен. Т.е. в каждом из имеющихся namespace у тебя может присутствовать, например, function int foo(const int), и ни у тебя ни у компилятора никогда не возникнют сомнения в том, какую функцию ты вызываешь, поскольку ты обязан указать конкретный namespace.
Что такое class я, надеюсь, ты знаешь Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
MixRin
Ветеран
Ветеран


Зарегистрирован: 31.08.2005
Сообщения: 315
Откуда: СМ1-21

СообщениеДобавлено: Вт Dec 12, 2006 17:14    Заголовок сообщения: Ответить с цитатой

TY2ALL я понял Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
FunFun
Новый
Новый


Зарегистрирован: 11.10.2009
Сообщения: 1
Откуда: Россия

СообщениеДобавлено: Чт Окт 15, 2009 12:49    Заголовок сообщения: Проблема в C Ответить с цитатой

Проблемы с видеокартой. Попробуй поставить самые свежие драйвера, не поможет - откати на какой-нить надежный релиз. Снова не помогло? Проблема с железом, а конкретнее с видеокартой при влючении в режим директ 3д, либо просто при переходе в полноэкранный.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Tippy
Новый
Новый


Зарегистрирован: 08.12.2009
Сообщения: 5

СообщениеДобавлено: Пн Dec 14, 2009 05:32    Заголовок сообщения: Проблема в C Ответить с цитатой

Только сейчас заметил после пары лет функционирования сайта что статьи неправильно сортируются. В списке статей сортировка правильная, а когда щелкаешь сами статьи вперед-назад сортировка по дате создания. Что мне делать, как мне быть?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Tippy
Новый
Новый


Зарегистрирован: 08.12.2009
Сообщения: 5

СообщениеДобавлено: Вт Dec 15, 2009 09:19    Заголовок сообщения: Проблема в C Ответить с цитатой

Странички с xml_parser_create у меня нет, даже не представляю пока где её взять для теста но я больше чем уверен что всё же придётся устанавливать этот xml-парсер. Не подскажете как его поставить может ссылку дадите или путь в портах?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Jadey
Новый
Новый


Зарегистрирован: 18.01.2010
Сообщения: 2
Откуда: Россия

СообщениеДобавлено: Вс Мар 14, 2010 23:49    Заголовок сообщения: Проблема в C Ответить с цитатой

Гонял более 12 часов ни разу не повисло. На 256Мб оперативки тормозит все. Завтра поставлю ее, если опять глюки начнутся то вполне возможно планка, если все будет нормально, то буду надеяться что проблема была в пыли, хотя ее было не много, но может просто не повезло.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
TrodiX
Новый
Новый


Зарегистрирован: 08.08.2010
Сообщения: 5
Откуда: Россия

СообщениеДобавлено: Пн Авг 09, 2010 16:12    Заголовок сообщения: Проблема в C Ответить с цитатой

Это просто проблема плеера. У меня такой стоял когда-то,оч нравился,но из-за его глюков перешел на JetAudio,а потом на Winamp.
Так что можно плеер удалить и поставить другой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов forums.1580.ru -> Hard & Soft Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001-2006 phpBB Group
© Лицей №1580, 1998-2010
Домой