Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Elena123456 avatar Elena123456 235 Точки

06. Name Game - Programming Basics Online Exam - 6 and 7 July 2019 C#

Здравейте, за жалост продължават да ме измъчват задачите със сложните цикли дори и след завършването на курса Programing Basic. Но пък вече определено са ми станали едни от любимите. Този път ще се огранича само до кода на C#, без този на Java Script. Моля, ако някой разполага с повече време и има желание, нека да погледне кода ми. Този път програмата не ми се чупи, като всички останали пъти, но дава повече точки от очакваното и Judgе  20/100 https://judge.softuni.bg/Contests/Practice/Index/1745#10 . :)

Предварително благодаря и ме извинете.

 

Задача 6. Игра на имена

Иван е измислил нова игра в която да се състезава със своите приятели. Вашата задача е да напишете програма за играта. Всеки играч написва името си, след това за всяка една буква от името си написва по едно цяло число, ако числото съвпадас ASCII стойността на съответната буква, играчът получава 10 точки, в противен случай, получава само 2 точки. Победител е играчът с най-много точки в края на играта. В случай, че двама играчи имат равен брой точки, печели този, който втори е достигнал резултата.

Вход

До получаване на командата "Stop"се чете по един ред:

•Име на играча с дължина n-текст За всеки играчсе четат n на брой реда:

•число–цяло число в интервала[0...127]

Изход

Да се отпечата един ред в следния формат:

•"The winner is{името на победителя}with {точките на победителя}points!"

 


  using System;
                    
public class Program
{
    public static void Main()
    {
    string name=Console.ReadLine();    
    int n= int.Parse( Console.ReadLine());
    int charLetter=0;
    int currentScore=0;
    int MaxScore=0;    
    string WinnerName=" ";
        
    while(name!="Stop") {
     for(int i=0;i<name.Length;i++) {    
        charLetter=(int)name[i];
        
        if((int)name[0]==n) {
        currentScore=currentScore+10;
        }
         else if((int)name[0]!=n) {
         currentScore=currentScore+2;
         }
    
        if(currentScore>MaxScore) {
            MaxScore=currentScore;
            WinnerName=name;
        }
        else if(currentScore==MaxScore) {
            MaxScore=currentScore;
            WinnerName=name;
        }
     }
        currentScore=0;
        name=(Console.ReadLine());
    }
        
    if(name=="Stop") {
    Console.WriteLine("The winner is {0} with {1} points!",WinnerName,MaxScore);
 
    }
}
}

 

 

 

Тагове:
0
Programming Basics 02/06/2020 19:47:21
nickwork avatar nickwork 657 Точки
Best Answer

Пак малко си дебъгвала :)

 

using System;

public class Program
{
    public static void Main()
    {
        string name = Console.ReadLine();
        int charLetter = 0;
        int MaxScore = 0;
        string WinnerName = string.Empty; // същото е като string = ""; но е по ...прилежно

        while (name != "Stop")
        {
            int currentScore = 0;

            for (int i = 0; i < name.Length; i++)
            {
                charLetter = (int)name[i];

                int n = int.Parse(Console.ReadLine()); // тук четем число, а не в самото начало, за да отговаря на всяка буква!

                if (charLetter == n)
                {
                    currentScore = currentScore + 10;
                }
                else
                {
                    currentScore = currentScore + 2;
                }

                if (currentScore >= MaxScore) // >= брез равно дава 90/100
                {
                    MaxScore = currentScore;
                    WinnerName = name;
                }
            }

            name = (Console.ReadLine());
        }

        Console.WriteLine("The winner is {0} with {1} points!", WinnerName, MaxScore);
    }
}

1
Elena123456 avatar Elena123456 235 Точки

Извинявайте, че днес Ви отнемам от времето с мойте задачи и Ви благодаря!

Днес благодарение на Вас осъзнах, че по-ефективно и по-ползотворно ще бъде ученето на един език, а не на два едновременно. Разбрах и колко е важно ползването на дебъгер, който не съм учила в Programing Basic и все още не съм дебъгвала нито веднъж.  От утре ще си инсталирам MonoDevelop за Ubuntu и абсолютно всичко ще дебъгвам по няколко пъти. :)

Поразрових се малко из минали издания на Programing Basic. През 2016 г година курсът воден от Наков е бил с пет лекции повече- https://softuni.bg/trainings/1297/programming-basics-january-2016/internal , тоест учили са се: масиви, списъци, матрици, стрингове, речници, LAMBDA-изрази и  LINQ, обекти и класове, както и ползването на дебъгер. :) Курсът, който днес се казва "Програмиране за начинаещи" и не включва тези основни пет лекции,  през 2016 г. се казвал само "Кодиране за начинаещи". През 2016 в курса освен "Кодиране за начинаещи" е имало и втора част-"Програмиране за начинаещи" (тези допълнителни пет лекции). В днешно време тези пет лекции са изнесени вече във Фундаментал модула, но трудността на задачите в Бейсик аз лично смятам,че се е запазила.

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

Поздрави и всичко най-хубаво!

И още веднъж-благодаря!

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