Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Задача С#

Задача С#

Мнениеот Гост » 18 Ное 2020, 19:49

Напишете C# конзолна програма, която отпечатва триъгълник от 55 звездички, разположени на 10 реда:
*
**
***
****
*****
******
*******
********
*********
**********
Може ли това да стане с for цикъл?
Гост
 

Re: Задача С#

Мнениеот Sup3rlum » 18 Ное 2020, 20:33

Какво пробва досега?
Sup3rlum
Фен на форума
 
Мнения: 247
Регистриран на: 19 Фев 2019, 02:08
Рейтинг: 347

Re: Задача С#

Мнениеот Гост » 18 Ное 2020, 20:54

Sup3rlum написа:Какво пробва досега?

Не съм пробвал, но в условието се пита дали може с цикъл for.
Гост
 

Re: Задача С#

Мнениеот Гост » 19 Ное 2020, 17:50

Не познавам този език за програмиране, дори не съм програмист. Но въпреки това бих изстрелял едно "да".
Гост
 

Re: Задача С#

Мнениеот Гост » 20 Ное 2020, 19:22

Може да стане с for - вървиш от 1 до n (колкото са звездичките) и печаташ на всеки ред с една звездичка повече. Имаше специален начин за печатане на знаци много пъти - new string('.', 10). Това би трябвало да върши работа.
Гост
 

Re: Задача С#

Мнениеот peyo » 20 Ное 2020, 19:54

За какво ни е for цикъл, няма нужда.

Код: Избери целия код
using System;
using System;
class HelloWorld {
    static void print_stars(string stars){
        if(stars.Length>0)
            print_stars(stars.Substring(0,stars.Length-1));
        Console.WriteLine(stars);
    }
    static void Main() {
        print_stars("**********");
    }
}
peyo
Математик
 
Мнения: 1768
Регистриран на: 16 Мар 2019, 09:35
Местоположение: София
Рейтинг: 664

Re: Задача С#

Мнениеот Sup3rlum » 20 Ное 2020, 21:58

peyo написа:За какво ни е for цикъл, няма нужда.

Код: Избери целия код
using System;
using System;
class HelloWorld {
    static void print_stars(string stars){
        if(stars.Length>0)
            print_stars(stars.Substring(0,stars.Length-1));
        Console.WriteLine(stars);
    }
    static void Main() {
        print_stars("**********");
    }
}


Това дава обратното на това което се иска.







ето ти три различни начина:

Код: Избери целия код
        public void PrintStars(int number = 10)
        {
            int k = 1;
            while (k <= number)
            {
                int j = 0;
                while (j < k)
                {
                    Console.Write("*");
                    j++;
                }
                Console.Write("\n");

                k++;
            }
        }



Код: Избери целия код
         public static void PrintStars(int number = 10)
        {
            for (int i = 1; i <= number; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    Console.Write("*");
                }
                Console.Write("\n");
            }
        }



Код: Избери целия код
        public static void PrintStarLine(string str, int max)
        {
            if (str.Length < max)
            {
                str += "*";
                Console.WriteLine(str);

                PrintStarLine(str,  max);
            }
        }

        public static void PrintStars(int number = 10)
        {
            PrintStarLine("", 10);

        }


Ето ти и четвърти вариант да си чепкаш:

Код: Избери целия код
        public static void PrintStars(int number = 10) => Enumerable.Repeat("*", 10).ToList().Select((k, index) => string.Concat(Enumerable.Repeat(k, index + 1))).ToList().ForEach(p => Console.WriteLine(p));



Има още много начини, с всякаква функционалност. Трябва просто малко да се седне и да се почете и да се пробва.
Sup3rlum
Фен на форума
 
Мнения: 247
Регистриран на: 19 Фев 2019, 02:08
Рейтинг: 347


Назад към C#, Java



Кой е на линия

Регистрирани потребители: Google [Bot]

Форум за математика(архив)