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

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

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

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


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

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

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

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

5
444 / 348 / 32
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
21.04.2012, 22:03
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
 Аватар для dextermd
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
21.04.2012, 22:25
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  [ТС]
Спасибо за этот код!) Не могли бы Вы ещё написать коментарии, а то мне очень тяжело вникнуть?(
0
 Аватар для dextermd
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
21.04.2012, 23:12
Для начала нужно представить что флаг состоит из матрицы 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  [ТС]
dextermd, спасибо, я теперь разобрался))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2012, 03:46
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru