Categories
Телерик

Резултат от изпита по ООП в BGCoder

Изпита по Обектно-ориентирано програмиране на C# приключи!

Резултът в BGCoder е място 22 от 258 в сутрешната група и точки 162 от 200!

Точките по задачи са:

– 100 / 100 на първа задача;

– 62 / 100 на втора задача.

В очакване на оценката от трейнърите в Академията 🙂

Categories
Visual C# Телерик

Резултат от изпита по C# – част 2

Изпита на 22.01.2014 (сутрин) приключи със среден резултат, само 279 точки, но изводите са вече направени – необходимо е повече старание и време за по-добър резултат.

Задачите бяха много интересни, а за следващия курс по C# част 2 ще се постарая да съм решил всички давани задачи до момента, плюс тези от Алго академията.

Categories
Visual C# Телерик

Задача: Neuron

Решение

using System;
using System.Collections.Generic;

namespace NeuronMapping {
  class Program {
    static void Main() {
      List numbersList = new List();
      uint inputNumber = 0;
      while (true) {
        if (uint.TryParse(Console.ReadLine(), out inputNumber)) {
          numbersList.Add(inputNumber);
        } else {
          break;
        }
      }

      for (int i = 0; i < numbersList.Count; i++) {
        for (int j = 0; j < 32; j++) {
          uint mask = (uint) 1 << j;
          uint numberAndMask = numbersList[i] & mask;
          uint bit = numberAndMask >> j;
          if (bit == 1) {
            break;
          } else {
            numbersList[i] = numbersList[i] | mask;
          }
        }
      }

      for (int i = 0; i < numbersList.Count; i++) {
        for (int j = 31; j >= 0; j--) {
          uint mask = (uint) 1 << j;
          uint numberAndMask = numbersList[i] & mask;
          uint bit = numberAndMask >> j;
          if (bit == 1) {
            break;
          } else {
            numbersList[i] = numbersList[i] | mask;
          }
        }
      }

      for (int i = 0; i < numbersList.Count; i++) {
        for (int j = 0; j < 32; j++) {
          uint mask = (uint) 1 << j;
          numbersList[i] = mask ^ numbersList[i];
        }
        Console.WriteLine(numbersList[i]);
      }
    }
  }
}
Categories
Visual C# Телерик

Задача: Pillars

Решение

using System;

namespace Pillars {
  class Program {
    static void Main() {
      int length = 8;
      int[] numbers = new int[8];
      int[] sum = new int[8];

      for (int i = 0; i < length; i++) {
        numbers[i] = int.Parse(Console.ReadLine());
      }
      for (int i = 0; i < length; i++) {
        int mask = 1 << i;
        for (int j = 0; j < length; j++) {
          int numberAndMask = numbers[j] & mask;
          int bit = numberAndMask >> i;
          if (bit == 1) {
            sum[i] += 1;
          }
        }
      }

      int leftMostColumn = -1;
      int fullCellsCount = 0;
      for (int i = 0; i < length; i++) {
        int rightSum = 0;
        for (int j = 0; j < i; j++) {
          rightSum += sum[j];
        }
        int leftSum = 0;
        for (int k = i + 1; k < length; k++) {
          leftSum += sum[k];
        }
        if (leftSum == rightSum) {
          leftMostColumn = i;
          fullCellsCount = leftSum;
        }
      }
      if (leftMostColumn >= 0) {
        Console.WriteLine(leftMostColumn);
        Console.WriteLine(fullCellsCount);
      } else {
        Console.WriteLine("No");
      }
    }
  }
}
Categories
Visual C#

Constructor Chaining в C#

namespace OOP {
  class GSM {
    private string model;
    private string manufacturer;
    private decimal ? price;
    private string owner;
    private Battery battery;
    private Display display;

    public GSM(): this("Unknown Model", "Unknown Manifacturer") {}

    public GSM(string model, string manifacturer): this(model, manifacturer, null) {}

    public GSM(string model, string manifacturer, decimal ? price): this(model, manifacturer, price, null) {}

    public GSM(string model, string manifacturer, decimal ? price, string owner): this(model, manifacturer, price, owner, null) {}

    public GSM(string model, string manifacturer, decimal ? price, string owner, Battery battery): this(model, manifacturer, price, owner, battery, null) {}

    public GSM(string model, string manifacturer, decimal ? price, string owner, Battery battery, Display display) {
      this.model = model;
      this.manufacturer = manifacturer;
      this.price = price;
      this.owner = owner;
      this.battery = battery;
      this.display = display;
    }
  }
}
Categories
Visual C#

Задача: Drunken Numbers

Описание

Всеки знае, че второто най-важно нещо в живота на програмиста е да пише код, но най-важното е да пие бира. Митко и Владко са много известни програмисти. В 19-тото световно състезание по програмиране двамата се срещнали. Състезанието се състои от N на брой рунда. Във всеки рунд двамата състезатели трябва да пият бира. Митко и Владко са много добри програмисти, затова те пият наистина много бира. Съдиите са пияни и не могат да изчислят колко бира е изпита от всеки състезател, и не могат да определят по-добрият програмист.

Решение