[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();
}
}
Благодаря за помоща :)
може и така
if (i % 2 == 0)
{
Console.Write(i);
}
else
{
Console.Write(-i);
}
if (i != 11)
{
Console.Write(",");
}
Благодаря и на теб и двете решения са супер жалко , че не се сетих сам . Поздрави :)
Благодаря разгедах го .Стегнато е доста ,но не ми е толкова ясно какво се случва а идеята не е просто да преписвам отговорите а да разбера какво се случва .Поздрави :)
Аз съм начинаещ и доколкото съм запознат,това е начин да се замести оператора if-else а иначе може да видиш за повече информация в Учебника Въведение в Програмирането,има го в нета.Иначе синтаксиса е следния :
Условният оператор ?: използва булевата стойност от един израз,за да определи кой от другите два израза да бъде пресметнат и върнат като резултат.Операторът работи над 3 операнда и за това се нарича тернарен.Символът ? се поставя между първият и вторият операнд а ":" се поставя между втория и третия операнд.Първият операнд трябав да е от булев тип,а другите два операнда трябва да са от един и същ тип,например числа или стрингове.
Синтаксисът на оператора ?: е следният:
операнд1 ? операнд2 : операнд3
Той работи така:ако операнд1 има стойност true,операторът връща като резултат операнд2.Иначе (ако операнд1 има false ) операторът връща резултат операнд3.
Аз лично се запознах случайно с него но е полезен според мен
тринарният оператор ( условие ? изпълно се ако условието е вярно : изпълни се ако условието не е вярно ) - съкратен 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 ме изпревари в обяснението :)
Благодаря ! :)
Отново Благодаря :)
Един кратък въпрос към gabi.ivanova или TeodorDimitrov89 (който успее пръв да отговори). Тъй като пробвах израза Console.Write(i % 2 == 0 ? "{0}" : "{1}", i, -i); да се превърне в следния вид :
Console.Write(i % 2 == 0 ? i : -i);
и пак си тръгва нормално. Та има ли някаква причина да се ползват в случая placeholders освен да е по-видимо и разбираемо в кода? Питам като напълно начинаещ :)
В конкретния случай няма голямо значение, тъй като ако се изпълнява само едното - или печата i или -i . Placeholder-и обикновено се използват когато имаш по-голям текст и на няколко места променливи думи - за име, колчество, вид стока и др. И много се използват в задачите за рисуване на изпита :)
Не е грешно нито с нито без placeholder. Така е преценил човека, така го е направил. По принцип ако дадеш една и съща задача на 3-ма човека ще получиш вероятно 3 разплични решения. Аз например бих използвала if констукция, защото ми е по-лесно и по-ясно виждам какво се случва. Това не означава, че другото решение е грешно.
Разгледай и моето решение,ако искаш.Използвам тернарен оператор
http://pastebin.com/EsF9xqmW