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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 967
от 15.01.2008, 22:05

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 117762: Добрый день! Уважаемые эксперты, помогите пожалуйста составить алгоритм работы (блок-схему) программы(см. приложение)....
Вопрос № 117791: Помогите написать алгоритм к этой задачи:To calculate the circumference of a circle seems to be an easy task - provided you know its diameter. But what if you don't? You are given the cartesian coordinates of three non-collinear points in the pl...
Вопрос № 117796: Здравствуйте, Ross. В ответе на вопрос № 116.661 (про функцию проверки ввода целого числа) Вы указали следующее приложение: #include <iostream> using namespace std; void main() { int CorrectValue; if ((cin >...
Вопрос № 117810: помогите найти ответы на следушие вопросы: 1. Операционная система, определение, назначение. Типы операционных сис-тем, краткая характеристика, примеры. 2. Регистры процессора. Их назначение и использование. Адресация памяти в реальном р...
Вопрос № 117871: Уважаемые эксперты! Небольшой вопрос по коду уже выполненной программы! Задание: Зеркальное отображение байтов числа Пример вывода на экран: Enter a number (ENTER 0 TO EXIT): 3 The number in a binary system before processing: 11...
Вопрос № 117882: Уважаемые эксперты! Объясните, пожалуйста, код программы уже готовой (cм. приложение)! Заранее всем огромное спасибо всем кто чуть-чуть поможет мне разобраться с программой! Всем поставлю по 5ке!))...

Вопрос № 117.762
Добрый день! Уважаемые эксперты, помогите пожалуйста составить алгоритм работы (блок-схему) программы(см. приложение).

Приложение:

Отправлен: 10.01.2008, 12:36
Вопрос задал: Гасников Александр Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: X-men
Здравствуйте, Гасников Александр Сергеевич!
Если у Вас есть проблемы с созданием блок-схемы, вы можете воспользователься специальными программами, которые строят блок-схемы по исходному коду. Конечно, знаний они вам не дадут. Поэтому, использовать их советую крайне редко (например, когда исходный код программы слишком большой).
В приложении вы найдете одну из таких программ.

Приложение:

Ответ отправил: X-men (статус: 4-ый класс)
Ответ отправлен: 10.01.2008, 15:09
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное за столь быстрый ответ. Ссылка очень помогла.


Вопрос № 117.791
Помогите написать алгоритм к этой задачи:To calculate the circumference of a circle seems to be an easy task - provided you know its diameter. But what if you don't?
You are given the cartesian coordinates of three non-collinear points in the plane.

Your job is to calculate the circumference of the unique circle that intersects all three points.
Input Specification
The input file will contain one or more test cases. Each test case consists of one line containing six real numbers , representing the coordinates of the three points. The diameter of the circle determined by the three points will never exceed a million. Input is terminated by end of file.
Output Specification
For each test case, print one line containing one real number telling the circumference of the circle determined by the three points. The circumference is to be printed accurately rounded to two decimals. The value of is approximately 3.141592653589793.
Sample Input

0.0 -0.5 0.5 0.0 0.0 0.5
0.0 0.0 0.0 1.0 1.0 1.0
5.0 5.0 5.0 7.0 4.0 6.0
0.0 0.0 -1.0 7.0 7.0 7.0
50.0 50.0 50.0 70.0 40.0 60.0
0.0 0.0 10.0 0.0 20.0 1.0
0.0 -500000.0 500000.0 0.0 0.0 500000.0

Sample Output

3.14
4.44
6.28
31.42
62.83
632.24
3141592.65

Приложение:

Отправлен: 10.01.2008, 14:35
Вопрос задал: Предеин Денис Дмитроевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mitya86
Здравствуйте, Предеин Денис Дмитроевич!

Если имелась в виду блок-схема алгоритма, то это выглядит примерно так:

-----------------------------------------------
/ /
/ Ввод исходных данных /
/ /
-----------------------------------------------
|
|
/
-----------------------------------------------
Находим длины сторон треугольника, вписанного
в окружность
-----------------------------------------------
|
|
/
-----------------------------------------------
По формуле Герона находим площадь треуголника
-----------------------------------------------
|
|
/
-----------------------------------------------
По форумле "Радиуса описанного вокруг
треугольника окружности" находим радиус
-----------------------------------------------
|
|
/
-----------------------------------------------
Находим длину окружности по формуле
-----------------------------------------------
|
|
/
-----------------------------------------------
/ /
/ Вывод на экран результатов /
/ /
-----------------------------------------------
Ответ отправил: Mitya86 (статус: 3-ий класс)
Ответ отправлен: 10.01.2008, 14:53
Оценка за ответ: 5
Комментарий оценки:
Супер!!! cпасибо вам огромное!!!


