Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

krysteva.elena avatar krysteva.elena 6 Точки

[Homework] C# Basics - First Steps in Coding - Problem{5} - Rectangle Area

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

Когато стартирам програмата ( и съм написала в последния ред Console.WriteLine("Area is:", area); ) и въведа 2-те числа ми изписва Area is:      , но не ми печата нищо и седи празно място след Area is: .

Когато в кода е Console.WriteLine(area);  - програмата работи и си ми печата пресметнатото без проблем.

Ето и част от кода:


            decimal a = decimal.Parse(Console.ReadLine());
            decimal b = decimal.Parse(Console.ReadLine());
            decimal area = a * b;
            if (area <= 0)
            {
                Console.WriteLine("Area is not valid, please enter the correct values");
            }
      
            {
                Console.WriteLine("Area is:", area);
  //!!!Когато тук е Console.WriteLine(area);  ми печата пресметнатото.
            }
        

 

Ще се радвам някой да помогне! Четох разни неща, но не открих нищо затова пиша тук. ;)

Тагове:
1
Programming Basics 22/02/2016 14:44:34
petar.dimitrov.86 avatar petar.dimitrov.86 450 Точки

Трябва да сложиш шаблон (placeholder) след Area is: и да стане "Area is:{0}", area

5
b0krustev avatar b0krustev 10 Точки

 

 

Аз мисля че ти липсва един else {}

 

 

   decimal a = decimal.Parse(Console.ReadLine());
            decimal b = decimal.Parse(Console.ReadLine());
            decimal area = a * b;
            if (area <= 0)
            {
                Console.WriteLine("Area is not valid, please enter the correct values");
            }
               else
            {
                Console.Write("Area is:");   //!!!Когато тук е Console.WriteLine(area);  ми печата пресметнатото.

               Console.WriteLine(area);
            }

 

Мисля че така би трябвало да проработи. И аз съм новичък, но опитай. Успех! :)

1
22/02/2016 15:12:54
krysteva.elena avatar krysteva.elena 6 Точки

Не. Проблема не е в else. Задачата става със и без else. 

0
petar.dimitrov.86 avatar petar.dimitrov.86 450 Точки

Всъщност и колегата е прав, тъй като ако ти нямаш else и въведеш примерно а = 3, б = -5, то тогава area ще ти е отрицателно, ще ти изпише, че are is not valid... но и ще сметне area след това, а като напишеш else-a където показа колегата, програмата ще спре проверката щом види че аrea е отрицателно и няма да изписва отрицателната площ. Също така трябва да се внимава когато се ползва събирате на текст с число с + ("Area is :" + area) тъй като ако има повече навързани променливи с плюсове ще се получат неочаквани резултати, но може би това по-късно ще го учите.

1
TsenkoT avatar TsenkoT 6 Точки

или   Console.WriteLine("Area is: " + area); пак става

0
22/02/2016 15:26:21
vancho avatar vancho 430 Точки

Здравей,

пропуснал си да укажеш какво да се принтира: Console.WriteLine("Area is: {0}", area)

обяснение:

 - ако имаш да принтираш един аргумент, слагаш само един указател: ("Area is: {0}", area)

 - ако пък имаш два или повече аргумента, слагаш сътветно толкова колкото е брояt им (винаги от 0 до n-1): ("Area is: {0}, Radius is: {1}", area, radius)

3
22/02/2016 15:42:02
StaVykoV avatar StaVykoV 169 Точки

За да го разпечаташ така, или трябва да го направиш както колегата е написал - Console.WriteLine("Area is: {0}", area);, или така - Console.WriteLine("Area is: " + area);
 

В първия случай {0} означава, че на това място ще сложи стойността на  нулевата (първата) променлива след запетаята. Във втория случай просто ги залепва едно след друго - когато събираш стрингове реално залепя втория след първия.

2
22/02/2016 15:45:37
H.Stoyanov avatar H.Stoyanov 115 Точки

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

Първият начин:

Console.Write("Area is: ");
Console.WriteLine(area);

Вторият начин:

Console.WriteLine("Area is: " + area);

Третия начин:

Console.WriteLine("Area is: {0}", area);

Като дори можеш да правиш комбинации между вариантите! Хубав ден! wink

4
duratsia avatar duratsia 20 Точки

Аз реших тази задача малко по различен начин. Джаджа ми прие решението, обаче Вашето мнение колеги е по ценно. 

            Console.Write("a = ");            
            var a = int.Parse(Console.ReadLine());
            Console.Write("b = ");
            var b = int.Parse(Console.ReadLine());            
            var area = a * b;                     
            Console.Write("Sqare = ");
            Console.WriteLine(a * b);     

2
kiso_blg avatar kiso_blg 57 Точки

Duratsia, декларираш променлива var area = a * b;, а в същото време отпечатваш Console.WriteLine(a * b);. Едното е излишно. Ако печаташ (a * b), няма нужда да декларираш ареа. Препоръчвам ти да погледнеш коментарите по-горе и, както са споменали колегите, да се учиш да използваш и шаблон (placeholder). Console.Writeline("Square = {0}", area); Шаблонът {0} показва къде в текста да отпечата стойността на променливата. Можеш да сложиш и повече шаблони (plaseholder-и) в един текст. Например: Console.WriteLine("The area of square with sides {0} and {1} is {2}", a, b, area);.

2
duratsia avatar duratsia 20 Точки

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

1
ivailo.hristov.96 avatar ivailo.hristov.96 5 Точки

От къде мога да си взема условията на тези задачи, зашото в джъджа не ми излизат?

0
r3v3nan7 avatar r3v3nan7 365 Точки

Те не са в judje. От сайта softuni.bg кликаш на обучения и намираш курса в който си записан(януари , февруари или по-отминал) и на всяка лекция 

има файлове с упражнения и презентация. Трябва ти файла с упражненията. Вътре са всички задачи с условията :) .. А judje само проверяваш задачите

2
krysteva.elena avatar krysteva.elena 6 Точки

ivailo.hristov.96 условията са в сайта, логваш се и са в един Microsoft Word файл. ;)

0
ivailo.hristov.96 avatar ivailo.hristov.96 5 Точки

Точно за това писах, защото преди ми излизаха условията в самите задачи, а сега не; но намерих ги в крайна сметка благодаря :)

0
ToniBeliyashki avatar ToniBeliyashki 11 Точки

Здравей :)

За да ти го отпечата трябва, или да конкатенираш стринговете (Console.WriteLine("Area is: " + area)), или да ползваш placeholder (Console.WriteLine("Area is: {0}", area)).

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

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