Тренировка и практические задания по C#

  • 693 Просмотры
  • Последний пост 07 марта 2017
Максим Пурас разместил пост 19 января 2017

Здравствуйте.

В данный момент изучаю курс "C# Стартовый". 

Вроде бы все понимаю, но не уверен, что задач в тренажере мне достаточно для закрепления материала уроков. 

Где можно еще посмотреть задачи для начального уровня C#? 

Отсортировать по: Стандартный | Последний | Голоса
Дмитрий Бурмистров разместил пост 14 февраля 2017

Добрый вечер, прохожу курс C# Starter. Внутри него пункт "Переменные и типы данных" и 3 задача: "Создайте две переменных типа double с именами op1 и op2 и начальными значениями 4.6 и -34.72 соответственно. Затем создайте переменные sum, dif, mul и div и присвойте им значения сумы, разницы, произведения и деления значений op1 и op2 соответственно. После этого выведите в консоль значения sum, dif, mul и div по очереди, каждое – с новой строки, в таком формате:

<операнд1> <знак операции> <операнд2> = <результат операции>. Используйте элементы форматирования."

Конкретно ссылка: http://skills.itvdn.com/#/examination/6c5fea45-22cd-485b-9614-3166bb2ee8b8

Вопрос в том, что не принимает никакой ответ по данному пункту, к примеру очевидный вариант не подходит, потерял много баллов, перепробовал все варианты, не понятно, что не так?

Вот мой ответ: 

        double op1 = 4.6;

        double op2 = -34.72;

        double sum = op1 + op2;

        double dif = op1 - op2;

        double mul = op1 * op2;

        double div = op1 / op2;

        Console.WriteLine("{0} + {1} = {2}", op1, op2, sum);

        Console.WriteLine("{0} - {1} = {2}", op1, op2, dif);

        Console.WriteLine("{0} * {1} = {2}", op1, op2, mul);

        Console.WriteLine("{0} / {1} = {2}", op1, op2, div);

Евгений Иванов разместил пост 01 марта 2017

Добрый вечер, прохожу курс C# Starter. Внутри него пункт "Переменные и типы данных" и 3 задача: "Создайте две переменных типа double с именами op1 и op2 и начальными значениями 4.6 и -34.72 соответственно. Затем создайте переменные sum, dif, mul и div и присвойте им значения сумы, разницы, произведения и деления значений op1 и op2 соответственно. После этого выведите в консоль значения sum, dif, mul и div по очереди, каждое – с новой строки, в таком формате:

<операнд1> <знак операции> <операнд2> = <результат операции>. Используйте элементы форматирования."

Конкретно ссылка: http://skills.itvdn.com/#/examination/6c5fea45-22cd-485b-9614-3166bb2ee8b8

Вопрос в том, что не принимает никакой ответ по данному пункту, к примеру очевидный вариант не подходит, потерял много баллов, перепробовал все варианты, не понятно, что не так?

Вот мой ответ: 

        double op1 = 4.6;

        double op2 = -34.72;

        double sum = op1 + op2;

        double dif = op1 - op2;

        double mul = op1 * op2;

        double div = op1 / op2;

        Console.WriteLine("{0} + {1} = {2}", op1, op2, sum);

        Console.WriteLine("{0} - {1} = {2}", op1, op2, dif);

        Console.WriteLine("{0} * {1} = {2}", op1, op2, mul);

        Console.WriteLine("{0} / {1} = {2}", op1, op2, div);

 

 

Сделай так: double op1 = 4.6, op2 = -34.72;

Евгений Иванов разместил пост 01 марта 2017

Запоролся на условных конструкциях ....

 

Задание: После объявления переменной letter допишите оператор выбора вариантов, который будет делать следующее: если в letter хранится значение ‘a’ – тогда вывести в консоль строку "Первая буква английского алфавита"; если значение ‘b’ – вывести "Вторая буква английского алфавита"; иначе – вывести "Другая буква". Для вывода на консоль используйте метод WriteLine.

Мое решение: char letter = 'b';

            switch(letter)
            {
            case ('a'): Console.WriteLine("Первая буква английского алфавита");
                break;
            case ('b'): Console.WriteLine("Вторая буква английского алфавита");
                break;
            default: Console.WriteLine("Другая буква");
                break;
            }

 

Программа не воспринимает, что не так ? =(((

 

И еще одно задание:

Найдите и исправьте ошибки в коде   static void Main(string[] args)
    {
        var a = 1;
        string state = "Состояние №";
        switch (a)
        {
            case (0): state += "0";
                break;
            case (1): state += "1";
                break;
            case (2): state += "2";
                break;
            default: state = "Неопределенное состояние";
                break;
        }
         Console.WriteLine(state);
    }   Какие еще ошибки в этом коде ? ....

Amigo Work разместил пост 01 марта 2017

Копируй код полностью когда задаёшь вопрос так как возможно где - то пропустил скобку, например, но этого на твоём куске не видно ...

class Program
{
    static void Main(string[] args)
    {
        char letter = 'b';
        switch(letter)
     {
        case 'a':
            Console.WriteLine("Первая буква английского алфавита");
             break;
        case 'b':
            Console.WriteLine("Вторая буква английского алфавита");
             break;
        default:
            Console.WriteLine("Другая буква");
             break;
     }       
       
    }
}

 

Во втором коде  без () например

case 0: state += "0";

Евгений Иванов разместил пост 01 марта 2017

Хех, спасибо !

И в том и в том случае скобки были лишними =D

Евгений Иванов разместил пост 07 марта 2017

Объясните плз чем плох мой код и код тренажера лучше.

 

Задание:

В классе MyClass реализуйте метод IsLuckyTicket, которая должна принимать на вход строковое представление шестизначного номера лотерейного билета, и возвращать значение, является ли он «счастливым» - то есть, равна ли сумма первых трех цифр сумме остальных трех. Например: “123006” – счастливый, а “345123” – нет. На любую некорректную входную строку метод должен возвращать значение false.

Вот мое решение (тренажер не воспринял):

 

 class MyClass
    {
        public bool IsLuckyTicket(string ticket)
        {
            if (ticket.Length == 6)
            {
                int sum = Int32.Parse(ticket);
                bool luck = sum % 10 + sum / 10 % 10 + sum / 100 % 10 == sum / 1000 % 10 + sum / 10000 % 10 + sum / 100000 % 10;               
                return luck;
            }
            else
                return false;
        }
    }

 Потом в подсказках прочитал что нужно 2 метода .... и вот код с 2-мя методами =)

class MyClass
    {
        bool Luck(string ticket)
        {
            int sum = Int32.Parse(ticket);
            bool luck = sum % 10 + sum / 10 % 10 + sum / 100 % 10 == sum / 1000 % 10 + sum / 10000 % 10 + sum / 100000 % 10;
            return luck;
        }

        public bool IsLuckyTicket(string ticket)
        {
            if (ticket.Length == 6)
            {
                return Luck(ticket);
            }
            else
                return false;
        }
    }

Разумеется тоже не правильно ....

А вот решение которое предложил тренажер ...

 

 public class MyClass
    {
        public static int SumDigits(int number)
        {
            string s = number.ToString();
            if (s.Length == 1)
                s = s.Insert(0, "00");
            else if (s.Length == 2) s = s.Insert(0, "0");
            return Convert.ToInt32(s[0].ToString()) + Convert.ToInt32(s[1].ToString()) + Convert.ToInt32(s[2].ToString());
        }
        public bool IsLuckyTicket(string ticket)
        {
            if (ticket.Length != 6)
                return false;
            int number;
            if (!Int32.TryParse(ticket, out number))
                return false;
            return (SumDigits(number / 1000) == SumDigits(number % 1000));
        }
    }

Close