Loading...
martinlyubenov avatar martinlyubenov 1 Точки

IntroToProgramming преправяне на код за Print Sequence.

Доста се чудих как да напиша кода за тази задача с малкото ми знания по JavaScript(от KhanAcademy) и да ги приложа към C# кода, но програмата ми връщаше всички числа от 2 до 11 заедно с техните положителни и отрицателни(2, -2, 3, -3, 4, -4...). Знам, че в лекциите ни казваха да развиваме "problem sloving" уменията си и да потърсим в интернет, но наистина исках да го напиша сам. Ако може някой да го погледне и да ми даде съвет какво да променя или донапиша за да проработи, ако изобщо може да излезе нещо от него. 

Благодаря. 

using System;

class PrintSequence
{
    static void Main()
    {

        for (var i = 2; i < 12; i++)
        {
            Console.WriteLine(i);

            if (i == i / 2)
            {
                Console.WriteLine(i);
            }
            else
            {
                Console.WriteLine("-" + i);
            }
        }
    }
}

 

1
Programming Basics 16/09/2015 22:40:14
PavelManahilov avatar PavelManahilov 216 Точки
Best Answer

До колкото помня, в задачата се искаше да се изпише редицата 2,-3,4,-5....-11 , което значи че четните числа са положителни, а нечетните отрицателни.. За да е четно едно число то трябва да се дели на 2 без остатък. За тази цел if-а който ще ползваш е 

if ( i % 2 == 0) - което значи, остатъка от i / 2 , да е равен на 0

Махни първата Console.WriteLine(i); остави само тези във If-a и елс-а , и вместо Console.WriteLine , ползвай ConsoleWrite - така ще изпише всички числа на един ред

И накрая можеш да сложиш един if за запетайката

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

2
17/09/2015 08:54:53
martinlyubenov avatar martinlyubenov 1 Точки

Да, това проработи. Благодаря.

Не разбирам само (i % 2 == 0) частта, но предполагам, че е като математически израз за езика или нещо подобно.

0
16/09/2015 23:00:53
PavelManahilov avatar PavelManahilov 216 Точки

Да така е

 i % 2 въща остатъка от делението на i и 2

Пример:  5 % 2 е равно на 1  ,защото 5/2 = 2 с остатък 1

Друг пример 11 % 4 е равно на  3 . защото 11/4 = 2 с остатък 3

Тук говорим за делене само на целочислени числа (примерно int) 

1
Bare7a avatar Bare7a 14 Точки

Мисля че е по-добре да се ползва string.Join ако трябват запетайки. Също така е по-добре да ползваш int като правиш for цикъл, има време до JavaScript/PHP :)  http://pastebin.com/xf6NW3vL

 

0
16/09/2015 23:40:49
Bare7a avatar Bare7a 14 Точки

Първият Console.WriteLine(i); винаги ще се изпълнява и за това ще ти принтира числата от 2 до 12.. Ако искаш да ги редуваш с "+" и "-" трябва да преправиш if-a: if(i%2==0)

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