Вопрос № 57501: Помогите, пожалуйста! Задан ряд, который складывается из символов. Символы объединяются в слова. Слова отделяются одним или несколькими пробелами. В конце текста ставится точка. Напечатать все слова, что не помещают гласных букв.
..Вопрос № 57502: Помогите, пожалуйста, мне в написании такой программы: шахматное поле определяется парой символов, как в шахматной нотации – e 4, h 8. пользователь вводит две такие пары символов, определить имеют ли поля один цвет....Вопрос № 57581: Доброе время суток!
Обращаюсь к Вам с такой просьбой
может у Вас есть исходники файлового менеджера на Си или Вы знаете где ето можно найти и почитать
спасибо...Вопрос № 57608: Установил себе С++ билдер. Начал учиться в нем писать. Написал прогу. Компилирую - без ошибок. Начинаю билдить вылетает мне такая вот фигня: - [Linker Fatal Error] Fatal: Expected a file name:
Что делать не знаю (только могу догадоваться,что где...Вопрос № 57611: Добрый день.
Как в СОМ-библиотеке описать функцию, что бы она возвращала массив значений (например, строковых). Тонкости создания СОМ можно опустить....
Вопрос № 57.501
Помогите, пожалуйста! Задан ряд, который складывается из символов. Символы объединяются в слова. Слова отделяются одним или несколькими пробелами. В конце текста ставится точка. Напечатать все слова, что не помещают гласных букв.
Отправлен: 03.10.2006, 02:18
Вопрос задал: Petrov (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: ADSota
Здравствуйте, Petrov!
Так-как все предложение в памяти - то все делается с помощью ссылок:
Используемая функция Soglasn возвращает 0 - если буква гласная и 1 - если нет...
void ExPrintWords(char*s)
{
int q=1;
for(char*e=s;*e-'.';e++)
{
if(!((*e)-32))
{
if((e-s)&&q)printf("
%.*s",e-s,s);//печать слова
s=e+(q=1);
}
else q*=soglasn(*e);//проверяемяем наличие гласных
}
if((e-s)&&q)printf("
%.*s",e-s,s);//печать последнего слова перед точкой (если оно без гласных конечно)
}
--------- Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 05.10.2006, 11:50
Вопрос № 57.502
Помогите, пожалуйста, мне в написании такой программы: шахматное поле определяется парой символов, как в шахматной нотации – e 4, h 8. пользователь вводит две такие пары символов, определить имеют ли поля один цвет.
Отправлен: 03.10.2006, 02:30
Вопрос задал: Сидоров (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: ADSota
Здравствуйте, Сидоров!
Вопрос скорее из математики:
1. Переводишь буквы в цифры: А=1, В=2,...
2. Если сумма буквы и цифры нечетная - то данная клетка - белая, если четная, то наоборот...
3. Так вот и находишь коды четности клеток (для каждой клетки): Если клетка черная, то код=0, иначе код=1
4. находишь сумму кодов: если она четная - то цвета клеток одинаковы...
На Си будет так:
int N1='e',C1='4',N2='h',C2='8';//координаты клеток
int cod1=(N1+C1-'a'-'0'+1)&1,cod2=(N2+C2-'a'-'0'+1)&1;//коды клеток
printf("
Цвета полей %s.",((cod1+cod2)&1)?"разные":"одинаковые");
или короче:
int N1='e',C1='4',N2='h',C2='8';//координаты клеток
printf("
Цвета полей %s.",((N1+C1+N2+C2-'a'-'0'+1-'a'-'0'+1)&1)?"разные":"одинаковые");
--------- Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 03.10.2006, 09:31
Отвечает: dentist
Здравствуйте, Сидоров!
можно проверить на чётность.
прошу пощения, но я не помню как выглядит доска (стыдно, знаю).
но допустим, что А1 чёрная. тогда в каждом чётном ряду, чётная строка чёрная, и наобарот, в каждом нечётном ряду каждая чётная строка белая =)
представим, что пользователь вводит букву ряда (в верхнем регисттре), тогда для удобства переведём её в число ;) кстати в этом случае, чётность разницы номера строки и ряда будет говорить нам о цвете ;)
char row1, row2, str1, str2; // ну или как Вам будет удобнее ;)
// чё то там делаем с ними, задаём значения итд.
// переводим нумерацию рядов доски из буквенной в числовую ;)
row1 = row1 - 64;
row2 = row2 - 64;
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 4-ый класс)
Ответ отправлен: 03.10.2006, 09:49
Вопрос № 57.581
Доброе время суток!
Обращаюсь к Вам с такой просьбой
может у Вас есть исходники файлового менеджера на Си или Вы знаете где ето можно найти и почитать
спасибо
Отправлен: 03.10.2006, 15:58
Вопрос задал: sexy (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: dentist
Здравствуйте, sexy!
ну, найти и почитать можно в гугле а исходники скачать тут:
http://prdownloads.sourceforge.net/winscp/winscp382source.zip?download
правда не совсем уверен, что это то что нужно...
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 4-ый класс)
Ответ отправлен: 03.10.2006, 16:20
Вопрос № 57.608
Установил себе С++ билдер. Начал учиться в нем писать. Написал прогу. Компилирую - без ошибок. Начинаю билдить вылетает мне такая вот фигня: - [Linker Fatal Error] Fatal: Expected a file name:
Что делать не знаю (только могу догадоваться,что где-то надо что-то прописать, а что и где).
Помогите люди !!!!!!
Приложение:
Отправлен: 03.10.2006, 19:33
Вопрос задал: Djway (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: GTX
Здравствуйте, Djway!
[Неисправимая Ошибка Компоновщика] Фатальная: Ожидание имени файла: это перевод вашей ошибки
вообще Культин описывает многие ошибки прочитайте внимательнее.
Ответ отправил: GTX (статус: 1-ый класс)
Ответ отправлен: 04.10.2006, 19:19
Вопрос № 57.611
Добрый день.
Как в СОМ-библиотеке описать функцию, что бы она возвращала массив значений (например, строковых). Тонкости создания СОМ можно опустить.
Отправлен: 03.10.2006, 19:43
Вопрос задал: Vaga (статус: 3-ий класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Sergey A. Wedensky
Здравствуйте, Vaga!
Методы COM-объектов обычно возвращают HRESULT, но для OUT-параметра Вы можете использовать SAFEARRAY.
Для создания массива используется SafeArrayCreateVector:
/* Если строки, в противном случае замените VT_BSTR
на нужный тип элементов массива */
poutArray->vt = VT_ARRAY|VT_BSTR;
int length = 10; // Количество элементов
poutArray->parray = SafeArrayCreateVector(VT_BSTR, 0, length);
Если нужно создать многомерный массив - см. SafeArrayCreate.
Для доступа к данным - SafeArrayGetElement / SafeArraySetElement.
Или, что является более быстрым, блокирование массива, запись элементов, затем разблокирование: