Программирование на Си-шарп: различия между версиями

Материал из Викиверситета
Содержимое удалено Содержимое добавлено
Строка 21: Строка 21:


== Ваши ответы ==
== Ваши ответы ==
<small>ставьте # и отвечайте в свободном формате. Дискуссии так же поощряются, но оффтоп будет удаляться.</small>

# Я тяготею скорее к номеру 3 (игры), однако с графикой и рисунками вообще не дружу. Пока можно попробовать написать текстовый квест. Насколько я понимаю, передо мной стоят три основные задачи:
#* Прописать класс игрока
#* Прописать локации
#* Прописать их взаимодействие
#: Я примерно себе представляю, как должен выглядеть класс, однако на C# (как и на Delphi) я классов ещё не писал. Смутно представляю, что такое private, public, protected и зачем они нужны (в питоне этого нет). Когда я пробовал прописывать локации на Delphi, я использовал переменную, отвечающую за то, на какую локацию надо переходить, а сами локации прописывал в функции button_click, используя if. Наверняка есть более простой способ. Ну вот, как-то так... [[Участник:Freelancer Alex|Freelancer Alex]] 14:50, 10 февраля 2010 (UTC)
#:: Предлагаю начать с [[Программирование игр на Си-шарп (Microsoft Terrarium)]]. Как получится отпиши. private, public, protected - это т.н. модификаторы доступа, нужны для программиста, пока можно считать что все public. Как станет ясно что такое наследование и агрегация - тогда поговорим об них. Но чтобы был бы код с наследованием или агрегацией нужно уже написать кучу классов. При этом на теории многие обычно понимают, но вот с практикой почему то даже у спецов проблемы. В принципе нужно почитать [http://www.helloworld.ru/texts/comp/other/oop/index.htm Гради Буч, Объектно-ориентированный анализ и проектирование], первые 7 глав делают человеком :) [[Участник:SergeyJ|S.J.]] 20:13, 10 февраля 2010 (UTC)
# Язык в принципе знаю. Есть опыт работы на C#, а так же на Silverlight и ASP.NET. Есть база по всей .NET Framework. Думаю хорошие основы ООП и как миниму элементарные основы функционального программирования. Сам заканчиваю биологический факультет, так что знания в этой области тоже есть). Интересен первый пункт - обработка данных, а именно обработка биологических данных. Интересно по этому поводу все, так ничего не знаю) как участие в проекте написания вспомогательной библиотеки для последующего использования, подобной BioPython или BioPerl, или же конечных приложений. [[Участник:Wish|Wish]] 17:33, 4 января 2011 (UTC)
#: Думаю, раз вы знаете язык C#, этот курс не для вас :). Тут скорее имелось введу получение начальных знаний, и раз вы выбрали обработку данных, то это скорее знания о реляционных базах данных, и управление ими из С#. SQL + ADO.NET - мне, кажется, вы тоже знаете ? Поэтому давайте скорее организуем некий открытый проект в [[Лаборатория биоинформатики]]. Учитывая, то что наши знания взаимодополняемы (я программист со стажем :), но сравнительно недавно занялся био тематикой) - думаю что нибудь да получится :) --[[Участник:SergeyJ|S.J.]] 22:33, 5 января 2011 (UTC)
# Интересует п.3 (игры). С графикой дружу. Программирование - почти с нуля. Начальные знания почти забыты. Вопрос: возможно ли при этом использовать SharpDevelop 2.2.1, а не Microsoft Visual C# 2008 Express Edition? [[Участник:Thomas|Thomas]] 16:07, 24 июня 2011 (UTC)
#: Да, можете использовать SharpDevelop. Хоть какие то программы уже писали ? Опишите самую сложную программу которую Вы когда либо писали. --[[Участник:SergeyJ|S.J.]] 12:09, 27 июня 2011 (UTC)
#:: Очень давно. Почти в школе. Помню только циклы, переходы. [[Участник:Thomas|Thomas]] 12:32, 27 июня 2011 (UTC)
#::: Хорошо. Давайте тогда начнем с программы Hello, World. Можете написать такую программу самостоятельно ? И еще что значит "С графикой дружу" ? --[[Участник:SergeyJ|S.J.]] 12:54, 27 июня 2011 (UTC)
#:::: Это просто, т.к. это распространённый пример. Код - на моей странице обсуждения. Там всё понятно, т.к. читаю разные учебники сейчас. Но при самостоятельном изучении очень много вопросов, которые некому задать, поэтому пробую данный ресурс Вики. Графика - это Фотошоп свободно, + html, css. [[Участник:Thomas|Thomas]] 13:09, 28 июня 2011 (UTC)
#::::: Ок, вопросы можете свободно задавать, лучше [[Обсуждение:Программирование на Си-шарп|на странице обсуждения этой странице]], постараюсь ответить. Следующий тренировочный пример, создайте массив целых чисел, найдите среди них минимальное. --[[Участник:SergeyJ|S.J.]] 16:06, 28 июня 2011 (UTC)
#:::::: Готово - на моей странице обсуждения. [[Участник:Thomas|Thomas]] 16:12, 30 июня 2011 (UTC)
#::::::: Весело :) Ну, а если массив из 10 элементов ? Тут мы начинаем учиться как делать более обобщенные программы, чтобы потом при изменении условий не переделывать координально. --[[Участник:SergeyJ|S.J.]] 20:07, 30 июня 2011 (UTC)
#:::::::: =) Я понимаю, что массив должен быть большой. Но как сделать с элементами больше, чем 2, пока не знаю точно. Понятно, что через i. [[Участник:Thomas|Thomas]] 14:02, 4 июля 2011 (UTC)
#::::::::: Пришлось порыться в инете, т.к. по учебникам было не ясно. В основном решения были сложные (через функцию) и малопонятные (сложные циклы). В итоге удалось найти простое и вразумительное решение. Как я его понимаю - расписано в комментариях. Надеюсь, оно будет правильным. [[Участник:Thomas|Thomas]] 14:30, 5 июля 2011 (UTC)
#:::::::::: ''Надеюсь, оно будет правильным.'' - а вы проверьте :) , добавьте вывод результата на экран (только числа массива расположите случайно, иначе в случае некой ошибки можете получить последний элемент массива, а не меньший, и будите думать что правильно) --[[Участник:SergeyJ|S.J.]] 15:36, 5 июля 2011 (UTC)
#:::::::::: Далее надо изучить объектно-ориентированный подход, надо читать [http://www.helloworld.ru/texts/comp/other/oop/index.htm Гради Буч, Объектно-ориентированный анализ и проектирование], первые 7 глав. И для начала преобразуйте ваш код поиска меньшего числа в функцию некоего класса, создайте объект и вызовите эту функцию. --[[Участник:SergeyJ|S.J.]] 15:39, 5 июля 2011 (UTC)
#::::::::::: Да, не хватало скобок. Причём без спец. программ этого ни как нельзя было заметить. Но и в программе отладки (наверно с непривычки) пришлось поломать голову, почему так много красным подчеркнуто. После установки пары скобок, "краснота" пропала. После этого, в разных вариациях, - всё работает %) -[[Участник:Thomas|Thomas]] 15:17, 6 июля 2011 (UTC)
#А С# и С++ сильно различаются? {{unsigned|62.33.151.232}}
#: Сам синтаксис не очень, но концепция и библиотеки классов - да. Скорее есть сходство с Явой. Можно как бы сказать, что С++ остается для низкоуровневых вещей, а С# для приложений с пользовательским интерфейсом. --[[Участник:SergeyJ|S.J.]] 21:06, 29 июня 2011 (UTC)

#Знаком с ООП. Я хочу научиться программировать на С#. Было бы не эффективно взять какую-нибудь книгу и, прочитав, узнать, что она уже не современна. Пожалуйста, порекомендуйте 2-3 книжки по с# для обучения "с ноля". Кроме того напишите самые современные на сегодняшний день или самые используемые среды разработки (какие из них бесплатны, какие-нет, какие рекомендуете). Я хочу последовательно усваивать материал, подкрепляя его реализацией примеров. Начну с пункта "2" - реализация приложений с пользовательским интерфейсом. Хочу написать простейшую оконную игру, игровое поле разбито на разноцветные прямоугольники, требуется их рисовать/перерисовывать, а так же определять по какому из них ткнули мышкой, сохранять игру и прочее. По ходу дела нужно разобраться с основным: консоль, вычисления, массивы(создание фундамента для последующего изучения библиотек коллекций), окна, клавиатура, мышь, файлы, простейшая оконная графика. [[Участник:Fox_Mulder|Fox_Mulder]] 12 января 2013


== Программирование игр ==
== Программирование игр ==

Версия от 17:00, 13 ноября 2013

Эта статья — часть материалов: кафедры Программирование

Создание консольного приложения

Прежде чем начать изучать язык нужно проинсталлировать среду и убедиться, что она работает на вашем компьютере. По традиции это начинается с написания программы «Hello, World!»:

  1. Прочитайте статью в Википедии об этом языке программирования: w:C Sharp.
  2. Скачайте и установите бесплатную среду программирования на Си-шарп Microsoft Visual C# 2008 Express Edition с официального сайта Майкрософт: [1]. Можно попробовать найти в своей локальной сети файл, содержащий в названии «VS2008Express».
    Подробная инструкция: В зелёном квадрате выберите Russian и нажмите Download; скачается файл vcssetup.exe (2,7 Мбайт); запустите его на своём компьютере; начнётся загрузка компонентов Microsoft Visual C# 2008 Express Edition (~80 Мбайт), а затем произойдет установка этих компонентов.
  3. Прочитайте Практическое руководство. Создание консольного приложения C# и создайте консольное приложение.

Выбор предметной задачи

Программирование само по себе не представляет особого интереса. С помощью программирования реализуются различные предметные задачи. От выбора той или иной задачи зависит на чем нужно будет сконцентрироваться в первую очередь. Условно задачи можно разделить на 4 вида:

  1. Программы обработки данных (как правило научные вычисления)
  2. Программы требующие пользовательский интерфейс (т.н. офисные приложения)
  3. Программы требующие графический интерфейс (как правило компьютерные игры или программы моделирования)
  4. Веб-программирование (в данном курсе оно не рассматривается )

Обдумайте и опишите ту задачу, которой вам было бы интересно заниматься. Попробуйте как можно точнее сформулировать что есть на входе, и что вы хотите получить на выходе. Любое программирование начинается с анализа задачи на бумаге - попробуйте изобразить, написать ваши цели, разбить на подзадачи.

Ваши ответы

Программирование игр

Программирование офисных приложений

Литература