Компьютеры, программирование

  • 6881. Работа с Web-сервером Russian Apache
    Информация пополнение в коллекции 12.01.2009

    ).%20%d0%a2%d0%be%d0%b3%d0%b4%d0%b0%20%d0%bf%d1%80%d0%b8%20%d0%bf%d0%b5%d1%80%d0%b5%d1%85%d0%be%d0%b4%d0%b5%20%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82%d0%b0%20%d0%be%d1%82%20%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d0%be%d0%b3%d0%be%20%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0%20%d0%ba%20%d0%b2%d1%8b%d0%b1%d1%80%d0%b0%d0%bd%d0%bd%d0%be%d0%b9%20%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b5%20%d0%b8%d0%b7%d0%be%d0%b1%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f%20%d0%b1%d1%83%d0%b4%d1%83%d1%82%20%d0%b1%d1%80%d0%b0%d1%82%d1%8c%d1%81%d1%8f%20%d0%b8%d0%b7%20%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b3%d0%be%20%d0%ba%d1%8d%d1%88%d0%b0%20%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b0,%20%d0%b0%20%d0%bd%d0%b5%20%d0%bf%d0%b5%d1%80%d0%b5%d1%87%d0%b8%d1%82%d1%8b%d0%b2%d0%b0%d1%82%d1%8c%d1%81%d1%8f%20%d0%b7%d0%b0%d0%bd%d0%be%d0%b2%d0%be.%20%d0%ad%d1%82%d0%be%20%d0%be%d1%81%d0%be%d0%b1%d0%b5%d0%bd%d0%bd%d0%be%20%d0%b0%d0%ba%d1%82%d1%83%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%20%d0%bf%d1%80%d0%b8%20%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%be%d0%bc%20%d0%be%d0%b1%d1%8a%d0%b5%d0%bc%d0%b5%20%d0%b3%d1%80%d0%b0%d1%84%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b9%20%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d0%b8%20%d0%bd%d0%b0%20%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5.">При выборе кодировки по имени сервера или по префиксу каталога хорошим тоном является использование для графических файлов абсолютных ссылок с указанием имени сервера (например, <img src="http://images.rmt.ru/ picture.jpg">). Тогда при переходе клиента от основного сервера к выбранной кодировке изображения будут браться из локального кэша браузера, а не перечитываться заново. Это особенно актуально при большом объеме графической информации на сервере.

  • 6882. Работа с Windows98
    Информация пополнение в коллекции 12.01.2009

    На рабочем столе можно размещать Web-страницы с активным содержимым, в виде бегущей строки новостей. Кроме того, Web-страницу можно использовать в качестве фонового рисунка рабочего стола или папки. Можно переместить панель инструментов в более удобное для вас место на рабочем столе или на панели задач. Хотите упорядочить пункты в меню Пуск? Это можно сделать легко с помощью мыши!

  • 6883. Работа с Word 98
    Методическое пособие пополнение в коллекции 08.07.2010

    Меню «Вставка» > Рисунок > Картинки… > в диалоговом окне «Вставка картинки» нажать «Коллекция картинок…» > в диалоговом окне «Коллекция картинок (Microsoft)» открыть папку «Коллекции Microsoft Office» > выбрать папку с подходящей темой > подвести указатель мыши к понравившейся картинке (на всплывающей подсказке отобразятся ключевые слова этой картинке и ее размер) справа от картинки появится стрелка, нажмите на нее > нажмите пункт Копировать > перейдите к тексту и вставьте из буфера картинку.

  • 6884. Работа с базами данных
    Информация пополнение в коллекции 12.01.2009

    Столкнувшись с этой проблемой, я пошла по пути наименьшего сопротивления, и просто принудительно разделила параметры специальными символами (*, &, $). Это позволило легко организовывать проверку окончания раздела. Само собой, этот способ неэффективен при большом количестве разделов и большом объеме информации, хранящейся в них, но в данном случае вполне сойдет. Есть, правда, еще один недостаток: пользователь может случайно ввести эти спецсимволы в процессе использования программы, не подозревая о том, что это как-то скажется на работе программы. Но я посчитала эти недостатки несущественными. Был еще вариант: располагать параметры каждый раз с новой строки. У этого способа есть свои достоинства (например, упрощается процесс считывания и записи в базу данных), но есть и недостатки: значительно усложняется проверка перехода от одного параметра к другому.

    1. Расположение данных в файлах.
  • 6885. Работа с базами данных Microsoft
    Контрольная работа пополнение в коллекции 07.11.2010

    ПроцессорPentium 233 MHz и выше. Рекомендуется Pentium III.Операционная системаMicrosoft Windows 2000 с пакетом обновления 3 или более поздняя версия. Рекомендуется Windows XP или более поздняя версия.Память64 MB RAM (минимум). Рекомендуется 128 MB RAM.Дисковое пространство245 MB, включая 115 MB пространства на жестком диске под операционную систему. В зависимости от конфигурации объем используемого пространства на жестком диске может меняться. Локальному источнику установки необходимо в процессе установки приблизительно 2 GB пространства жесткого диска; локальному источнику установки на компьютерах пользователей необходимо вплоть до 240 MB пространства помимо пространства, необходимого для Office. МониторSuper VGA (800 x 600) или более высокое разрешение с 256 цветами.ДисководДисковод для компакт дисков.Указывающее устройствоMicrosoft Mouse, Microsoft IntelliMouse или совместимое указывающее устройство.

  • 6886. Работа с базами данных Microsoft Access 2000
    Методическое пособие пополнение в коллекции 15.12.2009

    ДатаИтоговое значениеБананыКонсервыКонфетыЯблоки01.11.20053 028,13р.387,50р.2 015,63р.625,00р.02.11.20051 343,75р.825,00р.906,25р.2 015,63р.625,00р.04.11.2005500,00р.825,00р.906,25р.2 015,63р.1 125,00р.05.11.20053 228,75р.825,00р.2 072,50р.2 640,63р.2 562,50р.07.11.20051 518,75р.1 450,00р.2 072,50р.3 390,63р.2 706,25р.08.11.20053 518,75р.1 900,00р.2 828,75р.5 203,13р.3 206,25р.09.11.20051 770,00р.1 900,00р.3 036,25р.6 765,63р.3 206,25р.

    1. На основе запроса Объемы продаж по датам создайте диаграмму. Воспользуйтесь для этой цели Мастером отчетов: в окне Новый отчет выберите Мастер диаграмм. Нажмите кнопку ОК.
    2. В окне Создание диаграмм из списка Доступные поля выберите все поля, кроме поля Итоговое значение СуммаНДС и нажмите кнопку Далее.
    3. В окне Создание диаграмм выберите тип диаграммы Гистограмма и нажмите кнопку Далее.
  • 6887. Работа с Базами данных в Delphi
    Дипломная работа пополнение в коллекции 09.12.2008

    %20-%20delphi.vitpc.com,%20Torry's%20Delphi%20Pages%20-%20www.torry.ru.%20%d0%9f%d0%be%d1%81%d0%bb%d0%b5%d0%b4%d0%bd%d0%b8%d0%b9%20%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82%20%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%be%d0%b5%20%d1%87%d0%b8%d1%81%d0%bb%d0%be%20%d1%81%d1%81%d1%8b%d0%bb%d0%be%d0%ba%20%d0%bd%d0%b0%20%d1%80%d0%b5%d1%81%d1%83%d1%80%d1%81%d1%8b,%20%d1%81%d0%b2%d1%8f%d0%b7%d0%b0%d0%bd%d0%bd%d1%8b%d0%b5%20%d1%81%20Delphi.%20%d0%9d%d1%83%20%d0%b0%20%d0%b5%d1%81%d0%bb%d0%b8%20%d0%b2%d1%8b%20%d1%83%d0%b6%d0%b5%20%d0%b4%d0%b0%d0%b2%d0%bd%d0%be%20%d0%b7%d0%bd%d0%b0%d0%ba%d0%be%d0%bc%d1%8b%20%d1%81%20%d1%8d%d1%82%d0%b8%d0%bc%20%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%be%d0%bc,%20%d1%82%d0%be%20%d0%bd%d0%b0%20%d1%81%d0%b0%d0%b9%d1%82%d0%b5%20www.brainbench.com%20%d0%bc%d0%be%d0%b6%d0%bd%d0%be%20%d0%b1%d0%b5%d1%81%d0%bf%d0%bb%d0%b0%d1%82%d0%bd%d0%be%20%d0%bf%d1%80%d0%be%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c%d1%81%d1%8f%20%d0%b2%20%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%b5%20%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%81%d1%82%d0%b0%20Delphi%203%20%d0%b8%20%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d1%8c%20%d0%bf%d0%be%20%d0%bf%d0%be%d1%87%d1%82%d0%b5%20%d1%81%d0%b5%d1%80%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%82.">Ну, и одна из самых последних новостей от Inprise обещает, что в ближайшем будущем вы сможете переносить приложения, разработанные в Delphi, на платформу Linux. Более подробную информацию о Delphi можно получить на сайтах www.inprise.com и www.inprise.ru. Существует большое количество сайтов, посвященных Delphi, например <Королевство Delphi> - delphi.vitpc.com, Torry's Delphi Pages - www.torry.ru. Последний содержит большое число ссылок на ресурсы, связанные с Delphi. Ну а если вы уже давно знакомы с этим продуктом, то на сайте www.brainbench.com можно бесплатно протестироваться в качестве программиста Delphi 3 и получить по почте сертификат.

  • 6888. Работа с базами данных в JAVA на основе соединения JDBC
    Информация пополнение в коллекции 31.10.2008

    Как мы знаем, SQL-запросы предварительно компилируются по месту исполнения. Следовательно, чтобы ускорить их выполнение следует компиляцию запросов выполнять предварительно. Это реализуется командой prepareStatement класса PreparedStatement. Данная команда позволяется использовать SQL-запросы с параметрами. Параметры вставляются в запросы как знак вопроса. Сначала рассмотрим, как использовать инструкцию prepareStatement на следующем примере:

  • 6889. Работа с базами данных через интерфейс
    Информация пополнение в коллекции 31.10.2008

    Нам нужно занести рисунки с изображениями тараканов в General-поля. Это делается следующим образом. Откроем таблицу runners командой (кнопкой) Browse. Затем дважды щелкаем по полю General в каждой записи. Откроется окно редактора. Выберем в главном меню FoxPro п. Edit, а в нем п.Insert Object. В новом окне следует выбрать тип вставляемого объекта (если он создается впервые) и указать, является ли он новым (т.е. его требуется создать) или находится в файле. Здесь выбираем второй вариант, поэтому тип объекта указывать не надо. Следует выбрать файл со вставляемым объектом, используя кнопку Browse. Никаких других установок не производим. Отметим, что в этом окне можно установить опцию Связать. Если это сделать, то любое изменение объекта-оригинала автоматически приведет к изменению объекта, помещенного в таблицу. Итак, после этих объяснений и предварительных действий считаем, что в таблице runners поля photo содержат рисунки с изображениями тараканов.

  • 6890. Работа с библиотеками динамической компоновки (DLL)
    Статья пополнение в коллекции 12.01.2009

    При статическом подключении DLL имя .lib-файла определяется среди прочих параметров редактора связей в командной строке или на вкладке "Link" диалогового окна "Project Settings" среды Developer Studio. Однако .lib-файл, используемый при неявном подключении DLL, - это не обычная статическая библиотека. Такие .lib-файлы называются библиотеками импортирования (import libraries). В них содержится не сам код библиотеки, а только ссылки на все функции, экспортируемые из файла DLL, в котором все и хранится. В результате библиотеки импортирования, как правило, имеют меньший размер, чем DLL-файлы. К способам их создания вернемся позднее. А сейчас рассмотрим другие вопросы, касающиеся неявного подключения динамических библиотек.

  • 6891. Работа с бинарными данными и реестром Windows на платформе .NET
    Статья пополнение в коллекции 12.01.2009

    При работе с классом AcedStreamWriter в памяти создается буфер размером 2МБ, который постепенно заполняется данными. При достижении конца буфера, вызове методов Flush() или Close() класса AcedStreamWriter содержимое буфера упаковывается методом Compress() класса AcedDeflator. Сжатые данные сохраняются в другом буфере, размер которого также составляет 2МБ. Для упакованных данных вычисляется цифровая сигнатура RipeMD-160, после чего данные шифруются методом CAST-128. Длина фрагмента данных, контрольная сумма Адлера, цифровая сигнатура RipeMD-160 и сами сжатые и зашифрованные данные записываются в выходной поток типа System.IO.Stream. После этого содержимое буфера очищается и в него можно записывать следующие данные. При вызове метода Close() класса AcedStreamWriter, если ассоциированный с ним поток поддерживает операцию Seek, поток позиционируется на начало записанных данных и в потоке сохраняется общая длина (в байтах) данных, помещенных в поток классом AcedStreamWriter. Этот размер представляется значением типа System.Int64. Если операция Seek не поддерживается потоком типа System.IO.Stream, длина остается равной значению -1, записанному в поток при его ассоциации с классом AcedStreamWriter. Метод AssignStream класса AcedStreamWriter используется, чтобы связать данный экземпляр класса с потоком System.IO.Stream. Кроме ссылки на поток в этот метод передается константа, выбирающая режим сжатия данных, а также значение типа System.Guid, которое, если оно отлично от Guid.Empty, задает ключ для шифрования данных. Таким образом, в зависимости от параметров, переданных в метод AssignStream, этапы сжатия данных, расчета цифровой сигнатуры и шифрования данных могут опускаться.

  • 6892. Работа с готовыми программными продуктами
    Информация пополнение в коллекции 12.01.2009

    Очевидным достоинством большинства программ-редакторов является возможность проведения с их помощью контекстного поиска по заданному фрагменту текста. Так, например, если Вы захотите подсчитать, сколько раз в конкретном философском источнике встречается слово, имеющее корень «анал» (это слова: «анализ», «проанализировать», «аналитика», др.), Вы должны будете ввести его текст в компьютер, а затем дать команду редактору найти нужные Вам слова. Редактор вначале отыщет ближайшее слово, соответствующее заданному параметру, потом, если Вы снова нажмете командную клавишу, покажет Вам следующее. Итак, нажимая на клавишу, Вы получите четкое представление о том, как часто и в каком контексте употреблялись в данном источнике термины, характерные для определенного философского направления. Одним из наиболее удачных программных продуктов, ориентированным на гуманитарные исследовательские проекты, является мультиязычный (т.е. многоязычный) текстовой процессор Nota Bene (NB). Он содержит целый ряд модулей, делающих его универсальным средством для выполнения полезных операций с текстом. NB имеет 9 «окон», специальные «устройства»

  • 6893. Работа с графическими объектами в 3ds max
    Методическое пособие пополнение в коллекции 04.02.2011

    Пять нижних пунктов подменю вариантов проекций называются несколько странно: АсtiveShade, Schematic, Grid, Extended и Shape. Выбор любого из этих пунктов приведет к тому, что окно проекции станет использоваться не для отображения стандартной проекции, а в качестве окна, содержащего различную дополнительную информацию. Рассмотрим вкратце, что представляет собой каждый из этих вариантов.

    1. ActiveShade. Позволяет просмотреть результат визуализации выбранного объекта сцены с точки зрения данной проекции. Визуализация это отдельная тема, которая будет рассмотрена позднее, поэтому подробно на конфигурации ActiveShade мы останавливаться не будем.
    2. Schematic. Если выбрать вариант Schematic, то перед вами откроется схематическое представление размещения всех элементов сцены и связей между ними.
    3. Grid. Предоставляет быстрый доступ к вариантам положения сетки в окне проекции. Можно создать сетку с нестандартной ориентацией и выровнять в соответствии с ней объекты, выбрав пункт контекстного меню окна проекции works => Grid.
    4. Extended. У названного пункта есть два подпункта: Asset Browser и MaxScript Listener. Выбор Asset Browser предоставляет быстрый доступ ко всем файлам данных 3ds max, расположенных в вашей системе или на Web-сайте. Сценарии MaxScript это, по существу, небольшие программы, которые автоматизируют процесс создания моделей 3ds max различного типа. В данной книге разработка сценариев MaxScript не рассматривается, так как этот процесс понятен только для компьютерных программистов.
    5. Shape. Выбор данного пункта преобразит окно проекции в соответствии с ориентацией на выбранную фигуру (например, объект Line).
  • 6894. Работа с данными
    Контрольная работа пополнение в коллекции 08.08.2011

    Для более быстрого удаления ненужных данных воспользуемся автофильтром. Выделяем столбец «Активность» и в меню ДАННЫЕ выбираем АВТОФИЛЬТР. Далее в условиях фильтрации столбца выбираем значение «0». Выделяем отфильтрованный диапазон и удаляем ячейки. Чтобы удалить строки с неопределенными данными, устанавливаем фильтр со значением «ЗНАЧ», повторяем удаление отфильтрованного диапазона.

  • 6895. Работа с двоичными данными (SQL Server + ASP)
    Статья пополнение в коллекции 12.01.2009

    ASP-%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82%20img.asp%20%d0%bc%d0%be%d0%b6%d0%bd%d0%be%20%d1%83%d0%ba%d0%b0%d0%b7%d0%b0%d1%82%d1%8c%20%d0%b2%20%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d0%b5%20src%20%d1%82%d0%b5%d0%b3%d0%b0%20img:%20">%>ASP-скрипт img.asp можно указать в атрибуте src тега img:

  • 6896. Работа с двумерными числовыми массивами
    Курсовой проект пополнение в коллекции 04.10.2010

     

    1. {
    2. Модуль, содержащий форму, переменную для хранения исходной матрицы,
    3. процедуры синхронизации содержания матрицы и элементов формы, а так же
    4. процедуру задания размеров матрицы
    5. }
    6. unit form;
    7. interface
    8. uses
    9. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    10. Dialogs, Menus, StdCtrls, ExtCtrls, ComCtrls, Grids,
    11. //модули программы
    12. fileIO, MatrixOperations;
    13. type
    14. TMainForm = class(TForm)
    15. Pages: TPageControl;
    16. Task1: TTabSheet;
    17. Task2: TTabSheet;
    18. Task3: TTabSheet;
    19. Task4: TTabSheet;
    20. Task5: TTabSheet;
    21. Menu: TMainMenu;
    22. A1: TMenuItem;
    23. load: TMenuItem;
    24. save: TMenuItem;
    25. N1: TMenuItem;
    26. quit: TMenuItem;
    27. N4: TMenuItem;
    28. M_Task1: TMenuItem;
    29. M_Task2: TMenuItem;
    30. M_Task3: TMenuItem;
    31. M_Task4: TMenuItem;
    32. M_Task5: TMenuItem;
    33. GroupBox1: TGroupBox;
    34. G_Matrix: TStringGrid;
    35. E_RowsN: TEdit;
    36. Label1: TLabel;
    37. Label2: TLabel;
    38. E_ColsN: TEdit;
    39. B_SetDimms: TButton;
    40. SaveDialog: TSaveDialog;
    41. OpenDialog: TOpenDialog;
    42. Label3: TLabel;
    43. Label4: TLabel;
    44. G_Task1B: TStringGrid;
    45. Label5: TLabel;
    46. Label6: TLabel;
    47. G_Task1C: TStringGrid;
    48. B_Task1Run: TButton;
    49. Label7: TLabel;
    50. Label8: TLabel;
    51. Label9: TLabel;
    52. E_Task2S1: TEdit;
    53. B_Task2Run: TButton;
    54. E_Task2S2: TEdit;
    55. L_Task2MatrxChanged: TLabel;
    56. Label10: TLabel;
    57. B_Task3Run: TButton;
    58. L_Task3Result: TLabel;
    59. Label11: TLabel;
    60. B_Task4Run: TButton;
    61. Label12: TLabel;
    62. B_Task5Run: TButton;
    63. about: TMenuItem;
    64. MEM_Task4: TMemo;
    65. procedure saveClick(Sender: TObject);
    66. procedure loadClick(Sender: TObject);
    67. procedure B_SetDimmsClick(Sender: TObject);
    68. procedure FormCreate(Sender: TObject);
    69. procedure quitClick(Sender: TObject);
    70. procedure M_Task1Click(Sender: TObject);
    71. procedure M_Task2Click(Sender: TObject);
    72. procedure M_Task3Click(Sender: TObject);
    73. procedure M_Task4Click(Sender: TObject);
    74. procedure M_Task5Click(Sender: TObject);
    75. procedure B_Task1RunClick(Sender: TObject);
    76. procedure FormDestroy(Sender: TObject);
    77. procedure B_Task2RunClick(Sender: TObject);
    78. procedure B_Task3RunClick(Sender: TObject);
    79. procedure B_Task4RunClick(Sender: TObject);
    80. procedure B_Task5RunClick(Sender: TObject);
    81. procedure aboutClick(Sender: TObject);
    82. private
    83. procedure readMatrix;
    84. procedure writeMatrix;
    85. public
    86. published
    87. { Public declarations }
    88. end;
    89. var
    90. MainForm: TMainForm;
    91. workMatrix: TMatrix;
    92. implementation
    93. uses Math;
    94. {$R *.dfm}
    95. {заполнить матрицу в соответствии с содержанием таблицы на форме}
    96. procedure TMainForm.ReadMatrix;
    97. var rowN, colN: integer;
    98. begin
    99. SetLength(workMatrix, G_Matrix.RowCount-1, G_Matrix.ColCount-1);
    100. for rowN:= 0 to G_Matrix.RowCount-2 do
    101. for colN:= 0 to G_Matrix.ColCount-2 do
    102. workMatrix[rowN, colN]:= StrToIntDef(G_Matrix.Cells[colN+1, rowN+1], 0);
    103. end;
    104. {заполнить таблицу на форме в соответствии с содержанием матрицы}
    105. procedure TMainForm.writeMatrix;
    106. var rowN, colN: integer;
    107. begin
    108. G_Matrix.Cells[1, 1]:= '';//если матрица пуста
    109. //обновим размеры матрицы
    110. E_RowsN.Text:= IntToStr(high(workMatrix) + 1);
    111. %20'0')%20then">if(E_RowsN.Text <> '0') then
    112. E_ColsN.Text:= IntToStr(high(workMatrix[low(workMatrix)]) + 1)
    113. else E_ColsN.Text:= '0';
    114. B_SetDimmsClick(self);
    115. //заполним таблицу
    116. for rowN:= low(workMatrix) to high(workMatrix) do
    117. for colN:= low(workMatrix[rowN]) to high(workMatrix[rowN]) do
    118. G_Matrix.Cells[colN+1, rowN+1]:= IntToStr(workMatrix[rowN, colN]);
    119. end;
    120. {обработчик Файл->Сохранить}
    121. procedure TMainForm.saveClick(Sender: TObject);
    122. var
    123. outFile: TextFile;
    124. begin
    125. //отобразим диалог выбора файла для сохранения, если отмена - выходим
    126. if SaveDialog.Execute = false then exit;
    127. AssignFile(outFile, SaveDialog.Files[0]);
    128. ReWrite(outFile);//создадим файл
    129. readMatrix;//прочтём матрицу из таблицы
    130. Write2DArray(workMatrix, outFile);//запишем матрицу в файл
    131. CloseFile(outFile);//закроем файл
    132. end;
    133. {обработчик Файл->Загрузить}
    134. procedure TMainForm.loadClick(Sender: TObject);
    135. var
    136. inFile: TextFile;
    137. begin
    138. //отобразим диалог выбора фала для загрузки, если отмена - выходим
    139. if OpenDialog.Execute = false then exit;
    140. AssignFile(inFile, OpenDialog.Files[0]);
    141. Reset(inFile);//подготовим файл к чтению
    142. Read2DArray(workMatrix, inFile);//прочтём матрицу из файла
    143. writeMatrix;//отобразим матрицу
    144. CloseFile(inFile);//закроем файл
    145. end;
    146. {обраюотчик уствновки размеров матрицы}
    147. procedure TMainForm.B_SetDimmsClick(Sender: TObject);
    148. var
    149. i: integer;
    150. RowsN, ColsN: integer;
    151. begin
    152. //значения размеров не должны быть меньше 1
    153. RowsN:= StrToIntDef(E_RowsN.Text, 0);
    154. if RowsN < 1 then begin RowsN:= 1; E_RowsN.Text:= '1' end;
    155. ColsN:= StrToIntDef(E_ColsN.Text, 0);
    156. if ColsN < 1 then begin ColsN:= 1; E_ColsN.Text:= '1' end;
    157. //число строк и столбцов в таблице, учитывая колонку и строку с номерами
    158. G_Matrix.RowCount:= RowsN + 1;
    159. G_Matrix.ColCount:= ColsN + 1;
    160. //в этих таблицах отображаются одномерные массивы из первого задания
    161. G_Task1B.RowCount:= RowsN;
    162. G_Task1C.RowCount:= RowsN;
    163. //одномерный массив из четвёртого задания имеет длину, равную числу элементов исходной матрицы
    164. //G_Task4.ColCount:= RowsN * ColsN;
    165. //расставим номера строк и столбцов
    166. for i:= 0 to RowsN do
    167. begin
    168. G_Matrix.Cells[0, i+1]:= IntToStr(i+1);
    169. G_Task1B.Cells[0, i]:= IntToStr(i+1);
    170. G_Task1C.Cells[0, i]:= IntToStr(i+1);
    171. end;
    172. for i:= 0 to ColsN do
    173. G_Matrix.Cells[i+1, 0]:= IntToStr(i+1);
    174. //for i:= 0 to RowsN * ColsN do
    175. // G_Task4.Cells[i, 0]:= IntToStr(i+1);
    176. G_Matrix.Refresh;
    177. end;
    178. {при создании формы задаём размер матрицы по умолчанию}
    179. procedure TMainForm.FormCreate(Sender: TObject);
    180. begin
    181. B_SetDimmsClick(Sender);
    182. end;
    183. {при уничтожении формы освобождаем память, выделенную для хранения матрицы}
    184. procedure TMainForm.FormDestroy(Sender: TObject);
    185. begin
    186. workMatrix:= nil;
    187. end;
    188. {обработчик Файл->Выход}
    189. procedure TMainForm.quitClick(Sender: TObject);
    190. begin
    191. if mrYes = MessageDlg('Вы уверены, что хотите выйти?', mtConfirmation, [mbYes, mbNo], 0)
    192. then Close;
    193. end;
    194. {обработчик Задачи->задача 1}
    195. procedure TMainForm.M_Task1Click(Sender: TObject);
    196. begin
    197. Pages.ActivePageIndex:= 0;
    198. end;
    199. {обработчик Задачи->задача 2}
    200. procedure TMainForm.M_Task2Click(Sender: TObject);
    201. begin
    202. Pages.ActivePageIndex:= 1;
    203. end;
    204. {обработчик Задачи->задача 3}
    205. procedure TMainForm.M_Task3Click(Sender: TObject);
    206. begin
    207. Pages.ActivePageIndex:= 2;
    208. end;
    209. {обработчик Задачи->задача 4}
    210. procedure TMainForm.M_Task4Click(Sender: TObject);
    211. begin
    212. Pages.ActivePageIndex:= 3;
    213. end;
    214. {обработчик Задачи->задача 5}
    215. procedure TMainForm.M_Task5Click(Sender: TObject);
    216. begin
    217. Pages.ActivePageIndex:= 4;
    218. end;
    219. {выполнение первого задания}
    220. procedure TMainForm.B_Task1RunClick(Sender: TObject);
    221. var
    222. maxVal: TVector; //массив максимальных элементов из каждой строки
    223. maxValCol: TVector; //массив номеров столбцов с максимальными элементами
    224. RowN: integer;
    225. begin
    226. readMatrix;//прочитаем матрицу из таблицы
    227. GetMaxVals(maxVal, maxValCol, workMatrix);//сформируем массивы по заданию
    228. for RowN:= low(maxVal) to high(maxVal) do
    229. begin//выведем сформированные массивы в элементы формы
    230. G_Task1B.Cells[1, RowN]:= IntToStr(maxVal[RowN]);
    231. G_Task1C.Cells[1, RowN]:= IntToStr(maxValCol[RowN]+1);
    232. end;
    233. //освободим память
    234. maxVal:= nil;
    235. maxValCol:= nil;
    236. end;
    237. {выполнение второго задания}
    238. procedure TMainForm.B_Task2RunClick(Sender: TObject);
    239. var S1, S2: Int64;//суммы выше и ниже пересечения диагоналей
    240. begin
    241. readMatrix;//проситаем матрицу из таблицы
    242. //высчитаем суммы
    243. S1:= GetSumAbove(workMatrix);
    244. S2:= GetSumBelow(workMatrix);
    245. //выведем суммы в элементы формы
    246. E_Task2S1.Text:= IntToStr(S1);
    247. E_Task2S2.Text:= IntToStr(S2);
    248. =%20S2%20then%20L_Task2MatrxChanged.Caption:=%20'%d0%9c%d0%b0%d1%82%d1%80%d0%b8%d1%86%d0%b0%20%d0%bd%d0%b5%20%d0%b1%d1%8b%d0%bb%d0%b0%20%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b0'">if S1 >= S2 then L_Task2MatrxChanged.Caption:= 'Матрица не была изменена'
    249. else
    250. begin//если S1 < S2, то
    251. SwapAboveBelow(workMatrix);//меняем местами элементы выше и ниже пересечения диагоналей
    252. writeMatrix;//выводим изменённую матрицу на форму
    253. L_Task2MatrxChanged.Caption:= 'Матрица была изменена'
    254. end;
    255. end;
    256. {выполнение третьего задания}
    257. procedure TMainForm.B_Task3RunClick(Sender: TObject);
    258. begin
    259. readMatrix;//прочтём матрицу из таблицы
    260. if (high(workMatrix)+1) mod 2 = 0 then
    261. begin//если число строк - чётное
    262. CircuarShift(workMatrix, true);//осуществим циклический сдвиг вверх
    263. L_Task3Result.Caption:= 'был произведён сдвиг "вверх"';
    264. end
    265. else
    266. begin//иначе, если число строк - нечётное
    267. CircuarShift(workMatrix, false);//осуществим циклический сдвиг вниз
    268. L_Task3Result.Caption:= 'был произведён сдвиг "вниз"';
    269. end;
    270. writeMatrix;//выведем изменённую матрицу в таблицу
    271. end;
    272. {выполнение четвёртого задания}
    273. procedure TMainForm.B_Task4RunClick(Sender: TObject);
    274. var arrayB: TVector;//массив, содержащий "развёрнутую" матрицу
    275. var i: integer;
    276. begin
    277. readMatrix;//прочтём матрицу из таблицы
    278. UnwindMatrix(workMatrix, arrayB);//наполним массив, обходя матрицу по спирали
    279. MEM_Task4.Lines[0]:= '';
    280. for i:= 0 to high(arrayB) do
    281. begin//выведем все элементы из массива на форму
    282. //G_Task4.Cells[i, 1]:= IntToStr(arrayB[i]);
    283. MEM_Task4.Lines[0]:= MEM_Task4.Lines[0] + IntToStr(arrayB[i]) + '; '
    284. end;
    285. arrayB:= nil;//освободим память
    286. end;
    287. {выполнение пятого задания}
    288. procedure TMainForm.B_Task5RunClick(Sender: TObject);
    289. begin
    290. readMatrix;//прочтём матрицу из таблицы
    291. SortRows(workMatrix);//отсортируем строки матрицы по убыванию сумм
    292. writeMatrix;//выведем матрицу в таблицу
    293. end;
    294. {обработчик About}
    295. procedure TMainForm.aboutClick(Sender: TObject);
    296. var info: string;
    297. begin
    298. info:= 'Курсовая работа по дисциплине "Программирование на ЯВУ"'#10#10 +
    299. 'Тема: "Работа с двумерными числовыми массивами"'#10 +
    300. 'Выполнил: студент группы ВСМ-06-08 Филон Д. В.'#10#10#10 +
    301. #9#9#9#9#9#9'Москва 2010 год';
    302. MessageDlg(info, mtInformation, [mbIgnore], 0);
    303. end;
    304. end.
  • 6897. Работа с диалоговыми окнами
    Контрольная работа пополнение в коллекции 27.09.2010

    КонстантаЗначениеОписаниеcdlCCFullOpen&H2Помещает в диалоговое окно дополнительную кнопку Добавить в набор и цветовое поле с маркером и линейкой назначения оттенка для добавления цветов в поля Дополнительные цвета диалогового окна цветовой палитры (рис. 7.25)cdlCCShowHelp&H8Добавляет в диалоговое окно кнопку СправкаcdlCCPreventFullOpen&H4Скрывает кнопку Добавить в наборcdlCCRGBInit&H1Восстанавливает в диалоговом окне исходный набор цветов

  • 6898. Работа с дисками
    Информация пополнение в коллекции 12.01.2009

    Введение.

    1. Глава 1. Обзор дисковых устройств.
    2. Глава 2. Физические аспекты работы с дисками.
    3. Глава 3. Работа с дисками на физическом уровне.
    4. Определение типа компьютера.
    5. Прерывание INT 11h.
    6. Анализ содержимого CMOS-памяти.
    7. Таблицы параметров НМД и НГМД.
    8. Глава 4. Программирование контроллера НГМД.
    9. Порты контроллера НГМД.
    10. Команды для контроллера НГМД.
    11. Использование команд контроллера НГМД.
    12. Немного о контроллере прямого доступа к памяти.
    13. Глава 5. Функции BIOS для работы с дисками.
    14. Глава 6. Работа с дисками по средствам MS-DOS.
    15. Таблица разделов и логические диски.
    16. Главная загрузочная запись.
    17. Таблица разделов диска.
    18. Загрузочная запись.
    19. Загрузка операционной системы.
    20. Поля элемента таблицы раздела диска.
    21. Первичный и расширенный раздел.
    22. Загрузочная запись.
    23. Формат загрузочной записи.
    24. Расширенный блок параметров BIOS.
    25. Логический номер сектора.
    26. Прерывания INT 25h и INT 26h.
    27. Таблица размещения файлов.
    28. Последовательный и прямой доступ.
    29. Кластеры.
    30. Содержимое таблицы FAT.
    31. Два формата таблицы FAT.
    32. Определение формата таблицы FAT.
    33. Идентификация кластеров.
    34. Чтение таблицы FAT.
  • 6899. Работа с документами
    Информация пополнение в коллекции 12.01.2009

    Итак, показатель времени распознавания у программ совершенно разный, и сказать, какой из них быстрее, довольно сложно. Однако нельзя не заметить, что у Fine Reader 5.0 время распознавания напрямую зависит от качества оригинала: она старается распознать максимально много и поэтому затрачивает больше времени на распознавание изображения плохого качества. Ну а у Cuneiform 2000 время распознавания не настолько зависит от качества оригинала, поэтому распознавание занимает меньше времени, но из-за этого страдает качество. Вывод: Fine Reader 5.0 лучше всего использовать при распознавании как хорошего, так и плохого исходного материала. Ну, а Cuneiform 2000 в лучшем свете выглядит при распознавании среднего и чуть выше среднего качества оригиналов, т. к. при этом он тратит время на распознавание гораздо меньше, а качество лишь немного уступает победителю данного теста - Fine Reader.

  • 6900. Работа с инифайлами (ini)
    Доклад пополнение в коллекции 12.01.2009

    Теперь начнем разбираться с этими инифайлами. Для начала создайте новое приложение. Добавьте в секцию uses слово inifiles. Сохраните и откомпилируйте ваше приложение. Теперь сделаем, чтобы при каждом открытии программы форма имела такие размеры, какие установил пользователь последний раз. Для начала нам надо создать объект типа Inifile. Создается он методом Create(Filename:string); причем если в переменной Filename не указан путь к фалу, то он создаться в директории Windows, что не очень-то удобно. Поэтому мы создадим этот файл в директории нашей программы. Напишем это в обработчик события OnDestroy для формы: