25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

984 Въведение в програмирането със C#<br />

Щяхме ли да напишем качествено решение, ако не бяхме подходили към<br />

задачата по рецептата, изложена по-горе? А какво би се случило, ако<br />

решаваме някоя много по-сложна и трудна задача, например да намерим<br />

оптимален път през сутрешните задръствания в София по карта на града с<br />

актуални данни за трафика? При такива задачи е абсолютно немислимо да<br />

подходим хазартно и да се хвърлим на първата идея, която ни дойде на ум.<br />

Първата стъпка към придобиване на умения за решаване на такива сложни<br />

задачи е да се научите да подхождате към задачата систематично и да<br />

усвоите рецептата за решаване на задачи, която ви демонстрирахме в<br />

действие. Това, разбира се, съвсем няма да ви е достатъчно, но е важна<br />

крачка напред!<br />

За решаването на задачи по програмиране си има<br />

рецепта! Ползвайте систематичен подход и ще имате<br />

много по-голям успех, отколкото ако карате по усет. Дори<br />

професионалистите с десетки години опит ползват в<br />

голяма степен описания от нас подход. Ползвайте го и вие<br />

и ще се убедите, че работи! Не пропускайте да тествате<br />

сериозно и задълбочено решението.<br />

Упражнения<br />

1. Използвайки описаната в тази глава методология за решаване на задачи<br />

по програмиране решете следната задача: дадени са N точки (N <<br />

100 000) в равнината. Точките са представени с целочислени<br />

координати (xi, yi). Напишете програма, която намира всички възможни<br />

хоризонтални или вертикални прави (отново с целочислени<br />

координати), които разделят равнината на две части, така че двете<br />

части да съдържат по равен брой точки (точките попадащи върху<br />

линията не се броят).<br />

2. Използвайки описаната в тази глава методология за решаване на задачи<br />

по програмиране решете следната задача: дадено е множество S от n<br />

цели числа и положително цяло число k (k

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!