Професионална програма
Loading...
+ Нов въпрос
georgi.bogdanov84 avatar georgi.bogdanov84 9 Точки

Пояснение към задача номер 9

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

Някой може ли да хвърли малко повече яснота относно задача номер 9 от първото домашно? Ако може да покаже някакво решение + разяснение към него.

Тагове:
1
Programming Basics
Anonymous:
Duplicate: https://softuni.bg/forum/questions/details/79/
Fundamentalen avatar Fundamentalen 133 Точки
Best Answer

for (int index = 2; index <= 10; index++)
        {
            if (index % 2 == 0)
            {
                Console.WriteLine(index);
            }
            else
            {
                Console.WriteLine(-index);
            }
        }

Пускаш цикъл с начална стойност 2(int index = 2), до крайна стойност 10 както е в условието. Вътре в цикъла правиш проверка за да определиш на кои цифри да сложиш "-". Ако index се дели на 2 без остатък (всяко число разделено на друго при което резултата е 0) цифрата се изписва без "-". И ако index се дели на 2 с остатък(всяко число разделено на друго при което резултата не е 0)  знакът пред цифрата е "-".

Ако има остатък е нечетно, и ако няма четно. В задачата четните са без "-", а нечетните са с "-".

6
viraldim avatar viraldim 21 Точки
само една малка забележка цикъла трябва да ти <=11 или <12 а не до10 за да се принтирът първите 10 члена иначе според мен задачата трябва да се реши с цикъл понеже 16 е същата само че  границата е до 1001 или 1002 
1
Vanyaha avatar Vanyaha 0 Точки

Като гледам съм използвала съвсем различен подход от тук цитираните, използваики Матh, без условие

http://pastebin.com/Li5P1Hh5

мисля, че и така става

Идеята е да се умножава всеки член от редицата по (-1) на четна или нечетна степен.

1
Vanyaha avatar Vanyaha 0 Точки
Когато броиш, сметката е (крайна стойност) -(начална стойност) +1
0
Samuil.Petrow avatar Samuil.Petrow 1548 Точки

Трябва да изпишеш 10те елемента от редицата.

Съответно тя би изглеждала в пълния си вид така:

2, -3, 4, -5, 6, -7, 8, -9, 10, -11

Единият вариант е да ги печаташ едно по едно, използвайки Console.WriteLine() (или Console.Write() в зависимост как искаш да ти бъде форматиран изхода):

Console.WriteLine(2);

Console.WriteLine(-3);

Console.WriteLine(4);

Console.WriteLine(-5);

Console.WriteLine(6);

Console.WriteLine(-7);

Console.WriteLine(8);

Console.WriteLine(-9);

Console.WriteLine(10);

Console.WriteLine(-11);

Другият вариант е с for цикъл и проверка за четност:

for(int i = 2; i<=11 ;i++) // Минаваме през числата от 2 до 11

{

if(i%2==0) Console.WriteLine(i); // проверяваме дали числото е четно, ако да го печатаме

else Console.WriteLine(i*-1); // ако не е - печатаме числото умножено по -1

}

7
Roberto avatar Roberto 56 Точки
Това е правилния вариянт за решението на тази задача,само да вмъкна,като цяло се изисква числата от 
2 до 11 да се изписват,като всяко четно трябва да е "+" , а всяко нечетно с "-"
2
kliko avatar kliko -2 Точки
Можеш да потърсиш и в GOOGLE за цикъл FOR и if.
0
ViValDam avatar ViValDam 16 Точки

int  positiveMember = 0;
int negativeMember = -1;

for (int i = 0; i <= 3; i++)
{

Console.Write((positiveMember += 2) + ", ");
Console.Write((negativeMember -= 2) + ", ");
}

Console.Write((positiveMember += 2) + ", ");
Console.Write(negativeMember -= 2);

Console.WriteLine();
Console.WriteLine();



  //2 

int StartOne = 2;
int StartTwo = -3;

while ((StartOne <= 10) && (StartTwo > -11))
{
Console.Write(StartOne + ", ");
Console.Write(StartTwo + ", ");
StartOne = StartOne + 2;
StartTwo = StartTwo - 2;
}
Console.Write(10 + ", ");
Console.Write(-11);

Console.WriteLine();

//3

for (int i = 2; i < 11; i++)
{

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

}
Console.WriteLine(-11);

//4
for (int i = 2; i <= 11; i++)
{

if (i % 2 == 0)
{
Console.Write(i + ", ");
}
else
{
if (i == 11)
{
Console.WriteLine(-i);
break;
}
Console.Write(-i + ", ");
}
}
    


зА 16 ЗАДАЧА САМО ТРЯБВА ДА СМЕНИШ 10 СЪС 1000 - ИМА ТЕМА ЗА НЕЯ 

























































3
Iliya.Stoilov avatar Iliya.Stoilov 6 Точки

Здравей! Аз лично съм използвал следния код

Console.Write("Enter date of birth mm/dd/yyyy:");
        DateTime birthDay = DateTime.Parse(Console.ReadLine()); 
        TimeSpan difference = DateTime.Now.Subtract(birthDay); 
        Console.WriteLine("Now you are {0} years old.",difference.Days/365);
        Console.WriteLine("In 10 years you will be {0}!",(difference.Days/365)+10);

TimeSpan  метода представлява интервал във времет. DateTime.Now е времето на момента,а  Subtract означава изваждане. И понеже измерването е във дни разделям difference(разликата) на 365 за да получа отговор като години. Ако има нещо неясно питай :)

0
nikolay.dimov83 avatar nikolay.dimov83 142 Точки

Здравей,

Ето го и моя вариант - ползвам while цикъл, като решението е валидно и за 16 задача - само трябва да смениш условието в скобите на while на: (counter<=500)

 static void Main(string[] args)
        {
        int counter = 1;
        int NegNumbers = -3;
        int PosNumbers = 2;
        int Adder = 2;


            while (counter <= 5 ) 
            {
                Console.Write(PosNumbers + " "+ NegNumbers+" ");
                NegNumbers = NegNumbers - Adder;
                PosNumbers = PosNumbers + Adder;
                counter = counter+1;


            }

0
rosenrusev avatar rosenrusev 175 Точки

Здравей,

Задачата е следната. Трябва да изведеш на конзолата описаната поредица от числа.

Вижда се, че те са последователни от 2 до 11 (включително).

Използвам да ги разделя на четни и не четни числа.

Според признака за делимост на 2 числтата, които се делят на 2, се наричат четни, а числата, които не се делят на две, се наричат нечетни.

Също може да се каже, че на 2 се делят само тези числа, на които последната цифра означава четно число.

Всяко число, което завършва на 0 се дели на 2 и е четно. 

Четно число е и нулата.

Като използвам признака за делимост си реших задачата, ето така: http://pastebin.com/wda5wDLT .

Надявам се да съм бил полезен :)

0
LinAdmin avatar LinAdmin 78 Точки

Здравейте,

Ето и моят принос към задачата

Между другото, като off-topic, ето линк за това ка да синхронизирате кода си с GitHub директно през VisualStudio.

Сега, относно задачата:

/* =============================
 * Problem 9.    Print a Sequence
 * =============================
 *
 * Write a program that prints the first 10 members of the sequence: 2, -3, 4, -5, 6, -7
 */

using System;

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

        }
        Console.WriteLine();
    }
}

Кодът е почти еднакъв с вече споделените, но реших да печатам на един ред и със запетайки, т.е. вместо Console.WriteLine, използвам Console.Write, и преди да върна цикъла в началото печатам запетайка и интервал, за да се получи всичко на една линия и най-важното, да е четимо.

След като извъртя целия цикъл печатам празен Console.WriteLine извън цикъла, за да не се появява "Pres any keyo to continue or any other key to exit..." на същия ред с изхода на програмата.

0
bbrayanov avatar bbrayanov 0 Точки

int start = 2;
        int end = 10;
        for (int i = start; i < end + start; i++)
        {
            if (i % 2 == 0)
            {
                Console.WriteLine(i);
            }
            else
            {
                Console.WriteLine(i * -1);
            }
        }
        Console.ReadLine();

Задачата е същата като 16-та само че заместваме end да не е 10 а 1000 и работи по същия начин Console.ReadLine() е за да изчака да се прочете.

0
bbrayanov avatar bbrayanov 0 Точки
Но доколкото разбрах задачата трябва да се реши по първия начин на Samuil.Petrow .
0
stanislav.nanchev avatar stanislav.nanchev 1 Точки

Здрасти,

Аз го мъча в момента. Прогресиите винаги са ми били много неясни, но гледам това клипче точно в момента:

https://www.youtube.com/watch?v=lj_X9JVSF8k

Според мен трябва да направиш някаква формула. Вече с output-a на числата трябва малко повече ровене, но според мен е елементарно само да го намеря :D

0