Уроци по C#

Уроци по C#

Задача 1. Random Numbers

Условие

Напишете програма, която генерира и принтира на конзолата 10 случайни числа в интервала [100,200].

Описание на входа

Няма вход ,тъй като се генерират десет произволни числа.

Описание на изхода

Изходът извежда на конзолата десет случайни числа в интервала 100-200.

Анализ на задачата

В задачата се ползва обект от класа Random на който се извиква функцията.Next; която връща цяло произволно число в интервала от 100 до 20 ,след което това число се принтира на конзолата и се извиква същата функция докато не стигне 10 принтирания. 

Решение (сорс код)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace RandomNumbersTask2

{

    class RandomNumbersTask2

    {

        static void Main(string[] args)

        {

            int randomNumber = 0;

            int counter = 0;

            Random rndGenerator = new Random();

            do

            {

                counter++;

                randomNumber = rndGenerator.Next(100, 201);

                Console.WriteLine(randomNumber);

            } while (counter != 10);

        }

    }

}

Тестове

Тест от конзолата няма как да се направи, тъй като се взима автоматично произволно число в интервала 100-200

Вход                                                                   Изход

Задача 2. Check Today

Условие

Напишете програма, която показва на конзолата кой ден от седмицата е днес

Описание на входа

Няма вход ,тъй като той се взима автоматично от часовникът на компютъра

Описание на изхода

Изходът извежда на конзолата името на денят кой е днес на английски

Анализ на задачата

В задачата се ползва обект от класа DateTime на който се извиква функцията.Today; която връща цяло число от 1 до 7 ,след което това число с помоща на switch оператор се превежда в дума отговаряща на денят от седмицата

Решение (сорс код)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace TodayTask3

{

    class TodayTask3

    {

        static void Main(string[] args)

        {

            DateTime dateValue = DateTime.Today;

            switch ((int)dateValue.DayOfWeek)

            {

                case 1: Console.WriteLine(„Monday“);

                    break;

                case 2: Console.WriteLine(„Tuesday“);

                    break;

                case 3: Console.WriteLine(„Wednesday“);

                    break;

                case 4: Console.WriteLine(„Thursday“);

                    break;

                case 5: Console.WriteLine(„Friday“);

                    break;

                case 6: Console.WriteLine(„Saturday“);

                    break;

                case 7: Console.WriteLine(„Sunday“);

                    break;

            }

        }

    }

}

Тестове

Тест от конзолата няма как да се направи тъй като денят се взима автоматично от часовникът на компютъра.Възможно е да се премести ръчно датата ,за да се установи промяна в резултата

Вход                                                                   Изход

1                                                                          Monday

Задача 3. Leap Year

Условие

Напишете програма ,коят прочита от конзолата година и проверяява дали е високосна

Описание на входа

Входните данни са едно число (година) между 0 и 9999

Описание на изхода

Изходът се извежда на един ред и гласи дали въведената година е високосна или не,и дали входът е коректен

Анализ на задачата

Първо с IF оператор се проверява дали входът е положителен след което се прави проверка на дадената година с помоща на класа DateTime и функцията към него IsLeapYear ,която връща TRUE или FALSE .

Решение (сорс код)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace LeapYearTask1

{

    class LeapYearTask1

    {

        static void Main(string[] args)

        {

            int year = int.Parse(Console.ReadLine());

            if (year > 0)

            {

                if (DateTime.IsLeapYear(year)) Console.WriteLine(„{0} is leap year“, year);

else Console.WriteLine(„{0} is not a leap year“, year);

            }

            else Console.WriteLine(„Incorrect year“);

        }

    }

}

Тестове

Решението е тествано с номинални случаи,отрицателна стойност и няколко валидни години

Вход                                                                   Изход

0                                                                   Incorrect year

Вход                                                                   Изход

-100                                                                   Incorrect year

Вход                                                                   Изход

4                                                                   4 is a leap year

Вход                                                                   Изход

1990                                                                   1990 is not a leap year

Вход                                                                   Изход

2056                                                                   2056 is a leap year

Задача 4. Hypotenuse By Two Sides

Условие

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

Описание на входа

Въвеждат се три две последователно на отделен ред всяко.

Описание на изхода

Изходът представлява един ред на който се печата дължината на хипотенузата

Анализ на задачата

Присвояват се две стойности за 2-те страни на триъгалника които трябва да са положителни ,след което с помоща на методите Math.Sqrt(коренуване) и Math.Pow(степенуване) се пресмята хипотенузата по познатата формула

Решение (сорс код)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace TriangleByTwoSidesTask5

{

    class TriangleByTwoSidesTask5

    {

        static void Main(string[] args)

        {

            double sideA = int.Parse(Console.ReadLine());

            double sideB = int.Parse(Console.ReadLine());

            if (sideA > 0 && sideB > 0)

            {

                double sideC = Math.Sqrt(Math.Pow(sideA, 2) + Math.Pow(sideB, 2));

                Console.WriteLine(sideC);

            }

            else Console.WriteLine(„Incorect Input“);

        }

    }

}

Тестове

Решението е тествано с номинални случаи, въвеждане на отрицателни стойности,цели числа ,дробни числа

Вход                                                                   Изход

-1                                                                   Incorrect Input

10

Вход                                                                   Изход

-1000                                                                   Incorrect Input

-9999

Вход                                                                   Изход

1                                                                   1,4142135623731

1

Вход                                                                   Изход

12                                                                   1,4142135623731

6

Вход                                                                   Изход

3                                                                   5

5



Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *