Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/47: Рейтинг темы: голосов - 47, средняя оценка - 4.96
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
.NET 3.x

Вывести алфавит используя циклы

08.10.2018, 23:30. Показов 9715. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане. Не могу вывести на форму английский или русский алфавит (от А до Я и от а до я) вместе с кодировкой, используя циклы. Завис просто. Может кто направит. Скриншот примера добавил.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.10.2018, 23:30
Ответы с готовыми решениями:

Вывести матрицу, используя циклы
Вивести на экран с помощю цыклов: 0000* 000*0 00*00 0*000 *0000

Вывести на экран таблицу используя циклы
Таблица: 2 0 4 2 3 3 6 4 2 6 6 6 8 6 4 2 9 9 9 9

Вывести последовательность символов, используя циклы for
Воспользоваться вложенными циклами, чтобы написать программу, которая выводит следующую последовательность символов: А BC DEF GНIJ ...

33
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
09.10.2018, 22:35  [ТС]
Студворк — интернет-сервис помощи студентам
Куда этот код вставлять в форме?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
09.10.2018, 22:40
В форме объявление структуры вставляете внутри кода класса.

Добавлено через 35 секунд
Или у Вас вызывает проблемы создание формы и вывод на неё?

Добавлено через 1 минуту
Как в загрузчик формы вставить код представляете?
0
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
09.10.2018, 22:41  [ТС]
Да оно самое создание и вывод на форму.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
09.10.2018, 22:55
На форме вставляете многострочный TextBox с именем CharsTable
В загрузчик окна этот код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
CharsTable.Text=string.Concat(Enumerable.Range(0, 16).Select(i => "\r\n"));;
for (int col = 0; col <= 1; col ++)
for (int row = 0; row <=15; row ++)
{
   int Code = 192 + row + col *16;
   CharsTable.Lines[row] += ((char) Code).ToString()+"-"+Code.ToString()+"  ";
}
for (int col = 0; col <= 1; col ++)
for (int row = 0; row <=15; row ++)
{
   int Code = 224 + row + col *16;
   CharsTable.Lines[row] += ((char) Code).ToString()+"-"+Code.ToString()+"  ";
}
Получите TextBox с этой таблицей. Только установите все свойства у него правильно: только редактирование, перенос строк, цвета и т.д.
0
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
11.10.2018, 17:44  [ТС]
Сегодня на занятиях преподаватель сказал, что надо использовать метод Form_Load, чтобы текст сразу появлялся при загрузке формы и на Метке.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
11.10.2018, 18:03
Цитата Сообщение от emulzone Посмотреть сообщение
Сегодня на занятиях преподаватель сказал, что надо использовать метод Form_Load, чтобы текст сразу появлялся при загрузке формы и на Метке.
Я Вам это уже сказал прочитайте в пост #24 "На форме ...................В загрузчик окна этот код"
0
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
11.10.2018, 21:05  [ТС]
А CharsTable это что такое? Потому что он выдает ошибку, что такого имени нету в текущем контексте.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
11.10.2018, 21:55
Цитата Сообщение от emulzone Посмотреть сообщение
А CharsTable это что такое? Потому что он выдает ошибку, что такого имени нету в текущем контексте.
Вы, вообще не читаете, то что Вам пишут? Сразу код берёте и пробуете?
Цитата из пост #24На форме вставляете многострочный TextBox с именем CharsTable


Добавлено через 1 минуту
Куда-то же надо вывод делать. Самый простой выбор - многострочный TextBox.

Добавлено через 1 минуту
Имя TextBox может быть любое. CharsTable - это мой выбор для примера.
0
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
11.10.2018, 22:36  [ТС]
Дак вывод то таблицы надо сделать в Label, а не в TextBox.
0
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
12.10.2018, 00:10  [ТС]
Подкоректировал ваш код, Элд Хасп и вот что получилось.

У меня теперь другой вопрос, как добавить вывод этих символов, только нижнего регистра, сразу за последними верхнего регистра?
Миниатюры
Вывести алфавит используя циклы  
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
12.10.2018, 03:50
Цитата Сообщение от emulzone Посмотреть сообщение
У меня теперь другой вопрос, как добавить вывод этих символов, только нижнего регистра, сразу за последними верхнего регистра?
Если будет время займусь завтра.
Начал отлаживать код, оказалось не учёл разницу в Unicode и ASCII. Вам же кодировка ASCII нужна?
Сделал вариант с одним Label: имя CharsTable, шрифт Courier New.
Вот отлаженный вариант.
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
39
40
41
42
43
44
45
46
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            List<string> Table = new List<string>(new string[16]);
            for (int col = 0; col <= 1; col++)
                for (int row = 0; row <= 15; row++)
                {
                    TablChar tablChar = new TablChar(192 + row + col * 16);
                    Table[row] += tablChar.ToString() + "    ";
                }
            for (int col = 0; col <= 1; col++)
                for (int row = 0; row <= 15; row++)
                {
                    TablChar tablChar = new TablChar(224 + row + col * 16);
                    Table[row] += tablChar.ToString() + "    ";
                }
            CharsTable.Text = "";
            foreach (string str in Table)
                CharsTable.Text += str + Environment.NewLine;
        }
 
    }
 
    struct TablChar
    {
        /// <summary>Возвращает символ</summary>
        public char Char => Encoding.Default.GetChars(new byte[] { Code })[0];
        /// <summary>Возвращает код символа</summary>
        public byte Code { get; private set; }
        /// <summary>Конструтор</summary>
        public TablChar(byte Code) { this.Code = Code; }
        /// <summary>Возвращает символ и через тире код</summary>
        public TablChar(int Code) { this.Code = (byte)Code; }
        /// <summary>Возвращает символ и через тире код</summary>
        public override string ToString()
            => Char.ToString() + " - " + Code.ToString().PadLeft(3);
        /// <summary>Возвращает список экземпляров в заданном диапазоне</summary>
        static public List<TablChar> ListChar(byte Begin = 0, byte End = 255)
            => Enumerable.Range(Begin, End - Begin + 1).Select(ind => new TablChar((byte)ind)).ToList();
    }
Миниатюры
Вывести алфавит используя циклы  
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
12.10.2018, 13:07
Лучший ответ Сообщение было отмечено emulzone как решение

Решение

Вот полностью код с созданием элемента и установкой размеров. Вставит его надо в новую пустую форму.
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
39
40
41
42
43
        private void Form2_Load(object sender, EventArgs e)
        {
 
            // Новый список строк таблицы символов
            List<string> Table = new List<string>(new string[16]);
            int rowCount = 16; // Количество строк в таблице
            int colCount = 4; // Количество формируемых столбцов для таблицы
            int codeBeg = 192; // Первый символ формируемого диапазона
 
            // Формирование диапазона 192 - 255
            for (int col = 0; col < colCount; col++)
                for (int row = 0; row < rowCount; row++)
                    Table[row] += TablCharCell((byte)(codeBeg + row + col * 16)) + "    ";
 
            // Установка визуальных элементов и свойств 
            // Создание метки для вывода окна
            Label CharsTable = new Label()
            {
                Parent = this, // Установка родителя - текущая формы
                Font = new Font("Courier New", 16), // Название и размер шрифта
                Margin = new Padding(15),  // Отступы элемента от границ формы
                Location= new Point(15, 15), // Отступы элемента от границ формы
                Text = "", // Начальное содержимое
                AutoSize = true // Авторазмер
            };
            // Автоматическая установка размеров окна
            AutoSize = true;
            AutoSizeMode = AutoSizeMode.GrowAndShrink;
 
            foreach (string str in Table) // Вывод всех строк в элемент
                CharsTable.Text += str.Trim() + Environment.NewLine;
 
        }
        /// <summary>Метод возвращающий значение одной ячейки таблицы символов ASCII</summary>
        /// <param name="Code">Код символа</param>
        /// <returns>Строковое значение в формате "A - 192"</returns>
        static string TablCharCell(byte Code)
        {
            // Получение символа ASCII кода из кода заданного в параметре
            char Char = Encoding.Default.GetChars(new byte[] { Code })[0];
            // Возврат сформированного значения для ячейки
            return Char.ToString() + " - " + Code.ToString().PadLeft(3);
        }
1
1 / 1 / 0
Регистрация: 25.11.2017
Сообщений: 37
12.10.2018, 18:54  [ТС]
Спасибо за ответ. Единственное, что я заметил, это несоотвествие между скриншотами в задании. Судя по форме "Таблица символов" - выводятся элементы с кодировками от 192 до 255 (все в точности как у вас). Но, судя по скриншоту "Таблица ASCII", должны выводится элементы с кодировкой от 128 до 175 и с 224 по 239. А что должно получится на самом деле, даже не знаю. Да и гадать не буду.
Один товарищ предложил еще одно решение, но несколько попроще. Выглядит как-то так. Единственное, надо форматирование вывода сделать.
C#
1
2
3
4
5
6
7
for (byte b = 1; b < 255; b++)
        {
            if (b < 65 || (b > 90 && b < 97) || (b > 122 && b < 192)) continue;
            if (b % 4 == 0) s += "\n";
            char[] ch = Encoding.GetEncoding(0).GetChars(new byte[] { b });
            label1.Text += ch[0].ToString() + " - " + b.ToString() + "\t";
        }
Оставляем все как есть, спасибо большое за решение.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
12.10.2018, 19:29
Цитата Сообщение от emulzone Посмотреть сообщение
Единственное, надо форматирование вывода сделать.
В моём коде 90% строк это форматирование вывода. Собственно для вывода значений хватает 12 и 13 строк.

Добавлено через 9 минут
Цитата Сообщение от emulzone Посмотреть сообщение
Единственное, что я заметил, это несоотвествие между скриншотами в задании. Судя по форме "Таблица символов" - выводятся элементы с кодировками от 192 до 255 (все в точности как у вас). Но, судя по скриншоту "Таблица ASCII", должны выводится элементы с кодировкой от 128 до 175 и с 224 по 239.
В таблице ASCII - вообще нет русских символов. ASCII - это семибитовая таблица.
Для Вывода русских букв я использовал Default кодировку (в данном случае это соответствует таблице 1251). Если использовать другую кодировку, то будет другое расположение. В кодировке 866 букве 'А' соответствует код 128.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2018, 19:29

Вывести эллипс из символов, используя циклы
помогите написать эту программу с помощью while или for

Вывести на экран таблицу используя циклы
1 3 5 7 ...33 1 3 5 7 ...33 1 3 5 7 ...33 1 3 5 7 ...33 Количество строк пользователь вводит с клавиатуры

Вывести треугольник из чисел, используя циклы while/do while
Доброго времени суток! Нужно вывести треугольник вида: ........1 ......21 ....321 ..4321 54321 ..4321 ....321 ......21

Вывести все четные числа от A до B используя циклы
#include &lt;iostream&gt; using namespace std; int main() { int a, b, result; cin &gt;&gt; a; cin &gt;&gt; b; for (result =...

Используя циклы вывести на экран таблицу умножения на 4
Помогите решить задачу на Паскаль для 9 класса:Используя циклы вывести на экран таблицу умножения на 4


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru