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 1550 Точки

Трябва да изпишеш 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 15 Точки

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 143 Точки

Здравей,

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