Loading...
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

[Homework] C# Basics - Console Input/Output

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

1. Sum of 3 Integers (Уж integers, а пък в примерите дробни числа.. тогава и ние няма да се ограничаваме до целочислени)

2. Print Company Information (правя всички телефонни номера стрингове, защото не знаем в какъв формат евентуално биха ни ги подали)

3. Circle Perimeter And Area (решение от Lyubo)

4. Number Comparer

5. Formatting Numbers (решение от Lyubo)

6. Quadratic Equation (решение от Lyubo)

7. Sum of 5 Numbers (не мога да измисля по-лесно решение в момента)

8. Numbers from 1 to n

9. Sum of N Numbers

10. Fibonacci Numbers

11. Numbers in interval dividable by given number (може да се оптимизира като се намери първият търсен елемент и после се прескача през 5 и още 1-2 проверки)

12. //TODO

52
Programming Basics 07/10/2014 21:34:09
zontak avatar zontak 457 Точки
Best Answer

5-та задача поправете при условието да е > 500.. Защото в условието пише ,че въведената стойност трябва да е = 500 ... и накрая след " С " трябва да има интервали и | накрая ;) Леки козметични забележки.. ама ако ги гледа хейтър после .. няма да даде хубава оценка ;) Имам предвид задачите на автора на темата.. :)

4
Lyubo avatar Lyubo 172 Точки

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

0
blagovest.naydenov avatar blagovest.naydenov 4 Точки

Мога ли да попитам как да преобразува от десетимио в двуично число. Ако може да ми дадете пример.

0
17/04/2015 18:40:23
Mariyn avatar Mariyn 2 Точки

Convert.ToString(number,2);

1
Lyubo avatar Lyubo 172 Точки

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

6-та задача също не работи коректно. Имаш променлива "d", която най-вероятно е "determinant", но и след преименуването на променливата програмата се чупи.

Това е моето решение на 3 задача.

Това е решението ми на 5 задача.

0
rosenrusev avatar rosenrusev 175 Точки

Здравейте,

 

Ето и при мен задача 3 в момента: http://pastebin.com/WwL6nUuK .

Добро уточнение, Любо. Абсолютно си прав.

За задача 1 аз бих използвал double variables вместо decimal, поради две причини:

1) поради бързодействието;

2) не се изисква по-голяма точност след десетичната запетая.

Ето така е в момента решението ми: http://pastebin.com/rtQPgBPx .

Друг е въпроса, че в условието на задачата има две грешки, за които вече е докладвано в отделна тема от предния ден, на колегата Любо. Ето и линк: https://softuni.bg/forum/questions/details/235 .

 

 

3
Lyubo avatar Lyubo 172 Точки

Samuil.Petrow направих малки промени по задача 6 и тръгна Цък. Преименувах "d" на "determinant", разместих if-вете и добавих else. Няма смисъл от 3 if-a, ако условието съвпадне с някой if по-добре задачата да изпълни каквото има в if-a и да спре, вместо да търси съвпадения в другите if-ове. Имаше грешка и в един от

Console.WriteLine("SOLUTION 2 - {1}", (-coefB - Math.Sqrt(determinant)) / 2 * coefA);, трябва да е {0}

2
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

Мерси за поправките, на трета се чупеше при кастването на 22/7. Ъпнах темата с обновените решения.

2
verito898 avatar verito898 265 Точки

При мен на последното домашно- "Вход и изход от конзолата  " пише :

Срокът е изтекъл.
Нямате изпратено домашно.

И при вас ли е така ?

0
Flyer avatar Flyer 150 Точки

Да, това не е проблем. Ще обновят срока когато му дойде времето :)

1
kiko144 avatar kiko144 795 Точки

Така е при всички! Може би просто админите са го направили за да не може още да се качва домашното, а само да се гледа :) 

1
rosenrusev avatar rosenrusev 175 Точки

Само да вмъкна, че има отделна тема за това от вчера :)

0
ivailozd avatar ivailozd 75 Точки

За пета задача си направи проверка и за b, за да не изписва ".00", когато не трябва. Ето и моето домашното - тук. За сега без последната задача. :)

2
ScreeM avatar ScreeM 19 Точки

Колега, само си забравил едно минусче да сложиш преди 10:

 Console.WriteLine(dotCheckC ? "|{0,-10:0.000}|" : "|{0,?10}|", c);

Иначе всичко друго ти е ток. Поздравление за успешно решените задачи!
1
alexandra avatar alexandra 8 Точки

Здравейте, 

Тук са мойте решения на задачите.

Също така ако може да споделите на 7 задача други варианти на решение. :)

4
Lyubo avatar Lyubo 172 Точки

"Също така ако може да споделите на 7 задача други варианти на решение. :)" Цък

0
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

@Lyubo - Входът ни го подават, разделен с интервали на един ред :P.

2
Lyubo avatar Lyubo 172 Точки

@Samuil.Petrow не съм обърнал внимание, ще го оправя.

Това е новото ми решение, успях да го събера на един ред :)

Това е решението ми на 10 задача.

4
rosenrusev avatar rosenrusev 175 Точки

Здравейте, 

за променливите a,b и c използвам тип за променлива BigInteger. Повече информация има тук: http://msdn.microsoft.com/en-us/library/system.numerics.biginteger(v=vs.110).aspx , най-вече при ситуации, когато бихме искали да изведем максимален брой от номерата на Фибоначи. Ето и инфо за тези, които искат да научат какви са номерата на Фибоначи и как се получават: http://en.wikipedia.org/wiki/Fibonacci_sequence .

 

3
Fundamentalen avatar Fundamentalen 133 Точки

Прав си, ще го оправя.

2
coaster avatar coaster 412 Точки

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

http://pastebin.com/biqjmtJP

Поздрави!

1
Lyubo avatar Lyubo 172 Точки

Здравей, в 5 задача трябва да до оправиш малко настройките на кода(един резултат да преместиш на ляво, друг на дясно), както и резултата на третата въведена променлива. При въведени 0.5, програмата извежда 0.5, а трябва да изведе 0.500. Тук може да погледнеш аз как съм го направил, не че е много точно де :)
В задача номер 9  трябва да го преместиш Console.Write(fiboTemA + " ");  в началото на цикъла, за да извежда правилен резултат.
В 11 задача може да добавиш още един if в if-а за да направиш проверка за въведените запетайки:

if (i % 5 == 0)
{
Console.Write(i);
if (i < b - 2) Console.Write(", ");
}

0
Darko avatar Darko 82 Точки

Здравей колега, мерси за забележките оправих форматирането на 5'та задача вече мисля че е 1:1 със заданието понеже загръглям стойностите с Roud функцията лично за мен е правилна стойност 0.5 понеже 0.5 е еквивалентно на 0.500 затова не съм го направил на 0.500 понеже резултатите при математическо действие  резултата не се променя. За задача 9 поправих я за да започне броенето от 0, но не знам понеже числата на фибоначи се менят от 0 или 1 зависи от гледната точка. 11. задача я поправих вече изглежда по добре. :)

1
vvulevv avatar vvulevv 51 Точки

Може ли да ми обясниш защо в кода на Problem 10. Fibonacci Numbers в последния if вадиш от второто число 2 ?

0
ZvetanIG avatar ZvetanIG 907 Точки

В пета задача, малко е излишен този  hack.

Този ред

Console.Write("|{0:X}{1, -10}|{2}|{1, -10}{3:F2}|", a, hack, Convert.ToString(a, 2).PadLeft(10, '0'), b);
            
 може да се запише ето така

Console.Write("|{0, -10:X}|{1}|{2, 10:F2}|", a,  Convert.ToString(a, 2).PadLeft(10, '0'), b);
            
        

0
Lyubo avatar Lyubo 172 Точки

По този начин:    Console.Write("|{0, -10:X}|{1}|{2, 10:F2}|", a, hack, Convert.ToString(a, 2).PadLeft(10, '0'), b);

извежда малко различен резултат, но схванаш идеята като цяло. Промених кода:

        Console.Write("|{0, -10:X}|{1}|{2}|", a, Convert.ToString(a, 2).PadLeft(10, '0'), b.ToString().PadLeft(10, ' '));



Благодаря за препоръката.

-2
externo avatar externo 119 Точки

по-кратко решение на задача 7 - сума от 5 числа:

string singleLine = Console.ReadLine();
string[] numbersInLine = singleLine.Split(' ');
double[] numbers = Array.ConvertAll<string, double>(numbersInLine, double.Parse);
double sum = numbers.Sum();

1
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

С уточнението, че горе трябва да си има using System.Linq , ако някой го е изтрил няма да му тръгне, защото се ползва extension method.

1
Lyubo avatar Lyubo 172 Точки

Може да добавиш Console.WriteLine(sum); накрая, а "<string, double>" е излишно и може да го махнеш.
 

-4
externo avatar externo 119 Точки

дори първоначално да си пропуснал using System.Linq

студиото ще те подсети :)

всъщност, кода е :

Console.WriteLine("Program that enters 5 numbers, calculates and prints their sum.");
Console.WriteLine("Give a single line of numbers, separeted by a space.");
string singleLine = Console.ReadLine();
string[] numbersInLine = singleLine.Split(' ');
double[] numbers = Array.ConvertAll<string, double>(numbersInLine, double.Parse);
double sum = numbers.Sum();
Console.WriteLine("The sum of the single line numbers is: {0}", sum);

 

но написах само значещите редове за допълнителна краткост тук във форума :)

 

махнах "<string, double>", наистина си работи и без него

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.