Loading...
Terziyski avatar Terziyski 54 Точки

Programming Fundamentals - Problem 02 - Vapor Store (C# More Exercises)

Здравейте, тази задача дава 100 / 100 , въпросът ми е как мога да намаля този код , тъй като не мисля че е толкова компактна със всичките тези проверки (if-ове)

Решение на задачата : https://pastebin.com/kfjaB37y

Ще се радвам да видя различни  гледни точки :) 

 

 

Тагове:
0
Programming Fundamentals
julia.petkova avatar julia.petkova 10 Точки

Здравей!

Не съм измислила нещо по-компактно, но мога да предложа вариант със switch.

0
Rumyanarusimova avatar Rumyanarusimova 20 Точки

Най кратко е решението с речник.Има го качено от колега във форума.

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

на работа съм а го нямам решението в pastebin. На кратко, правиш един речник string,int стринга- ти е името на играта  int е цената

и после правиш една if проверка.или както там решиш. като с ключ-а string си давиш цената нещо от сорта на :

int balance=int32.Parse(Console.ReadLine());

string game =Console.ReadLine();

dictionary games = dictionary{"roverwatch",15;"farcry",20; };

do

{

if(games.Contain(game))

{

(balance>=games.Value)?Console.WriteLine("Bought game") :Console.WriteLine("Too expensive");

balance - =game.Value;

}

}

while(game!="gametime")

 

това е ..сигурно не съм го написал точно и коректно но това е логиката.Иначе колегата хубаво ви е казал за речници но сме още в началото на курса а, те са към края вие тепърва ще се сблъсквате с различните типове масиви

 

0
29/05/2017 12:14:41
Terziyski avatar Terziyski 54 Точки

Здравей,

Аз за речници се сетих като опция , идеята беше дали нещо по различно можеше да се направи с взетия материал до момента :) ....освен switch-case и if-else..

Благодаря за отговорите :) 

Успех!

0
ddrajko avatar ddrajko 5 Точки

А това е моето решение ама ми дава 50/100

Някой да знае защо?

 

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

namespace _02.Vapor_Store
{
    class Program
    {
        static void Main(string[] args)
        {
            var totalmoney = double.Parse(Console.ReadLine());
            var money = totalmoney;
            var games = "";
            var result = new Dictionary<string, double>();
                
            result["OutFall 4"] = 39.99;
            result["CS: OG"] = 19.99;
            result["Zplinter Zell"] = 19.99;
            result["Honored 2"] = 59.99;
            result["RoverWatch"] = 29.99;
            result["RoverWatch Origins Edition"] = 39.99;

            while (games != "Game Time")
            {

                if (result.ContainsKey(games))
                {
                    if (result[games] > money)
                    {
                        Console.WriteLine("Too Expensive");
                    }
                    else
                    {
                        money -= result[games];
                        Console.WriteLine("Bought "+games);
                    }
                }
                else if(games!="")
                {
                    Console.WriteLine("Not Found");
                }
                if (money==0)
                {
                    Console.WriteLine("Out of money!");
                    games = "Game Time";
                    break;
                }
                games = Console.ReadLine();
                

            }
            if (money>0)
            {
                Console.WriteLine($"Total spent: ${totalmoney-money}. Remaining: ${money}");
            }

        }
    }
}
 

0
IvanSpiridonov avatar IvanSpiridonov 17 Точки

ddrajko ,

Общо взето ти е вярна логиката, форматирай крайният резултат

${totalmoney - money:f2}. Remaining: ${money:f2}

има и още нещо сбъркано, но сега няма време да дълбая повече.

Аз съм я решил с взетия досега материал така:

https://pastebin.com/aHWStkNS

0
04/06/2017 13:10:51
IvanTs avatar IvanTs 4 Точки

https://pastebin.com/wUksMgT3 това е моето решение с кейсове в безкраен цикъл ... не е много добро спрямо другите ама нали искаш различни гледни точки :) то и аз затова съм тука :А

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.