Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

mishoka303+deleted! avatar mishoka303+deleted! 19 Точки

[Отговори] First Steps in Coding

Здравейте!

Реших да публикувам отговорите на домашното First Steps in Coding за тези, които се затрудняват с домашното

01.  Hello C#

using System;

namespace notes
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello C#");
            Console.ReadLine();

        }
    }
}

Обяснение: 

Пишем на нов конзолен ред следното - "Hello C#". " " или т.н. двойни кавички се използват при писането на множество от символи. ' ' се използват при писането на САМО 1 символ. Ако не пускате програмата си с Ctrl+F5 ще трябва да добавяте Console.ReadLine(); всеки път в края на програмата си, за да не ви я затваря.

 

02. Expression

using System;

namespace _02expression
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine((3522 + 52353) * 23 - (2336 * 501 + 23432 - 6743) * 3);
        }
    }
}

Обяснение: 

Пак пишем на нов ред следното - (3522 + 52353) * 23 - (2336 * 501 + 23432 - 6743) * 3 . Това се възприема като математическа операция и автоматично се изпълнява като такава. Просто трябва да я поставим в WriteLine(<ето тук>).

 

05. Nums 1...20

using System;

namespace _05ot1do20
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 20; i++) Console.WriteLine(i + 1);
        }
    }
}

Обяснение:

С цикъл for ще си създадем променлива i и ще я увеличаваме всеки път докато не стане 20. Операторът който ще използваме ще изведе стойността на i на нов ред всеки път щом си увеличи стойността.

Отметка: Тъй като ще изпълним само един оператор в цикъла for няма нужда да го заградим със къдрави скоби { }

 

06. Triangle of 55 stars

using System;

namespace TriangleOf55Stars
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 1; i <= 10; i++)
            {
                string zvezdi = new string('*', i);
                Console.WriteLine(zvezdi);
            }

        }
    }
}

Обяснение:

Пак с цикъл for ще декларираме променлива i. Тъй като имаме 3 условия - Триъгълник, 10 реда и запълващ символ * ще използваме пак както в задача 05 да изпише i, само че колкото пъти е стойността му със символи. Методът, който съм използвал е по-сложен, но ще ви трябва за в бъдеще при други програми. Накратко, декларирам низ като нов низ със символ * и да се повтаря i пъти. После използвам WriteLine и въвеждам името на низа за да ми го изведе на екрана.

 

07. Rectangle Area

using System;

namespace _07rectanglearea
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var a = decimal.Parse(Console.ReadLine());
                var b = decimal.Parse(Console.ReadLine());
                Console.WriteLine(a * b);
            }
            catch (Exception)
            {
                Console.WriteLine("Error!");
            }
        }
    }
}

Обяснение:

Трябва да намерим лицето на правоъгълник. По математика знаем, че формулата е S = a*b. В случая S няма да ни е нужен, освен ако не е изискано от условието да представим резултата като число от променлива. Декларираме a и b и след това пишем на нов ред резултата от a*b(по-нагоре споменах, че като го напишем така в скобите на екрана ще ви изведе математическия резултат).

 

08. Square of Stars

<променлива за следене m>

            var n = int.Parse(Console.ReadLine());  //въвеждаме n
            if (<проверка дали n < 2 или >100>) Environment.Exit(0);  //това е да прекрати програмата(код подсказка)
            else
            {
                do
                {
                    if (<е първия ред или последния>) Console.WriteLine(new string('*', n)); //това е код подсказка
                    else for (int i = 1; i <= n; i++)
                    {
                        if (<края на низа настъпи>) Console.WriteLine("*"); //подсказка - това е за последния символ, така го изписва и също така отива на нов ред за следващото изписване
                        else if (<начало на низ>) Console.Write("*"); //въвежда звездичка
                        else Console.Write(" "); // пише Space за да е кухо(като дърво? :D)
                    }
                    <променлива за следене>++;
                } while (<променливата за следене е по-малка или равна на n>);

Обяснение на моя код:

Декларирам си втора променлива за да мога да направя колкото реда има n(ако n = 5 ще има 5 хоризонтални, лесно, но ми трябва нещо да се увеличава и за вертикала), след това правим проверка дали n е по-малко от 2 или по-голямо от 100. Ако не изпълнява условието, излизам от програмата(а пък можете вие нещо друго да направите). Иначе, правя следното:

ЦИКЪЛ 1

{

ЦИКЪЛ 2 (Условие)

{

 Проверка ако това е последния символ за реда да сложи символа звезда и да отиди на нов ред

иначе, ако не е изпълнено горното условие - Проверка ако съм на първия символ на новия ред, ще се сложи звезда

иначе, ако нищо не е изпълнено - пиша Space символ

//един вид ако ми е първия символ на реда, пише *, ако не е - (Space), а ако е последния - * и нов ред

} КРАЙ ЦИКЪЛ 2

променливата за следене на ред я повишавам с 1(така евентуално ще стане със същата стойност като n)

} (да се изпълнява ЦИКЪЛ 1, докато променливата за ред не стане равна с n) КРАЙ ЦИКЪЛ 1

 

Легенда:

{ } - Всичко в нея приспада към оператора

( ) - Условие

// - Коментар(не играе никакво роля в програмата)

 

Благодаря ви, че отделихте от вашето време за да прочетете всичко това. Отне ми няколко часа да напиша всичко това тук, затова моля уважете труда ми и времето прекарано за да се състави този гайд. Ако имате въпроси, ако мога да помогна ще ви отговоря :)

