Loading...
g_todorov avatar g_todorov 106 Точки

19. *Ремонт на плочки from "Simple-Calculations"

Здравейте трейнъри, ментори и колеги,

мъчих се да реша задачата от заглавието, при което възникнаха 2 въпроса

1. Добра ли е практиката за именуване на променливите с дълги "говорящи" имена или е по-добре да се ползват коментари и къси напомнящи имена на променливите или .....? (ще се ориентирате, като видите сорс-кода ми по-долу и не пестете критики)

2.Първата проверка от упражнителния материал на изхода тоя сорс-код ми изкара верни резултати, но на втората проварка не. Къде греша?  

Благодаря предварително на всички, които се включат, за да помагат на мен и всички като мен които сега се учим!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RemontNaPlo4ki
{
    class Program
    {
        static void Main(string[] args)
        {
            var LenghtOfPlayground = int.Parse(Console.ReadLine());
            var WidthPlate = double.Parse(Console.ReadLine());
            var LenghtPlate = double.Parse(Console.ReadLine());
            var WidthBench = double.Parse(Console.ReadLine());
            var LenghtBench = double.Parse(Console.ReadLine());

            if (LenghtOfPlayground < 1 || LenghtOfPlayground > 100)
            {
                Console.WriteLine("Wrong number");
            }
            else if (WidthPlate < 0.1 || WidthPlate > 10.00)
            {
                Console.WriteLine("Wrong number");
            }
            else if (LenghtPlate < 0.1 || LenghtPlate > 10.00)
            {
                Console.WriteLine("Wrong number");
            }
            else if (WidthBench <= 0 || WidthBench > 10)
            {
                Console.WriteLine("Wrong number");
            }
            else if (LenghtBench <= 0 || LenghtBench > 10)
            {
                Console.WriteLine("Wrong number");
            }
            var TotalArea = LenghtOfPlayground * LenghtOfPlayground;
            var AreaToCover = TotalArea - 2;
            var SizeOfPlate = WidthPlate * LenghtPlate;
            var NumberPlatestoCover = AreaToCover / SizeOfPlate;
            Console.WriteLine(NumberPlatestoCover);
            var TimeToInsert = NumberPlatestoCover * 0.2;
            Console.WriteLine(TimeToInsert);
            }
    }
}

Тагове:
0
Programming Basics
jivako000 avatar jivako000 296 Точки

Здравей!

Това е моят код на задачата - http://pastebin.com/DMGTZmUZ със много съкратени имена на променливи, но специално за тази задача ми е много по - удобно да са в този вид имената. Не знам защо си използвал проверки, тъй като в тази задача изобщо не са ти нужни! Това е първата задача на всеки изпит по Programming Basics и по условие не изисква проверки.

В случая първо трябва да изчислиш общата площ, като умножиш дължината на страната на площадката по самата нея (ако е 20 --> 20*20)! Отделно площта на пейката се изчислява като умножиш широчината на пейката * нейната дължина. След това от общата площ изваждаш площта на пейката и получаваш площта за покриване, препоръчвам да я пазиш в отделна променлива за по - лесно. Изчисляваш площта за плочки като умножиш ширината на една плочка * нейната дължина. Необходимите плочки ще получиш като пощта за покриване разделиш на площта за плочки. И остава времето, което е необходимо. То се изчислява като плочките, които са ти необходими ги умножиш по 0.2.

На първи ред печаташ необходимите плочки, а на следващия времето!

Ако имаш въпроси не се притеснявай да ме попиташ, може да ме намериш и във фейсбук (оставил съм линк в профила)

Успех! smiley

1
g_todorov avatar g_todorov 106 Точки

Благодаря много!

Разяснението, което си написал съм го кодил по същия начин, но на първа проверка ми излиза в output верен резултат, а на втора не. Явно някъде нещо съм сгафил. Сега ще разгледам и твоя код и ще излезе от някъде заека :) Като срещна някъде трудност ще се възползвам от предложението ти за фейса. 

Благодаря още веднъж.

0
cheresharov avatar cheresharov 42 Точки

Тук ти е грешката var AreaToCover = TotalArea - 2;

2 е площта на пайката. Трябва да я изчислиш = WidthBench * LenghtBench

 

Относно имената на променливите - както ти е удобно на теб.

За компилатора няма никакво значение дали името на променливата ще е само от 1 буква или от 100.

0
26/10/2016 20:30:47
g_todorov avatar g_todorov 106 Точки

Дааа! Току що го видях, че съм заложил площта на пейката като константа, а променливите заложени по-отгоре на кода не играят :)

За това първата проверка излиза точно , а втората не. Яд ме е за тея елементарни грешки, но когато човек дълго работи, след което работи отново и се получават грешки :) 

Признателен съм за отделеното време.

Благодаря, много!

0
Leprikona avatar Leprikona 108 Точки

1. Не смяташ площа на пейката - тя не е 2, а е равна на М*О по условие (широчината по дължината на пейката - т.е. последните две променливи);
2. След като я сметнеш я вадиш от общата площ;
3. Защо правиш тия проверки? Излишни са;

4. Използвай pastebin;

Ето малко съкратен и лесночетим код.

Keep coding!

0
26/10/2016 20:32:35
g_todorov avatar g_todorov 106 Точки

Благодаря  за помощта!

Махнах проверките и включих променливите и Judge ми даде 100/100.

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

0
e.manolov avatar e.manolov 80 Точки

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

От твоя пример първата променлива трябва да е lenghtOfPlayground, а не LenghtOfPlayground.

Доколкото си спомням в книгата на Наков има такава глава/част за правилно наименоване на променливите.,Доста е полезно.

0
g_todorov avatar g_todorov 106 Точки

Мерси много!

Това исках да разбера - как правилно да именувам променливите и колко дълги да са те.

Наков е супер - за това сме тук всички. Ще потърся в книгата му добрите практики за именуване на променливи.

Успех и мотивация желая на всички нас, тук и сега!

0
morski77 avatar morski77 137 Точки

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

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

0
g_todorov avatar g_todorov 106 Точки

Благодаря!

Мисля по същия начин, но не бях сигурен.

Стигам до следните изводи за именуване на променливите:

1. Да са кратки

2 . Да са ясни

3. Да са "говорящи"

4. Да са "говорящи и на екипа, с който ще работя"

5. Да почват с главна, да са сляти и за разделител да се ползва главна буква

6. Да са на английски.

7.Ако не са достатъчно "говорящи" или са в дублаж щото кода е станал мн. дълъг - да се ползват коментари.

Ако се сетиш още нещо - допълвай, критикувай без колебание :)

0
morski77 avatar morski77 137 Точки

 

Непрекъснато в началните курсове лекторите ще споменават как е правилно да се пише,така че няма да имаш проблем с това,концепцията ти е много правилна(само с изключение,че дали започва или не с главна буква са особенности на езика-в Java класовете са с главна буква,а променливите задължително започват с малка) и добре че отсега се орентираш как да пишеш.

 

0
g_todorov avatar g_todorov 106 Точки

Благодаря ти!

Половин месец откакто се занимавам с програмиране и съм noob в тая област, но проявяам педантизъм в обучението, който съм наследил 

от времето когато бях асистент.

Оценявам отделеното време да ми помогнеш и пожелавам, здраве, щастие и мотивация в заниманията :)

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