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);
}
}
}
Извинявайте, че днес Ви отнемам от времето с мойте задачи и Ви благодаря!
Днес благодарение на Вас осъзнах, че по-ефективно и по-ползотворно ще бъде ученето на един език, а не на два едновременно. Разбрах и колко е важно ползването на дебъгер, който не съм учила в Programing Basic и все още не съм дебъгвала нито веднъж. От утре ще си инсталирам MonoDevelop за Ubuntu и абсолютно всичко ще дебъгвам по няколко пъти. :)
Поразрових се малко из минали издания на Programing Basic. През 2016 г година курсът воден от Наков е бил с пет лекции повече- https://softuni.bg/trainings/1297/programming-basics-january-2016/internal , тоест учили са се: масиви, списъци, матрици, стрингове, речници, LAMBDA-изрази и LINQ, обекти и класове, както и ползването на дебъгер. :) Курсът, който днес се казва "Програмиране за начинаещи" и не включва тези основни пет лекции, през 2016 г. се казвал само "Кодиране за начинаещи". През 2016 в курса освен "Кодиране за начинаещи" е имало и втора част-"Програмиране за начинаещи" (тези допълнителни пет лекции). В днешно време тези пет лекции са изнесени вече във Фундаментал модула, но трудността на задачите в Бейсик аз лично смятам,че се е запазила.
Надявам се тази допълнителна информация да помогне на някого, който среща затруднения особено в последните задачи при подготовката си за изпита.
Поздрави и всичко най-хубаво!
И още веднъж-благодаря!