Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 11008
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4001
∙ повысить рейтинг »
CradleA
Статус: Бакалавр
Рейтинг: 2050
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / C/C++

Номер выпуска:1782
Дата выхода:24.03.2013, 17:00
Администратор рассылки:Киселёва Алёна aka Verena (Академик)
Подписчиков / экспертов:89 / 67
Вопросов / ответов:3 / 9

Консультация # 42502: Здравствуйте Эксперты! В моей курсовой по информатике (Задача под Borland C 3.1) к задаче надо сделать интерфейс с помощью символов псевдографики. Я не понимаю как сделать чтобы при нажатии клавиши enter определялась координата (строки) и в зависимости от координаты выплнялась опр ф-я?И еще, Меню надо рисовать до бесконечного цикла DO ...


Консультация # 26534: Здравствуйте эксперты. Помогите мне, пожалуйста советом: я только начинаю програмировать на C++, но довольно-таки неплохо знаю PHP, ASP, JavaScript (этих знаний хватало для написания небольших интернет-магазинов). Как мне лучше будет перейти? Существует ли возможность работать в C++ с MySQL. Есть ливозможность работать с фаилами Excel? Заранее прош...
Консультация # 77185: Спаибо всем за предыдущую справку! Вопрос: Напишите подробнее про переменную типа BYTE эта переменная может хранить инфу размером в один байт или как? Допустим у меня есть целочисленный массив из разных значения типа 111010101 могу-ли я присвоить значения этого массива переменной типа BYTE и как присваивать ведь один байт это 8 бит т.е....

Консультация # 42502:

Здравствуйте Эксперты!
В моей курсовой по информатике (Задача под Borland C 3.1)
к задаче надо сделать интерфейс с помощью символов псевдографики.
Я не понимаю как сделать чтобы при нажатии клавиши enter определялась координата (строки) и в зависимости от координаты выплнялась опр ф-я?И еще, Меню надо рисовать до бесконечного цикла DO ... while (выход из этого цикла осущ при нажатии на стрелки)?

Дата отправки: 09.05.2006, 10:58
Вопрос задал: W4rmonger
Всего ответов: 1
Страница онлайн-консультации »


Консультирует RedDevil:

Здравствуйте, W4rmonger!
Не хочешь мыло давать, вот в приложении смотри. Правда кодировка изменена, придется самостоятельно тебе символы всевдографики переопределить.

Приложение:

Консультировал: RedDevil
Дата отправки: 09.05.2006, 11:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 26534:

