[Programming Basics] [C#]  Логически проверки - 15. Time + 15 Minutes

[Programming Basics] [C#] Логически проверки - 15. Time + 15 Minutes

ioannah avatar ioannah 18 Точки

[Programming Basics] [C#] Логически проверки - 15. Time + 15 Minutes

  Това е решението ми - 47/100.:

https://pastebin.com/Gkhawd0j

Може ли някой да ми каже по друг начин как може да се направи тази задача?Най-вече какви са най-удобните варианти за слагане на нула пред число?

 Другият ми въпрос е как да  накарам джъджа да ми дава 100/100 ?? 

Тагове:
1
Основи на програмирането 17/07/2017 23:19:49
VasilKotsev avatar VasilKotsev 33 Точки
Best Answer

Ето и моето решение изцяло с DateTime:

100/100 Judge

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;

namespace Timeplus15minutes
{
    class Program
    {
        static void Main(string[] args)
        {

            int hrs_input = int.Parse(Console.ReadLine());
            int min_input = int.Parse(Console.ReadLine());

            string both = (hrs_input.ToString() + ":" + min_input.ToString("00"));
            
            DateTime chasiminuti = DateTime.ParseExact(both,"H:mm",CultureInfo.InvariantCulture);
            DateTime after15 = chasiminuti.AddMinutes(15);

            Console.WriteLine(after15.ToString("H:mm"));
 


        }
    }
}

 

 

1
TeodorStefanovPld avatar TeodorStefanovPld 352 Точки

от всички решения тук само @VasilKotsev се е сетил къде е истината,тея цикли проверки дето някои сте ги въртяли са ужас...

datetime или дори в случая timespan са наи-удобното решение.

0
vasildiavolo avatar vasildiavolo 4 Точки

Колега, идеята е да ползваме проверки, които да разберем като хората, а не материал, който не сме взели. Затова и по-правилното е да ползваме точно тях, а не DateTime. Никой не спори кое е по-удобното, но не се търси по-удобно, а спрямо материала. То за някоя от другите задачи също вероятно има елементарно решение, както switch-а за конвертора на валути/мерни единици, ама не сме го взели, така че се борим с взетото като материал. Дори в подсказката на задачата е описано да се правят проверки.

И за да не е само офтопик, ето и моето решение, което даде 100/100 и смятам, че е първо елементарно, второ е направено само с изучения до тук материал.


            double inHour = double.Parse(Console.ReadLine());
            double inMinutes = double.Parse(Console.ReadLine());
            double hours = inHour;
            double minutes = inMinutes + 15;


            if (hours <= 22 && minutes >= 60)
            { hours += 1;
               minutes = minutes - 60; }
            else if (hours >= 23 && minutes >= 60)
            { hours = hours - hours;
                minutes = minutes - 60; }
           

            Console.WriteLine(hours + ":" + minutes.ToString("00"));

0
22/01/2018 13:29:25
TeodorStefanovPld avatar TeodorStefanovPld 352 Точки

Първо това не са цикли а логически проверки :D второ на лекцията 100% са споменали и datetime timespan и тн. 3то ако чакате да се научите само от лекции успех иска се адски много ровене и четене сами. Затова от самото начало се повтаря,че английския е задължителен.

И последно имаш начин по който да направиш нещата бързо и лесно и друг при който може да изгърмиш някоя от проверките. Познаи кои е правилния начин?

 

0
22/01/2018 15:34:42
vasildiavolo avatar vasildiavolo 4 Точки

Няма нужда да се държиш наставнически с първо, второ, трето... Разбрахме, че разбираш нещата и без такова отношение. Въпросът е че изглежда аз, а и други като мен, не ги разбират все още толкова. И да те питам, като решим една от най-сложните задачи за проверки със съвсем друг метод, утре като ни се наложи да ползваме тези проверки, как ще сме ги разбрали. Не е въпросът да си мерим знанията тук, а да отработим наученото. Затова и хората от СофтУни и в подсказката на задачата са го казали - да правим проверки, а не да търсим най-правилния начин, какъвто очевидно има. То и copy-paste на чуждо решение ще е още по-лесно, ама идеята е да си напънем сивото вещество.  Мерси. 

0
Lacunae avatar Lacunae 1 Точки

Според мен и двамата сте прави. Трябват и знания, и мислене.

0