на главную страницу
визитка
темы

Семинары доктора Марцинкевича
(занятие первое)

 0293 Memo1

   -Я думаю, что нам нужно иметь одну общую форму, которую мы могли бы программировать под разные содержательные данные. Если это у нас получится, то мы избавимся от необходимости всякий раз создавать новую форму, и получим возможность сосредоточиться на программировании содержательного процесса.
   -Мы могли бы иметь не только общую форму, но и общую программу, во всяком случае, для очень многих опытов. И создание такой программы действительно было бы ценным, поскольку мы могли бы вообще избавить себя от проблем с программированием. Действительно, громадное число экспериментов при всём различии их содержаний подчиняется если и не одной форме, то некоторой универсальной форме, подстановка параметров в которую позволяет получать множество самых разнообразных в содержательном отношении экспериментов.
    -Но чтобы  сделать это или, во всяком случае, стремиться к этому, нам нужна технология.
   -Да, мы должны выстраивать некую общую абстракцию, посредством которой могли бы моделировать разные содержания.
   -Я считаю, что самой первой абстракцией у нас должна быть абстракция числа. Я имею ввиду представление содержательных вещей числами, а также их расположением относительно друг друга, порядком.
   -Число должно рассматриваться как объект, представляющий некоторое содержание.
   -Пожалуй. Тогда сразу же возникает вопрос о том, каким образом мы будем организовывать числа применительно к машине.
   -Сразу же следует оговориться, что числа у нас представляют не самих себя, а некоторые содержательные вещи. Значит, в этом случае речь уже не идёт о собственно математических операциях.
   -Здесь просматривается  важный принцип - тот, что объект может представлять сам себя, но может представлять и другое.
    -В связи с этим еще одно: если объект представлен числом, то изменение числа может рассматриваться как процесс изменения объекта. Другими словами, множество чисел может обозначать один и тот же вид объектов в их изменении, т.ск., развитие от неразвитой их формы к развитой. Мы т.о. получаем возможность как выражения развития объекта, изменения его, так и параллельного сосуществования объектов разного уровня развития. А это уже может быть представлено в виде дерева. А частный случай дерева может быть представлен в виде десятичного числа. Например, если мы возьмём число abc как представляющее некоторый объект, то его развитие может быть представлено в виде: аbc = 000 (нет ничего), 001 (нечто возникло), 002,...009 (качество достигло своего максимального количественного уровня развития), 010 (идеальная форма нового качества, своего рода зародыш), 011,...,019, 020,...,090, ...,099,100 и т.д.
   -Значит, разные объекты могут обозначаться буквами, которые одновременно представляют числа. Но если так, то мы может также и просто давать имена объектам, которые должны указывать на буквенное выражение числа, соответствующего ему, и далее возможны уже собственно количественные исследования объекта
   - Да, это понятно, если с каким-то числом связывается какое-то понятие, то в этом случае число - всего лишь объект. Но ведь с этими объектами мы будем действовать в том числе исходя также и из их количественных свойств, а это уже, конечно, математические операции.
   -Т.о. мы получаем, что объекты, имеющие форму числа, могут быть программно оформлены в виде класса, соответственно, особого типа объектов с их свойствами, событиями и методами.

   -Теперь к практике. Чтобы не путаться, я полагаю, нам нужно будет иметь что-то в роде информационного листка, в который мы могли бы заносить разнообразную информацию, и, в частности, справочную о представляемых числами содержаниях и многое другое.
    -Назовём нашу первую программу Memo1.
   -И будет хорошо, если у нас будет возможность  скрывать листок, когда он не нужен, чтобы не мозолил глаза.
   -Верно. Я предлагаю взять маленький квадратик Edit и рядом кнопку с надписью на ней: 0-скрыть, 1-показать. Записываем в Edit нолик, нажимаем на кнопку, и Memo скрывается.
   -Понятно. Это принимаем. Пусть, когда мы входим в программу, у нас в Memo уже есть справки, которые заранее занесены в него, указывающие, как им пользоваться.
   -Информационый листок должен запоминать информацию, которую мы вносим в него. Для этого пусть он создает два файла, в которые информация будет записываться и из которых извлекаться. В принципе можно т.о. создать сколько угодно файлов, запоминающих информацию. Файлы возьмём с расширением .txt.
   -Желательно, чтобы помимо информационных функций от листка была бы еще какая-то польза. Я думаю, что основными объектами, с которыми мы будем иметь дело, это массивы. Любой 1-строчный массив может рассматриваться как вектор, а многострочный массив образует матрицу. Если относительно таких матриц взять время, то мы получаем возможность отслеживать изменение каких-то сложных процессов во времени.
   Начнём с самого простого - со строчной матрицы. Нам потребуется заполнять её данными, а также проверять её содержание. Эти функции мог бы выполнять листок.
   -Примем для начала, что массив будет состоять из десяти элементов. Тогда предлагается программа Memo1. Обратите внимание на то, что она и последующие программы устанавливаются только на компьютерах, на которых установлена программа Borland C++Builder.
   -Всё-таки строчная матрица - это не самое простое, во всяком случае, "не изначальное", каковым является объект. Впрочем, это другой вопрос. Относительно листка.  Не всегда ведь нужно будет менять данные во всей матрице, да и интересовать нас могут значения отдельных  элементов массива.  Нам нужно иметь возможность вводить в массив значения элементов и просматривать значения элементов.
   -Хорошо. Подготовьте к следующему занятию программу  листка с этими дополнительными функциями. Назовём будущую программу Memo2

   14.12.08 г.