Софтуерно Инженерство
Loading...
+ Нов въпрос
YanchoKostov avatar YanchoKostov 2 Точки

04. Game Number Wars и 06. High Jump - Programming Basics Online Exam - 9 and 10 March 2019

Здравейте, не мога да измисля тези две задачи.

04. Game Number Wars:

https://pastebin.com/Zfi0gbHy

Основно не мога да измисля как да се казва End game. Сигурно има и други грешки или цялата е.

https://judge.softuni.bg/Contests/Practice/Index/1538#6

06. High Jump 

https://pastebin.com/WMx5U7b6

Нещо сметката не излиза.

https://judge.softuni.bg/Contests/Practice/Index/1538#10

0
Programming Basics with C#
Borislav_Vulkov avatar Borislav_Vulkov 44 Точки
Best Answer

Здравей,
04. Game Number Wars - никъде нямащ условието за изход от програмта при въвеждане на команда "End of game", а когато се получи условие за "Number wars" програмата трбва да получи още две числа съответно за стойностите на картите един и другия играч, а това при теб го няма. Ето какво можеш да направиш: 
Аз лично предочитам да използвам един вечен цикъл  while (true) който да го прекъсна при определени условия. В него първо прочитам един string от конзолата и го роверявам дали е равен на End of game, ако не е то той е число и го порствам към интидйър. за стойноста на първата карта. След това прочим стойността на втората карта. Прави се една елементарна проверка за това коя карта е по висока и съответно точките на победителя при това раздаване се добавът към неговия резултат. Ако нито едно от условита :  if (card1 > card2) и else if (card2 > card1) не е изпълнено то картите са еднакви и влизама е последния else. Там отново се прочитат още веднъж картите на двамата играчи. Проверява се кой е победител и програмата пркключва защото се стига до break.

==========

using System;

namespace GameNumberWars
{
    class GameNumberWars
    {
        static void Main()
        {
            string name1 = Console.ReadLine();
            string name2 = Console.ReadLine();

            int points1 = 0;
            int points2 = 0;

            string command = string.Empty;

            while (true)
            {
                command = Console.ReadLine();
                if (command == "End of game")
                {
                    Console.WriteLine("{0} has {1} points", name1, points1);
                    Console.WriteLine("{0} has {1} points", name2, points2);
                    break;
                }
                int card1 = int.Parse(command);
                command = Console.ReadLine();
                int card2 = int.Parse(command);

                if (card1 > card2)
                {
                    points1 += Math.Abs(card1 - card2);
                }
                else if (card2 > card1)
                {
                    points2 += Math.Abs(card1 - card2);
                }
                else
                {
                    Console.WriteLine("Number wars!");
                    command = Console.ReadLine();
                    card1 = int.Parse(command);
                    command = Console.ReadLine();
                    card2 = int.Parse(command);
                    if (card1 > card2)
                    {
                        Console.WriteLine("{0} is winner with {1} points", name1, points1);
                    }
                    else
                    {
                        Console.WriteLine("{0} is winner with {1} points", name2, points2);
                    }
                    break;
                }
            }
        }
    }
}
==========

06. High Jump

условите на for цикъла трябва да е for (int i = n - 30; i <= n; i += 5), където n e височината.

==========

using System;

namespace HighJump
{
    class HighJump
    {
        static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            int l = 0;
            int counter = 0;

            for (int i = n-30; i <= n; i+=5)
            {
                l = int.Parse(Console.ReadLine());
                counter++;
                if (i == n && l > n)
                {
                    Console.WriteLine("Tihomir succeeded, he jumped over {0}cm after {1} jumps.", i, counter);
                    break;
                }

                if (l > i)
                {
                    continue;
                }

                if (l <= i)
                {
                    l = int.Parse(Console.ReadLine());
                    counter++;
                    if (i == n && l > n)
                    {
                        Console.WriteLine("Tihomir succeeded, he jumped over {0}cm after {1} jumps.", i, counter);
                        break;
                    }
                    if (l <= i)
                    {
                        l = int.Parse(Console.ReadLine());
                        counter++;
                        if (i == n && l > n)
                        {
                            Console.WriteLine("Tihomir succeeded, he jumped over {0}cm after {1} jumps.", i, counter);
                            break;
                        }
                        if (l <= i)
                        {
                            Console.WriteLine("Tihomir failed at {0}cm after {1} jumps.", i, counter);
                            break;
                        }
                    }
                }
            }
        }
    }
}
==========

Поздравй,
Боби

 

 

 

0
YanchoKostov avatar YanchoKostov 2 Точки

Благодаря ти много!

0