[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 26 Точки
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 204 Точки

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

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

0
vasildiavolo avatar vasildiavolo -1 Точки

Колега, идеята е да ползваме проверки, които да разберем като хората, а не материал, който не сме взели. Затова и по-правилното е да ползваме точно тях, а не 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 204 Точки

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

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

 

0
22/01/2018 15:34:42
ivanrk avatar ivanrk 65 Точки

Ето едно примерно решение: https://pastebin.com/cyG3ycCT

За водеща нула може да използваш {1:00} или {1:D2}

1
petarstoyanov98 avatar petarstoyanov98 47 Точки

Заповядай още едно решение: https://pastebin.com/qQH5yGXK

Надявам се да помогне. :)

0
Miroslav_Kisov avatar Miroslav_Kisov 60 Точки

Моя съвет е веднага след като въведеш часовете и минутите да добавиш въпросните 15 сек. и след това да се опиташ да си направиш алгоритъма. Виж ми кода и питай ако имаш въпроси? https://pastebin.com/vW4RRiMp.

1
ioannah avatar ioannah 18 Точки

 Благодаря на всички за помощта  laughlaugh

1
desislava777 avatar desislava777 159 Точки

Ето още едно кратко решение: https://pastebin.com/2KxrXxq4

1
shahonov avatar shahonov 3 Точки

Ето още едно решение.

https://dotnetfiddle.net/FVFH1J

По-дълго е , но е логически и алгоритмично по-добре построено. 

0