| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [С#] Ошибка в программе |
| Автор: AlluZef 11.5.2012, 18:41 | ||
| Программа должна при 9 подряд совпадениях выдать количество шагов цикла. Но в частях "a =(0,2)" и "c = c +1 );" выводит ошибку "требуется ")" " и "требуется ";" " соответственно. Хотя эти символы как видите там стоят. Буду рад если вы не только поможете исправить код но и объясните суть ошибки.
|
| Автор: Telepyz 11.5.2012, 19:11 | ||||||
Цикл должен выглядеть вот так
По русски
А у тебя вообще непонятно что это такое
|
| Автор: AlluZef 11.5.2012, 19:16 |
| Блииииииин! Я просто переменные переименовывал. Там не "a" а "f" переменная. |
| Автор: Telepyz 11.5.2012, 19:22 |
| напиши нормальный код |
| Автор: AlluZef 11.5.2012, 19:32 | ||
| А как прописать условие наращивания счетчика? Я попробовал так:
и мне выводится ошибка на if - "недопустимый элемент if в выражении." Добавлено @ 19:37 Дело в том, что программа должна случайной переменной от 0 до 1 сопоставлять числа 1 и 0 второй переменной каждый раз меняющиеся. Когда девять раз подряд значения не совпадут на вывод подается количество шагов цикла. |
| Автор: Telepyz 11.5.2012, 19:40 | ||
Ничего не понял, но можешь сделать так
|
| Автор: AlluZef 11.5.2012, 19:43 | ||
Весь код после попытки сделать твой цикл выглядит так:
Добавлено через 34 секунды Щас проверю твой вариант. |
| Автор: Telepyz 11.5.2012, 19:44 | ||||
Добавлено @ 19:47 Нельзя засунуть в цикл условие, возьми любой учебник и почитай, ели я правильно понял попробуй так
|
| Автор: AlluZef 11.5.2012, 19:53 |
| Щас проверю Добавлено через 7 минут и 6 секунд Уже лучше. Но под "f.Next =(0, 2);" все еще стоит ошибка - мол требуются: скобка после "0", и ";" после скобки. Но спасибо за помощь в написании цикла. |
| Автор: Telepyz 11.5.2012, 20:05 | ||||||
Или так
Добавлено через 1 минуту и 21 секунду Что ты хочешь этим сделать? Добавлено через 6 минут и 27 секунд
Почитай http://msdn.microsoft.com/ru-ru/library/2dx6wyd4.aspx Добавлено через 8 минут и 58 секунд Ты говоришь А делаешь от 0 до 2
|
| Автор: AlluZef 11.5.2012, 20:18 |
| Это проверка задачки по теории вероятности. Я хочу узнать сколько бросков монеты надо сделать что-бы девять бросков подряд не повторялись и моя "ставка" (которая всегда меняется с "орла" на "решку" каждый ход) при этом проиграла. Я без проблем написал бы на Паскале но в данный момент осваиваю C# и решил, так сказать ,проверить свои знания. Насчет ошибки вот: http://s1.ipicture.ru/uploads/20120511/3qTkQe1T.png Добавлено через 3 минуты и 41 секунду Зараза я пишу и быстро вижу что мой ответ уже не актуален. Я почитаю и строчку ты прав ,надо изменить. Добавлено через 8 минут и 19 секунд Я щас почитал и в целом понял о чем ты. Но ошибка, похоже, не в рандоме а в написании кода. |
| Автор: Telepyz 11.5.2012, 20:31 |
| равно убери, это процедура а не просто присваивание |
| Автор: AlluZef 11.5.2012, 20:33 |
| УРА!!!! Ошибок нет! Но при запуске мне ничего не выводится. Однако исходя из того что время работы проги всегда немного отличается ошибка гдето в выводе. |
| Автор: Telepyz 11.5.2012, 20:39 | ||||
| попробуй вместо
написать
И посмотри что будет написано, может просто не бывает нужной тебе ситуациии |
| Автор: AlluZef 11.5.2012, 20:43 |
| Пишет : "для продолжения нажмите любую клавишу . . ." но не может быть чтобы условие не выполнялось. |
| Автор: Telepyz 11.5.2012, 20:44 |
| И больше ничего не пишет? Скрин кинь Добавлено через 2 минуты и 1 секунду Не может быть что бы бросая монету, 9 раз подряд орел менялся с решкой??? да ну.. |
| Автор: AlluZef 11.5.2012, 20:50 |
| Так монета бросается до тех пор пока не поменяются 9 раз. При этом на выходе я хочу узнать сколько всего бросков было. Вот скрин: http://s1.ipicture.ru/uploads/20120511/huJTVshp.png |
| Автор: Telepyz 11.5.2012, 20:57 | ||||||
поменяй на
и Вынеси за пределы цикла
|
| Автор: AlluZef 11.5.2012, 20:58 |
| Щас проверим. |
| Автор: Telepyz 11.5.2012, 21:01 |
| короче подожди... |
| Автор: AlluZef 11.5.2012, 21:02 |
| Нет не работает. Жду. |
| Автор: Telepyz 11.5.2012, 21:14 | ||
что ты этим хочешь сделать? |
| Автор: AlluZef 11.5.2012, 21:19 |
| Это математическая функция которая каждый ход меняет значение b с 0 на 1 . В человеческом виде это выглядит так: b = (1+(-1)^a)/2 таким образом от четности/нечетности номера шага мы получаем ответ 0 или 1. |
| Автор: Telepyz 11.5.2012, 21:20 | ||||
| короче вот , если я правильно понял поставленную задачу b = постоянно меняется (орел/решка), а f - монетка
Добавлено через 41 секунду эта твоя мат функция постоянно выдает int.MinValue Добавлено через 4 минуты и 4 секунды Это он бедет считать до 10 несовпадений поменяй на
|
| Автор: AlluZef 11.5.2012, 21:24 |
| Задачу ты понял правильно. И код вроде нормальный но не работает И я не совсем понял эту строчку : b = ((b == 0) ? 1:0 ); Добавлено @ 21:29 Функцию я брал с какого-то форума. Сама функция с точки зрения математики правильная а более адекватной замены я не нашел. Я щас отойду на минут 5. |
| Автор: Telepyz 11.5.2012, 21:34 |
| У меня все работает Это если Б == 0 то Б=1 иначе Б=0 |
| Автор: AlluZef 11.5.2012, 21:37 |
| КРАСАВЧИК!!! Вроде все понял! Завтра на свежую голову все еще раз проверю. СПАСИБО! Добавлено через 50 секунд Блин ррепутацию немогу менять :( ну ладно. |
| Автор: Telepyz 11.5.2012, 21:41 |
| Пометь тему решенной |