Livine, на основной работе я заказчикам помогаю составлять тех. задание иногда. За такую услугу я беру от 500 рублей. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Sholar, Я могу сделать тебе на wxWidgets. С WinAPI не работаю принципиально)))
Добавлено (31.08.2011, 12:28) --------------------------------------------- Sholar, Sholar.7z Для работы прочти, как собирать wxWidgets и пользоваться wxFormBuilder - это максимально упростит тебе задачу. Статьи
-- Содержание архива Sholar.7z: - исходники - Makefile и .bat-файлы сборки/чистки проекта - исполняемый файл малого размера (запакован) - файл форм wxFormBuilder - установщик необходимых для работы программы wxWidgets-библиотек - ссылка на мой сайт Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Среда, 31 Августа 2011, 12:31
Demeron, примитивный, не примитивный, автор пробует себя в написании статей и, может, пытается помочь/выделиться. Благое дело ведь. Программа-пустышка всегда была популярна для примеров. Надо ведь знать, что необходимо по минимуму.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Среда, 31 Августа 2011, 11:43
Во избежание дальнейшего срача, своё сообщение в знак примера прячу под спойлером.
Quote (4aBo)
Мы импортировали пакет GLUT, далее пишем:
Мы подключили заголовочный файл.
Quote (4aBo)
Альфа-Прозрачность
Альфа-НЕпрозрачность
Quote (4aBo)
Делаем так, чтобы экран не исчезал
Запускаем основной цикл обработки окна
ОП, молодец - стараешься ведь.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Среда, 31 Августа 2011, 09:32
Я как-то рассматривал задачи поиска дефектов кубических и многопространственных объектов. При нахождении дефекта выход из поиска очень сложно осуществить посредством break-операторов. Без goto я мог обойтись только с трудом. goto облегчило алгоритм. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
noTformaT, ладно, я относительно недавно приехал домой, поэтому не в состоянии сильно задумываться. Можно продолжить разговор в следующий раз. Я обговорю ещё эту тему со своим руководителем. Потом сообщу результаты разборов. Спасибо за интересную беседу. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Barbatos, даже не стараюсь думать. Либо накопи ещё совсем чуток на высокий класс видеокарты, либо не траться на переходный класс. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Ну конечно не компилируется. Надо осознавать разницу между именующими и значащими выражениями: lvalue = rvalue. Иначе присвоения никак не может быть.
Добавлено (31.08.2011, 00:18) --------------------------------------------- Если не ошибаюсь, то по значащим и именующим выражениям можно почитать справочник Рей Лишнера по С++, страницы 80-90. Помню только, что до сотой :Р Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Среда, 31 Августа 2011, 00:18
Массив - это структура данных всего-лишь. Я не знаю, кто говорил, что это указатель. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Я больше обращаю внимание на кэш. Это актуально на RISC-архитектурах. Когда я себе решил поменять видео-карту однажды, то пришлось менять материнку, процессор, оперативную память ещё. Когда сам будешь менять - смотри совместимость внимательней. А то, что выбор по объёму видеопамяти идёт - это лишь преимущественно для исключения разделения памяти. Если кэш будет больше - другой разговор, т.к. в конвейер больше инструкций поместится. Вообще, нормальную видео-карту за 6 тысяч не купишь. Та же GTX280 стоит 9к-10к. С другой стороны зачем такие навороты, если можно купить среднюю конфигурацию проц+видюха+мать за 8 тысяч. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Да поймите вы. Если объявлен указатель на некий тип данных, то увеличение этого указателя на единицу изменяет адрес, хранящийся в этом указателе на размер в байтах типа указателя. Пример 1: int *a; // указатель на целое число. a+1 даст нам адрес "a" плюс 4 байта. Пример 2: char *c; // указатель на символ. c+1 даст нам адрес "c" плюс 1 байт.
Могу ещё привести пример. Допустим, что изобретём велосипед и напишем свою функцию копирования строки. Тут и массивы используются, и разыменования, и приращение адресов. Чтобы после приращения адресов нам не терять начало выделенной области памяти, мы сохраняем значение указателя в ещё одной переменной.
Добавлено (30.08.2011, 23:54) --------------------------------------------- Я уже показывал, что такое массив. Не спрашивайте меня, где он тут в коде - должно быть и так ясно.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Вторник, 30 Августа 2011, 23:53
о нет, сейчас про меня бяку скажут, я буду ныть 4 страницы темы. P.S. Я сваливаю с темы, удачи с яичком.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Про 4 я не понял о чем ты, какие 2.5? Вот именно про 2.5 не понял.
в массиве 4 элемента. Массив - это неразрывный блок памяти. Все эелменты массива в адресе хранятся друг за другом. Существует 4 элемента целого типа - 4 элемента по 4 байта. Если следовать идеологии, что перед первым элементом в памяти будет храниться размер массива, то автор вручную хочет править миром, если не следовать это идеологии, то автор несет бред. Хотя бред в любом случае. Если объявлен массив: int array[10]; то array - это указатель на область памяти, где находится целое число. Запись array+1 будет возвращать адрес следующего элемента массива. array - это указатель на целое, следовательно array+1 переводить нас будет на sizeof(int) в области памяти, т.е. на 4 байта. Так мы и получим адрес следующего элемента массива. Для примера, логическое выражение (array[1] == (array+1)[0]) вернёт истину (array[1] == *(array+1)) вернёт истину
Чем заниматься такими разборками - приведу код: http://liveworkspace.org/code/da4eee87ba019af8f42af1d86429d9a0
Code
#include <iostream>
int main() { int *a; // указатель на целое int array[5] = {0,1,2,3,4}; // массив из 5 чисел a = array;
Добавлено (30.08.2011, 18:35) --------------------------------------------- Я офф, буду к ночи - если код на вас не произвёл впечатления, я хз, как ещё объяснить. Вроде всё доказывает.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
http://gcup.ru/forum/81-17091-280354-16-1314638091 Рад, что сплетнями не занимаемся.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Ах, да - соглашусь, что массив - это не указатель.
Добавлено (30.08.2011, 18:18) --------------------------------------------- Kornival, может не так выразился... читай как "используется динамическая память". Опять же - читаем гугл, в чём различие между статической и динамической памятью. Я старался подробней описать ситуацию, когда возникает конфликт.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
noTformaT, автор сам не знает, что пишет. Честно говорю.
Code
int a[4] = { 1, 2, 3, 4 }; int *p = a; //неявное преобразование массива к указателю на его первый элемент. p = p + 2; //с массивом такое не пройдёт. p[-1] = 10; //этот указатель указывает теперь в середину массива, поэтому можно присваивать в отрицательные индексы.
комментирую по строкам: 1. Хотя бы знает, как инициализировать массив - то радует. 2. Это явное присваивание адресов во время инициализации указателя. Никаких преобразований нет. 3. http://gcup.ru/forum/62-16908-3#278994 - тут см. первую задачку. Там проходит, а у автора нет? 4. По стандарту в "-1"-ом элементе можно откопать размер массива. Автор не говорит, что int занимает 4 байта. Если структуры данных построенны в программе по стандарту (то компилятор решает, а не пользователь), то автор даёт указания смены размера. int занимает 4 байта, т.е. получается 2,5 целых чисел. Именно целых, т.к. указатель тычет на целое. Ладно, что автор не "а[-1]" так меняет, а то хз, куда бы пропали остальные 1,5 элемента массива.
Сохраню ссылку - вечером его дочитаю, на утро хорошо с улыбкой на утро ложиться баиньки.
Добавлено (30.08.2011, 18:14) --------------------------------------------- btw, два кода идентичны:
Code
int main(int argc, char *argv[])
Code
int main(int argc, char **argv)
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Вторник, 30 Августа 2011, 18:19
int array[100] - объявление массива на 100 элементов int *a - объявление указателя на целое a = array - с указателем "a" теперь можно работать как с массивом (инфа 100%) a[60] - обращение к 61-му элементу массива (получение его значения) a+60 - это адрес 61-го элемента массива в памяти
При передаче массива в функцию выгодней передавать указатель на него, либо ссылку, чтобы не прогонять через стек весь массив/не вызывать конструктор копирования/и т.п. Допустим, заголовок функции: void get_array(int *src)
Тогда передаём в функцию наш объявленный массив простым вызовом: get_array(array)
Запись вида get_array(*array) означает, что мы сначала разыменовываем указатель array, т.е. мы передадим значение по адресу (array указывает на первый элемент массива. Разыменовав, получив значение первого элемента массива). Это не передача массива явно.
Добавлено (30.08.2011, 17:50) --------------------------------------------- btw, загонять объявления в цикл с безусловных переходом недопустимо, т.к. оптимизация кода может "проглотит" недочет. Тогда все объявления будут требовать дополнительную память и располагаться по новым адресам. Т.к. цикл с безусловным переходом не имеет фактического тела цикла, а только формальное, то при "случайной" оптимизации компилятором кода будет пропущен вызов деструктора либо его вообще не будет создано до окончания фактического тела конструкции. Другими словами, будет засоряться память и может наступить переполнение.
Добавлено (30.08.2011, 17:52) --------------------------------------------- И ещё - в моём примере выше указатели "a" и "array" содержат один и тот же адрес - указывают на одну и ту же область памяти. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Вторник, 30 Августа 2011, 17:54
Я во многом с ним тоже прав, но на оскорбления переходить не нужно.
Ещё до Кафкянского начались в его сторону неприятные фразы. Сами завели его, сами расхлебывайте. Детский сад.
Я не расстроился потратить репутацию за столь замечательные анекдоты.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Strateg, удачи. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Добавлено (30.08.2011, 15:01) --------------------------------------------- Для справки почитай информацию по статической и динамической памяти и их различие.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.