Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск

Кто сейчас на форуме
Сейчас посетителей на форуме: 2, из них зарегистрированных: 0, скрытых: 0 и гостей: 2

Нет

[ Посмотреть весь список ]


Больше всего посетителей (7) здесь было Сб Июн 17, 2017 3:57 pm
Самые активные пользователи за неделю


Домашние задания

Предыдущая тема Следующая тема Перейти вниз

Домашние задания

Сообщение автор Ярослав в Вт Сен 12, 2017 3:40 pm

Д/з №01 (13 сентября 2017)
До 17 сентября (вс) включительно

Рефлекторы и обфускаторы

1. Скачайте и установите бесплатный рефлектор. Например: ILSpy, dotPeek, JustDecompile. Используйте его, чтобы декомпилировать программу Add.

Решением этого задания является полученный декомпилированный код.

2. Бесплатный Dotfuscator входит в комплект поставки Visual Studio 2015 (и 2017), его можно найти в меню Tools. Используйте его, чтобы запутать код программы Add. Затем декомпилируйте его рефлектором, чтобы изучить, что именно было запутано.

Ответьте письменно, какие действия обфускатор принял для сокрытия кода.


Последний раз редактировалось: Ярослав (Ср Сен 13, 2017 3:45 pm), всего редактировалось 1 раз(а)
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Ср Сен 13, 2017 3:41 pm

Д/з №02 (14 сентября 2017)
До 17 сентября (вс) включительно
Ввод-вывод, вычисления, ветвления, циклы.

1. Написать программу, которая считывает символы с клавиатуры, пока не будет введена точка. Программа должна сосчитать количество введенных пользователем пробелов.

2. Ввести с клавиатуры номер трамвайного билета (6-значное число) и проверить, является ли данный билет счастливым. (Если на билете напечатано шестизначное число, и сумма первых трёх цифр равна сумме последних трёх, то этот билет считается счастливым.)

3. Числовые значения латинских символов нижнего регистра в коде ASCII отличаются от значений символов верхнего регистра на величину 32. Используя эту информацию, написать программу, которая считывает с клавиатуры и конвертирует все символы нижнего регистра в символы верхнего регистра и наоборот.

4. Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно; каждое число должно выводиться на новой строке; при этом каждое число должно повторяться количество раз, равное его значению. Например: если А = 3, а В = 7, то программа должна сформировать в консоли следующий вывод:

3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7

5. Дано целое число N (> 0), найти число, полученное при прочтении числа N справа налево. Например, если было введено число 345, то программа должна вывести число 543.


Последний раз редактировалось: Ярослав (Пн Сен 25, 2017 2:29 pm), всего редактировалось 1 раз(а)
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вс Сен 17, 2017 7:51 pm

Д/з №03 (18 сентября 2017)
Массивы и строки
Срок по 24 сентября

1. Объявить одномерный массив (5 элементов) с именем flat и двумерный массив (3 строки, 4 столбца) дробных чисел с именем rect. Заполнить одномерный массив flat числами, введенными с клавиатуры пользователем, а двумерный массив rect случайными числами с помощью циклов. Вывести на экран значения массивов: массива А в одну строку, массива В — в виде матрицы. Найти и распечатать в данных массивах:

• максимальный элемент
• минимальный элемент
• сумму всех элементов

2. Пользователь вводит строку. Определить и напечатать самый длинный фрагмент, входящий в неё дважды.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Пн Сен 18, 2017 4:41 pm

Д/з №04 (со вторника 19 сентября 2017)
Введение в классы. Поля, методы, конструкторы.
Срок по 24 сентября

Задание 1.
1.1. Разработать один из классов, в соответствии с полученным вариантом.
1.2. Реализовать не менее трёх закрытых полей различных типов, представляющих основные характеристики рассматриваемого класса.
1.3. Создать не менее трех методов управления классом; и методы доступа к его закрытым полям (аксессоры и мутаторы).
1.4. Создать метод, в который передаются аргументы по ссылке.
1.5. Создать хотя бы одно статическое поле, представляющее общие характеристики объектов данного класса.
1.6. Реализовать три конструктора, включая конструктор по умолчанию.
1.7. Реализовать статический конструктор.

Варианты:

Нарек Балаян: Автомобиль
Роман Бондаренко: Мотоцикл
Александр Буйновский: Самолет
Владислав Лысак: Бытовая техника (на выбор)
Николай Морозов: Продукты питания (на выбор)
Артём Рева: Канцелярские товары (на выбор)
Евгений Ступкин: Мебель (на выбор)
Денис Фесик: Поезд


Последний раз редактировалось: Ярослав (Пн Сен 25, 2017 2:29 pm), всего редактировалось 1 раз(а)
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Ср Сен 20, 2017 6:50 am

Д/з №05 (чт 20 сентября 2017)
Обработка ошибок исключениями
Срок по 24 сентября

1) Обязательная часть: В битве танков сражаются два игрока. У каждого игрока команда из 5 танков. У танка три числовые характеристики: боекомплект, броня и манёвренность, имеющие значения в диапазоне от 0 до 100.

Сначала первый игрок настраивает свои танки. Танки начинают с нулём во всех характеристиках; у игрока есть бюджет в 500 очков, которые он распределяет между характеристиками танками. Текстовое меню должно работать так:

Выберите танк, который хотите улучшить:
1> Т1 (50/50/50)
2> T2 (0/0/0)
3> T3 (0/0/0)
4> T4 (100/0/75)
5> T5 (0/0/0)
Осталось 175 очков.

Игрок указывает номер танка; а затем заполняет его характеристики.

Вы выбрали танк T3.
Введите боекомплект: 50
Введите броню: 50
Введите манёвренность: 0

Процесс повторяется, пока не закончатся очки. Затем экран очищается (Console.Clear()), и свою команду настраивает второй игрок.

Предусмотреть и обработать ошибки:
• Игрок пытается выбрать несуществующий танк (-7)
• Игрок пытается выбрать уже настроенный танк (№1 или №4 в примере)
• Игрок пытается присвоить значение характеристики за пределами 0-100
• Игрок пытается выйти за пределы бюджета
• Игрок вводит что-то, не являющееся числом
Программа не должна падать! Она должна информировать игрока, что он сделал не так, и продолжать работу.

2) Необязательное задание (для дополнительных баллов): допишите механику битвы: первый танк сражается против первого, второй против второго, и т.д. В дуэли танков побеждает тот, у кого 2 характеристики строго больше, чем у другого. В итоге побеждает игрок, победивший в наибольшем числе дуэлей.


Последний раз редактировалось: Ярослав (Пн Сен 25, 2017 2:30 pm), всего редактировалось 1 раз(а)
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Чт Сен 21, 2017 12:06 pm

Д/з №06 (21 сентября 2017)
Пространства имён

Сегодня ничего не задано! Делайте другие домашки и лабу №2.


Последний раз редактировалось: Ярослав (Пн Сен 25, 2017 2:29 pm), всего редактировалось 1 раз(а)
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Пн Сен 25, 2017 12:07 pm

Д/з №07 (25 сентября 2017)
Перегрузка операторов
Срок по 1 октября

1. Для типа данных int[] не определена операция + (конкатенации массивов). Заверните массив int[] в самодельный класс IntArray и перегрузите для него операцию +. Она должна принимать два объекта IntArray на входе и возвращать новый объект IntArray:

IntArray + IntArray = IntArray

В результате сложения должен получиться объект, где хранится массив, содержащий первый массив с примыкающим к нему вторым массивом:



2. Для того же класса перегрузите операцию &, которая будет означать пересечение массивов.

IntArray & IntArray = IntArray

В новом массиве должны остаться только те элементы, которые входят в оба массива.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Пн Сен 25, 2017 2:28 pm

Д/з №08 (вторник 26 сентября 2017)
Перегрузка операторов сравнения и преобразования типов
Срок по 1 октября

1. Для класса IntArray из задания №7 определите операцию неявного преобразования в bool. Массив считается истинным, если в нём есть элемент, отличный от нуля. Иначе он ложный.

2. Для класса IntArray определите пару операций == и != . Массивы равны, если у них одинаковое количество элементов, и соответствующие элементы в них равны. Иначе не равны.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вт Сен 26, 2017 2:40 pm

Д/з №09 (среда 27 сентября 2017)
Индексаторы и свойства
Срок по 1 октября

1. Создайте класс Point3D, скрывающий 3 числа с плавающей точкой: x, y, z. Реализуйте индексатор, позволяющий извлекать x, y, z по их порядковому номеру:

point[0] == x
point[1] == y
point[2] == z

2. Напишите класс Contact, описывающий контактную информацию одного человека. Как минимум, должны быть представлены свойства: мобильный телефон, городской телефон, email, skype. Все данные должны храниться в автоматических свойствах. Стартовые значения всех свойств должны быть пустой строкой.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Ср Сен 27, 2017 2:58 pm

Д/з №10 (чт 28 сентября 2017)
Наследование. Абстрактные классы
Срок по 1 октября

1. Создайте базовый абстрактный класс Shape (геометрическая фигура) со следующими абстрактными свойствами:

• float Area (площадь): свойство только для чтения, позволяет узнать площадь фигуры
• string Name: свойство только для чтения, возвращает название фигуры

2. Создайте класс-наследник, Circle (круг), унаследованный от Shape, с дополнительным свойством Radius. Класс должен переопределять свойства Area и Name. Площадь определяется по формуле PI * R * R, а Name должно возвращать строку Circle.

3 [необязательное, для дополнительных баллов]. Создайте классы-наследники Square и Rectangle (квадрат и прямоугольник). Rectangle наследует от Shape; Square наследует от Rectangle. Определите нужные дополнительные свойства и переопределите абстрактные свойства Shape.

avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вс Окт 01, 2017 6:27 pm

Д/з №11 (02 октября 2017)
Стандартные интерфейсы IComparable, IComparer
Срок по 8 октября

1. В некоторой MMORPG игроки прокачивают персонажа до максимального 100 уровня, затем собирают экипировку до максимального 800 уровня, затем тратят время, собирая достижения (бесконечный процесс). Создать класс Player (игрок) с авто свойствами:

• уровень персонажа;
• уровень экипировки;
• количество очков достижений;

Класс должен реализовывать стандартный интерфейс IComparable<Player>, то есть позволять сравнивать одного игрока с другим. Правило сравнения:

• Все три показателя игрока складываются, затем смотрят: у кого получилось больше, тот и победил.

2. Написать класс GuildLeader (предводитель гильдии). Этот класс должен реализовывать другой стандратный интерфейс, IComparer<Player>, то есть уметь сравнивать двух игроков по другому, более сложному, правилу. Принцип сравнения:

• Игрок с большим уровнем персонажа безусловно побеждает;
• Если уровень персонажа одинаковый, то игрок с лучшей экипировкой побеждает;
• Если и уровень экипировки одинаковый, то побеждает игрок с наибольшим числом очков достижений;
• Если игроки полностью идентичны, то они равны.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Пн Окт 02, 2017 5:52 pm

Д/з №12 (03 октября 2017)
Структуры. Перечисления
Срок по 8 октября

1. Реализуйте либо структурой, либо классом следующие геометрические сущности:

• Point2 { float x, float y }
• Point3 { float x, float y, float z }
• Triangle { Point2[3] }
• Curve { List<Point3> }

Выбор обоснуйте в комментариях.

2. Выберите перечисление из реальной жизни (содержащее не меньше 6 значений) и реализуйте его с помощью enum. Используя функцию Enum.GetValues(), распечатайте получившийся перечень.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вт Окт 03, 2017 4:23 pm

Д/з №13 (04 октября 2017)
Лямбда-выражения
Срок по 8 октября

Пусть есть массив из 5 сотрудников (с полями Name, Salary, BirthDate и Occupation). Пользуясь лямбда-выражениями, распечатайте:

1. Список сотрудников, у которых день рождения в октябре.
2. Список сотрудников и зарплат, отсортированный по убыванию зарплаты.
3. Список только должностей сотрудников.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Чт Окт 05, 2017 5:13 pm

Д/з №14 (05 октября 2017)
Методы расширения
Срок по 8 октября

1. Используя методы расширения (extension methods), добавьте в класс int функцию возведения в квадрат.

2. Найдите уже существующую функцию расширения в типе IEnumerable<int>, суммирующую все элементы коллекции. Используйте её, чтобы найти сумму элементов массива.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вс Окт 08, 2017 5:45 pm

Д/з №15 (09 октября 2017)
Коллекции
Срок по 15 октября

1. Постройте класс дерева, используя коллекции. Дерево состоит из узлов; каждый узел хранит полезную информацию (строку) и список подчинённых узлов.

Создайте дерево со следующей структурой:



2. Напишите рекурсивную функцию, распечатывающую узел и всех его потомков. Используйте её, чтобы распечатать дерево.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Пн Окт 09, 2017 2:58 pm

Д/з №16 (10 октября 2017)
Обобщённые классы. Итераторы
Срок по 15 октября

1. Напишите обобщённый класс EnumSet<TEnum>, параметром которого должен быть перечислимый тип (enum). Класс EnumSet должен хранить для каждого возможного значения из TEnum либо истину, либо ложь. EnumSet представляет собой набор из нескольких значений TEnum: каждое значение либо включено (true), либо исключено (false).

Предоставить функции добавления и удаления элементов в TEnum, а также функцию распечатывания текущего состояния. Протестировать на каком-нибудь перечислении.

*Разрешается использовать другую внутреннюю организацию класса, покуда она даёт нужный результат.

2. Класс Optional<T> можно рассматривать как коллекцию, содержащую либо 1 элемент, либо 0. Дополните класс Optional<T>, чтобы он реализовывал интерфейс IEnumerable<T>:

• Если Optional<T> пуст, то цикл foreach ничего не делает (сразу завершается)
• Если Optional<T> содержит 1 элемент, то цикл foreach обрабатывает этот единственнй элемент


Последний раз редактировалось: Ярослав (Вт Окт 10, 2017 3:54 pm), всего редактировалось 1 раз(а)
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вт Окт 10, 2017 3:53 pm

Д/з №17 (11 октября 2017)
Finalize () и Dispose ()
Срок по 15 октября

Напишите два проверочных класса:

• один класс поддерживает функцию Dispose(), в которой печатает "Dispose"
• второй класс поддерживает функцию Finalize (), в которой печатает "Finalize"

Создайте эти объекты и обеспечьте очистку их ресурсов.

(Подсказка: для вызова Dispose() используйте утверждение using; для создания Finalize напишите деструктор класса)
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Ср Окт 11, 2017 3:19 pm

Д/з №18 (12 октября 2017)
Запись в файл в двоичном и текстовом режиме
Срок по 15 октября

Класс Image (изображение) представляет собой картинку 32 на 32 точки. Каждая точка описывается структурой Color (цвет). У цвета 3 компоненты: красная, зелёная и синяя, каждая изменяется в пределах от 0 до 255.

1. Сгенерируйте случайное изображение. Используя BinaryWriter, компактно запишите его в файл Image.bin, используя лишь 1 байт на каждую компоненту цвета.

2. Используя StreamWriter, запишите это же изображение в текстовый файл Image.txt, представляя каждую компоненту цвета как текстовую строку (например, "0" или "255") и используя пробельные разделители между ними.

Сравните размеры результирующих файлов.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вс Окт 15, 2017 8:46 am

Д/з №19 (16 октября 2017)
Документы XML и DTD
Срок по 22 октября

1. Составьте документ XML, описывающий коллекцию из нескольких фильмов или мультфильмов. Документ должен рассказывать про каждый фильм:

• Название
• Режиссёра / список режиссёров
• Несколько главных персонажей (для каждого персонажа указать исполнителя роли / озвучивавшего актёра)

2. Составьте документ DTD, описывающий структуру XML-документа из 1-го задания.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Пн Окт 16, 2017 3:30 pm

Д/з №20 (17 октября 2017)
Схема XML. Программное создание XML
Срок по 22 октября

1. Составить схему документа для XML, описывающего поединок танков.

2. Дополнить приложение «Танки» сохранением полученных данных (настроек танков обоих игроков) в файл XML.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Вт Окт 17, 2017 6:23 pm

Д/з №21 (18 октября 2017)
Загрузка и валидация XML. Регулярные выражения
Срок по 22 октября

1. Выполните валидацию файла XML «битвы танков» с помощью файла Схемы XML.

2. Загрузите данные «битвы танков» из файла XML.

3. Составьте регулярное выражение, описывающее правильно сформированное число (см. Лабораторную работу №1, задание №2). Используйте класс Regex, чтобы проверить, является ли введённый текст правильно сформированным числом.
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Ярослав в Чт Окт 19, 2017 11:53 am

Д/з №22 (19 октября 2017)
Сериализация
Срок по 22 октября

Сериализовать изображение (Image) 32 на 32 пикселя (см. д/з №18) в три разных файла, используя:

1. BinaryFormatter
2. SoapFormatter
3. XmlSerializer
avatar
Ярослав
Admin

Posts : 346
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: Домашние задания

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения