![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
Здравствуй, народ!
Совсем недавно я захотел попробовать заняться программированием Перебрал кучу инфы, что к чему, с чего начинать, что изучать, как и т.д. Ну выбрал в итоге C#. Вроде для новичков советуют. Читаю и изучаю книгу Карли Ватсона - C# Может кто-то её изучал, или читает сейчас, прошу оставить отзывы. А также хотелось тут обсуждать упражнения которые там даются, т.к. ответов там нет. А самому сложновато разбираться. Вот не могу выполнить упражнение о множестве Мандельброта...( Вот сам код
Надо изменить его таким образом, чтобы оно запршивало у пользователя границы рисунка и выводило выбранную часть рисунка. |
|||
|
||||
Экскалупатор |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
ну то книга судя во всему не особо заботиться о читателе(тем более что в аннотации к книге написано "для начинающих и малоопытных программистов")... дальнейшие выводы можно делать самостоятельно, я ее не читал так что ничего не утверждаю. код в посте это пример из книги?
а в чем вопрос? вот у меня вопрос есть, куда пользователь должен это все вводить(м.б. в консоль?) и куда ему должна выводиться выбранная часть рисунка? |
||||
|
|||||
massimo2 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
Код пишется либо в Notepad и сохраняется в расширении cs, а затем компилируется через командную строку, и потом можно запустить созданную программу и проверить. Либо (если по книге) всё делаешь в Visual Studio
Ну а выводиться уже должна в консоли, т.к. работаем с консольными приложениями пока. А насчёт книги, так вроде всё написано понятным языком, пока всё норм. Хотя я вообще ноль в программировании. |
||||
|
|||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
при чем тут то куда пишется код? я спросил куда пользователь должен ввести значения? или ты хочешь их прямо в код вводить? и что значит "выводиться"? картинку(изображение) в консоль? или какие то координаты? по моему личному мнению в таких случаях надо взять Си, там как то быстрее понимаются всякие нюансы мелкие, виднее что ли становиться... |
|||
|
||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
надо исправить код, что же ещё?!
а картинка состоит из символов, вот в чём дело. вы бы запустили программу и проверили, сразу стало бы понятно |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
![]() ![]() ![]() т.е. нужно будет каждый раз, когда пользователю вздумалось получить другой вариант, исправлять код? ![]() с "картинкой" все понятно. для того что бы ввести значения есть Console.Read/Console.ReadLine а дальше уже логика твоей программы должна решать какую часть выводить, так как картинка у тебя нигде не храниться и делается на лету, то тебе нужно будет подставить в циклы свои значения(полученные от пользователя) и пересчитать еще раз. |
|||
|
||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
да всё верно вы написали.
просто я вообще не могу въехать в этого мандельброта... |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
massimo2, я надеюсь, что вполне понятен тот факт что если я сделаю вместо тебя то ты скорее всего не научишься, что бы понять и разобраться надо сделать самостоятельно, задай конкретный вопрос, что именно не понятно, я попытаюсь объяснить.
|
|||
|
||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
какие цифры должны быть в коде я вычислил, но как связать это с запрсом пользователя, не могу врубиться. Например будет выводиться: Какую часть рисунка показать(1 - верхняя, 2- нижняя, др. - весь рисунок). Допустим пользователь введет 1, и как сделать чтоб при вводе единицы менялась определённая переменная цикла for ?
В принципе можно наделать ветвлений с помощью switch (каждый раз засовывая туда цикл for), но код будет очень уж объёмным! И всё же задание можно считать выполненным. Вот так выглядит код:
Вначале выведется рисунок, а затем вы сможете выбрать какую часть рисунка вам показать. Это сообщение отредактировал(а) massimo2 - 8.8.2011, 16:48 |
|||
|
||||
Экскалупатор |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
у тебя написано:
но ведь ты можешь написать
а откуда ты возьмешь это i циклу все равно, прочитаешь из консоли или из файла или еще откуда, не имеет значения. по поводу вывода, я не совсем въезжаю что должно получиться, но можно сделать один свитч, который будет решать че делать с тем что ввел пользователь, потом все логику рисования вынести в отдельный метод, в который в качестве параметров передавать значения, определяющие какую область нужно выводить. Добавлено через 2 минуты и 32 секунды не обновил страницу перед отправкой поста... смотри как много у тебя повторяющихся блоков, вынеси все в отдельный метод и вызывай его в нужных местах. в параметрах передавай то чем блоки отличаются друг от друга Добавлено через 4 минуты и 39 секунд кстати, забываю спросить, а зачем тебе именно дробные значения в циклах? |
||||
|
|||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
дело в том, что методы пока для меня ещё не изученная область.. вот..
насчёт "i" я думал, но ничего не придумал. Так что пока только так. А дробные значения - это уже нюансы построения этого множества Мандельброта, так что я не знаю этого. Это сообщение отредактировал(а) massimo2 - 8.8.2011, 18:23 |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
ну даже если так:
то уже в три раза меньше строк кода получается... это нужно было выучить раньше всего, что такое класс и что такое метод, без этого дальше нельзя учить. Это сообщение отредактировал(а) Экскалупатор - 8.8.2011, 18:50 |
|||
|
||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
значит у Ватсона своя метода изложения
|
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
повторюсь я не читал, так что не знаю как он излагает, но по опыту могу сказать что до изучения методов в книгах, обычно(!), примеры не сложнее Hello World, а этот пример сложнее, значит, скорее всего, ты его придумал сам(молодец, на интересных задачах быстрее научишься), но к такому уровню уже нужно знать что такое классы и методы, почитай отдельно и будет тебе счастье. станет намного проще писать. |
|||
|
||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
После прочтения очередной главы новые упражнения:
1. Какие из приведенных ниже преобразований не могут выполняться неявно? а) int в short b) short в int c) bool в string d) byte в float Мой ответ : a, c 2. Напишите программу, в которой описывается перечислимый тип color, использующий в качестве базового типа short и содержащий все цвета радуги, а также белый и чёрный. Может ли для такого перечислимого типа в качестве базового использоваться тип byte? Насчёт программы я не совсем понял что требуется, но написал вот такую (по аналогии с приводимым в книге примером):
а ответ на вопрос: конечно может. И ещё вопрос: возможно ли вывести на экран все значения типа по порядку? Это сообщение отредактировал(а) massimo2 - 9.8.2011, 01:00 |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
Ну это утверждение очень спорное, я как и Экскалупатор считаю что лучше начать с Си. Но уж если сильно надо то возьми Троелсен Э. C#.NET 4 - 2010, причитай бегло первую часть, а от второй чётко и ясно всё расписано. А пытатся делать какие то упражнения не понимая методы, и ожидать что помогут на форуме, мне кажется не совсем систематический подход... Линк посылаю в личку. |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
|
|||
|
||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
SKrivosein, спасибо, попробую Троелсена, так и быть.
А может мне стоит попробовать курсы Intuit? Не знаю, осилю ли Троелсена..мне кажется он ориентируется на человека уже с базой каких-то знаний. Это сообщение отредактировал(а) massimo2 - 9.8.2011, 13:29 |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
Пойми меня правильно, я нечего неимею против Карли Ватсана, но прочитав внимательно I-ю II-ю часть Троелсена, ты эти упражнения (судя по этим двум) будеш знать как решать.
Вот потом их и решиш, тоже непомешает. Это сообщение отредактировал(а) SKrivosein - 9.8.2011, 13:44 |
|||
|
||||
massimo2 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
Новые упражнения:
1.В следующих двух функциях содержатся ошибки. Какие именно? static bool write() { Console.WriteLine("Text output from function."); } static void myFunction(string label, params int[] args, bool showLabel) { if (showLabel) Console.WriteLine(label); foreach (int i in args) Console.WriteLine("{0}",i); } 2. Напишите приложение, которое использует два аргумента командной строки для присваивания значений строковой и целой переменным соответственно, а затем выводит эти значения. 3. Создайте делегат и используйте его вместо функции Console.ReadLine() в запросе ввода от пользователя. 4. Модифицируйте приведенную ниже структуру, включив в неё функцию, которая возвращает суммарную стоимость заказа: struct order // заказ // { public string itemName; // наименование // public int unitCount; // число единиц // public double unitCost; // стоимость одной единицы // } После недолгих мучений я сделал 3 упражнения, проверьте меня: 1. Первая фунцкия должна возвращать логическое значение, а она вообще ничего не возвращает, т.к. нету слова return. Во второй функции params int[] должно стоять после всех параметров. 2.
3.
|
||||
|
|||||
massimo2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.8.2011 Где: Пинск Репутация: нет Всего: нет |
ну а вот и четвёртое:
Не захотел уже додумывать, и сделал по-простому. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |