SkyRiver Forum http://skyriver.ru/forum/ |
|
Программирование. С++. Обмен опытом. http://skyriver.ru/forum/viewtopic.php?f=3&t=3316 |
Страница 1 из 9 |
Автор: | Shaman [ Вс 16 мар 2008 1:05 ] |
Заголовок сообщения: | Программирование. С++. Обмен опытом. |
Может, ув. администрация и скажет, что сей форум не аккультное место программизма, но я всё же попрошу не гневаться и дать этой весьма полезной теме существовать, поскольку среди нас, я уверен, найдётся много людей, кому этот топик будет полезен, а также тех, кто не пожмотился бы поделиться своим опытом. ![]() Итак, я предлагаю устроить в этом топике что-то вроде "F.A.Q." по программированию на языке С++. Только такое сразу предупреждение: за подкалывание над новичками, задающими наивные вопросы - сразу плюху или даже РО, ибо нечего смеяться над людьми только потому, что они не знают того, что знаешь ты, даже если тебе и удалось когда-то освоить всё быстро и самому. ![]() Добавлено спустя 1 минуту 33 секунды: ======================================================== NoVuS писал(а): Я сейчас попробовал на С++ кнопку создать, но непомню как там задавать команды и какие они там есть.
Перечислю и объясню те настройки кнопки, которые я знаю и юзаю: 1) "Anchors" ("Якоря"): для фиксации положения кнопки на форме. Там можно выбрать четыре "якоря", которые будут зацеплены за выбранные края формы. Т.е. если изменять размеры формы, то размеры и положение кнопки тоже будет меняться. Выбирать тот или иной якорь можно, выставив ему значение "true". К примеру, если сделать "akRight true", то правый (Right) край кнопки будет привязан к правому краю формы, т.е. это расстояние будет неизменным при изменении размеров формы. Допустим, если выбраны и "akLeft", и "akRight", то кнопка будет держаться за оба края формы, так что при растяжении формы, кнопка также будет растягиваться. 2) "Caption" - текст, который будет отображаться на кнопке. 3) "Cursor" - тут можно выбрать, какой вид курсора будет при наведении на данную кнопку. 4) "Enabled" ("Доступна") - очень важная опция. Если значение true, значит, кнопка доступна, т.е. её можно тыкать. Если же значение false, то кнопка будет серая и не будет работать. 5) "Font" ("Шрифт") - настройки шрифта (такие как: размер, название шрифта, стиль и т.д.), которым будет напечатана надпись на кнопке. Если тыкнуть на поле значений, там появится кнопка "...". Если тыкнуть её - вылезет окошко со всеми настройками шрифта. 6) "Height" ("Высота") - высота кнопки в пикселях. 7) "Hint" ("Подсказка") - то, что будет вылазить через некоторое время, если курсор юзера будет тупо торчать на кнопке. Можно ввести сюда коротенький текст, если хочется помочь юзеру втыкнуть, что к чему. ![]() 8) "Left" - сколько пикселей будет от левого края формы до кнопки. Под координатами любого объекта на форме считаются координаты левого верхнего угла этого объекта. 9) "Name" ("Имя") - уникальное название объекта. Если в "Caption" вводится то, что будет просто отображено на кнопке, то тут нужно ввести имя кнопки, т.е. как бы её "идентификатор". Тут уже строго: только английские буквы принимаются! 10) "ShowHint" ("Показывать подсказку") - если нужно, чтобы подсказка вылазила при наведении курсора на кнопку, нужно включить эту опцию (т.е. в поле значения выбрать "true"). Но если текст подсказки не введён, вылазить будет пустая рамка без текста. Так что без толку не нужно врубать, а только если в графе "Hint" (выше описано) имеется сам текст подсказки. ![]() 11) "Top" - сколько пикселей будет от верхнего края формы до кнопки. Т.е. также, как и опция "Left", определяет положение кнопки на форме. 12) "Visible" ("Видимая") - если отключить эту опцию, то кнопка не будет вообще отображаться на форме. Т.е. при программировании, конечно, она видна будет, но вот после ритуала Священной Компилляции, когда программа запустится, кнопка исчезнет. ![]() 13) "Width" ("Ширина") - ширина кнопки в пикселях. Также, как и "Height", определяет размер кнопки, только тут - по горизонтали. Ну, я не все опции описал, конечно, а лишь те, что пока активно юзал сам и предназначение которых хорошо понимаю. Во всяком случае, этого набора мне вполне хватает. В принципе, если поставить курсор на поле значений любой опции и нажать кнопку F1 (функциональная кнопка подсказок), то будет показан полный мануал по этой опции. ![]() ![]() Так что если с английским всё нормально, либо не лень в словаре покопаться, то можно пользоваться мануалом. ![]() ======================================================== Добавлено спустя 5 часов 28 минут 41 секунду: Такой вопрос: почему числа типа float "глючат" и как с этим бороться? ![]() ![]() ![]() З.Ы.: это распространённое явление, или только у меня такая байда с float'ами? ![]() |
Автор: | Razum [ Вс 16 мар 2008 1:12 ] |
Заголовок сообщения: | |
С этим нельзя бороться. Ты можешь использовать тип Double, чтоб повысить точность, но он в целом имеет тот же недостаток. Числа извращаются по той причине, что они переводятся в машинное двоичное представление, и десятичная конечная дробь, переведенная в двоичную, может оказаться бесконечной периодической. Из-за этого и появляются "левые" знаки после запятой. Механизм этот где-то на просторах инета описан, если хочешь, можешь сам найти. Добавлено спустя 2 минуты 11 секунд: Если ты хочешь заделать неизвращающиеся числа с любым количеством знаком после запятой, тебе придется создавать новый тип данных, и самому реализовывать работу с ним. |
Автор: | Shaman [ Вс 16 мар 2008 1:23 ] |
Заголовок сообщения: | |
Razum писал(а): Если ты хочешь заделать неизвращающиеся числа с любым количеством знаком после запятой, тебе придется создавать новый тип данных, и самому реализовывать работу с ним. long int обворотить опухолями? ![]() ![]() Добавлено спустя 1 минуту 8 секунд: Кстати, а как в Виндусовском калькуляторе, ты не слышал случаем? ![]() |
Автор: | Razum [ Вс 16 мар 2008 1:28 ] |
Заголовок сообщения: | |
Шаман писал(а): Кстати, а как в Виндусовском калькуляторе, ты не слышал случаем?
Без понятия. Но мы на праке делали мего-калькулятор. Мы реализовывали его при помощи списков. Самый примитивный способ - отвести один байт под каждую цифру числа, и заделать список из таких байтов. |
Автор: | Shaman [ Вс 16 мар 2008 1:30 ] |
Заголовок сообщения: | |
Razum писал(а): Самый примитивный способ - отвести один байт под каждую цифру числа, и заделать список из таких байтов. А как при мат-операциях? Разве эта мега-байда не конвертаеццо при этом в обычный двоичный формат? ![]() |
Автор: | Razum [ Вс 16 мар 2008 1:32 ] |
Заголовок сообщения: | |
Шаман писал(а): А как при мат-операциях? Разве эта мега-байда не конвертаеццо при этом в обычный двоичный формат?
Ты не просек, походу. Ты сам сделаешь свой тип, и какие операции ты для него определишь, такие и будут. А цифры, конечно, хранятся в двоичном виде, они по-другому не могут, но они хранятся как целые, и поэтому их не коцает. |
Автор: | Shaman [ Вс 16 мар 2008 1:37 ] |
Заголовок сообщения: | |
2 Razum: лана, буду чё-нить мудрить. ![]() |
Автор: | Razum [ Вс 16 мар 2008 1:40 ] |
Заголовок сообщения: | |
2 Шаман А зачем тебе изобретать велосипед? По-моему, виндового калькулятора хватит на все случаи жизни. |
Автор: | Shaman [ Вс 16 мар 2008 12:39 ] |
Заголовок сообщения: | |
Razum писал(а): А зачем тебе изобретать велосипед? По-моему, виндового калькулятора хватит на все случаи жизни. Если сравнивать его с моим обычным, физическим, то Виндусовский просто бесполезен. ![]() |
Автор: | Alisher [ Вс 16 мар 2008 15:39 ] |
Заголовок сообщения: | |
Шаман писал(а): то Виндусовский просто бесполезен. Переключи его в инженерный режим, и можешь не изобретать калькулятор заново. ![]() У нас в институте преподавали Турбо-Си, а Си++ только чуть-чуть захватил, и за давностью лет (около 15 лет назад) уже почти не помню. ![]() |
Автор: | Shaman [ Вс 16 мар 2008 15:42 ] |
Заголовок сообщения: | |
Alisher писал(а): Переключи его в инженерный режим, и можешь не изобретать калькулятор заново. В таком режиме даже корня нет! ![]() |
Автор: | Razum [ Вс 16 мар 2008 15:47 ] |
Заголовок сообщения: | |
Ну не знаю, чем те виндовый калькуль плох. Он только не программируемый, а все остальное у него очень даже на уровне. И корень там есть, причем любой степени. |
Автор: | Alisher [ Вс 16 мар 2008 15:56 ] |
Заголовок сообщения: | |
Шаман писал(а): В таком режиме даже корня нет!
скромный офтоп на тему калькулятора. Специально для программистов на С++. ![]() Нажимаешь "8", ставишь галочку "Inv", жмешь кнопку "x^y", "3", "=". Получаешь 2. Корень 3-й степени из 8. Можно кончно иногда и напрямую "x^y" использовать - возводить в степень 1/y, но так наглядней. |
Автор: | Shaman [ Вс 16 мар 2008 21:59 ] |
Заголовок сообщения: | |
Лана, всё, забыли. ![]() ![]() Добавлено спустя 5 часов 3 секунды: Кое-что интересное заметил: в библиотеке Math функции ArcSin и ArcCos перепутаны, т.е. ArcSin возвращает в действительности арккосинус, а функция ArcCos - арксинус. ![]() ![]() |
Автор: | Shaman [ Чт 20 мар 2008 18:18 ] |
Заголовок сообщения: | |
Такся, почти сотворил свой божественный калькуль. ![]() ![]() Мне хочется сделать так, чтобы при нажатии спец-кнопочки содержимое дисплея калькулятора (оно в текстовом формате) копировалось в буфер обмена, чтобы можно было потом вставить это дело в, к примеру, текстовый документ или ещё куда-нить - куда юзер пожелает. Так такой вопрос: как, при помощи какой функции я могу осуществить копирование текста в стандартный Виндусовский буфер обмена? ![]() ![]() |
Автор: | Shaman [ Пт 21 мар 2008 21:41 ] |
Заголовок сообщения: | |
Поскольку помочь со способом копирования текста в буфер обмена мне никто не счёл нужным ( ![]() ![]() Удобный калькулятор (333 kB). Может, кто-нить всё-таки поможет с реализацией копирования текста в буфер обмена? ![]() Добавлено спустя 2 минуты 4 секунды: З.Ы.: чтобы скачать с этого хостинга, просто подождите 30 сек. |
Автор: | Alisher [ Пт 21 мар 2008 22:18 ] |
Заголовок сообщения: | |
2 Шаман Это не по нашей злобе или безразличию, а токмо по нашему незнанию ![]() |
Автор: | Vivicector [ Пт 21 мар 2008 23:05 ] |
Заголовок сообщения: | |
2 Шаман Пожалуйста, выкладывай файлы на www.filefront.com От туда гораздо приятней грузить и ждать не надо ![]() |
Автор: | Shaman [ Сб 22 мар 2008 10:32 ] |
Заголовок сообщения: | |
Alisher писал(а): Это не по нашей злобе или безразличию, а токмо по нашему незнанию А, ну звиняйте... ![]() Vivicector писал(а): Пожалуйста, выкладывай файлы на www.filefront.com Вот на этот сайт - никогда в жизни!!! ![]() Может, какой-нить ХОРОШИЙ хостинг подскажете? ![]() З.Ы.: а где я могу задавать программистские вопросы? Можете какой-нить форум соответствующий подсказать? ![]() |
Автор: | Славон [ Сб 22 мар 2008 14:24 ] |
Заголовок сообщения: | |
Выкинь свой антивирус. |
Автор: | Серж [ Сб 22 мар 2008 15:39 ] |
Заголовок сообщения: | |
[/quote]Может, какой-нить ХОРОШИЙ хостинг подскажете? ![]() З.Ы.: а где я могу задавать программистские вопросы? Можете какой-нить форум соответствующий подсказать?[/quote] 1. www.mediafire.com (до 100 м/файл); www.yandex.ru (до 500 м/файл); www.zshare.com 2. www.forum.ru-board.com |
Автор: | Krogoth [ Сб 22 мар 2008 16:46 ] |
Заголовок сообщения: | |
2 Шаман Это самый лучший хостинг. Никаких вирусов на нем нет. Калькулятор, имхо, недостаточно эргономичен. Расположение кнопок, как и у стандартного калькулятора Windows, неудобное. Не реализована возможность выполнения нескольких действий, ну или, хотя бы, вывод результата при нажатии подряд следующего действия. В общем, можно много еще чего доработать. ![]() |
Автор: | Shaman [ Сб 22 мар 2008 16:55 ] |
Заголовок сообщения: | |
Krogoth писал(а): Не реализована возможность выполнения нескольких действий, ну или, хотя бы, вывод результата при нажатии подряд следующего действия. Не понял, что ты имел в виду. ![]() ![]() Добавлено спустя 2 минуты 12 секунд: 2 Серж: большое спасибо за наводку. ![]() |
Автор: | Krogoth [ Сб 22 мар 2008 17:07 ] |
Заголовок сообщения: | |
Шаман писал(а): Не понял, что ты имел в виду. Разжуй, пожалуйста. Нажал кнопку "2". Повторил операцию. Результат не суммируется, действия игнорируются до нажатия "=".
После осуществления действия при вводе цифр они добавляются к уже полученному числу, в чем необходимости, имхо, нет. Должно вводится число для следующей операции. |
Автор: | Shaman [ Сб 22 мар 2008 19:30 ] |
Заголовок сообщения: | |
2 Krogoth: а, кажысь внял. Спасибо за заметку, будет исправлено. ![]() Я ж как раз и вывесил свой калькуль для тестанья. Это не последний релиз. Помогите ловить баги, кому не в лом, пожалуйста. ![]() Добавлено спустя 1 час 54 минуты 48 секунд: Поправил проблему, описанную Крогтем. ![]() Калькулятор (331 kB) З.Ы.: зафигачил уже на Ваш чертов файлфронт, хотя лично мне просто омерзительно, когда на каждое действие откликается куча бульканий антивируса. ![]() ![]() ![]() ![]() ![]() |
Автор: | Krogoth [ Сб 22 мар 2008 19:38 ] |
Заголовок сообщения: | |
Еще недочет: мы ввели число, прибавили к нему число и нажимаем на умножение. Потом еще раз. А потом еще раз. Возводит в квадрат! ![]() Или вот еще: вводим число, умножаем его на другое число и нажимаем на сумму. Потом еще раз. И еще. Умножает на 2. ![]() |
Автор: | Shaman [ Сб 22 мар 2008 21:37 ] |
Заголовок сообщения: | |
2 Krogoth: большое спасибо, ты - классный тестер! ![]() Калькулятор (333 кБ) Прошу тестать дальше. ![]() Krogoth писал(а): Калькулятор, имхо, недостаточно эргономичен. Не мог бы ты дать какие-нить пожелания относительно улучшения эгро... эрго... ну как там... ![]() ![]() ![]() |
Автор: | Серж [ Сб 22 мар 2008 22:26 ] |
Заголовок сообщения: | |
Замумукали темой куркулятора - вот, кому треба (и с логарифмами и с интегралами ;-))) [p/w Серж] http://www.mediafire.com/?dezof1vx1m3 |
Автор: | Shaman [ Вс 23 мар 2008 1:23 ] |
Заголовок сообщения: | |
2 Серж: блин, я, модемщик, полтора часа качал эти безумные почти-2-метра - а там пароль на архиве!!! ![]() ![]() |
Автор: | Серж [ Вс 23 мар 2008 1:32 ] |
Заголовок сообщения: | |
Потрудися: 1. 2 мб. и на моПеДе не проблема... (типа хорош гнать, знаем, плавали...!!!) 2. А мой пост по-внимательнее позырить? = [p/w Серж] !!! (как видиЦЦа, в русской раскладке!) ![]() 3. Так, типа совет... пользуй ДаунлоадМастер (он бесплатный, качацца будет в 5-15 раз /в твоем случае/ быстрее... Плюс они /и Даун и Медиафайр/ поддерживают докачку, если вдруг "Масяня" случится ;-)))))) http://www.westbyte.com/dm/index.phtml? ... ng=Russian ЗЫ:<Что бы такое нашаманить сегодня?.. > Нашамань выделенку ![]() |
Страница 1 из 9 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |