Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.10.2018, 17:27   #1
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,268
По умолчанию Движок для решения задач на Visual C++ 6.0

Программа создана для решения учебных задач в среде Visual C++ 6.0.
Реализованы ввод данных, а также вывод результатов. В приложении рабочая версия программы и архив проекта.
За основу взята архитектура программы MFC.
Код:
//   Файл p11Doc.h

class CP11Doc:public CDocument
{
protected:
   CP11Doc ();
   DECLARE_DYNCREATE (CP11Doc);

   int aa, ab, ac;
   int ad, ae, af;
   int ia [10];
   int ka, kb, kc, kd;
   int la, lb, lc;

   double ib [10];
   CString ic [10];

   double ca, cb;
   double da;

   /*   aa - режим отображения   */
   /*   ab - код введённого символа   */
   /*   ac - указатель на введённый символ   */
   /*   ad - внутренний указатель обрабатываемого символа в строке в функции ga ()   */
   /*   ae - введённое целое число в функции ga ()   */
   /*   af - выбор режима программы   */
   /*   da - введённое рациональное число в функции ga ()   */

   /*   ca ... cb - исходные данные, рациональные числа   */
   /*   ka ... kd - исходные данные, целые числа   */
   /*   la ... lc - исходные данные, натуральные числа   */

   /*   ia [10] - массив целых чисел (результатов) для вывода на экран   */

   char ea [50];   //   место для вводимых символов

   void ga ();      //   перевод данных из символьной формы в цифровую
   void gb ();   //   сборка целого числа из строки
   void gc ();      //   сборка рационального числа из строки
   void ha ();      //   решение задач
};

- - - - - - - - - - - - - - - - - - - -

//   Файл p11Doc.cpp

#include "stdafx.h"
#include <math.h>
#include "p11.h"
#include "p11Doc.h"

CP11Doc::CP11Doc ()
{
   aa = ab = ac = 0;
   ea [0] = ia [0] = 0;
}

void CP11Doc::ga ()
{
   if (aa == 0)
   {
      aa = 1;
      ad = 0;

      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad]) ad++;
      gb ();
      af = ae;

      if (af < 2  ||  af > 3) aa = 2;
      ac = ea [0] = 0;
      return;
   }

   aa = 2;
   ad = 0;

   if (af == 2)
   {
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      ka = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kb = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kc = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kd = ae;
   }

   if (af == 3)
   {
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad] != '.'  &&  ea [ad]) ad++;
      gc ();
      ca = da;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad] != '.'  &&  ea [ad]) ad++;
      gc ();
      cb = da;
   }

   ha ();
}

void CP11Doc::gb ()
{
   int a;      //   знак числа

   ae = 0;
   a = 1;
   if (ea [ad] == '-') {a = -1; ad++;}
   while (ea [ad] >= '0'  &&  ea [ad] <= '9')
   {
      ae = ae * 10 + ea [ad] - '0';
      ad++;
   }

   ae *= a;
}

void CP11Doc::gc ()
{
   int a;
   double b;

   da = 0;   //   собираемое рациональное число
   a = 1;      //   знак числа
   b = .1;      //   множитель в дробной части числа

   if (ea [ad] == '-') {a = -1; ad++;}
   while (ea [ad] >= '0'  &&  ea [ad] <= '9')
   {
      da = da * 10 + ea [ad] - '0';
      ad++;
   }

   if (ea [ad] == '.')
   {
      ad++;
      while (ea [ad] >= '0'  &&  ea [ad] <= '9')
      {
         da += (ea [ad] - '0') * b;
         ad++;
         b /= 10;
      }
   }

   da *= a;
}

void CP11Doc::ha ()
{
   int a, b, c;
   double d, e;

   if (af == 2)
   {
   }   //   конец функции (af = 2)


   if (af == 3)
   {
   }   //   конец функции (af = 3)
}

- - - - - - - - - - - - - - - - - - - -

//   Файл p11View.cpp

void CP11View::OnDraw (CDC *pDC)
{
   CP11Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);
   CString a;

   if (pdoc -> aa == 0)
   {
      pDC -> TextOut (10, 10, "Введите целое число:");
      pDC -> TextOut (10, 35, pdoc -> ea);
      a.Format ("code = %i", pdoc -> ab);
      pDC -> TextOut (10, 60, a);
      pDC -> TextOut (10, 85, "1. Нет ввода.");
      pDC -> TextOut (10, 110, "2. Ввод целых чисел.");
      pDC -> TextOut (10, 135, "3. Ввод рациональных чисел.");
      return;
   }

   if (pdoc -> aa == 1)
   {
      pDC -> TextOut (10, 10, "Введите целое число:");
      a.Format ("%i", pdoc -> af);
      pDC -> TextOut (10, 35, a);
      a.Format ("code = %i", pdoc -> ab);
      pDC -> TextOut (10, 60, a);
      pDC -> TextOut (10, 85, "1. Нет ввода.");
      pDC -> TextOut (10, 110, "2. Ввод целых чисел.");
      pDC -> TextOut (10, 135, "3. Ввод рациональных чисел.");

      if (pdoc -> af == 2)
      {
         pDC -> TextOut (10, 160, "Введите четыре целых числа:");
         pDC -> TextOut (10, 185, pdoc -> ea);
      }

      if (pdoc -> af == 3)
      {
         pDC -> TextOut (10, 160, "Введите два рациональных числа:");
         pDC -> TextOut (10, 185, pdoc -> ea);
      }

      return;
   }

   if (pdoc -> af == 2)
   {
      pDC -> TextOut (10, 10, "Введите целое число:");
      a.Format ("%i", pdoc -> af);
      pDC -> TextOut (10, 35, a);
      a.Format ("code = %i", pdoc -> ab);
      pDC -> TextOut (10, 60, a);
      pDC -> TextOut (10, 85, "1. Нет ввода.");
      pDC -> TextOut (10, 110, "2. Ввод целых чисел.");
      pDC -> TextOut (10, 135, "3. Ввод рациональных чисел.");
      pDC -> TextOut (10, 160, "Введите четыре целых числа:");
      pDC -> TextOut (10, 185, pdoc -> ea);
      a.Format ("%i %i %i %i", pdoc -> ka, pdoc -> kb, pdoc -> kc, pdoc -> kd);
      pDC -> TextOut (10, 210, a);

      a.Format ("1. %i / %i : %i / %i = %i / %i.", pdoc -> ka, pdoc -> kb, pdoc -> kc, pdoc -> kd, pdoc -> ia [0], pdoc -> ia [1]);
      pDC -> TextOut (10, 260, a);
      pDC -> TextOut (10, 285, pdoc -> ic [0]);
      a.Format ("3. %i! = %i.", pdoc -> ka, pdoc -> ia [2]);
      pDC -> TextOut (10, 310, a);
      a.Format ("4. НОД (%i, %i) = %i.", pdoc -> la, pdoc -> lb, pdoc -> ia [3]);
      pDC -> TextOut (10, 335, a);
   }

   if (pdoc -> af == 3)
   {
      pDC -> TextOut (10, 10, "Введите целое число:");
      a.Format ("%i", pdoc -> af);
      pDC -> TextOut (10, 35, a);
      a.Format ("code = %i", pdoc -> ab);
      pDC -> TextOut (10, 60, a);
      pDC -> TextOut (10, 85, "1. Нет ввода.");
      pDC -> TextOut (10, 110, "2. Ввод целых чисел.");
      pDC -> TextOut (10, 135, "3. Ввод рациональных чисел.");
      pDC -> TextOut (10, 160, "Введите два рациональных числа:");
      pDC -> TextOut (10, 185, pdoc -> ea);
      a.Format ("%g %g", pdoc -> ca, pdoc -> cb);
      pDC -> TextOut (10, 210, a);

      a.Format ("5. %g ^ %i = %g.", pdoc -> ca, pdoc -> ia [4], pdoc -> ib [0]);
      pDC -> TextOut (10, 260, a);
   }
}

void CP11View::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags) 
{
   CP11Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);

   pdoc -> ab = nChar;
   if (nChar == 8)
   {
      if (pdoc -> ac) {pdoc -> ac--; pdoc -> ea [pdoc -> ac] = 0;}
      goto aaa;
   }

   if (nChar == 13)
   {
      pdoc -> ga ();
      goto aaa;
   }

   if (pdoc -> ac < 49)
   {
      pdoc -> ea [pdoc -> ac] = nChar;
      pdoc -> ea [pdoc -> ac + 1] = 0;
      pdoc -> ac++;
   }

aaa:
   Invalidate ();
   CView::OnChar (nChar, nRepCnt, nFlags);
}
Миниатюры
Нажмите на изображение для увеличения
Название: Image a.png
Просмотров: 119
Размер:	53.9 Кб
ID:	94338   Нажмите на изображение для увеличения
Название: Image 2a.png
Просмотров: 116
Размер:	39.6 Кб
ID:	94339  
Вложения
Тип файла: doc Задачник.doc (19.0 Кб, 14 просмотров)
Тип файла: doc p11d.doc (53.5 Кб, 13 просмотров)
Тип файла: txt p11.txt (9.1 Кб, 119 просмотров)
Тип файла: rar p11 - project.rar (1.89 Мб, 14 просмотров)
Тип файла: rar p11 - release.rar (8.8 Кб, 13 просмотров)
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума   Ответить с цитированием
Старый 26.10.2018, 15:37   #2
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,268
По умолчанию

Продолжение того же самого.
В процессе обкатки программы кое-что изменил, доделал.
Код:
/*   p11doc.h   */

class CP11Doc:public CDocument
{
protected:
   CP11Doc ();
   DECLARE_DYNCREATE (CP11Doc);

   int aa, ab, ac;
   int ad, ae, af;
   int ia [20];
   int ka, kb, kc, kd, ke, kf, kg, kh;
   int la, lb, lc;

   double ib [10];
   CString ic [10];

   double ca, cb;
   double da;

   /*   aa - режим отображения   */
   /*   ab - код введённого символа   */
   /*   ac - указатель на введённый символ   */
   /*   ad - внутренний указатель обрабатываемого символа в строке в функции ga ()   */
   /*   ae - введённое целое число в функции ga ()   */
   /*   af - выбор режима программы   */
   /*   da - введённое рациональное число в функции ga ()   */

   /*   ca ... cb - исходные данные, рациональные числа   */
   /*   ka ... kh - исходные данные, целые числа   */
   /*   la ... lc - исходные данные, натуральные числа   */

   /*   ia [10] - массив целых чисел (результатов) для вывода на экран   */

   char ea [50];   //   место для вводимых символов

   void ga ();      //   перевод данных из символьной формы в цифровую
   void gb ();      //   сборка целого числа из строки
   void gc ();      //   сборка рационального числа из строки
   void ha ();      //   решение задач

   //   Раздел специальных функций
   double ma (int, int, int, int);      //   расстояние между двумя точками на плоскости
   double mb (double, double, double);      //   площадь треугольника по формуле Герона

   na (int);   //   сумма цифр целого числа
};

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

/*   p11doc.cpp   */

#include "stdafx.h"
#include <math.h>
#include "p11.h"
#include "p11Doc.h"

CP11Doc::CP11Doc ()
{
   aa = ab = ac = 0;
   ea [0] = 0;
}

void CP11Doc::ga ()
{
   if (aa == 0)
   {
      aa = 1;
      ad = 0;

      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad]) ad++;
      gb ();
      af = ae;

      if (af < 2  ||  af > 3) aa = 2;
      ac = ea [0] = 0;
      if (af == 1) ha ();
      return;
   }

   aa = 2;
   ad = 0;

   if (af == 2)
   {
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      ka = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kb = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kc = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kd = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      ke = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kf = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kg = ae;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad]) ad++;
      gb ();
      kh = ae;
   }

   if (af == 3)
   {
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad] != '.'  &&  ea [ad]) ad++;
      gc ();
      ca = da;
      while ((ea [ad] < '0'  ||  ea [ad] > '9')  &&  ea [ad] != '-'  &&  ea [ad] != '.'  &&  ea [ad]) ad++;
      gc ();
      cb = da;
   }

   ha ();
}

void CP11Doc::gb ()
{
   int a;      //   знак числа

   ae = 0;
   a = 1;
   if (ea [ad] == '-') {a = -1; ad++;}
   while (ea [ad] >= '0'  &&  ea [ad] <= '9')
   {
      ae = ae * 10 + ea [ad] - '0';
      ad++;
   }

   ae *= a;
}

void CP11Doc::gc ()
{
   int a;
   double b;

   da = 0;      //   собираемое рациональное число
   a = 1;      //   знак числа
   b = .1;      //   множитель в дробной части числа

   if (ea [ad] == '-') {a = -1; ad++;}
   while (ea [ad] >= '0'  &&  ea [ad] <= '9')
   {
      da = da * 10 + ea [ad] - '0';
      ad++;
   }

   if (ea [ad] == '.')
   {
      ad++;
      while (ea [ad] >= '0'  &&  ea [ad] <= '9')
      {
         da += (ea [ad] - '0') * b;
         ad++;
         b /= 10;
      }
   }

   da *= a;
}

void CP11Doc::ha ()
{
   int a, b, c;
   int m;
   double d, e, f, g, h, i;
   CString j;

   int p [20];


   if (af == 1)
   {
      /*   67.1.34.18. Получить на экране десятичные коды букв латинского алфавита.   */
      
      ic [4] = "18. ";
      for (a = 'a'; a <= 'z'; a++)
      {
         j.Format ("%c %i", a, a);
         ic [4] += j;
         if (a < 'z') ic [4] += ", ";
      }
   }

   /* * * * * * * * * * * * * * * * * * * * * * * *   1   */



   if (af == 2)
   {
      /*   11.1.1.   */

      ia [0] = ka * kd;
      ia [1] = kb * kc;

      /*   13.1.2. Составить алгоритм решения квадратного уравнения: ax^2 + bx + c = 0.   */

      if (ka == 0)
         if (kb == 0)
            if (kc == 0)
               a = 3;
            else
               a = 0;
         else
         {
            a = 1;
            d = (double) -kc / kb;
         }
      else
      {
         b = kb * kb - 4 * ka * kc;
         if (b < 0)
            a = 0;
         else
            if (b == 0)
            {
               a = 1;
               d = -kb / 2. / ka;
            }
            else
            {
               a = 2;
               d = (-kb - sqrt (b)) / 2 / ka;
               e = (-kb + sqrt (b)) / 2 / ka;
            }
      }

      switch (a)
      {
         case 0: ic [0].Format ("2. Нет решений."); break;
         case 1: ic [0].Format ("2. x = %.4g.", d); break;
         case 2: ic [0].Format ("2. x1 = %.4g, x2 = %.4g.", d, e); break;
         default: ic [0].Format ("2. Решение - любое число.");
      }

      /*   16.1.3. Вычислить n!   */

      a = 1;
      b = ka + 1;
      if (b > 20) b = 20;
      for (c = 1; c < b; c++) a *= c;
      ia [2] = a;

      /*   18.1.4. Даны два натуральных числа M и N. Вычислить их наибольший общий делитель НОД (M, N).   */

      la = ka; lb = kb; lc = kc;
      if (la < 0) la = -la;      if (!la) la = 1;
      if (lb < 0) lb = -lb;      if (!lb) lb = 1;
      if (lc < 0) lc = -lc;      if (!lc) lc = 1;

      a = la; b = lb;
      while (a - b) if (a > b) a -= b; else b -= a;
      ia [3] = a;

      /*   21.1.6. Даны декартовы координаты трёх вершин треугольника на плоскости. Составить алгоритм определения площади треугольника.   */

      d = ma (ka, kb, kc, kd);
      e = ma (ka, kb, ke, kf);
      f = ma (kc, kd, ke, kf);
      ib [1] = mb (d, e, f);

      /*   21.3.8. Даны три положительных числа. Составить алгоритм, определяющий, могут ли они быть длинами сторон треугольника.   */

      if (ka > 0  &&  kb > 0  &&  kc > 0  &&  ka + kb > kc  &&  ka + kc > kb  &&  kb + kc > ka)
         ic [2].Format ("8. Числа могут быть длинами сторон треугольника.");
      else
         ic [2].Format ("8. Числа не могут быть длинами сторон треугольника.");

      /*   21.4.9. Пусть компьютер способен выполнять только две арифметические операции - сложение и вычитание. Составить алгоритмы: а) умножения двух целых чисел; б) целочисленного деления двух чисел; в) получения остатка от целочисленного деления двух чисел.   */

      a = 0;
      for (b = 0; b < lb; b++) a += la;
      ia [4] = a;
      
      a = la;
      b = 0;
      while (a >= lb) {a -= lb; b++;}
      ia [5] = b;
      ia [6] = a;
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1a.png
Просмотров: 123
Размер:	33.5 Кб
ID:	94604  
Вложения
Тип файла: doc p11 - code.doc (97.0 Кб, 11 просмотров)
Тип файла: doc Задачник.doc (66.0 Кб, 17 просмотров)
Тип файла: txt Program.txt (22.2 Кб, 131 просмотров)
Тип файла: rar p11 - code.rar (14.0 Кб, 13 просмотров)
Тип файла: rar p11 - project.rar (1.90 Мб, 11 просмотров)
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума   Ответить с цитированием
Старый 26.10.2018, 15:42   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,078
По умолчанию

Зачем этот мусор здесь?
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 26.10.2018, 15:54   #4
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,268
По умолчанию

Использовать для решения задач из задачника.
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума   Ответить с цитированием
Старый 26.10.2018, 16:09   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,078
По умолчанию

Код неподдерживаемый, нечитаемый, заточенный под одну старую ИДЕ и старую версию плохоподдерживаемой либы, которая не для всех задач и нужна.

Кстати, вы получили разрешение у авторов/издателя задачника на его выкладывание в сеть?
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 26.10.2018, 16:27   #6
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,268
По умолчанию

Нет, не получал.
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума   Ответить с цитированием
Старый 08.01.2019, 10:04   #7
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,268
По умолчанию

Очередной движок для решения задач. Под номером 2.
Предназначен для вывода графики в массовом порядке. Предполагается, что в программе будет 5 групп изображений, в каждой группе 5 штук. Смена изображений осуществляется нажатием произвольной клавиши.

Код:
//   Движок для решения графических задач (1)
//   Язык Visual C++ 6.0
//   p8Doc.h

class CP8Doc:public CDocument
{
protected:
   CP8Doc ();
   DECLARE_DYNCREATE (CP8Doc);

   char aa [50];   //   место для вводимых символов
   int ca;         //   исходное данное - целое число
   int da, db;      //   указатель ввода в строку данных, <Enter>
   int ea, eb;      //   указатель чтения данных; введённое число

   void ga ();      //   перевод данных из символьной формы в цифровую
   void gb ();
};

- - - - -

//   p8Doc.cpp

CP8Doc::CP8Doc ()
{
   aa [0] = 0;
   da = db = 0;
}

void CP8Doc::ga ()
{
   db = 1;
   ea = 0;

   while ((aa [ea] < '0'  ||  aa [ea] > '9')  &&  aa [ea]) ea++;
   gb ();
   ca = eb;
}

void CP8Doc::gb ()
{
   eb = 0;

   while (aa [ea] >= '0'  &&  aa [ea] <= '9')
   {
      eb = eb * 10 + aa [ea] - '0';
      ea++;
   }
}

- - - - -

//   p8View.cpp

int d = 0;      //   счётчик изображений
int e = 100;   //   масштаб изображения
int g, h;

void CP8View::OnDraw (CDC *pDC)
{
   CP8Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);
   CString a;

   if (pdoc -> db == 0)
   {
      pDC -> TextOut (10, 10, "Введите целое число (1):");
      pDC -> TextOut (10, 35, pdoc -> aa);
      return;
   }

   if (pdoc -> ca == 1)
   {
      if (d == 0)
      {
         for (g = 0; g < 11; g++)
         {
            pDC -> MoveTo (e * g, 0);
            pDC -> LineTo (e * g, e * 10);
            pDC -> MoveTo (0, e * g);
            pDC -> LineTo (e * 10, e * g);
         }
      }
   }
}

void CP8View::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags) 
{
   CP8Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);

   if (pdoc -> db)
   {
      if (d < 5) d++;
      goto aaa;
   }

   if (nChar == 8)
   {
      if (pdoc -> da) {pdoc -> da--; pdoc -> aa [pdoc -> da] = 0;}
      goto aaa;
   }

   if (nChar == 13)
   {
      pdoc -> ga ();
      goto aaa;
   }

   if (pdoc -> da < 49)
   {
      pdoc -> aa [pdoc -> da] = nChar;
      pdoc -> aa [pdoc -> da + 1] = 0;
      pdoc -> da++;
   }

aaa:
   Invalidate ();
   CView::OnChar (nChar, nRepCnt, nFlags);
}
Вложения
Тип файла: doc p8d.doc (27.0 Кб, 12 просмотров)
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA

Последний раз редактировалось jura_k; 08.01.2019 в 10:07.
jura_k вне форума   Ответить с цитированием
Старый 01.08.2019, 18:06   #8
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,268
По умолчанию

Программа для рисования графика функции в 2D: y = f (x).
Код:
/*   p2
     Язык Visual C++ 6.0
     Построение 2D-графика функции   */

void CP2View::OnDraw (CDC *pDC)
{
   CP2Doc *pdoc = GetDocument ();
   ASSERT_VALID (pdoc);

   int a, b, c, d;
   double g, x, y;

   g = 50;      //   масштаб графика
   d = 0;      //   количество рассчитанных точек для отрезка (0-2)

   pDC -> MoveTo (0, 240);      //   рисование системы координат
   pDC -> LineTo (640, 240);
   pDC -> MoveTo (320, 0);
   pDC -> LineTo (320, 480);

   for (a = 0; a < 641; a++)      //   координата x
   {
      x = (a - 320) / g;
      if (x == 0) {d = 0; continue;}      //   x не входит в область определения функции
      y = (2 * x * x + 6 * x + 15) / 2 / x - 5 * x;

      if (y > 100) d = 0;      //   выход за границы графика
      if (y < -100) d = 0;
      b = (int) (240 - y * g);
      if (d < 2) d++;

      if (b > 600) d = 0;      //   выход за границы графика
      if (b < -100) d = 0;
      if (d == 2)      //   рисование отрезка графика по двум точкам
      {
         pDC -> MoveTo (a - 1, c);
         pDC -> LineTo (a, b);
      }
      
      c = b;
   }
}
Миниатюры
Нажмите на изображение для увеличения
Название: Screen 1a.png
Просмотров: 106
Размер:	59.4 Кб
ID:	97367   Нажмите на изображение для увеличения
Название: Screen 2a.png
Просмотров: 100
Размер:	52.4 Кб
ID:	97368  
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума   Ответить с цитированием
Старый 02.08.2019, 22:48   #9
morg@n
Форумчанин
 
Аватар для morg@n
 
Регистрация: 23.06.2019
Сообщений: 239
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Зачем этот мусор здесь?
Очередной флуд от Юры, он хоть читает правила периодически? То что не пригодится другим и ни как им не поможет ни кому кроме автора можно хранить и у себя на ПК. Все таки форум не является чьим то личным дневником...

Цитата:
Сообщение от jura_k Посмотреть сообщение
Нет, не получал.
Я вас поздравляю, окажется автор на форуме, накатает на вас заяву и вы отправитесь этапом валить лес...

Последний раз редактировалось morg@n; 02.08.2019 в 22:50.
morg@n вне форума   Ответить с цитированием
Старый 02.08.2019, 23:20   #10
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,460
По умолчанию

Цитата:
Сообщение от morg@n Посмотреть сообщение
накатает на вас заяву и вы отправитесь этапом валить лес...
Да расстреляют сразу!
Alex11223 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программы для решения следующих задач: Proskurina Помощь студентам 1 02.10.2012 22:20
Программа для решения тестовых задач по химии Gimenosis Помощь студентам 2 17.05.2012 16:41
Нужна ваша помощь для решения задач в Delphi DJ Kost Помощь студентам 3 20.10.2008 18:26


10:22.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.