Вопрос № 117.796
Здравствуйте, Ross.
В ответе на вопрос № 116.661 (про функцию проверки ввода целого числа) Вы указали следующее приложение:
#include <iostream>
using namespace std;

void main()
{
int CorrectValue;
if ((cin >> CorrectValue).good() && cin.get() == 10)
{
cout << "Correct!!! " << "Value is " << CorrectValue << endl;
}
else
{
cout << "Evil teacher detected! Access denied" << endl;
}
}
Решение данного вопроса меня давно интересовало, поэтому меня и заинтересовал ваш ответ. Но я так и не понял, что значит следующая операция: cin.get() == 10. Не могли бы вы её пояснить? А именно я не понял, что возвращает метод get() и для чего возвращаемое значение сравнивается с числом 10.
Отправлен: 10.01.2008, 14:51
Вопрос задал: kaifolom (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Ross
Здравствуйте, kaifolom!

cin.get() возвращает значение следующего символа из потока ввода и -1 (EOF) в случае неудачи.
При получении значения целого числа:
int val;
cin >> val;

функция operator >>(int) читает символы по одному из потока ввода и проверяет, являются ли они цифрами. Как только встречается другой символ, он возвращается в поток функцией putback, а прочитанная строка преобразуется в int.
Если пользователь вводит корректную строку:
123
то в потоке ввода будут коды символов '1', '2' и '3' и символ возврата каретки (код 10), который генерируется при нажатии на клавишу enter. Его то мы и получаем, используя cin.get().
Если же будет введено что-нибудь типа:
123abc
то после чтения первых трех символов в потоке останутся еще 'a', 'b','c' и cin.get() вернет код символа 'a', что и можно использовать для контроля.
---------
Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 10.01.2008, 19:26


Вопрос № 117.810
помогите найти ответы на следушие вопросы:

1. Операционная система, определение, назначение. Типы операционных сис-тем, краткая характеристика, примеры.
2. Регистры процессора. Их назначение и использование. Адресация памяти в реальном режиме.
3. Базовая система ввода-вывода и ее назначение. Общая схема взаимодейст-вия процессора с внешними устройствами. Прерывания BIOS и их исполь-зование.
4. Составные части операционной системы MS-DOS и их характеристика. Начальный загрузчик, расширение BIOS, модуль DOS, интерпретатор ко-манд. Этапы загрузки MS-DOS.
5. Внутренние и внешние команды операционной системы MS-DOS. Струк-тура команды. Командная строка. Примеры.
6. Файл config.sys и autoexec.bat. Назначение, команды. Пакетные файлы. Язык командного процессора.
7. Сравнительный анализ Windows и MSDOS. Этапы разработки программ-ного обеспечения.
8. Управление событиями. Сообщения. Основные сообщения.
9. Приложение Windows. Основные процедуры в простейшем приложении Windows. Регистрация класса окна. Процедура окна. Создание окна. Цикл обработки сообщений.
10. Ресурсы и их создание. Сообщение WM_COMMAND.
11. Вывод в информации в окно. Контекст устройства. Сообщение WM_PAINT.
12. Диалоговые окна и их создание. Чтение информации из основных элемен-тов диалоговых окон.
13. Адресация в защищенном режиме. Управление памятью в Windоws.
14. Динамическая компоновка. Библиотеки DLL
15. Принципы реализации многозадачности в различных операционных сис-темах. Многозадачность в операционной системе Windows 95.
16. Сообщение WV_TIMER и его использование.-
17. Процесс компиляции и компоновки.
Спаибо
Отправлен: 10.01.2008, 15:54
Вопрос задал: Предеин Денис Дмитроевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: X-men
Здравствуйте, Предеин Денис Дмитроевич!
Информация по 6ому вопросу:
http://www.kge.msu.ru/techaid/best_config.htm
http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB
http://www.oszone.net/display.php?id=2245
http://khpi-iip.mipk.kharkiv.edu/library/spo/book/i_g11.html
Команды языка командного процессора (извините за тавтологию)
http://www.coop.chuvashia.ru/kartuzov/os/Articles/05/Cmd.htm

P.S. Думаю, будет целесообразнее, если каждый эксперт найдёт ответ хотя бы на 1 вопрос из этого адского списка. А вообще, в будущем, советую пользоваться вот такими сайтами: www.ya.ru, www.rambler.ru, www.google.ru
Ответ отправил: X-men (статус: 4-ый класс)
Ответ отправлен: 10.01.2008, 17:02
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое!!!


Вопрос № 117.871
Уважаемые эксперты! Небольшой вопрос по коду уже выполненной программы! Задание: Зеркальное отображение байтов числа

Пример вывода на экран:

Enter a number (ENTER 0 TO EXIT): 3
The number in a binary system before processing: 11
The number in a binary system after processing: 11
The number after processing: 2 !!!((ДОЖНО БЫТЬ 3))
и
Enter a number (ENTER 0 TO EXIT): 13
The number in a binary system before processing: 1101
The number in a binary system after processing: 1011
The number after processing: 3 !!!((ДОЖНО БЫТЬ 11))

В чем ошибка??? должно же быть по-другому
что еще надо изменить???

P.S подскажите код этой программы только без последней операции вывода на экран числа перевертыша по байтам! без строки The number after processing:

Приложение:

Отправлен: 10.01.2008, 21:11
Вопрос задал: Sneider (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Бабин Андрей Леонидович
Здравствуйте, Sneider!
Надо строку N1=N1+remainder[i]*2; заменить на N1=N1*2+remainder[i];
Т.е. сначала промежуточный результат умножаем на 2 (сдвигаем влево на один разряд) и прибавляем к нему следующий бит
Ответ отправил: Бабин Андрей Леонидович (статус: 1-ый класс)
Ответ отправлен: 10.01.2008, 21:27
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо за ответ! Очень помогли, а то не мог не как разобраться, но в этом коде еще одна ошибка строку cout<<"\\nThe number after processing: "<


Вопрос № 117.882
Уважаемые эксперты! Объясните, пожалуйста, код программы уже готовой (cм. приложение)! Заранее всем огромное спасибо всем кто чуть-чуть поможет мне разобраться с программой! Всем поставлю по 5ке!))

Приложение:

Отправлен: 10.01.2008, 21:53
Вопрос задал: Sneider (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Maksim Trofimov
Здравствуйте, Sneider!

#include <stdio.h>
#include <stdlib.h>

void myCopyFileWithoutWord(char *pathFileInput, char *pathFileOutput, unsigned int *N)
{
char c;
unsigned int i = 1;

FILE *fileInput;
FILE *fileOutput;

// открываем файлы на ввод и вывод...
fileInput = fopen(pathFileInput, "r");
fileOutput = fopen(pathFileOutput, "w");

// читаем из файла со строками по одному символу,
// пока не настанет конец файла.
while((c = fgetc(fileInput)) != EOF)
{
// продолжаем читать из файла ввода по одному
// символу, отличному от символа конца строки, и
// опять же, пока не конец файла.
while(c != ' ' && c != EOF)
{
// если счтанный символ - пробел, то
// инкримируем счетчик слов i...
if (c == ' ')
{
i++;
fputc(' ', fileOutput);
}
else
{
// если i не соответствует номеру слова, которое
// нужно удалить, пишем его(считанный символ) в файл вывода
if (i != *N)
{
fputc(c, fileOutput);
}
}

c = fgetc(fileInput);
}
i = 1; // обнуляем счетчик (счет начинается с единицы)
fputc(' ', fileOutput); // одна строка обработана. переходим на следующую строку в файле вывода
}

fclose(fileInput);
fclose(fileOutput);
}
int main(void)
{
char *strInput;
char *strOutput;
unsigned int *WN;

// выделяем память для хранения путей к файлам ввода и вывода
strInput = (char*)calloc(20, sizeof(char));
strOutput = (char*)calloc(20, sizeof(char));

// динамически выделять память под одну переменную - где это видано :)
WN = (unsigned int*)malloc(1*sizeof(unsigned int));

// ввод значений с клавиатуры
printf("Input file path -> ");
scanf("%s", strInput);

printf("Output file path -> ");
scanf("%s", strOutput);

printf("Delete word number -> ");
scanf("%u", WN);

printf(" ");

// вызываем функцию, которая делает всю эту задачу
myCopyFileWithoutWord(strInput, strOutput, WN);

// чистим память и выходим
free(strInput);
free(strOutput);
free(WN);
return 0;
}
Ответ отправил: Maksim Trofimov (статус: 4-ый класс)
Ответ отправлен: 11.01.2008, 01:56
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо!!! Вы очень помогли разобраться с программой!!!:!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.69 от 06.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное