• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

Задачка Задача на кодинг №2. Условный оператор


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 174
В предыдущей части, возможно для кого-то показалась задача сложной, есть ещё две задачи простые:


1) С клавиатуры вводятся два числа – количество забитых голов хозяевами и гостями в футбольном матче. Вывести на экран результат игры – победили хозяева/гости/ничья.

2) Напишите программу, которая будет проверять число на кратность 3-м и 7-ми (это числа 21, 42, 63…). Вывести на экран соответствующее сообщение.

Решёние:

1)Простецкая, кому интересно сами можете решить, мне лень...Dmeh-Smeh-Smeh!!!

2)Придумал интересное для себя решение в С#, интересно что в одну строчку при помощи так-называемого тернарнго оператора «?:», призван что-бы уменьшить код, в целом-да уменьшил, кстати в классическом си, что-то не помню такой оператор, короче вот как решил:

Код:
Console.Write((a % 3 == 0) && (a % 7 == 0) ? "Число кратно 3 и 7":"Число не кратно 3 и 7");

Число "а", должно вводится с консоли, компилятор сожрал норм. !WinkSmile
 

Антоха

Уважаемый пользователь
Форумчанин
Регистрация
26.12.2012
Сообщения
2 780
Репутация
4 652
Простецкая, кому интересно сами можете решить, мне лень...
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
        Console.WriteLine("Голы забитые хозяевами поля:");//выводим надпись (взял из первой задачки:)
        var Master = Convert.ToInt32(Console.ReadLine());//var как и в делфи для обозначения переменной,ToInt32 нихера в принципе не делает (нагуглил)
        Console.WriteLine("Голы забитые гостями:");
        var Guests = Convert.ToInt32(Console.ReadLine());
        if (Master > Guests)//if и else тоже когда то применял в делфи и сюда катит,если у хозяев больше забитых голов,то выводим надпись о победе хозяев
        Console.WriteLine("Победили хозяева поля");
        else if (Master < Guests)
        Console.WriteLine("Победили гости");
        else
        Console.WriteLine("Ничья");
        Console.WriteLine("Итог игры");
        Console.WriteLine("Хозяева: " + Master + "/"+" Гости: " + Guests );
        Console.ReadKey();
        }
    }
}
Снимок.PNG

Ну ещё можно убрать лишние юзинги (ведь чем меньше хлама тем лучше?). Можно прямо через контекстное меню в visual studio-"удалить ненужные директивы using"
Код:
using System;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
        Console.WriteLine("Голы забитые хозяевами поля:");
        var Master = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Голы забитые гостями:");
        var Guests = Convert.ToInt32(Console.ReadLine());
        if (Master > Guests)
        Console.WriteLine("Победили хозяева поля");
        else if (Master < Guests)
        Console.WriteLine("Победили гости");
        else
        Console.WriteLine("Ничья");
        Console.WriteLine("Итог игры");
        Console.WriteLine("Хозяева: " + Master + "/"+" Гости: " + Guests );
        Console.ReadKey();
        }
    }
}
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 174
var в С# не советую использовать, дело в том-что в этой среде из описания, можно как явно указывать переменную, так и не явно с помощью var....

В случае с var компилятор сам определит тип, НО это может-быть вредно при написании больших программ, кстати в пхп также можно тип переменной и неписать...

Но я обычно всегда определяю тип переменной, т.е. лучше так:

int Master = Convert.ToInt32(Console.ReadLine());

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

Console.ReadLine() - Возвратит строковый тип (String), поэтому если нужно работать с числом, нужно Convert.ToInt32 - Это целочисленный тип данных, как-то так...
 

0x0

VIP
VIP
Регистрация
01.09.2016
Сообщения
11
Репутация
8
Jabber
var в С# не советую использовать, дело в том-что в этой среде из описания, можно как явно указывать переменную, так и не явно с помощью var....

В случае с var компилятор сам определит тип, НО это может-быть вредно при написании больших программ, кстати в пхп также можно тип переменной и неписать...

Но я обычно всегда определяю тип переменной, т.е. лучше так:

int Master = Convert.ToInt32(Console.ReadLine());

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

Console.ReadLine() - Возвратит строковый тип (String), поэтому если нужно работать с числом, нужно Convert.ToInt32 - Это целочисленный тип данных, как-то так...
по поводу var, его нужно использовать тогда, когда тип переменной сразу виден:
var sb = new StringBuilder();
ИМХО, нет смысла писать StringBuilder sb = new StringBuilder();
запись получается локаничнее. кроме того, var в C# можно использовать только при объявлении с присвоением: нельзя написать var a; и задать значение позднее.
Кроме того вот типичный пример, когда это осложняет жизнь, допустим ваш метод получает словарь из фабрики прокси :
Dictionary<int,Proxy> dict = Proxy.GetDictionary(), если вы работали внутри Proxy со статическими Dictionary то вскоре обнаружите, что они зависают при многопоточном доступе, и решите сменить на ConcurrentDictionary из TPL в случае с var вам возможно больше ничего не придется менять, только перекомпилить, а в случае с явным заданием типа придется замениить во всех местах
ConcurrentDictionary<int,Proxy> dict = Proxy.GetDictionary()

явно задавать тип имеет смысл, когда он не очевиден из названия вызываемого метода Guid[] varsionsIds= items.Select(a=>a.Version).ToArray()
 

d1ablyIIIka

Пользователь
Первый уровень
Регистрация
24.03.2018
Сообщения
2
Telegram
Я не понял что за хрень сверху написана типа код. Как подсказка она только в тупик увела. Долго морочился но вот пример решения 2 задачи. 1 все сделали я думаю по аналогии материала с обучения!
 

d1ablyIIIka

Пользователь
Первый уровень
Регистрация
24.03.2018
Сообщения
2
Telegram
namespace DZ
{
class Program
{
static void Main(string[] args)
{
//2) Напишите программу, которая будет проверять число на кратность 3-м и 7-ми
//(это числа 21, 42, 63…). Вывести на экран соответствующее сообщение. Console.WriteLine((ch % 3 == 0) && (ch % 7 == 0)) ? "получившиеся числа :" : " нет таких чисел ";
int a;
Console.WriteLine("Как вы думаете какое число кратно и 3 и 7?)");
a = Convert.ToInt32(Console.ReadLine());
if ((a % 3 == 0) && (a % 7 == 0))
Console.WriteLine("Правильно, это одно из таких кратностей");
else
Console.WriteLine("Вы ощиблись");

Console.ReadKey();
 
Верх Низ