Loading...
gsimeonov avatar gsimeonov 8 Точки

Introduction to Programming Homework - Ruse, 2015 [Problem 9 - Print a Sequence]

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

Поствам кода си за задача 9, Print a Sequence. Накратко, програмата показва желаният output, но имам чувството, че може да се направи и по-добре. Ако някой има идея как да се подобри, или изцяло нов начин да се направи, ще се радвам да го споделим тук. 

Нарушена точка 12 от Правилата.

0
Programming Basics 25/10/2015 17:36:46
iMitaka avatar iMitaka 48 Точки

Здравей! smiley

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

using System;
class PrintSequence
{
    static void Main()
    {
        Console.WriteLine("2,-3,4,-5,6,-7,8,-9,10,-11");
    }
}

но, ако държиш да бъде с цикъл, може и така:

Print a Sequence - Loop Variant

Успех! wink

2
eMagicMan avatar eMagicMan 28 Точки

Здравей,

Виждам че си се опитал с FOR LOOP да го направиш.

Попринцип за толкова малка редица не ти е нужно. Но ти си като мене да го направиш по трудния начин за да работи и с

до 1000. :D

Нали редицата е 2,-3,4,-5 и т.н.

Аз го направих така че всеки път когато минава през FOR LOOP да умножава с (-1) за да се променя знака и да добавя  + 1 .

Но тогава се получава един бъг. Когато числото е отрицателно и ако му се добави 1 то от -3 ще стане -2 и после когато пак се обърне на положително ще е 2 а не 4 както трябва. Това лесно се оправя просто ти трябва IF за да проверяваш кога е положително и кога не. Ако е положително добавяш едно и ако е отрицателно вадиш едно.

Ето как изглежда кода (малко по кратък е)

class Sequence
{
    static void Main()
    {
        int start = 2;
        for (int i = 2; i <= 1000; i++)
        {
            Console.WriteLine(start);
            if (start < 0)
            {
                start--;
            }
            else
            {
                start++;
            }
            start *= -1;
        }
    }
}

Good Luck !

 

1
25/10/2015 15:58:41
Teodora_Todorova avatar Teodora_Todorova 1 Точки

Здравей!

Реших задачата по доста подобен на твоя начин.

 

using System;
namespace PrintASequence
{
    class PrintASequence
    {
        static void Main(string[] args)
        {
            for (int i = 2; i <12;  i++)
            {
                if (i % 2 == 0) Console.Write("{0} ",i);
                else if (i % 2 != 0) Console.Write("{0} ", -i);

            }
            Console.WriteLine();
        }
    }
}

 

0
gsimeonov avatar gsimeonov 8 Точки

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

0
Snooty7 avatar Snooty7 -1 Точки

Ето и от мен едно решение. Имаш избор:

class Sequence
{
    static void Main(string[] args)
    {
        for (short i = 2; i < 12; i++)
        {
            if (i % 2 == 0)
            {
                Console.WriteLine(i);
            }
            else
            {
                Console.WriteLine(-i);
            }
        }
    }

}

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