Здравствуйте эксперты. Помогите мне, пожалуйста советом: я только начинаю програмировать на C++, но довольно-таки неплохо знаю PHP, ASP, JavaScript (этих знаний хватало для написания небольших интернет-магазинов). Как мне лучше будет перейти? Существует ли возможность работать в C++ с MySQL. Есть ливозможность работать с фаилами Excel? Заранее прошу извенить за банальные вопросы, но четких ответов на них я нигде так и не получил. :(

Дата отправки: 18.09.2005, 16:07
Вопрос задал: Rkm-s@yandex.ru
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Jadd:

Здравствуйте, Rkm-s@yandex.ru!
Задайтесь вопросом: Если такая возможность есть в скриптовых языках, то почему такой возможности нету в языках, на которых эти скриптовые языки реализованы? Есть конечно. Только JavaScript и подобные скрывают всю рутину работы с базами и экселем. C MySQL есть много способов работы (ODBC, OleDB и прочие). С экселем через OLE или COM. Так что берите книгу по С/С++ и изучайте язык. А все остальные вопросы решаются по ходу.

Консультировал: Jadd
Дата отправки: 18.09.2005, 16:19
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Alex Diesel:

Здравствуйте, Rkm-s@yandex.ru!
Возможность работать с mysql - есть, как и со многими другими базами данных, возможность работать с файлами Excel есть, как и со многими другими документами.

Ваш опыт в веб-программировании - это конечно хорошо но язык С++ значительно сложнее .... и прежде чем начать работать с БД и с "документами Excel" придется потратить достаточно много времени на то чтобы хорошо разобраться в концепциях самого языка.

Что можно посоветовать - классически начинают с начала. То есть можно было бы хотя бы познакомится с основами языка С, достаточно того что есть у Кернигана и Риччи (Кернига и Риччи - "Веедение в язык С", или просто "Язык С".) Далее консольное программирование уже на языке С++, изучение собственно ООП, ну и в финале изучение среды MS VS. Это долго но позволит хорошо узнать язык и не только механически выполнять операции а понимать шо при этом происходит.

Если такой вариант не подходит - то посмотрите лучше в сторону скриптовых языков - они позволяют быстро реализовать то что вам надо, возможно с меньшей скоростью исполнения правда.

Консультировал: Alex Diesel
Дата отправки: 18.09.2005, 16:57
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Бартунов Сергей Олегович:

Здравствуйте, Rkm-s@yandex.ru!
Да, как ни странно, можно. Весь вопрос в усилиях. Если в php, достаточно вызвать одну единственную функцию для установки соединения с mysql, то в VC++ надо отдельно подключать библиотеку и приспосабливаться к ней. Есть уже не мало таких библиотек (и для общения с БД, и для чтения/записи Excel\'ных файлов), достаточно просто погуглить.

Консультировал: Бартунов Сергей Олегович
Дата отправки: 18.09.2005, 17:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 77185:

Спаибо всем за предыдущую справку!
Вопрос:
Напишите подробнее про переменную типа BYTE эта переменная может хранить инфу размером в один байт или как?
Допустим у меня есть целочисленный массив из разных значения типа 111010101 могу-ли я присвоить значения этого массива переменной типа BYTE и как присваивать ведь один байт это 8 бит т.е. в одну переменную типа BYTE поместится 10101010 или нет?
Как в байте выставить нужные биты?
И еще одно 8-)
У меня есть переменная типа char mass[]="10010101" как мне записать эту битовую строчку в фаил и как считать её потом, или надо использовать int b=10010101? заранее спасибо/

Дата отправки: 28.02.2007, 18:17
Вопрос задал: Tatarin
Всего ответов: 5
Страница онлайн-консультации »


Консультирует Ilkras (Студент):

Здравствуйте, Tatarin!
байт это 8 бит. Иначе BYTE = unsigned char.
запись константы может быть в бинарной или десятичной форме. можно записать
unsigned char A = 11101010b; или
unsigned char A = 234;
unsigned char A = 0xEA; в шестнадцатеричной форме.

для того чтоб записать строчку в файл надо использовать обычный интерфейс типа write(), fwrite(), FileWrite() etc. Чтобы превратить строчку с числом в число можно пользоваться функциями sscanf(), atoi().

если вы хотите выставить бит N в байте в 1, то воспользуйтесь операцией
unsigned char A;
A = A|(1<<N);
если вы хотите выставить бит N в байте в 0, то воспользуйтесь операцией
A = A&(0xFE<<N);

Консультировал: Ilkras (Студент)
Дата отправки: 28.02.2007, 18:29
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Gremlin:

Здравствуйте, Tatarin!
int b=10010101 - это десятичная запись, поэтому битовое представление b будет уже другим(00000000100110001011110111110101). Точно так же обстоят дела и с char mass[]="10010101".Только битовая версия строки будет совокупностью байт, соответствцющих ASCII-кодам символов \'0\' и \'1\', которые соответственно равны десятичным цифрам 48 и 49. Если у вас есть реальная битовая строка, которая в последствии не будет меняться, то быстрее всего будет разбить эту последовательность на блоки, размерностью по 64,32,16 или 8 бит, забить эти блоки в калькулятор, перевести их в десятичное представление, и уже манипулировать в программе десятичными числами.

Размер блока - выбирайте на свое усмотрение, но ТИП, используемый для хранения соответвтвующих десятичных чисел должен соответствовать следующим отношениям:

Для 64 битных блоков, используйте целочисленный тип __int64 или LONGLONG
Для 32 битных блоков, используйте целочисленный тип DWORD или ULONG
Для 16 битных блоков, используйте целочисленный тип WORD
Для 8 битных блоков, используйте целочисленный тип BYTE

BYTE - это тот же char, только без знака, т.е. unsigned char

Метод, который я привел предыдущим сообщением как раз и выставляет заданный бит в байте.

Консультировал: Gremlin
Дата отправки: 28.02.2007, 18:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Thread:

Здравствуйте, Tatarin!
В С/С++ переменная размером в 8 бит это char. Она может принимать значения -127..127. Аналог паскалевского byte это unsigned char (т.е. беззнаковый). Заметьте, что char - это не символ, это целый тип. Что бы присвоить такой переменной значение char mass[]="10010101" нужно перевести это число в десятичное значение.

Приложение:

Консультировал: Thread
Дата отправки: 28.02.2007, 19:18
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует kool (Практикант):

Здравствуйте, Tatarin!
Да - переменная типа BYTE может содержать
инфу в один байт.
Нет не можешь. Тип int в Win32 занимает 4-ре байта.
А значения из четырех байт не поместиться в один байт, а
тем более массив!!!
Биты в байте выставляются с помощью масок и операций &, ~ и |.
Почитать можно в любом учебнике по C.
Чтобы записать строку char mass[]="10010101"
в переменную BYTE b см.приложение.
Удачи!

Приложение:

Консультировал: kool (Практикант)
Дата отправки: 28.02.2007, 20:40
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ross:

Здравствуйте, Tatarin!

Считаю своим долгом объяснить, почему предыдущие эксперты использовали тип unsigned char в качестве одного байта.
Любой тип данных в языке C имеет свою размерность:
char,bool - 1 байт
short - 2 байта
long,float,int - 4 байта
long double,double - 8 байт
Т.е. , как ты видишь, типы переменных одной и той же размерности могут хранить данные различного типа, разница лишь в том, как эти байты интерпретируются.
Теперь насчет "типа" BYTE. В одном из заголовочных файлов находится строчка:
typedef unsigned char BYTE;
Т.е. BYTE = unsigned char

Конечно, массив в один байт не поместится, но можно выставить биты в нем в соответствии с числами в массиве, например так:

BYTE b;
char m[]="10010001";

for (int i=0; i<8; i++)
{
mas[i]-=48;
b<<=1;//сдвигаем биты влево на 1
if (m[i]) b|=1; else b&=254;

}

число 1 в двоичном виде 00000001, зн. операция x|=1 установит последний бит в 1
число 254 - это 11111110, зн. x&=254 установит последний бит в 0

Консультировал: Ross
Дата отправки: 01.03.2007, 02:12
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное