Skip to content

Category: programmingSyndicate content

Иван Ванков

 Параграф 22 с Google

   от Иван Ванков


Ако не знаете какво е „Параграф 22“ това е нещо като да си забравиш ключовете в колата, или за да си инсталираш winzip ти трябва winzip за да разархивираш инсталатор. Всъщност романа на Джоузеф Хелър е много повече от това, но той е станал нарицателно за всякакви затворени цикли, най-вече в бюрокрацията.

Като всеки що годе нормален човек и аз имам gmail, няма как иначе да имаш youtube канал и какво ли още не, и преди години реших да видя мога ли да правя пари от AdSence, оказа се, че не може, поне не и за простосмъртните. Една седмица преди да ми платят ми блокираха акаунта без обяснение. Това стана преди 4-5 години. Майната му си казах, но после разбрах, че не само при мен правят този номер. Но не и това е проблема, проблема е, че в момента аз съм с блокиран AdSence акаунт, който автоматично ми блокира и възможността за монетизиране на видеа от youtube.

 

C, PHP, VB, .NET

В това упражнение се разглеждат структури от данни. Използват се ArrayList, LinkedList и HashMap.

(решена) Задача 1. Реализирайте enum Diagnosis по следния начин:

enum Diagnosis{
    NOTSICK(10.0), LITTLESICK(20.0), SICK(50.0), VERYSICK(200.0);
    final double cureCost;
    Diagnosis(double cureCost){
        this.cureCost = cureCost;
    }
}

Така след като сте създали например обект “Diagnosis sickness = Diagnosis.SICK;” ще можете да видите колко струва лечението ѝ чрез достъпване на променливата sickness.cureCost;

 

C, PHP, VB, .NET

 Изброим тип (enum) в Java

   от C, PHP, VB, .NET


Както повечето други езици, и в Java присъства изброим тип. Чрез него можем да създаваме собствени типове данни – такива с предварително предефинирани стойности. Реално зад ключовата дума „enum“ стои реализиран клас, т.е. изброимите типове всъщност са обекти. Ето и нашия първи пример – създаваме изброим тип „оценка“ с шест възможни стойности:

public class EnumTest{
   public static void main(String[] args){
      Ocenka x = Ocenka.SLAB;
   }
}

enum Ocenka{
 SLAB, SREDEN, DOBAR, MNOGO_DOBAR, OTLICHEN;
}

Стойностите обикновено ги пишем с главни букви, за да се екцентира върху това, че са константи, а не променливи. Това обаче не е всичко – enum типовете могат да съдържат методи. Например :

 

C, PHP, VB, .NET

Множествата са по принцип по-прости структури спрямо речниците. Те се базират на един основен интерфейс Set. Докато при речниците имахме комбинации от Key и Value, при множествата има само един единствен елемент, който е едновремено Key и Value. Или казано по друг начин множествата са речници при които всяко Value се използва за Key само за себе си. Веднага можете да се досетите, че е много лесно един Set да бъде реализиран чрез Map – например ако подавате един и същи обект за Key и Value в който и да е Map, той ще работи като Set.

 

C, PHP, VB, .NET

Map е един от често използваните интерфейси в Java. Чрез него се реализират т.нар. „речници“. В речниците имаме записани двойки от стойности (ключ, стойност). Целта е да успяваме много бързо да намираме стойността, търсейки по чрез нейния ключ. Много често по интервюта за работа се задават въпроси свързани с класове, които го имплементират.

1. Интерфейсът Map

Преди да разгледаме конкретните реализации, трябва да се запознаем с основния интерфейс на речниците. Той работи с генерични типове и приема два параметъра: Map:

 

C, PHP, VB, .NET

Задачата е за подготовка за контролна работа. Даден е файл с математически задачи, който има следната структура (показано е примерно съдържание):

 

C, PHP, VB, .NET

Задача 1. Реализирайте клас Author (автор). В него член-променливи са имена (name от тип String), държава (country от тип String) и телефонен номер (phone от тип String). Направете само конструктор с подадени параметри. Променливите name и country направете само за четене, а phone направете така, че да може да се чете и променя. За phone се погрижете да е записан в следния формат: xxx-xxx-xxxx (например 567-123-8888 e валиден телефон). Предвидете допълнителна възможност да бъде въведен телефон и в алтернативни два формата – xxxxxxxxxxx (например 5671238888) или (xxx) xxx-xxxx (например (567) 123-8888). Ако в set метода се подаде телефон в алтернативен формат, вие трябва да го конвертирате до стандартния и да го запишете в него.

 

Иван Ванков

 Защо не харесвам Хелуин

   от Иван Ванков


Нека и аз да си споделя мнението за този празник – Хелоуин, който ни се натресе ей така от нищото, заедно с останалите „модерни“ западни традиции. Нямам нищо против запада, изтока или Марс, всеки си има своята култура, тук не споря дали западните нрави имат някакви ценности, а споделям конкретно за Хелуин.

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

 

C, PHP, VB, .NET

Трябва да се напише програма, която решава различни типове математически уравнения. Реализирайте следната йерархия:

Задача 1. Дефинирайте интерфейс Solvable с действия:

  • solve()
  • printSolution()

Типа на връщаните стойности ще прецените самите вие в процеса на работа.

Задача 2. Дефинирайте изключение SolutionException като наследник на Exception. Съобщението за грешка по подразбиране да е „няма решение“.

 

C, PHP, VB, .NET

Задача 1. Дефинирайте интерфейс “Buyable”, в който дефинирайте действиe “int buy(int quantity)” (купуване на продукт) и действие “String getName()” (взимане на името на продукта).

Задача 2. Дефинирайте клас “Product”, който имплементира интерфейс “Buyable”. Член променливи са:

  • id – идентификатор на продукта в склада от тип int;
  • name – описание на продукта, записано в String;
  • quantity – наличност (бройки) в склада от тип int.

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