Loading...
djivanp avatar djivanp 6 Точки

[Programming-Basics]-Homework Introduction to Programming. Problem #9 - Print a Sequence

Здравейте , 

искам да Ви помоля за малко помощ относно Problem #9.Print Sequence от домашното и понеже не намерих в форума предварително се извинявам ако повтарям тема но решавам задачата по няколко начина и въпреки това judje системата не я приема , ако може някой да даде съвет ще съм много благодарен . :)

 сега ще покажа и моите решения : 

 

using System;

class PrintSequence
{
    static void Main()
    {
        for (int i = 2; i <= 11; i++)
        {
            if (i % 2 == 0)
            {
                Console.Write(i + ",");
            }

            else
            {
                Console.Write(-i + ",");
            }
        }
        Console.WriteLine();
    }
}

Тагове:
0
Programming Basics 28/01/2016 12:56:42
petar.dimitrov.86 avatar petar.dimitrov.86 450 Точки

Направи i да стигне само до 10, вместо 11, и след това преди Console.WriteLine(); вкарай Console.Write("-11");

не е най-елегантното решение, ама така ще го приеме джъдж, иначе логиката ти е правилна :)

0
djivanp avatar djivanp 6 Точки

Благодаря за помоща :)

0
gabi.ivanova avatar gabi.ivanova 370 Точки

може и така

 

if (i % 2 == 0)
{
    Console.Write(i);
}
else
{
    Console.Write(-i);
}

if (i != 11)
{
    Console.Write(",");
}

 

2
djivanp avatar djivanp 6 Точки

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

0
djivanp avatar djivanp 6 Точки

Благодаря разгедах го .Стегнато е доста ,но не ми е толкова ясно какво се случва а идеята не е просто да преписвам отговорите а да разбера какво се случва .Поздрави :) 

0
28/01/2016 20:47:08
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

Аз съм начинаещ и доколкото съм запознат,това е начин да се замести оператора if-else а иначе може да видиш за повече информация в Учебника Въведение в Програмирането,има го в нета.Иначе синтаксиса е следния :

Условният оператор ?: използва булевата стойност от един израз,за да определи кой от другите два израза да бъде пресметнат и върнат като резултат.Операторът работи над 3 операнда и за това се нарича тернарен.Символът ? се поставя между първият и вторият операнд а ":" се поставя между втория и третия операнд.Първият операнд трябав да е от булев тип,а другите два операнда трябва да са от един и същ тип,например числа или стрингове.

Синтаксисът на оператора ?: е следният:

операнд1 ? операнд2 : операнд3

Той работи така:ако операнд1 има стойност true,операторът връща като резултат операнд2.Иначе (ако операнд1 има false ) операторът връща резултат операнд3.

Аз лично се запознах случайно с него но е полезен според мен 

1
gabi.ivanova avatar gabi.ivanova 370 Точки

тринарният оператор ( условие ? изпълно се ако условието е вярно : изпълни се ако условието не е вярно ) - съкратен if

 Console.Write(i % 2 == 0 ? "{0}" : "{1}", i, -i);

Ако  i % 2 == 0 е вярно да се попълни първия placeholder, ако не втория. Като на първия отговаря положителната стойност, а на втория отрицателната, Така има редуване. 

Console.Write(i != 11 ? "," : "\r\n");

Ако  i != 11  i е различно от 11,напиши запетая, ако не, тоест равно е да 11 и редицата е приключила, нов ред.


Edit: TeodorDimitrov89 ме изпревари в обяснението :)

2
28/01/2016 21:05:56
djivanp avatar djivanp 6 Точки

Благодаря ! :)

0
djivanp avatar djivanp 6 Точки

Отново Благодаря :)

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

Един кратък въпрос към gabi.ivanova или TeodorDimitrov89 (който успее пръв да отговори). Тъй като пробвах израза Console.Write(i % 2 == 0 ? "{0}" : "{1}", i, -i); да се превърне в следния вид :

Console.Write(i % 2 == 0 ? i : -i);

и пак си тръгва нормално. Та има ли някаква причина да се ползват в случая placeholders освен да е по-видимо и разбираемо в кода? Питам като напълно начинаещ :)

0
29/01/2016 12:58:50
gabi.ivanova avatar gabi.ivanova 370 Точки

В конкретния случай няма голямо значение, тъй като ако се изпълнява само едното - или печата i или -i . Placeholder-и обикновено се използват когато имаш по-голям текст и на няколко места променливи думи - за име, колчество, вид стока и др. И много се използват в задачите за рисуване на изпита :)
Не е грешно нито с нито без placeholder. Така е преценил човека, така го е направил. По принцип ако дадеш една и съща задача на 3-ма човека ще получиш вероятно 3 разплични решения. Аз например бих използвала if констукция, защото ми е по-лесно и по-ясно виждам какво се случва. Това не означава, че другото решение е грешно. 

1
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

Разгледай и моето решение,ако искаш.Използвам тернарен оператор 

http://pastebin.com/EsF9xqmW

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