Доброе время суток, Alex! А что считает х^3, вместо x^n ? Только вот зачем x глобальная... Потом unsigned short не маловато ли ? Для 2^2 работать будет, а для 100^3 не будет уже. В общем программа так то работает, а вот в чем глючит остается догадываться... Ответ отправлен: 20.10.2004, 17:58 Отправитель: DiGiT Отвечает DSota
Приветствую Вас, Alex! Не знаю, конечно, на каком Си ты ее компилируешь :))... Мне показалось, что ты ее списал из книги, и при этом пропустил некоторые символы... Программа полностью рабочая (после нескольких мелких исправлений внешнего вида)...
Приложение: Ответ отправлен: 20.10.2004, 17:25 Отправитель: DSota Отвечает Василевский Александр
Приветствую Вас, Alex! Обратите внимание на условие в операторе if (recur): if ( x = 3 ) Вы не сравниваете, а присвиваете значение переменной X. Исправьте на: if ( x == 3 ) А вообще, на всякий случай, добавьте защиту от некорректных данных в функции recur ( n<0 ). Иначе Ваш цикл никогда не закончится. Ответ отправлен: 20.10.2004, 15:54 Отправитель: Василевский Александр Отвечает bocha
Доброе время суток, Alex! к предыдущим ответам могу добавить, если уж у Вас возникла проблема с оператором сравнения, заведите привычку писать if(1 == n)//так не ошибетесь Ответ отправлен: 21.10.2004, 07:40 Отправитель: bocha
Вопрос № 1978
Здравствуйте уважаемые эксперты. Скажите пожалуйста, как делаются инсталляторы, состоящие всего из одного файла (например setup.exe), а при установке создающие (или распаковывающие ?) несколько файлов?
Добрый день, Technic! Насколько я помню, из одного файла состоит программы-архивы. Такие можно создать, использую WinRAR или WinZIP. Для этого необходимо указать, что создаётся SFX-архив. В результате будет создан один EXE-файл, который призапуске попросит ввести каталог и распакует туда всё содержимое. Можно также указать имя запускаемого файла. Ответ отправлен: 21.10.2004, 09:01 Отправитель: Василевский Александр Отвечает --- Нет данных ---
Приветствую Вас, Technic! WinRar Sfx. Ваще шоколадная вещь, особенно после версий 3.20 Ответ отправлен: 23.10.2004, 12:53 Отправитель: --- Нет данных --- Отвечает Gibbel
Здравствуйте, Technic! Такие программы установки состоят из двух частей: 1. Установщик - обычный .exe файл, в задачи которого входит прочитать из второй части файла данные и распаковать их. 2. Архив - сами устанавливаемые файлы, сжатые каким-либо архиватором, или просто записанные последовательно в файл в том формате, в котором их принимает установщик. Эти две части создаются по отдельности, после чего склеиваются в один файл. Процесс чтения данных установщиком выглядит следующим образом (здесь приведены функции WinAPI, если вы пишете под другую систему, то необходимо использовать соответствующие функции вашей системы). 1. вызываем GetModuleFileName с первым параметром = NULL, в результате чего получаем имя и путь текущего файла (например, setup.exe). 2. Открываем этот файл на чтение функцией CreateFile с соответствующими параметрами. 3. Перемещаем
указатель файла на начало данных (при этом предпологается, что длинну установщика
мы знаем, либо мы ее вычисляем каким-либо образом). Функция SetFilePointer. 4. Читаем данные из файла функцией ReadFile и выполняем с ними все необходимые действия. 5. Закрываем файл (CloseHandle). Ответ отправлен: 21.10.2004, 10:08 Отправитель: Gibbel Отвечает DSota
Приветствую Вас, Technic! Делаются специальной программой для создания инсталляторов, например: InstallShield Express, и др. При их отсутствии и большом желании можно просто написать скрипт для WINRar или WinZip. Написав скрипт - типа создать временный каталог, распаковать из себя нужные файлы, запустить один из них на выполнение, удалить этот каталог...
Ответ отправлен: 21.10.2004, 09:43 Отправитель: DSota
Вопрос № 1979
Здравстуйте эксперты. Как на диалоге отобразить полноцветную картинку например jpg? Visual C++
Здравствуйте! Пишу программы как учат в учебниках.Но тут наткнулась на программу,которая отличалсь. Например: Надо ли после определения функции, а именно после закрытия фигурной скобки ставить точку с запятой? Точка с запятой ставится только после определения класса!(Так учили) А тут после определения каждой функции стоит точка с запятой! Почему? А еще когда полем класса является не обычная переменная а указатель (в моем случае указатель на указатель(матрица) или просто указатель ) то там тоже осбые методы нужны? А еще хотела бы спросить чем отличается например Visual C++,Borland C++ и Builder C++? Тем что каждый из них предназначен под свою ОС? или тем что например в VisualC++ есть свои библиотеки и классы типа STL,MFC?
Приветствую Вас, pinky! 1. Точку с запятой можно ставить везде... Нельзя ее ставить толко посередине команд. Ее просто можно упускать после закрывающей фигурной скобки, так как она там подразумеваеться по умолчанию.. 2. Особых методов не нужно, можно работать, как с обычным указателем... 3. Visual C++ и Builder C++ отличаются библиотеками... В Borland C++ труднее писать под виндовс, для этого ее переделали в Builder C++. А вообще она мало, чем отличаються, в синтаксисе языка. Отличаються только средой разработки - а она тоже почти одинакова... Выделяется только Borland C++ как найболее старый... Ответ отправлен: 21.10.2004, 09:55 Отправитель: DSota Отвечает Василевский Александр
Приветствую Вас, pinky! Ответ на первый вопрос: точку с запятой после определений функций ставить необязательно. Как ни странно, компилятору всё равно, стоит точка с запятой или нет (сам удивлён). На второй вопрос: никаких специальных определений для указателей нет: int* ptr; // обычный указатель class cl { int* ptr; // указатель в классе }; Ответ на третий вопрос: Borland C++ в основном работал под DOS. Borland C++ Builder изначально предназначался для работы под Windows, как и Visual C++. На данный момент, Borland C++ перерос в Borland C++ Builder и выпускаться прекратил (последняя мне известная версия Borland C++ - 5.0). Все компиляторы, кроме стандартных библиотек и STL, содержат дополнительные собственные библиотеки (MS VC++ - MFC и ATL, BC++ Builder - VCL). А вообще, выбор компилятора - дело вкуса. Изначально я использовал
Borland C++, но потом перешёл на Visual C++ (т.к. моя версия Borland C++ жутко
глючила).
Ответ отправлен: 21.10.2004, 09:35 Отправитель: Василевский Александр Отвечает vitya
Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, как сделать так, чтобы при копировании файла показывалось такое же окошко с прогрессбаром, какое показывается, когда копируются файлы в Windows. Среда - С++Builder 5 Извините, если вопрос глупый. Заранее благодарен всем ответившим.
Добрый день, Alexandr! Не знаю как в Builder, но в VisualC для этого использую функцию int SHFileOperation(LPSHFILEOPSTRUCT lpFileOp); Ответ отправлен: 21.10.2004, 12:02 Отправитель: Olga Отвечает vitya
Добрый день, Alexandr! CopyFileEx Ответ отправлен: 22.10.2004, 14:27 Отправитель: vitya
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.