Loading...
DanteSparda avatar DanteSparda 32 Точки

[Homework] C# Basics - Introduction To Programming - Problem {9}

Стигнах до 9 задача и се зачудих какво се иска от нас. Има доста начини за решение а ето за кои имам предвид:
1) С чиста логика пресмятаме, че израза 2, -3, 4, -5, 6, -7, ... завършва с  8, -9, 10, -11 и просто да ги напиша с Console.WriteLine("")
2) Да я реша като математически израз : a, b, a+2, b-2, a+4, b-4, a+6, b-6, a+8, b-8
3) Да завъртя цикъл, което няма как да го направя, но един приятел знае :D
Спрял съм се на ( 2) ) защото реших да упражня int и {} :)

Въпроса ми е накратко: Изисква ли се според вас да мислим гениални начини за решение на прости задачи или всичко е наред щом работи :D

2
Programming Basics
Anonymous:
Duplicate of https://softuni.bg/forum/questions/details/34
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

Спри се по-добре на 3, защото циклите са един от най-важните фундаменти в програмирането като цяло и колкото по-рано ги научиш, толкова по-добре :)

Иначе в случая няма проблем и да изпраскаш многото WriteLine-a, но след 1-2 лекции вече ще е грешно :) :D

2
TsvetinaKoleva avatar TsvetinaKoleva 92 Точки
Препоръчвам ти да се разтърсиш за информация за for цикъл. Ще научиш нещо ново и доста използвано :)

Цък (for)
Цък (if-else)

Не мисля, че задачата ти ще бъде приета за грешна дори да използваш написаното по-горе, но защо пък да не научиш и нещо ново. Успех :)
1
XmUrF avatar XmUrF 363 Точки

Аз също като теб бях учуден в началото. Струваше ми се, че едва ли искат от нас просто да допишем поредицата с Console.Writeline(), така че и аз като теб потърсих други варианти.

След като обаче стигнах до една от следващите задачи, която по същество е същата, но със звездичка, защото поредицата е до 1000, разбрах, че всъщност да, от нас са искали възможно най-простия вариант 1 за тази задача :). Но така или иначе като стигнеш по-трудната, вече ще трябва да го направиш по друг начин, затова почвай от сега.

1
Masovski avatar Masovski 211 Точки
"3) Да завъртя цикъл, което няма как да го направя, но един приятел знае :D" 

Както казва, господин Петров, по-добре е да се спреш на този вариант. Аз искам само да подчертая, че е хубаво, този твой приятел само да те насочи и обясни как работят циклите, но ти сам да се помъчиш и създадеш решение. В интернет има достатъчно ресурс, а ако вече много не се сещаш какво да правиш, винаги можеш да погледнеш в една от темите с домашните тук, във форума. Все пак, прави го в краен случай. Дори и да не успееш да го разбереш напълно сега, като дойде време за урока по цикли, ще имаш една основа, която ще ти помогне по-лесно да усвоиш материала. Успех! : )

 

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

0
qvorrr avatar qvorrr 3 Точки

Аз ползвах следното решение на задачата.

Ползвам цикъл for, условие и деление с остатък %.

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

  if (i % 2 == 0) Console.WriteLine(i);// ако числото няма остатък - значи е положително
  else Console.WriteLine(-i);// ако числото има остатък 
}

2/2= остатък 0 - числото е положително

3/2= остатък 1 - числото е отрицателно

Надявам се да съм помогнал.

0
ViValDam avatar ViValDam 15 Точки

За Явор

2%2=0 - числото е четно

3%2 =1 -числото е нечетно

Нищо общо няма с положително и отрицателно - проверката с % е за четност и нечетност.

Имаш един цикъл който проверява положителните числа 2 ,3,4,5,6,7,8,9,10,11 за четност и нечетност

Ако, числото е четно го записва както си е положително , без знак ,четни са 2,4,6,8,10

Ако числото е нечетно , го записва с минус пред него , нечетни са 3,5,7,9,11

Ето това прави твоята програма. 

1
sasho.damqnov avatar sasho.damqnov 4 Точки

Според мен Явор е имал предвид, че в конзолата нечетните числа трябва да бъдат изкарани като отрицателни (с минус), а не, че са такива в действителност :)

Иначе - няма нужда i да е по-малко от 12, тъй като в случая 12 е число, не позиция. Така ще ти изкарва резултати до 12, а в условието се иска до 10.

В моето решение съм обърнал if и else, съответно в условието на if-а съм писал (k % 2 != 0).

0
Ventsislav avatar Ventsislav 343 Точки
аз съм я решил по 2 начина - http://pastebin.com/uaKpbzBA , вторият е закоментиран , трябва да се разкоментира за да го видиш как работи . Мисля че е хубаво да се реши по един от тези 2 начина . С Console.Writeline пак отговаря на условието , пак е вярно , но там не следва никаква логика ...
0
ivaylo.yanchev.5 avatar ivaylo.yanchev.5 80 Точки

Смятам, че зависи от формАта и знанията на конкретния човек. Веднага ти давам пример.

Тъй като това все пак е курс за основите, в първия урок би било нормално да използваш вариант 1, тъй като само това сме учили в урока. Веднъж след като сме взели цикли и е дадена пак същата задача ще е по-логично да използваш цикъл.

Ако тази задача беше част от проект в работата ти, щеше да потърсиш кой е най-добрият вариант и да използваш него!

Аз примерно използвах друг вариант с цикъл for - цикълът започва от 2 и ако поредното число в низа е четно го отпечатва с "+", ако не - с "-".

За този урок и тази задача всеки от изброените варианти и ОК! И все пак, похвално е, че виждаш няколко варианта за решаване на проблема и разсъждаваш кой е най-добрият, вместо просто да напишеш този, който е най-лесен. Например, можеш да използваш и само 1 променлива: а; (-1)*(а+1); а+2; (-1)*(а+3).

В отговор на конкретния въпрос по принцип - да, трябва да мислим и да прилагаме най-добрия начин, не най-лесния или този, който просто работи.

2
qvorrr avatar qvorrr 3 Точки
Това за (-1)-цата го бях забравил. 
0
ViValDam avatar ViValDam 15 Точки
Все още не - засега е важно да направим работещ алгоритъм - не е важно как е направен !
1
venconi91 avatar venconi91 18 Точки
лично според мен е хубаво да се изпипват нещата а не да е успокоение че просто нещото работи. Ако просто работи лесно може да се скапе. Аз лично го направих това с for цикъл една променлива и умножение по -1^n , при четно n се появява положително число и при нечетно отрицателно като при всяка врътка на цикъла n се увеличава с 1 : ) 
2
qvorrr avatar qvorrr 3 Точки

Точно си мислих да напиша, че това е най-добрия метод за решаване на задачата, но ти ме изпревари.

имаме i=2

2*(-1)^2 = 2

i=3

3*(-1)^3 = -3

0
georgi.b.stoilov avatar georgi.b.stoilov 6 Точки

и аз така го направих. това е редица от числа

power(-1,i)*i, където i = 0 до N-1

пускаш цикъла и си готов.

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