Софтуерно Инженерство
Loading...
+ Нов въпрос
chavdardim avatar chavdardim 17 Точки

Методи и необходими знания за решаване на 15 и 16 задача.

Здравейте,

Начинаещ съм и се опитвам да реша 15 задача и попрочетох малко съответната тема.

Колега беше написал,че целта е да се научат методи като Parse,ReadLine и т.н.Според мен е хубаво да има една тема,която да казва какви по-различни методи може да се използват при решашането на първото домашно.

Също така ще помоля по-напредналите,ако може под съответния метод да дадат един пример.

П.П. Честит празник на дамите!

3
Общи приказки
Kibork avatar Kibork 87 Точки

Задача 15:

Пояснение:

"Console.ReadLine() - Това служи за прочитане на информация, вкарана от потребителя в конзолата. Т.е. в момента в който пуснеш конзолата с този код на нея не пише нищо, това е защото тя иска да въведесх своята възраст, след което цъкаш Enter

Convert.ToInt16() - Горния ред, трябва да е обграден от тази, както и от много други възможни функции. Тъй като през 'Console.ReadLine()' данните взизат във вид 'String', е необходимо да ги конвертираме в някакъв целочислен тип, както в случая 'Int16'"

Код:

using System;

class HowOldAmI
{
    static void Main()
    {
        Console.WriteLine(Convert.ToInt16(Console.ReadLine())+10);
    }
}

Задача 16:

Пояснение:

"for() - цикъл for. позволява да повториш някакво действие 'N' пъти, като броят на пътите, коит оискаш да повториш действието, се отбелязва след второто 'i', докъто първото 'i' определя, откаде повторението да започне. Имай впредвид, че компютрите броят от 0, а не от 1. А 3тото 'i' (i++) увеличава стойността на 'i' с единица за всяко следващо превъртане на цикъла.

i%2==1 - ковто значи, когато стойността на i, разделена на 2, дава остатък 1 или по точно казано, всяко нечетно число, в рамките, които сме определили (в случая от 2, до 1001, което ще изведе на конзолата от 2 до 1000, с минус пред всяко нечетно)

if() - 'ако', т.е. ако i делено на 2, дава остатък 1ница - Console.Write("-")

в случая, обаче след if() не съм сложил, къдрави скоби. Така е защото, това която искам да направя, ако 'i%2==1', се състои смо от 1 ред. Но, когато изпълняваме команди на повече редове, се нуждаме, те да бъдат обградени от къдрави скоби"

Код:

using System;

class LongSequence
{
    static void Main()
    {
        for (int i = 2; i < 1001; i++)
        {
            if(i%2==1)
                Console.Write("-");
            Console.Write(i+", ");
        }
    }
}

7
TsvetinaKoleva avatar TsvetinaKoleva 99 Точки
Решението си е супер, благодаря, че споделяш и твоя начин :)
Но забележи условието на задачата, когато изтеглиш домашното сега:
 ЗАД 15: Write a program to read your birthday from the console and print how old you are now and how old you will be after 10 years.
1
Nikolaev23 avatar Nikolaev23 4 Точки

Направих 15 задача и по този начин :http://pastebin.com/6iWe5pWS  - Направил съм проверка и за месеца и за деня ,когато месеца е равен на текущият.

П.С ако съм направил нещо неправилно ,моля отпрявайте критики ,за да поправя грешката си.

2
Nikolaev23 avatar Nikolaev23 4 Точки

Това е моето решение по задачата.Използвал съм Parse i ReadLine и съм я решил по-възможно най-лесният за мен начин :)

15 задача : http://pastebin.com/6iWe5pWS

16 задача : http://pastebin.com/jji0ahpn - решил съм я и от конзолата съм си разширил полетата от properties :)

1
FeraL.GoD avatar FeraL.GoD 6 Точки
15 и аз  я бях решил по подобен начин, но сега нали "ъпдейт"-наха домашната(свали си я наново) и се иска след като си въведеш рождената дата примерно: 8, 3, 1993 с тези числа да ползваш сегашната дата (DateTime.Now), и от там да направиш така, че да показва на колко си години сега и на колко години ще си след 10 години. Аз ползвах ReadLine if и else if
1
Nikolaev23 avatar Nikolaev23 4 Точки
Да поправих я в горните 2 поста :) Благодаря :)
0
filipm avatar filipm 8 Точки

Препоръчвам ти да използваш DateTime.TryParse, връща ти false ако не може да конвертира входния низ и можеш да обработиш грешката предварително.

  string DateInput = Console.ReadLine();
            DateTime correctDatе;
            if (DateTime.TryParse(DateInput, out correctDate))
            {
                //Do stuff if date is correct
            }
            else
            {
                Console.WriteLine("Date format not correct, try again!");
            }








0
alex687 avatar alex687 19 Точки

Console.ReadLine() - метод за четене от конзолата- просто казано , пишеш текст в конзолата и при натискане на enter  се прочита редът . Методът го връща като string.

int.parse() -  Превръща stringa в int. Ако string-а е правилно (Няма други символи освен цифри). Иначе пуска Exception (Error)

За повече информация може да прочетеш тук .

1
GoShow avatar GoShow 595 Точки

В случая за мен е по-интересна 16-та задача.Истината е, че една задача може да се реши по много различни начини.Лично аз те съветвам ако можеш да вървиш поне 1 тема напред, дори 2.Чети, гледай видеа и коментари и решения. Ето моята 16 - та задача :

using System;

class PrintLongSequence
{
    static void Main()
    {
        for (int i = 2; i < 1002; i++)
        {

            if (i % 2 == 0)
            {
                Console.Write(i + ",");
            }
            else
            {
                if (i == 1001)  //this "if" is for not putting "," after the last number of the sequence
                {
                    Console.WriteLine(-i);
                    break;
                }
                Console.Write(-i + ",");
            }
        }
    }
}



























0
MarinPetrov avatar MarinPetrov 20 Точки
Здравей колега , като цяло за този курс най-важните методи ,който ще ти потрябват са
ConsoleWrite(); - Изписва на конзолата текст, но не преминава на нов ред
ConsoleWriteLine(); - Изписвана конзолата текст и преминаа на нов ред
Това са числени типове: byte, short, ushort , int, uint, long,ulong, float, double ,decimal .Parse(ConsoleReadLine());
Тук всеки тип може да се прочете от конзолата и има метод Parse , като
типът string се прочита от конзолата без Parse директно
пр. string name = Console.ReadLine();
А щом си от начинаещите има в системата и от следващата тема презентацията и домашното гледай и демотата , най-добре да вървиш напред с една две теми , разбира се ,ако имаш достатъчно свободно време , и като цяло прегледай if конструкциите и Loops(циклите). Като се налага поглеждай и по напред или според условията на задачите , И се упражнявай това е най-важното за да вземеш този изпит!Повечето нови методи , който ще научиш са при матриците и масивите , това е последната лекция , но ти прпоръчвам още да не ги гледаш за да не стане боза в главата ти поне при мен така беше ! Като остане 1,2 лекции до тях ,ги мятай ! По лесно е като си прочел нещичко предварително ! И гледай в книгата Въведение в програмирането ! Много е хубава и много ще ти помогне ! И има доста повечко задачки !

2
chavdardim avatar chavdardim 17 Точки
Благодаря за изчерпателния отговор.Опитвам се да систематизирам знанията колкото и малко да са до момента.Това за което не съм сигурен в момента е подхода към всяка задачка и дори мисля да пусна отделна тема.
0
MarioDandarov avatar MarioDandarov 27 Точки

Възможно ли е 15-та да стане с променлива в която си играем с годините? След въввеждане на birthday-а, да извлечем на колко години е user-а в променливата и да принтнем (променливата) и (променливата + 10).

using System;

class AgeAfter10Years

{
    static void Main()
    {
        int agenow, age10;
        Console.Write("Enter your age:");
        agenow = int.Parse(Console.ReadLine());
        age10 = agenow + 10;
        Console.WriteLine("Your age now are {0}, after 10 years will be {1}", agenow, age10);
    }
}

Другия кратък начин е със System.DateTime.AddYears()

0
Christian_Tonev avatar Christian_Tonev 4 Точки

Ето ти и това, което сглобих от якото гепене в интернет! Дано ти даде и на теб някакви идеи :)

------------------------------------------------------------------------------

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

classAgeAfter10Years

{

 

staticvoid Main()

{

 

Console.Write("Напиши рожденната си дата: ");

 

string b_Date =Console.ReadLine();

 

DateTime birthDate =DateTime.Parse(b_Date);

 

DateTime today =DateTime.Now;

Console.WriteLine("Днес е "+ today);

int age =DateTime.Now.Year - birthDate.Year;

 

if (today.Year < birthDate.Year || age >111)

{

 

Console.WriteLine("Въвел си неверни данни! Според данните, които си въвел ти:");

 

}

if (today.Month < birthDate.Month || (today.Month == birthDate.Month && today.Day < birthDate.Day))

{

age--;

Console.WriteLine("Сега си на {0} години.", age);

 

Console.WriteLine("След 10 години ще бъдеш на {0} години.", age +10);

}

}

}

 

0
Christian_Tonev avatar Christian_Tonev 4 Точки

Може малко повече от абсолютно задължителното. Направих и проверка за диапазон от данни, които могат да бъдат сметнати за верни. Работи със всякакви формати на дати. Чупи се от неправилен формат на дата и въведени букви или други непозволени в датите символи, но просто нямам времето да се заиграя повече в момента! :)

0