12
Programming Basics
mishoka303+deleted!:
Свърши си работата този пост.
DeyanPeychev avatar DeyanPeychev 21 Точки

Това е моето решение на задачата с квадрата, малко по-опростено, само FOR съм използвал :) 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            for (int i = 1; i <= n; i++) // i - брой на редовете
            {
                for (int j = 1; j <= n; j++) // j - брой символи на ред
                {
                    if (i == 1 || i == n || j == 1 || j == n) 
                        Console.Write("*");
                    else
                        Console.Write(" ");
                }
                Console.WriteLine();
            }

        }
    }
}
 

6
mishoka303+deleted! avatar mishoka303+deleted! 19 Точки

Супер е! :) Използвал си четворна проверка в едно if и после си сложил нов ред за всеки край на изпълнението на цикъла за изписване на реда. Много умно от твоя страна! :) Само едно, следните неща не са ти нужни да се зареждат с програмата(те са посивели в програмата ако не ги ползваш), по желание можеш да премахнеш това, което не ти трябва.

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

1
Delyan_Zh avatar Delyan_Zh 0 Точки

Здравейте! Случайно имате ли затруднение със задача 03?

0
DDaskalov avatar DDaskalov 10 Точки

Мисля, че тя не е за домашна. Видях, че я има решена във файла с упражнения и домашни.

0
DDaskalov avatar DDaskalov 10 Точки

Ето и моята версия на последната задача. Използвал съм, че на първи и втори ред имаме N на брой звездички, а на всички останали имаме N-2 празни места заключени отляво и дясно със звездички. 

 

using System;

class SquareOfStars
{
    public static void Main ()
    {
        int n = int.Parse (Console.ReadLine());
        
          string spaces = new string (' ',n-2);   // създава ни стринг с n-2 интервала
          string startingStars = new string ('*',n);  //създава ни стринг с n звезди


          Console.WriteLine (startingStars);   // отпечатва първи ред
        

          for (int i=1; i<=(n-2);i++)   //отпечатва от втори до n-1 ред
          {
              Console.WriteLine ("*" +spaces+"*");
          }
          Console.WriteLine (startingStars);   // отпечатва последния ред

    
    }
}

Мисля, че това е най-простото решение до момента.
Странно, но judge системата не прави проверка за 2<= N<=100 и ми дава 100 точки въпреки, че съм пропуснал такава проверка в програмата

П.П. бях постнал това като коментар към Деян Пейчев, ама май тук е по-добре

3
milentertimend avatar milentertimend 25 Точки

Ето го и моето решение на задачата със звездичките.

Някъде във форума бях чел, че за задачите с рисуване new string (‘symbol’, n) върши чудесна работа. Зорът е да намерите n на колко е равно спрямо въведеното число.

 

 

using System;

namespace SquareFromAsterisks
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine(new string('*', a));
            int i;

            for (i = 1; i <= a - 2; i++)
            {
                Console.WriteLine("*" + new string(' ', a - 2) + "*");
            }
            Console.WriteLine(new string('*', a));
        }
    }
}

2
koksibg avatar koksibg 892 Точки

Не съм ги гледа всичките, но доколкото видях в  5 задача имаш от 0 до 20 включително -т.е. цикала ти е до <= 20 (според мен си пропуснал едно равно - иначе е така). И аз сега се уча, но мисля че е така както казвам.

0
mishoka303+deleted! avatar mishoka303+deleted! 19 Точки

Здравей! Ако го направя така <= , тогава ще спре на 20, но i трябва да започва от 1, иначе ще се получи 20 + 0(тоест 21, защото започва от нулата). Аз съм го направил така, че да започва от 0 и да завършва на 19, но да изписва i + 1, тоест за началната нула ще е 0 + 1 = 1 и за края ще е 19 + 1 = 20. Написал съм го така, защото съм свикнал масивите да се броят от нула като първо число и ми е по-лесно така да го изпиша :)

for (int i = 0; i < 20; i++) Console.WriteLine(i + 1); //Започва от 0 до 19, но добавя стойността + 1 на екрана

for (int i = 1; i <= 20; i++) Console.WriteLine(i); //Изписва точната стойност на i (1-20)

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

 

 

1
koksibg avatar koksibg 892 Точки

Така е.

0
Tanina80 avatar Tanina80 11 Точки

Някой може ли да ми отговори къде е грешката в този код за решение на осма задача?

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace _15

{

    class Program

    {

        static void Main(string[] args)

        {  

            var n = int.Parse(Console.ReadLine());

            for(int i=0; i<n; i++)

            { for (int j = 0; j < n; j++)

                { if (i == 0 || i = n - 1 || j == 0 || j == n - 1)

                        Console.Write("*");

                    else Console.Write(" ");

                }

                Console.WriteLine();

            }

        }

    }

}

0
milentertimend avatar milentertimend 25 Точки

Синтактичните си грешки можеш да видиш в полето Error List във Visual Studio. Освен това мисли за колкото се може по-оптимален код, а не да се оптиваш да измислиш възможно най-сложния начин за решаването на една задача. Написала си някаква условна конструкция, нея си я вкарала във for цикъл, който пък си вкарала в друг for цикъл и всичко това за един простоват правоъгълник от един вид символи. Сама си усложняваш живота.

1
Tanina80 avatar Tanina80 11 Точки

Открих си грешката :))))))

Изтървала съм едно "="

Затова не ми е харесало if-a

 

0
heilin90 avatar heilin90 69 Точки

Ето го и моето решение на 8 задача:

using System;

class SquareOfStars
{
    static void Main()
    {
        int num = int.Parse(Console.ReadLine());        
        for (int row = 1; row <= num; row++)
        {
            for (int col = 1; col <= num; col++)
            {                                         
                if ((row != 1) && (row != num) && (col != 1) && (col != num))
                {
                    Console.Write(" ");
                }
                else
                {
                    Console.Write("*");
                }                              
            }
            Console.WriteLine();           
        }
    }

 

 

0
daniel.a.mihaylov avatar daniel.a.mihaylov 6 Точки

мерси .... сега ще ги пробвам .... аз последното го направих с помоща на един приятел е май сме го направили по сложния начин,защото като гледам твойто е доста по опростено :) ,а как се процедира с тези домашни ... след като си ги проверя в системата и ми изпише че са 100% верни ,автоматично ли ги получава софтуни или аз трябва да ги изпращам някъде .... понеже не съм много в час а и не можах да присъствам на лекцията вчера от самото начало ... дойдох по средата 

0
milentertimend avatar milentertimend 25 Точки

След като Judge ти покаже веднъж 100 точки от задачата, няма къде повече да я изпращаш.

2
mishoka303+deleted! avatar mishoka303+deleted! 19 Точки

^^ каквото е написано по-горе

1
Impheatuss avatar Impheatuss 23 Точки

Ето и моето решение за 08. Square of Stars:

using System;

class Program
{
    static void Main()
    {
        int n = int.Parse(Console.ReadLine());
        Console.WriteLine(new string('*',n));
        for (int i = 2; i < n; i++)
        {
            
            Console.WriteLine("*" + new string(' ', n - 2) + "*");
        }
        Console.WriteLine(new string('*', n));
    }
    
}

3
mishoka303+deleted! avatar mishoka303+deleted! 19 Точки

Супер! Първоначало и аз така го направих(първи и последен ред го изписвам така), но не ми я прие и ми даде 80/100. При тебе максимума ли ти даде?

0
Impheatuss avatar Impheatuss 23 Точки
100 / 100 Memory: 8.29 MB 
Time: 0.031 s
0
heilin90 avatar heilin90 69 Точки

Това със new string-a е много хитро! :)

1
mirail_89 avatar mirail_89 3 Точки

Здравейте, ето и моето решение за 06. Triangle of 55 stars:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TriangleOf55Stars2
{
    class Program
    {
        static void Main(string[] args)
        {for (int i = 1; i <=10; i++)
            {
                Console.WriteLine(new string('*', i)); 
                    
            }
        }
    }
}

1
Plamen.Tsvetanov avatar Plamen.Tsvetanov 1 Точки

Здравейте,

Ето го и моето решение на SquareOfStars

using System;


class SquareOfStars
{
    static void Main(string[] args)
    {
        var n = int.Parse(Console.ReadLine());
        for (int i = 1; i <= n; i++)
        {
            Console.Write("*");
        }
        Console.WriteLine();
        for (int a = 0; a <= n - 3; a++)
        {
            Console.Write("*");

            for (int t = 1; t <= n - 2; t++)
            {
                Console.Write(" ");
            }
            Console.WriteLine("*");
        }
        for (int b = 0; b <= n - 1; b++)
        {
            Console.Write("*");
        }
        Console.WriteLine();
    }
}





 

0
13/06/2016 20:08:04
mishoka303+deleted! avatar mishoka303+deleted! 19 Точки

Надявам се, че съм помогнал на тези, които са имали затруднения със задачите. Затварям този thread. Лек и приятен ден, колеги!

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