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

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


Информационный Канал Subscribe.Ru

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

Выпуск № 618
от 30.10.2004, 19:20

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1995
Отправлено ответов: 3813
Активность: 191.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Василевский Александр
Статус: Опытный
Общий рейтинг: 116.7
[Подробней >>]
Morgion
Статус: Опытный
Общий рейтинг: 105.82
[Подробней >>]
bocha
Статус: Профессиональный
Общий рейтинг: 120.75
[Подробней >>]
 
vitya
Статус: Профессиональный
Общий рейтинг: 109.8
[Подробней >>]
DiGiT
Статус: Доверительный
Общий рейтинг: 117.91
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1990. Здравствуйте. У меня такой вопрос: я только начинаю изучать С и соответственно только-только скачал себе компилятор. Но ест ьпроблема - при написании стандартной Hello World! компилятор ругается: Error E2046 hello.c 1: Bad file name format in include... (ответов: 2)
Вопрос № 1992. Здравствуйте! Задали лабораторную: Математическая модель генератора случайных чисел. А мыслей никаких нет. Расскажите, в общих чертах, какой алгоритм примерно должен быть? То есть мысли есть, но сомневаюсь в эффективности своего алгоритма, да и как л... (ответов: 4)

Вопросов: 2, ответов: 6


 Вопрос № 1990

Здравствуйте.
У меня такой вопрос: я только начинаю изучать С и соответственно только-только скачал себе компилятор. Но ест ьпроблема - при написании стандартной Hello World! компилятор ругается:
Error E2046 hello.c 1: Bad file name format in include directive
Warning W8065 hello.c 3: Call to function 'printf' with no prototype in function
main
*** 1 errors in Compile ***
А ехе-шник создаётся. В чём причина?


Приложение:


Вопрос отправлен: 27.10.2004, 13:07
Отправитель: Инин

[Следующий вопрос >>] [Список вопросов]

Отвечает Василевский Александр

Приветствую Вас, Инин!
Насчёт директивы #include. Она записывается в формате:
#include "имя_файла"
или
#include <имя_файла>
В Вашей программе имя файла не указано, потэтому компилятор и ругается.
Насчёт второй ошибки. Компилятор встретил имя функции (printf), которое не было объявлено, поэтому он и ругается.
НО, первая ошибка игнорируется, а функция printf есть в стандартной библиотеке, которая автоматически подключается к программе. Поэтому успешно создаётся EXE-шник.
Если Вы только начали изучать C, то Вам необходимо знать, что, в отличии от Pascal, компилятор останавливается только на фатальной ошибке. Большинство же ошибок носят имя Warning - предупреждение. Такие ошибки компилятор умеет исправлять сам. Но всё же, желательно их исправить ручками.
В приложении приведён правильный пример Вашей программы.

Приложение:

Ответ отправлен: 27.10.2004, 13:19
Отправитель: Василевский Александр


Отвечает Morgion

Здравствуйте, Инин!
Если пишет error - то екзешник не создаётся!
1. #include
В <> указан стандартный заголовок, в котором находится определения ф-и printf (...). Если нужны свои заголовки, то пиши #include "name.h" , то есть в "" - кавычках.
2. То есть правильно будет так, как в приложении, не смотря на то, что некоторые будут придираться и говорить, что нет void main () ... 8).

Приложение:

Ответ отправлен: 27.10.2004, 15:32
Отправитель: Morgion


 Вопрос № 1992

Здравствуйте!
Задали лабораторную: Математическая модель генератора случайных чисел. А мыслей никаких нет. Расскажите, в общих чертах, какой алгоритм примерно должен быть? То есть мысли есть, но сомневаюсь в эффективности своего алгоритма, да и как лучше написать не придумаю, в общем, безобразие... Подскажите хоть какую-нибудь идею! Программируем мы все это, естественно, в BC++ 3.1.



Вопрос отправлен: 27.10.2004, 19:18
Отправитель: booty (booty87@list.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Morgion

Добрый день, booty!
Моделей генераторов случайных числе существует великое множество. Всё зависит от задачи. Например если нужен криптографически стойкий, то это одно дело, если нужен с хорошими характеристиками, то другое.
По первым иши в инете, например в книге Брюса Шнайера "Прикладная криптография", видел на proglib.ru, в книгах.
Самое простое- аддитивный генератор случайных числе, если не изменяет склероз -так называется-
x[n+1]=(a*x[n]+b) mod n ,
где mod n остаток от деления на n, n , есть ещё какието условия для а и б - смотри в литературе. Можешь сделать так- а- первые 6 знаков числа pi, б - первые 6 знаков числа е, n - от балды 8) , то есть "размах" случайных чисел, например 65536.
ТОлько вот это получаются псевдослучайные числа. Для истинной случайности нужно использовать независимые от машины факторы, например отслеживать траекторию мыши, или частоту нажатия клавиш, в общем много всяких извращений.

Приложение:

Ответ отправлен: 28.10.2004, 00:13
Отправитель: Morgion


Отвечает bocha

Здравствуйте, booty!
почитай Кнута. А почему естественно? Мне так представляется, что как раз не естественно, стандарты имеют свойство меняться, если даже Русский язык за то время как существует этот компилятор изменился, то что говорить об искусственных языках?

Ответ отправлен: 28.10.2004, 01:03
Отправитель: bocha


Отвечает vitya

Доброе время суток, booty!
Дональд Кнут. Второй том.

Ответ отправлен: 28.10.2004, 09:57
Отправитель: vitya


Отвечает DiGiT

Здравствуйте, booty!
Так тебе нужна именно математическая модель. Си++ тут в общем-то непричем.
Существует кучу способов генерации случайных чисел. Вообще говоря случайные числа, сгенерированные программно будут не случайными, а псевдо-случайными, т.к. они составляют некую последовательность, и зная последовательность и номер элемента, можно легко определить сам элемент. Случайные числа генерируются отдельными устройствами. Так вот вообще говоря, случайные числа могут иметь какое угодно распределение. Но если вы не упомянули об этом предположу, что Вам нужно равномерное распределение.(Вообще говоря не имеет смысл генерировать что-то не зная теорию вероятностей).
Так вот основной буржуйский способ описан в Кнуте("Искусство программирования" том 2..
Есть так же способ генерации, разработанный математиками ссср. Они чем то похожи, но есть разница.
1) В принципе Morgion написал о нем, я лишь добавлю, что основной проблемой как раз и является подбор чисел a и b, чтобы получаемое распределение было более-менее приличным.
2) A(n+1) = {A(n)*M}, где {} -дробная часть числа, M- некоторое число. (генерирует числа от, 0 до 1), более менее равномерное распределение получается при
A(0)=2^(-34.9999), M=5^14. В общем мат ожидание и дисперсия показываются в норме как и должны быть.(Эти параметры подобраны в мою бытность студентом, поэтому им доверять можно, но нужно проверять)

Ответ отправлен: 28.10.2004, 17:42
Отправитель: DiGiT



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (24)
C / C++ (15)
Perl (7)
Builder / Delphi (16)
Pascal (18)
Basic / VBA (7)
Java / JavaScript (6)
PHP (14)
Криптография (7)
WinAPI (16)
Радиоэлектроника (12)
Пользователю
Windows 95/98/Me (39)
Windows NT/2000/XP (59)
"Железо" (36)
Поиск информации (19)
Администратору
Windows NT/2000/XP (35)
Linux / Unix (15)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (6)
КоАП (4)

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





http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное