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

Тип работы: Все Диплом Задача Курсовая работа Лабораторная работа Ответы на вопросы
Язык программирования: Все Bash Basic Batch C C# C# ASP .NET C++ Delphi Fortran HTML Java JavaScript Object Pascal Pascal Pascal ABC Python VBA Visual Basic алгоритмические языки
Блок-схема: Все Есть Нет
Сортировать по умолчанию цене названию
  • Общие требования:

    1)  Код приложения должен быть отформатирован в едином стиле и соответствовать соглашению об именовании Microsoft.

    Задания

    Максимальное количество баллов за всё домашнее задание – 5:

    • 4.5 в сумме за выполнение всех заданий
    • 0.5 за стиль кода и соответствие правилам именования Microsoft.

     

    Задание 1:

    1 балл

    В кругу стоят N человек, пронумерованных от 1 до N. При ведении счета по кругу вычеркивается каждый второй человек, пока не останется один.

    Составить программу, моделирующую данный процесс двумя способами:

    1. используя класс List<T>
    2. используя класс LinkedList<T>

    При использовании LinkedList<T> запрещается обращаться к элементам напрямую по индексу. Для List<T> и LinkedList<T> реализовать общий метод, удаляющий ненужные элементы, который может работать с объектами обоих типов.

    Задание 2:

    2 балла

    На базе обычного массива (коллекции .NET не использовать) реализовать свой собственный класс DynamicArray, представляющий собой динамический массив. Элементами данного массива могут быть только объекты, имеющие конструктор без параметров. Память под содержимое массива должна выделяться по мере необходимости (описано ниже).

    • Ёмкость массива – количество элементов, под которые уже выделена память
    • Длина массива – количество элеметов, фактически содержащихся в массиве.

    Класс должен содержать:

    1. Конструктор без параметров (создается массив емкостью 8 элементов)
    2. Конструктор с 1 целочисленным параметром (создается массив заданной емкости)
    3. Конструктор, который в качестве параметра принимает массив (его содержимое копируется)
    4. Метод Add, добавляющий в конец массива один элемент. При нехватке места для добавления элемента емкость массива должна увеличиваться в 2 раза
    5. Метод AddRange, добавляющий в конец массива содержимое переданного массива. Обратите внимание на то, что метод должен изменять емкость текущего массива только один раз, вне зависимости от числа элементов добавляемой коллекции
    6. Метод Remove, удаляющий из коллекции указанный элемент. Метод должен возвращать true, если удаление прошло успешно и false в противном случае. При удалении элементов емкость массива не должна уменьшаться
    7. Метод Insert, позволяющий добавить элемент в произвольную позицию массива (обратите внимание, может потребоваться расширить массив). При выходе за границу массива должно генерироваться исключение ArgumentOutOfRangeException
    8. Свойство Length – получение длины массива
    9. Свойство Capacity – получение ёмкости массива
    10. Индексатор, позволяющий работать с элементом с указанным номером. При выходе за границу массива должно генерироваться исключение ArgumentOutOfRangeException
    11. Метод Sort, который принимает делегат описывающий условие сравнения элементов

    Задание 3:

    1 балл

    Требуется написать программу, которая делит игроков на команды. Каждый игрок имеет имя, фамилию и показатель его мастерства. Алгоритм деления игроков на команды может быть выбран любой по договоренности с ментором, желательно такой, чтобы среднее мастерство не сильно отличалось между командами.

    Пример

    Разделить 6 игроков по парам для игры в настольный теннис:

    Имя

    Мастерство (макс. 10)

    Игрок 1

    8

    Игрок 2

    6

    Игрок 3

    5

    Игрок 4

    4

    Игрок 5

    9

    Игрок 6

    7

    Ожидаемые пары: 5 (9) + 4 (4), 1 (8) + 3 (5), 2 (6) + 6 (7)

     

    Для хранения игроков нужно использовать класс DynamicArray из предыдущего задания. Добавьте в него метод Split, который будет в качестве параметра принимать делегат с критерием, по которому нужно делить игроков. Если игроков нельзя поделить на равные по количеству команды, программа должна сообщить об этом.

    Задание 4:

    0.5 балла

    Дополните функционал программы из задания 3 таким образом, чтобы она могла случайным образом составить пары для «Секретного Санты» из любого количества участников.

    1. Написать программу, которая считает сумму чисел до 1000.
    2.  Написать программу, которая переворачивает заданное слово.

    Вход: Привет                   Выход: тевирП

     

    3…Написать программу, которая считает сумму вводимых чисел. 

    Вход: 2 4

    Выход: 6

     

    1. Написать программу, которая возводит 2 в заданную степень n(n > 0).

    Вход: 10             Выход: 1024

     

    5. Задание в Windows Forms

    1)Сделать хранилище паролей в Windows Forms, в котором из выпадающего списка можно будет выбирать название сайта, а ниже будет по кнопке в явном виде выдаваться логин + пароль и еще по одной кнопке пароль будет попадать в буфер обмена.

     

    Пароли можно хранить, например, в .XML файле.

     

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

     

    2) А также сделать форму логина в это приложение перед тем, как получить логины и пароли от сайтов.

     

    3)Попробовать реализовать хранение данных в .XML файле в зашифрованном виде

  • Решение задач,-Программирование на языке высокого уровня

    Программирование на языке высокого уровня (1)

    Самостоятельные задания - 5 заданий

    Каждый студент выполняет все задания и в файле сдает на проверку

    1. Написать программу, которая считает сумму чисел до 1000.

    class Program {

    static void Main() {

    int sum = 0;

    int i;

    for (i = 1; i <= 5; i++)

    sum = sum + i;

    }

    Console.Write(sum);

    Console.ReadKey();

    }

    }

    2. Написать программу, которая переворачивает заданное слово.

    Вход:

    Привет

    Выход: тевирП

     

    class Program

    {

    static void Main() {

    string st = Console.ReadLine();

    string ts =

    for (int i = st.Length - 1; i >= 0; --i)

    ts = ts + st[i];

    }

    Console.WriteLine(ts);

    Console.ReadKey();

    }

    }

    3. Написать программу, которая считает сумму вводимых чисел.

    Вход:

    2

    4

    Выход:

    6

    class Program
    {

    static void Main() {

    int a, b;

    a = Convert.ToInt32(Console.ReadLine());

    b = Convert.ToInt32(Console.ReadLine());

    Console.Write(a + b);

    Console.ReadKey();

    4. Написать программу, которая возводит 2 в заданную степень п(п > 0).

    Вход: 10

    Выход: 1024

     

    class Program

    {

    static void Main()

    {

    int n;

    int otv = 1;

    n = Convert.ToInt32(Console.ReadLine());

    for (int i = 1; i<=n; i++)

    otv = otv * 2;

    }

    Console.Write(otv);

    Console.ReadKey();

    }

    }

    5. Задание в Windows Forms

    1)Сделать хранилище паролей в Windows Forms, в котором из выпадающего списка можно будет выбирать название сайта, а ниже будет по кнопке в явном виде выдаваться логин + пароль и еще по одной кнопке пароль будет попадать в буфер обмена.

    Пароли можно хранить, например, в .XML файле.

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

    2) А также сделать форму логина в это приложение перед тем, как получить логины и пароли от сайтов.

    3)Попробовать реализовать хранение данных в .XML файле в зашифрованном виде

  • Решить 1 лабораторную работу Состоящую из трёх задач
    1. Задана стоимость 1 кг яблок. Вывести стоимость 2.2, 2.4,. .., 3 кг яблок.
    2. Пользователь вводит с клавиатуры последовательно 5 действительных чисел, определить сумму всех четных элементов.
    3. Пользователь вводит с клавиатуры последовательно 5 действительных чисел, определить, верно ли, что число отрицательных элементов среди введенных больше числа положительных элементов.
  • Сделать 4 лабораторных работ

    Лабораторная работа №1. Классы и объекты: общие сведения, поля, методы

    Цель работы:

    Познакомиться с основой объектного подхода в языке C#, созданием объектов и классов.

    Задание для самостоятельной работы

    1. Объявите класс, который предназначен для ведения бухгалтерских записей на синтетическом счете;
    2. Для объявленного класса определите методы;
    3. Создайте несколько экземпляров класса и продемонстрируйте работу с ним: открытие счета, запись операций на счете, определение оборотов и конечного сальдо.

    Контрольные вопросы

    1) Что понимается под термином «класс»?

    2) Какие элементы определяются в составе класса?

    3) Каково соотношение понятий «класс» и «объект»?

    4) Что понимается под термином «члены класса»?

    5) Какие члены класса Вам известны?

    6) Какие члены класса содержат код?

    7) Какие члены класса содержат данные?

    8) Перечислите пять разновидностей членов класса специфичных для

    языка C#.

    Лабораторная работа №2. Классы и объекты: конструкторы и деструктуры

    Цель работы:

    Познакомиться с основой объектного подхода в языке C#, изпользованием конструктуров и деструкторов.

    Задание.

    Дополните класс Rectangle деструктором. Продемострируйте его работу Задание для самостоятельной работы

    1. Используя решения задания, приведенного в лабораторной работе №1, дополните класс конструктором по умолчанию и двумя конструкторами, принимающим аргументы.

    2. Используя решения задания, приведенного в лабораторной работе №1, дополните класс десконструктором.

    3. Создайте несколько экземпляров класса и продемонстрируйте работу конструкторов (в частности при открытии активного и пассивного счета) и деструктора.

    Контрольные вопросы

    1. Для чего используется конструктор?
    2. Что такое конструктор по умолчанию?
    3. Для чего используется деструктор?
    4. Когда запускается деструктор?

    Лабораторная работа №3. Классы и объекты: свойства. Инкапсуляция.

    Цель работы:

    Познакомиться с основой объектного подхода в языке C#, изпользованием свойств. Познакомиться с реализацией принципа инкапсуляции на языке С#.

    Задание для самостоятельной работы

    1. Используя решения задания, приведенного в лабораторной работе №1 и №2, дополните класс свойствами разных видов (только для чтения, только для записи, для записи и для чтения).

    2. Создайте несколько экземпляров класса и продемонстрируйте работу индексаторами

    Контрольные вопросы

    1. Что такое инкапсуляция?
    2. Для чего используется свойства?
    3. Как вызываются методы чтения и установки свойства?
    4. Каково содержание метода чтения свойства?
    5. Каково содержание метода установки свойства?

    Лабораторная работа №4. Классы и объекты: индексаторы

    Цель работы:

    Познакомиться с основой объектного подхода в языке C#, изпользованием индексаторов.

    Задание для самостоятельной работы

    1. Используя решения задания, приведенного в лабораторной работе №1,2,3, дополните класс индесатором

    3. Создайте несколько экземпляров класса и продемонстрируйте работу индесатора

    Контрольные вопросы

    1. Что такое инкапсуляция?
    2. Для чего используется свойства?
    3. Как вызываются методы чтения и установки свойства?
    4. Каково содержание метода чтения свойства?

    10.Каково содержание метода установки свойства?

     

     

     

    .