@a63826ndrew
Студент, новичок в Python

Как сохранить результат работы программы в виде изображения?

Здравствуйте, мой вопрос заключается в следующем:
У меня имеется данный код, который реализует метод Квайна:
int n = 10, k = 0;
            bool key = false;
            string[] str = new string[k];
            while (n < 1 || n > 5)
            {
                n = Convert.ToInt32(FunctionAmount.Text);
            }
            string znach = FunctionValues.Text;
            if (znach.Length != (int)Math.Pow(2, n))
            {
                MessageBox.Show("Введено неверное колличество значений функции");
                goto end;
            }
            for (int i = 0; i < (int)Math.Pow(2, n); i++)
                if (Convert.ToInt32(znach[i]) < 49 && Convert.ToInt32(znach[i]) > 50)
                {
                    MessageBox.Show("Введены недопустимые значения функции");
                    goto end;
                }
            for (int i = 0; i < (int)Math.Pow(2, n); i++)
                if (znach[i] == '1')
                {
                    k++;
                    Array.Resize<string>(ref str, k);
                    char[] chars = Convert.ToString(i, 2).PadLeft(n, '0').ToCharArray();
                    for (int j = 0; j < n; j++)
                    {
                        if (chars[j] == '0')
                            chars[j] = Convert.ToChar(97 + j);
                        if (chars[j] == '1')
                            chars[j] = Convert.ToChar(65 + j);
                    }
                    string strr = new string(chars);
                    str[k - 1] = strr;
                }
            foreach (string strng in str)
            {
                Console.Write(strng + " ");
            }
            Console.WriteLine();
            while (!key)
            {
                key = true;
                string[] ptr = new string[0];  //массив для склеек на данном этапе
                int[] reuse = new int[str.Length];  //массив меток
                for (int l = 0; l < reuse.Length; l++) //метка использования (был ли задействован кусок ДНФ на данной итерации)
                {
                    reuse[l] = 0;
                }
                for (int i = 0; i < str.Length; i++) //попарно сравниваем
                {
                    for (int j = i + 1; j < str.Length; j++)
                    {
                        if (str[i].Length == str[j].Length) //если длины одинаковы то вперед
                        {
                            int sbnr = 20, sbcnt = 0, sbcntt = 0;   //переменные для нахождения кол-ва различных знаков иномера знака с различием
                            char[] charsi = str[i].ToCharArray();  //конвертнем в массивы
                            char[] charsj = str[j].ToCharArray();
                            for (int l = 0; l < charsi.Length; l++)
                            {
                                if (Convert.ToInt32(charsi[l]) - Convert.ToInt32(charsj[l]) == 32)
                                {
                                    sbnr = l;
                                    sbcnt++;
                                }
                                if (charsi[l] == charsj[l])
                                {
                                    sbcntt++;
                                }
                            }
                            sbcntt++;
                            if (sbcnt == 1 && sbcntt == charsi.Length) //если куски ДНФ различаются на 1 знак
                            {
                                for (int u = sbnr; u < charsi.Length - 1; u++)
                                {
                                    charsi[u] = charsi[u + 1];
                                }
                                reuse[i] = 1;
                                reuse[j] = 1;
                                key = false;
                                Array.Resize<char>(ref charsi, charsi.Length - 1);  //то удаляем его
                            }
                            string strr = new string(charsi);
                            if (ptr.Length == 0 && !key)   //заносим получившуюся склейку в ptr
                            {
                                Array.Resize<string>(ref ptr, 1);
                                ptr[0] = strr;
                                key = true;
                            }
                            if (ptr.Length != 0 && !key)  //если ptr уже содержит куски
                            {
                                for (int t = 0; t < ptr.Length; t++)
                                {
                                    if (ptr[t] == strr)
                                    {
                                        key = true;
                                    }
                                }
                                if (!key)
                                {
                                    Array.Resize<string>(ref ptr, ptr.Length + 1);
                                    ptr[ptr.Length - 1] = strr;
                                    key = true;
                                }
                            }
                        }  //конец склейки
                    }
                }
                for (int i = 0; i < reuse.Length; i++) //добавление кусков не участвовавших в склейке
                {
                    if (reuse[i] == 0)
                    {
                        Array.Resize<string>(ref ptr, ptr.Length + 1);
                        ptr[ptr.Length - 1] = str[i];
                    }
                    if (reuse[i] == 1)
                    {
                        key = false;
                    }
                }
                Array.Resize<string>(ref str, ptr.Length);  //переносим ptr в str
                for (int i = 0; i < ptr.Length; i++)
                {
                    str[i] = ptr[i];
                }
                foreach (string strng in str)
                {
                    Console.Write(strng + " ");
                }
                Console.WriteLine();
            }   //едем на обратно на while
            Console.Write("А вот и ответ: ");
            for (int i = 0; i < str.Length; i++)
            {
                if (!key)
                   Console.Write(" V ");
                key = false;
                Console.Write(str[i]);
            }
        end:
            Console.Read();
        }

И мне нужно сделать так, чтобы результат работы программы представлялся в виде изображения, каким образом это можно сделать
Если что, программа работает на Windows Forms, на языке C#
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
В общем то у вас консольное приложение ;)

Так что создавайте Form на него кидайте PictureBox и на нем уже рисуйте ваш вывод.

https://social.msdn.microsoft.com/Forums/ru-RU/0fb...
Выше пример.
После вызываете метод Save
Как показано тут
https://vscode.ru/prog-lessons/sohranit-izobrazhen...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы