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
georgy.nedyalkov avatar georgy.nedyalkov 103 Точки

Ето моето решение на 7-ма задача:

// Взимаме числата от конзолата като стринг

string full = Console.ReadLine();

// Вкарваме отделните числа в double array (като махаме space-а)
double[] numbers = Array.ConvertAll(full.Split(' '), Double.Parse);

// Сумираме числата в новия array
double sum = numbers.Sum();

// Принтираме резултата
Console.WriteLine(sum);

 И 9-та задача:

// Make new empty array
double[] numbers;

// Capture n (number/s) from the console
int n = int.Parse(Console.ReadLine());

// Make n number/s of indexes of the double array
numbers = new double[n];

// Loop from 0 to n, so we will get n times Console.ReadLine() for input numbers
for (int i = 0; i < n; i++)
{
// Put double number to array
numbers[i] = Convert.ToDouble(Console.ReadLine());
}

// Make the sum of all indexes in double array
double sum = numbers.Sum();

// Print the result
Console.WriteLine("sum={0}", sum);

 

Забележка: За да работи кода, трябва да включите в програмата си:

using System.Linq;

0
23/11/2014 19:55:51
Adrian avatar Adrian 3 Точки

Здрасти! Не можах да измисля сам решение на 7ма задача и пробвах няколко кода за нея от тук, но когато тръгна да въвеждам петте числа, които трябва да са разделени, програмата ми дава да въведа само първото и ми изписва, че сумата ми е равна на него (логично, щом съм въвел само него :D) и спира.  Не ми дава да въведа останалите четири числа. Така става с всички кодове, които успях да намеря за 7ма задача в тази тема. Много ще съм ти благодарен, ако ми кажеш защо става така. Благодаря предварително! :)  

0
Filkolev avatar Filkolev 4482 Точки

Звучи сякаш натискаш Enter след въвеждане на всяко число. Идеята е че въвеждаш всичко накуп - числата на един ред, отделени с празно място. След това натискаш Enter.

2
Adrian avatar Adrian 3 Точки

yellyellyell самочувствието ми се понижи рязко току що laughinglaughing Благодаря! :)

1
Petar_Ivanov avatar Petar_Ivanov 27 Точки

Здравейте,

имам проблем с 11 задача и бих се радвал, ако някой може да ми помогне.

Ето го условието: Write a program that reads two positive integer numbers and prints how many numbers p exist between them such that the reminder of the division by 5 is 0. Examples:

Това е моя код: 

int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int p = 0;
for (int i = a; i <= b; i++)
{
if (i % 5 == 0)
{
p++;
}
}
Console.WriteLine(p);

Проблемът ми е, че когато се вкарат две числа, между които няма кратно число на 5 например 3 и 4, не мога да измисля начин да ми изкарва като резултата само едно "-". Ако вкарам един else при проверката в цикъла, при всяка итерация ми изписва "-", а аз не искам това. И резултатът за числата 16 и 19 е :

"-"

"-"

"-"

Благодаря за помощта предварително!

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

Нaпрaви си булевa променливa, която в началото е false, там където влизaш в if в цикълa му слагаш сетвaне нa true на булевaтa ти променливa. След цикълa проверявaш дали е true, ако да - печaтaш p , инaче печaтaш тирето.

2
Petar_Ivanov avatar Petar_Ivanov 27 Точки

Благодаря много за отговора!

0
Gyoshev avatar Gyoshev 6 Точки

Ето го и моето решение на 7-ма задача:

Mod Edit: Нарушена т. 12 от правилата на форума: Във всеки пост е позволено цитирането на не повече от 15 реда код. Ако искате да споделите по-дълъг код, използвайте сайтове като Pastebin и Github Gist!

Разбира се числата трябва да се въвеждат коректно, защото не правя проверка. След петото число се завършва с "ENTER".

Друг вариант е да се въведат като string и да обработваме него, но мисля че идеята е да се запознаем с Console.ReadKey().

0
23/03/2015 18:18:43
Filkolev avatar Filkolev 4482 Точки

Трите случая за дискриминантата по-добре да са в if-else if-else блок, не е много чисто да ползваш return.

1
MladenMladenov avatar MladenMladenov 80 Точки

Да, възможно е, но реших да експериментирам. laughing не споря, че има и по-верни решения.

А и от край време, търся къде мога да сложа този return :)

0
mockingbird avatar mockingbird 10 Точки

10-та задача и от мен! :) ЦЪК! :)

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

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

0
KatyaMarincheva avatar KatyaMarincheva 572 Точки

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

            string binary = Convert.ToString(input, 2).PadLeft(8, '0');

или само string binary = Convert.ToString(input, 2); (може да ги принтнеш за да се ориентираш за разликата)

Или виж тук за още варианти.

 

0
Inspix avatar Inspix 51 Точки

Здравейте, това ще е втория ми пост във форума, но се надявам да е полезен. Малко закъснях със споделянето на моите решения, но доста време загубих за да смогна да направя и играта. Всяко от решенията ми е леко усложнено с цел да може да направя тест на всяка задача, с примерните данни от домашното(За улеснение на проверяващите). Надявам се да са от полза, дори с малко закъснение.

01.Sum Of 3 Numbers

02.Print CompanyInformation

03.Circle PerimeterArea

04.Number Comparer

05.Formating Numbers

06.Quadratic Equation

07.SumOf5Numbers

08.Numbers From 1 to N

09.Sum Of n Numbers

10.Fibonacci Numbers

11*.Numbers In Interval Dividable by Given Number

12**.Falling Rocks (използвах външна библиотека за да мога да плейна мп3 като бекграунд музика, както си избрах и къстъм фонт, който ми допадна с повече подържани знаци(леко досадно се добавя към конзолата), но цялото приключение беше забавно)

13*.Work Hours

14**. Sum of Elements

15*.New House

16**.Magic Strings

17.Catch The Bits

3
09/05/2015 02:57:48
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Впечатляващо!

Впечатляващи алгоритми в решенията на много от задачите!

Аз също обичам да експериментирам с различни решения на една и съща задача, но откакто уча в СофтУни започнах да се стремя основно да намирам все по-кратки решения - сравнено с подходи, на които са ме учили преди, краткостта намирам за оптимален вариант.

Много от решенията ти постигат и краткост на решението, благодарение на оригиналния си алгоритъм, 15*.New House например.

Поздравления!

1
Inspix avatar Inspix 51 Точки

Благодаря, всички решения ми почнаха с най-краткия вариант, след което просто ги развих за да мога да направя тестовете :)

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

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

Поздрави!

3
KatyaMarincheva avatar KatyaMarincheva 572 Точки

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

Иначе, признавам - интересно е да направя задачите с рисуване като анимация - и това не е по-дълго решение, а точно както казваш - решение с допълнителни условия :)

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