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

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


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 536
от 27.09.2006, 20:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 386, Экспертов: 49
В номере:Вопросов: 6, Ответов: 8


Вопрос № 56282: Уважаемые эксперты, помогите пожалуйста написать 2 элементарные программы на СИ. 1) Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c. 2) Дано число х. Напечатать в порядке возрастания числа cos(x), 1+|...
Вопрос № 56283: Уважаемые эксперты, помогите пожалуйста написать 2 несложные программы на СИ. 1) Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c. 2) Дано число х. Напечатать в порядке возрастания числа cos(x), 1+|x|,...
Вопрос № 56288: Здравствуйте уважаемые! Имеется такая весчь printf("%c%c%c%c%c%c%c%c%c%c",8,8,8,8,8,8,8,8,8,8); Нужно сделать запись более компактной - убрать повторения, чтобы получить тот же результат. И есчо - Как удалить из реестр...
Вопрос № 56295: Доброго времени суток, уважаемые эксперты. Мой вопрос в следующем: Работаю в C Builder'e 6 Функция AnsiString::WideChar(whar_t *,int) постояно выдаёт ошибку доступа к паямти... Как бы я её ни крутил... может для неё нужно знать ч...
Вопрос № 56351: Уважаемые эксперты, подскажите, каким образом в MSDOS лучше прочитать Метку диска (Volume Lebel Disk) для FAT16 и FAT32? Может есть какие-либо библиотечные ф-ции? Или ф-ции BIOS-а? Заранее Спасибо....
Вопрос № 56376: Уважаемые эксперты! Я столкнулся со следующей задаче: "Дан одномерный массив с большим количеством нулевых элементов. Заменить в нем каждую группу из подряд идущих нулей на 2 элемента: первый из них 0, а второй - количество нулей в...

Вопрос № 56.282
Уважаемые эксперты, помогите пожалуйста написать 2 элементарные программы на СИ.
1) Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c.
2) Дано число х. Напечатать в порядке возрастания числа cos(x), 1+|x|, (1+xx)(1+xx).

Заранее благодарен!
Отправлен: 21.09.2006, 22:29
Вопрос задал: Куренной С.А. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Sergey A. Wedensky
Здравствуйте, Куренной С.А.!
1)
#define _swap(x,y){int _tmp = x;x=y;y=_tmp}
double a,b,c;
printf("Введите a,b,c: ");
scanf("%lf,%lf,%lf",&a,&b,&c);
if (a<c) _swap(a,c);
if (a<b) _swap(a,b);
if (b<c) _swap(b,c);

2)
То же самое,
c = cos(x);
b = 1+fabs(x);
a = (1+x*x)*(1+x*x);
Ответ отправил: Sergey A. Wedensky (статус: 2-ой класс)
Ответ отправлен: 22.09.2006, 11:00


Вопрос № 56.283
Уважаемые эксперты, помогите пожалуйста написать 2 несложные программы на СИ.
1) Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c.
2) Дано число х. Напечатать в порядке возрастания числа cos(x), 1+|x|, (1+xx)(1+xx).

Заранее благодарен!
Отправлен: 21.09.2006, 22:30
Вопрос задал: Куренной С.А. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: GeD
Здравствуйте, Куренной С.А.!

Так как ограничений на вид кода не было, то приведу такие вот рабочие программки (в приложении), скорее всего можно было сделать лучше, но как смог. Может Вам подойдет :).

Приложение:

---------
be Linux

Ответ отправил: GeD (статус: 1-ый класс)
Ответ отправлен: 21.09.2006, 23:50


Вопрос № 56.288
Здравствуйте уважаемые!
Имеется такая весчь
printf("%c%c%c%c%c%c%c%c%c%c",8,8,8,8,8,8,8,8,8,8);
Нужно сделать запись более компактной - убрать повторения,
чтобы получить тот же результат.
И есчо - Как удалить из реестра ключ из командного файла?
Спасибо за ответы!
Отправлен: 21.09.2006, 22:59
Вопрос задал: kool (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, kool!
А еще имеется такая вещь, как грамотное изложение своих мыслей ;-)
1.
for(int i=8; i<0xA08; printf("%c", i+=0x100));
если не заработает, попробуйте так:
for(int i=0x800; i<0x80A; printf("%c", i++));
2.
reg delete
Вначале help по нему посмотрите:
cmd -> reg delete /?
---------
Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 22.09.2006, 01:40
Оценка за ответ: 2
Комментарий оценки:
Слушай умник ты сам-то набирал это
(reg delete /?) в командной строке?
Сначала набери и посмотри что получится, а потом советы давать будешь.
А по поводу первого ответа - так он тоже на
1-цу тянет - конструкция нисколько не меньше
моей, а кроме того и выполняться будет дольше.
До такого примитива любой додумается.
И вобще там какая-то чушь написана, она делает совсем не то что выдает моя команда.
Если чего сам не знаешь лучше совсем не пиши.
Вот тебе за каждый ответ по еденице.

Отвечает: Delph
Здравствуйте, kool!
Не уверен, что правильно Вас понял, но попробуйте, например, так:

for (int i = 0; i<10; i++)
printf("%c",8);

Можно, если есть желание, записать всё это в одну строку - результат не изменится. Относительно второй части вопроса помочь не могу... пока ещё.

Желаю удачи!
Ответ отправил: Delph (статус: 1-ый класс)
Ответ отправлен: 22.09.2006, 10:13
Оценка за ответ: 5
Комментарий оценки:
Спасибо за старание. Понял все правильно. Но это слишком медленно и громозко. Нужно конструкцию типа
printf("(сколько раз повторить)%c",8).


Вопрос № 56.295
Доброго времени суток, уважаемые эксперты.
Мой вопрос в следующем:
Работаю в C Builder'e 6
Функция AnsiString::WideChar(whar_t *,int)
постояно выдаёт ошибку доступа к паямти...
Как бы я её ни крутил... может для неё нужно знать что нибудь этакое...
К слову, нужна мне эта переменная для cppwebbrowser'a...
Заранее спасибо

Приложение:

Отправлен: 21.09.2006, 23:23
Вопрос задал: Uman (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Sergey A. Wedensky
Здравствуйте, Uman!
Не очень знаком с Builder'ом и его классами, но мне кажется, Вам следует самому выделить память под url:

wchar_t* url = new wchar_t[Url.WideCharBufSize()];
Url.WideChar(url,Url.WideCharBufSize());
Viewer->Navigate(url);
delete url;
Ответ отправил: Sergey A. Wedensky (статус: 2-ой класс)
Ответ отправлен: 22.09.2006, 11:04


Вопрос № 56.351
Уважаемые эксперты, подскажите, каким образом в MSDOS лучше
прочитать Метку диска (Volume Lebel Disk) для FAT16 и FAT32?
Может есть какие-либо библиотечные ф-ции? Или ф-ции BIOS-а?

Заранее Спасибо.
Отправлен: 22.09.2006, 13:36
Вопрос задал: Базылев Евгений Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: ADSota
Здравствуйте, Базылев Евгений Николаевич!

Стандартная функция DOS (IOCTL):
Вход:
AX=440dH
BX=диск (0=по умолчанию, 1=A, 2=B,...)
CL=66H
CH=08H (категория устройства - блочное)
DS:DX адрес буфера, куда занесется структура IoctlMediaIdRec
int 21h
Возврат:
если CF=CY, то произошла ошибка, иначе в буфере данные:
Смещение Размер(байт) Данные
+0 2 wInfoLevel =0
+2 4 lSerNo 32-байтный серийный номер диска
+6 0bH abVolLabel 11-байтная метка диска, имя дополняется пробелами
+11H 8 abFileSysID содержит 'FAT12 ' или 'FAT16 '
19H (25) размер структуры

---------
Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 22.09.2006, 13:57


Вопрос № 56.376
Уважаемые эксперты! Я столкнулся со следующей задаче:

"Дан одномерный массив с большим количеством нулевых элементов. Заменить в нем каждую группу
из подряд идущих нулей на 2 элемента: первый из них 0, а второй - количество нулей в данной группе."

Немогли бы Вы на примере показать и объяснить как это можно сделать.
Отправлен: 22.09.2006, 19:22
Вопрос задал: Призрак (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Призрак!
a[] - содержит входные данные, в b[] будем записывать.
Основной код в приложении. Осталось это оформить это все в цикл и кое-какие инициализации.

Приложение:

---------
Не узнаешь - не попробуешь.

Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 22.09.2006, 22:21

Отвечает: Sergey A. Wedensky
Здравствуйте, Призрак!
Не вижу проблемы...
Впрочем как и смысла таких действий - ведь если просто заменить последовательности нулей двумя числами, Вы потом никак не сможете восстаносить исходные данные - как понять, интерпретировать два числа как два числа или преобразовывать в нули?
Ответ отправил: Sergey A. Wedensky (статус: 2-ой класс)
Ответ отправлен: 25.09.2006, 10:43


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное