Професионална програма
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