Loading...

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

g.stoyanov avatar g.stoyanov 776 Точки

C# Basics Exams April 2014 - Решения

Откривам темата за да може да споделяме тук решенията си от изпита. Също така да може следващите випуски да откриват лесно информацията.

Ето ги и моите "нецензурирани" решения :)

C# Basics Exam 11 April 2014 Evening:

Task01Cinema

Task02Illuminati

Task03NewHowse

Task04CrossingSequences

Task05CatchTheBits

14
Programming Basics
Lili26 avatar Lili26 48 Точки

Колеги да помоля за малко помощ. Задача 2.Pairs от 12.04.2014 morning.

Моля ви, кажете ми къде греша и защо ми дава 0 точки в judge системата.

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

namespace Pairs
{
class Pairs
{
static void Main(string[] args)
{
string input = Console.ReadLine();
int[] masiv = input.Split(' ').Select(n => Convert.ToInt32(n)).ToArray();
List<int> result = new List<int>();
for (int i = 0; i < masiv.Count(); i++)
{
int f = masiv[i];
int l = masiv[i + 1];
int sum = f + l;
result.Add(sum);

i += 1;
}
int count = result.Count();
var max = result.Max();
var min = result.Min();
if (count !=1)
{
int maxDiff = max - min;

if (maxDiff ==0)
{
Console.WriteLine("Yes, value = {0}", max);
}
else
{

Console.WriteLine("No, maxdiff = {0}", maxDiff);
}
}
else
{
Console.WriteLine("Yes, value = {0}", max);
}
Console.ReadLine();
}
}
}

 

 

0
lostm1nd avatar lostm1nd 121 Точки

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

1
ayatanasov avatar ayatanasov 5 Точки

Колегата lostm1nd ти е обяснил едната грешка.По-големият проблем е, че последния Console.ReadLine() не трябва да го има. Заради него програмата ти не свършва и judge най-вероятно ти казва, че програмата  се изпълнява за повече от определеното максимално време.

1
Lili26 avatar Lili26 48 Точки

Благодрая за инфото колеги. smile

0
evstati.zarkov avatar evstati.zarkov 40 Точки

Здравейте,

Това са мойте решения на задачите от изпита na 14 вечерта:

Задача 1 -Inside The Building

Задача 2 - Student Cables

Задача 3 - Programer DNA

Задача 4 - Magic Car Number

Абсолютен начинаещ съм желая да споделите мнение с цел подобряване на уменията ми.

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

0
TodorovH avatar TodorovH 216 Точки

Колеги, 

може ли някой да постне линк към тестовете на задачите от изпита, че се утрепах да ги търся и нищо не намирам!

Благодаря предварително!

0
TodorovH avatar TodorovH 216 Точки

Благодаря! Това търсех!

0
yavor2000 avatar yavor2000 114 Точки

Ето и моите решения на всички задачи от изпитите. Аз се явих на изпита на 12.04.2014 сутринта, кода които качвам си е оригиналното ми решение, не съм го "пипал" след това :)

Kачил съм и условията на задачите. Всички задачи дават 100/100 точки в judge.softuni.bg

Изпит 10.04.2014 сутрин:
01.JoroFootbаller

02.HalfSum

03.SunGlasses

04.NineDigits

05.BitsInverter

 

Изпит 10.04.2014 вечер:

01.Valleyball

02.OddOrEvenSum

03.Eclipse

04.HayvanNumber

05.BitsUp

 

Изпит 11.04.2014 сутрин:

01.WorkHours

02.SumOfElements

03.Explorer

04.MagicString

05.BitSifting

 

Изпит 11.04.2014 вечер:

01.Cinema

02.Illuminati

03.NewHouse

04.CrossingSequences

05.BitsExtractor

 

Изпит 12.04.2014 сутрин:

01.Triangle

02.Pairs

03.House

04.MagicDates

05.BitKiller

 

Изпит 12.04.2014 вечер:

01.ExamSchedule

02.OddEvenElement

03.Arrow

04.FiveSpecialLetters

05.BitRoller

 

Изпит 14.04.2014 сутрин:

01.FruitMarket

02.BiggestTripple

03.WineGlass

04.LongestWord

05.BitShooter

 

Изпит 14.04.2014 вечер:

01.InsideBuilding

02.StudentCables

03.ProgrammerDNA

04.MagicCarNumbers

05.BitFlipper

 

4
ViValDam avatar ViValDam 15 Точки

Яворе би ли обяснил решението си на Бит Флипер - последната задача от 14 вечерта?

Откъде идва тази седмица и защо се ползва логическа импликация и как ?

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

Битовите орперации са са ми много интересни, затова питам .

1
yavor2000 avatar yavor2000 114 Точки

@ViValDam

7-цата идва когато трябва да "обърна" побитово три 1-ци 111(2) на три нули 000(2) (защото 7(10) е 111(2)), а XOR-ването (бях забравил че в логиката на български се нарича "импликация", което звучи доста complicated) на 111(2) с 111(2) дава 000.
Когато имаме три последователни нули - 000(2), трябва да ги OR-ваме със същите 111(2), т.е. 7(10) за да ги обърнем на 111(2).

След което на моята тройка tripple задавам стойности -1, -2, и -3, за да не направят нова "тройка" още със следващия бит, ако съвпадат по стойност.

Така решението ми става "по-елегантно" (по-кратко) което много ми харесва, и което не постигнах с всички задачи :)

0
ViValDam avatar ViValDam 15 Точки

Благодаря smile!

Аз се чудех , откъде пък изкочи 7 ,като местехме или номера или 1 .

 

Авторското решение в Джадж е също със 7 и импликация.

Ето го:

 

using System;

class BitFlipper
{
static void Main()
{
ulong n = ulong.Parse(Console.ReadLine());
int endBit = 62;
while (endBit > 0)
{
endBit--;
ulong last3Bits = (n >> endBit) & 7;
if (last3Bits == 0 || last3Bits == 7)
{
n = n ^ ((ulong)7 << endBit);
endBit -= 2;
}
}

Console.WriteLine(n);
}
}

 

А това е моето с 1 :

using System;
class BitFlipper
{
static void Main()
{
ulong number = ulong.Parse(Console.ReadLine());
ulong [] mask = new ulong[64];
int [] pos = new int[64];
ulong [] bitValue = new ulong[64];

int i;
for (i = 63; i >= 0; i--)
{
//getting bit values
pos[i] = i;
mask[i] = 1ul << pos[i];
bitValue[i] = (ulong)(number & mask[i] ) >> pos[i];
}

i = 63;
while (i >= 2)
{

if (bitValue[i] == 1 && bitValue[i-1] == 1 && bitValue[i-2] == 1)
{
number = (ulong)(number & (~ mask[i]));
number = (ulong)(number & (~ mask[i-1]));
number = (ulong)(number & (~ mask[i-2]));
i = i-3;
}

else if (bitValue[i] == 0 && bitValue[i-1] == 0 && bitValue[i-2] == 0)
{
number = (ulong)(number | mask[i]);
number = (ulong)(number | mask[i-1]);
number = (ulong)(number | mask[i-2]);
i = i - 3;
}
else// if not 000 and not 111 next pos
{
i--;
}
}
Console.WriteLine(number);
}
}

 

Значи , ако сменяме групи от 11 , ще е 3 , четворки 1111 ще  е 15, петици 11111 -  31 и тн.

 

Разбрах - мерси !smile

1
design.angelova avatar design.angelova 69 Точки

Здравейте,

реших да започна с решаването на задачите от изпитните дни поетапно. Зная, че повечето колеги са направили същото, за това много бих се радвала, ако всеки споделя решенията си и дава обяснения на по трудните задачи. Ето го ден първи 10.04 Morning: 

1. FootballPlayer

2. HalfSum

3. SunGlasses

4. Nine-DigitMagicNumbers

5. BitsInverter

 C# Exam 10April Evening

1. Volleyball

2. OddEvenSum

3. Eclipse

4. HayvanNumbers

5. BitsUp

3
yavor2000 avatar yavor2000 114 Точки

Браво, много ми хареса вашето решение на BitInverter - много по-елегантно от моето решение :)

1
ViValDam avatar ViValDam 15 Точки
Като гледам така ,на око ,решенията - в първите дни задачите са били много по-прости от нашите на 14 вечерта
1
ViValDam avatar ViValDam 15 Точки

Ето ги и моите задачи 14 Април  - вечерта - не успях да реша всичките на изпита - просто все още съм много бавна и ни ми стигна времето, пък и неизвестно защо се притисних ужасно cry - дореших си ги в къщи . По 100 точки са всичките.

Inside the building

http://pastebin.com/qDdYNThi

StudentCables

http://pastebin.com/8tjhSL1R

Prgrammer DNA - решението ми е без стринг-билдъри, ползвах   АСКИ-КОД на буквите .

http://pastebin.com/8BV3GRUf

Magic Cars Numbers

http://pastebin.com/EXXwFSE5

Bit Flipper

с побитови операции

http://pastebin.com/HEHcVqsc

 

 

 

 

2
Vacheva avatar Vacheva 154 Точки

Здравейте колеги,

Не успявам да се справя с решението на 04.Nine Digit Magic Numbers. В системата изкарвам 46/100. Прегледах решенията тук, но от тях не успявам да разбера къде ми е пропуска. В Output получавам повече числа от тези в примерите. Какво пропускам?

Спазени условия в решението ми:

  • Всяко число е от 9 цифри.
  • Всяка цифра е от 1 до 7 вкл.
  • abc < def < ghi
  • ghi - def = def - abc = deff (така е изградено решението) това много ме заблуди :))
  • a+b+c+d+e+f+g+h+i = sum

От условието не ми става ясно ако deff = 1000 (максимумът за deff) какви биха били цифрите в числото. И ако sum = 100, какви ще са цифрите в числото, при положение че 9 цифри * 7 = 63 и това ми изглежда логичния максимум за sum? undecided

Edit: Намерих си пропуските -

  • липсваше проверка дали цифрите са само от 1 до 7(от galinata :) thx),
  • проверка за дължината на всяко число дали е 9 цифри.

Условие

Решението

0
galinata avatar galinata 3 Точки

Включваш и нулата като цифра в  числото, а цифрите трябва да са между 1 и 7.

1
Vacheva avatar Vacheva 154 Точки

 galinata  благодаря,

m = 0 е индекса на numberStr., numberStr[m]. Стойността му се взима от числото, т.е. 

ако числото е 123456789 като стринг, а m = 0

numberStr[m] = 1

 

пп:     И при мен има повече от дадените резултати, също верни според условието. За това  се чудя какво пропускам?!  smile  

А за да не ми е толкова тромаво решението направо печатам стринга.

0
galinata avatar galinata 3 Точки

Ако погледнеш числата, които се получават накрая ще видиш, че съдържат цифри 0, 8 и 9. Това имам впредвид. И аз направих подобна грешка :)

1
TrifonApov avatar TrifonApov SoftUni Team Trainer 131 Точки

Здрасти! Карам C#Basic-Септември. Стигнах и аз то този вариант от изпит. За втората задача и аз получавам 93/100. Търся тестовете за да видя при какви входни данни гърми, но не мога да ги намеря. Ти успял ли си да намериш решение?

0
Reath avatar Reath 188 Точки

Здравей!
 От тук можеш да изтеглиш тестовете: C# 0 март месец - вариант 6

При мен лично гърмеше 15ти тест, който е празен input и трябва да изведеш "OddSum=No, OddMin=No, OddMax=No, EvenSum=No, EvenMin=No, EvenMax=No"

1
TrifonApov avatar TrifonApov SoftUni Team Trainer 131 Точки

Благодаря!

В крайна сметка и аз го намерих. Намерих как да вкараш празният input.

Един if за проверка дали е празно и тогава да изкара output-a с всичко =No

 

string[] splittednumbers = allnumbers.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);

нето и моето решение: http://pastebin.com/qmN6gaDG

 

В judge-a получи 100/100.

0
25/10/2014 15:06:56
GoShow avatar GoShow 595 Точки

Извинявайте колеги, ако някъде случайно има вече подобен въпрос. Случайно някой да може да ми даде линк за тестовете на задачите? Искам да ги решавам с Java и няма как да ги проверявам в judge-а поне засега. Благодаря предварително!

0
dentia avatar dentia 362 Точки

Хаха, и аз с това съм се захванала, само че с тези от бгкодера. Мисля, че на някоя от страниците на 50++ YaneYo беше качил архивите на бгкодерските с тестовете.

1
GoShow avatar GoShow 595 Точки

Кой друг, ако не ти ще удари едно рамо! :) Нямаше да се сетя да се занимавам с bgcoder толкова съм се вманиачил в judge.softuni :). Много мерси!!!!

p.s. утре сме на кръчма, иначе ще те докладвам tongue-out

 

1
dentia avatar dentia 362 Точки

Хаха, значи почти задължително ще дойда да ударя един сок. smile

1
Valleri avatar Valleri 304 Точки

Programmer DNA: 
http://pastebin.com/0QS7AWdW

with 3 bool variables. I could classify it as "elegant" solution : ) well , kind of...
I had an idea to solve it with method that takes next letter to print and a counter that will go 1, 3 ,5 , 7 and inside there will be 7 if statements and ....yes...glad I reconsidered that :)
p.s. sorry but it appears that windows 8 doesn`t have phonetic keyboard and I`m really slow typing in BG

Magic Car Numbers:
Majic Numbers

B
it Flipper:
http://pastebin.com/5ehS8jeL

Бит Инвертер: - без побитови операции - с стрингбилдер :)
http://pastebin.com/61wnCrGw

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