Софтуерно Инженерство
Loading...
+ Нов въпрос
kostadin.ivanov.52 avatar kostadin.ivanov.52 32 Точки

Здравейте, малко помощ за начинаещ ?

Здравейте,

Работя по домашното от втората лекция по C#.

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

Та въпросите ми са свързани с абсолютно всичко свързано с тази задача ...

Предварително благодаря на тези, които ще благоволят да помогнат и на тези, които нямат такива намерения . И моля, без хейт напълно начинаещ съм ^^

Това е линк към 13-та задача, за да ви улесня.

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

3
Общи приказки
Anonymous:
Duplicate: https://softuni.bg/forum/questions/details/77 and https://softuni.bg/forum/questions/details/43
Aleksiev avatar Aleksiev 133 Точки
Best Answer
Линк и към моето решение, дано да ти е от полза.
1
kostadin.ivanov.52 avatar kostadin.ivanov.52 32 Точки
Браво, много добре си го направил..!
1
svetli0o avatar svetli0o 134 Точки

https://github.com/SvetlioSS/PrimitiveDataTypesAndVariables/blob/master/ComparingFloats/ComparingFloats.cs

Това е моето решение, ако имаш въпроси по него питай. ;)

1
kostadin.ivanov.52 avatar kostadin.ivanov.52 32 Точки
Благодаря за бързият и адекватен отговор. Видях къде и как бъркам. Благодаря :) !
0
Lyubo avatar Lyubo 172 Точки
Погледни тук, има няколко различни решения на задачата.
1
Vacheva avatar Vacheva 153 Точки

Здравей :)

Как подхождам - чета условието и пиша:

От нас се иска да напишем програма за сигурно(винаги точно) сравнение на две double числа, с точност eps = 0.000001. Тъй като примерите са много, а те служат за проверка - пиша кода, така че числата да се въвеждат от конзолата:

double a = double.Parse(Console.ReadLine());

double b = double.Parse(Console.ReadLine());

double eps = 0.000001;

Продължавам с четенето: Да се отбележи, че числата с плаваща запетая не могат да се сравняват директно с равенство, а == б.

Приемаме, че те ще са равни ако са по-близо едно до друго, спрямо фиксираната константа (0.000001). Тук е ключа към решението. Т.е. ако (а - б) < 0.000001 или (б - а) < 0.000001. Колегите са ползвали Math.Abs():

bool equality = Math.Abs(a - b) < eps;

И печаташ на конзолата:

Console.WriteLine(equality);


Първото нещо, което правя когато не се справям със задача е

да отворя слайдовете от лекцията. Обикновено там има подобен пример или насоки.

Или отварям книгата на Наков (свалена), темите в книгата са идентични с темите в лекциите - пълно е с примери, обяснения и задачи.

Ако не ми е достатъчно - отварям форума, както и ти си  направил.

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

Поздрави,

Теодора

Edit: След няколко редактирания, видях че отдавна са ти отговорили. Преди редакцията темата беше без отговор. 

4
kostadin.ivanov.52 avatar kostadin.ivanov.52 32 Точки

Няма проблеми, за това, че си отговорила въпреки, че някой ми е предложил възможен начин на решени ! Благодаря ти за обстойният отговор, решението и най-вече за инструкциите :) Ще ми бъдат от полза .smile

1
R.Slavkov951 avatar R.Slavkov951 1 Точки

Здравей,

Ето и моето решение на задачата, надявам се да ти помогне. smile

 

using System;

class ASCItable
{
    static void Main()
    {
        Console.Write("Decimal".PadRight(10));
        Console.Write("ASCII".PadRight(10));
        Console.Write("Hex".PadRight(10));
        Console.WriteLine();

        int min = 0;
        int max = 128;
        for (int i = min; i < max; i++)
        {
            char c = (char)i;

            string display = string.Empty;
            if (char.IsWhiteSpace(c))
            {
                display = c.ToString();
                switch (c)
                {
                    case '\t':
                        display = "\\t";
                        break;
                    case ' ':
                        display = "space";
                        break;
                    case '\n':
                        display = "\\n";
                        break;
                    case '\r':
                        display = "\\r";
                        break;
                    case '\v':
                        display = "\\v";
                        break;
                    case '\f':
                        display = "\\f";
                        break;
                }
            }
            else if (char.IsControl(c))
            {
                display = "control";
            }
            else
            {
                display = c.ToString();
            }
            Console.Write(i.ToString().PadRight(10));
            Console.Write(display.PadRight(10));
            Console.Write(i.ToString("X2"));
            Console.WriteLine();
        }
    }
}

0
Roberto avatar Roberto 56 Точки

Колега,ASCII таблицата е от 255 символа,не от 128.

0