24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
1

Вывести на консоль изображение государственного флага Швейцарии

21.04.2012, 21:58. Показов 6208. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На одном сайте не могу выполнить домашнее задание ;(
Помогите пожалуйста


Вывести на консоль изображение государственного флага Швейцарии (например, в виде звездочек). Размер стороны флага задается случайным числом в диапазоне от 21 до 41.
 Комментарий модератора 
Одна тема - один вопрос (Правила п.3.15)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2012, 21:58
Ответы с готовыми решениями:

Получить изображение государственного флага Швейцарии
Получить на экране изображение государственного флага Швейцарии. Составить программу, отладить,...

Вывести на экран изображение государственного флага России
а) Напишите программу, которая бы выводила на экран изображение государственного флага России....

Вывести на экран изображение государственного флага США
а) Напишите программу, которая бы выводила на экран изображение государственного флага США....

Поднятие на флагштоке флага Швейцарии
Помогите пожалуйста, в университете дали задание "visual basic 6.0": "Поднятие на флагштоке флага...

5
444 / 348 / 32
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
21.04.2012, 22:03 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Program
{
    public static void DrawFlag(int Size)
    {
        Console.WriteLine("Здесь рисуется флаг...");
    }
    static void Main()
    {
        int number;
        while (true) 
        {
            Console.WriteLine("Введи число от 21 до 41");
            while (!(int.TryParse(Console.ReadLine(), out number) && number > 20 && number < 42)) Console.WriteLine("Перевведи!");
            DrawFlag(number); 
        }
    }
}
1
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
21.04.2012, 22:25 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Program
{
    static void Main()
    {
        Random rand = new Random();
        int width = rand.Next(21, 41); //размер стороны флага
        int col = width / 5; //минимальная ширина рамки вокруг креста
        int col2 = (width - col * 2) / 3; //размер стороны креста
 
        for (int i = 0; i < width; i++)
        {
            if (i < col || i >= col + col2 * 3)
            {
                Console.WriteLine(new string('*', width));
            }
            else if ((i >= col && i < col + col2) || 
                (i >= col + col2 * 2 && i < col + col2 * 3))
            {
                Console.WriteLine("{0}{1}{2}", 
                    new string('*', col + col2), 
                    new string(' ', col2), 
                    new string('*', width - col - col2 * 2));
            }
            else
            {
                Console.WriteLine("{0}{1}{2}", 
                    new string('*', col), 
                    new string(' ', col2 * 3), 
                    new string('*', width - col - col2 * 3));
            }
        }
        Console.ReadKey();
    }
}
0
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
21.04.2012, 22:29  [ТС] 4
Спасибо за этот код!) Не могли бы Вы ещё написать коментарии, а то мне очень тяжело вникнуть?(
0
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
21.04.2012, 23:12 5
Для начала нужно представить что флаг состоит из матрицы 5x5 (см. рисунок). Ширина каждой клетки указана на рисунке. Последняя колонка является шире чем первая потому что ширина флага может принимать значения которые не делятся ровно на 5. Далее можно заметить что флаг состоит из трех типов строк:
a) строки 1 и 5 - закрашены все колонки
b) строки 2 и 3 - закрашены колонки 1,2,4,5
c) строка 3 - закрашены колонки 1,5

Соответственно в программе есть блок if() if else() else(), каждая часть этого блока рисует определенный тип строки.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Program
{
    static void Main()
    {
        Random rand = new Random();
        int width = rand.Next(21, 41); //размер стороны флага
        int col = width / 5; //минимальная ширина рамки вокруг креста
        int col2 = (width - col * 2) / 3; //размер стороны креста
       
        for (int i = 0; i < width; i++)
        {
            //рисуем первую и пятую строку
            if (i < col || i >= col + col2 * 3)
            {
                //закрашаваем все колонки
                Console.WriteLine(new string('*', width));
            }
            //рисуем вторую и четвертую строку
            else if ((i >= col && i < col + col2) || 
                (i >= col + col2 * 2 && i < col + col2 * 3))
            {                
                Console.WriteLine("{0}{1}{2}", 
                    new string('*', col + col2), //закрашиваем первые две колонки
                    new string(' ', col2), //пропускаем третью колонку
                    new string('*', width - col - col2 * 2)); //закрашиваем последние две колонки
            }
            //рисуем третью строку
            else
            {             
                Console.WriteLine("{0}{1}{2}", 
                    new string('*', col), //закрашиваем первую колонку
                    new string(' ', col2 * 3), //пропускаем три колонки
                    new string('*', width - col - col2 * 3)); //закрашиваем последнюю колонку
            }
        }
        Console.ReadKey();
    }
}
Миниатюры
Вывести на консоль изображение государственного флага Швейцарии  
1
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
22.04.2012, 03:46  [ТС] 6
dextermd, спасибо, я теперь разобрался))
0
22.04.2012, 03:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2012, 03:46
Помогаю со студенческими работами здесь

Вывести изображение на консоль
Нужно написать код C++ с использованием цикла for и printf,чтобы на консоли вывелось изображение...

Создать дерево указателями и вывести примерное его изображение в консоль
Нужно создать дерево указателями и вывести примерное его изображение через консоль. Есть код,...

Создать изображение флага Канады
Помогите пожалуйста Создать изображение флага Канады в FASM

Как изогнуть векторное изображение флага
Подскажите, как изогнуть векторное изображение флага, чтобы &quot;колыхался&quot;.

Написать программу, которая выводит на экран изображение американского флага
Написать программу, которая выводит на экран изображение американского флага. Помогите пожалуйста.

Не работает часть программы формирующая на экране монитора изображение флага
Не работает часть программы формирующая на экране монитора изображение флага, написано в fasm, вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru