Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Понятие алгоритма в информатике. Блок-схемы алгоритмов



В.Н.Агеев

Программирование

 

и основы алгоритмизации

 

Конспект лекций

Москва

2012

 

УДК 655.254:681.3

ББК 76.10

А23

 

 

Р е ц е н з е н т ы

 

IШурыгин В.Н., доцент кафедры «Информационные системы» ГОУ МГУП, к. т. н.
Щербина Ю.В., профессор кафедры «Автоматизация полиграфического производства»

ГОУ МГУП, д. т. н.

 

Агеев В.Н.

А23 Программирование и основы алгоритмизации. Конспект лекций – М.: МГУП, 2012.– *** с.

ISBN

Рассмотрены методы алгоритмизации и программирования на языке Visual Basic. Приводятся сведения об основных конструкциях языка, правилах их построения и использования при программировании линейных, разветвляющихся и циклических процессов. Приведены типовые алгоритмы: нахождение наибольшего и наименьшего значений в массиве чисел, сортировка массива и т.д. Показаны возможности языка Visual Basic при работе с файлами прямого и последовательного доступа, с парками и дисками. Особое внимание уделено методам отладки программ.

 

 


 

СОДЕРЖАНИЕ

Введение …………………………………………………………………………..

1. Понятие алгоритма в информатике. Блок-схемы алгоритмов

2. Типовые алгоритмы и их блок-схемы.

3. Алгоритмические языки и их классификация

4. Методы объектно-ориентированного программирования

5. Интегрированная среда разработки Visual Basic

6. Программирование на языке Visual Basic

7. Программирование разветвляющихся процессов

8. Программирование циклических процессов

9. Графические возможности Visual Basic

10. Функции даты и времени. Объект Timer

11. Работа с внешними файлами и устройствами

12. Работа с дисками и папками

13. Работа с базами данных

14. Методы отладки программы

15. Примеры решения задач

Список рекомендуемой литературы …………………………………………..


 

Предисловие

 

При создании полиграфической продукции мало быть специалистом только в области компьютерных технологий, в области дизайна или в области печати. Чело­век, занимающийся разработкой и созданием публикаций любого вида, будь то простая рекламная листовка, этикетка, книга, журнал или красочный каталог, дол­жен уметь подготовить текст и изображения для конкретного способа печати и на конкретной бумаге. При этом подготовленная публикация должна удовлетворять одновременно функциональным и эстетическим требованиям, а также требованиям, предъявляемым к современным печатным изданиям. Поэтому только комплексный подход, включающий знание необходимого программного обеспечения, основ печатных процессов и дизайна может привести к успеху.

Электроника обеспечивает управление печатным производством, благодаря чему достигается хорошее качество продукции и высокая производительность оборудования. Внедряемое сквозное цифровое управление производственными процессами, реализуемое цифровыми методами, обеспечивает ускорение выпуска продукции. В типографиях, специализирующихся на изготовлении коммерческой продукции, сегодня больше половины оригиналов поступает и обрабатывается в цифровой форме. Благодаря этому сокращаются сроки выполнения заказов на печатную продукцию, становится возможным полнее удовлетворить требования клиентов относительно высокого качества продукции.

Положительное влияние на полиграфическую промышленность оказывают компьютерные технологии. Так, в последние годы цифровая техника и издательские системы произвели переворот в сфере допечатной подготовки. Уже широко используются системы «Компьютер – фотоформа», «Компьютер – печатная форма» и «Компьютер – печатная машина», и их распространение продолжается.

В целом мировая полиграфическая промышленность характеризуется произошедшими в последние годы существенными структурными и технологическими изменениями. Наряду с процессами, затрагивающими традиционные печатные технологии, в ближайшие годы будет осуществляться также их интеграция с электронными средствами информации (на основе сетевых технологий, экспертных систем, интеллектуальных информационно-поисковых систем и др.).

Внедрение новых информационных технологий управления по­зволяет перейти к качественно новому типу автоматизированных систем – интегрированных систем обработки информации и уп­равления или, иначе говоря, автоматизированных информацион­но-управляющих систем..


 

Типовые алгоритмы и их блок-схемы.

Алгоритмические языки и их классификация

 

Языки программирования – это искусственные языки записи алгоритмов для исполнения их на ЭВМ. Программирование – составление программы по заданному алгоритму.

Классификация языков программирования представлена на рис.5. В овалах приведены названия наиболее популярных языков. Существуют и другие языки программирования, например к процедурным кроме указанных на схеме относятся языки Алгол, СИ, Бейсик и др.

 
 


Языки

Программи-

Рования

 
 


Процедурные Непроцедурные

           
 
     
 
 


Машино- Машино- SQL QBE

Ориентированные независимые

       
   
 
 


Автокод Ассемблер

           
     


Алгол Ада Delphi

Рис. 5. Классификация языком программирования

 

Рассмотрим основные и популярные языки программирования.

Ассемблер – представитель языков низкого уровня. Это средство автоматизации для программирования непосредственно в кодах процессора. Машинные команды описываются в виде мнемонических операций, что позволяет добиться достаточно высокой модифицируемости кода. Переход к символическому кодированию машинных команд имел на самом деле огромное значение. Программисту не надо было больше вникать в хитроумные способы кодирования команд на аппаратном уровне. Использование ассемблера целесообразно в случаях, когда необходимо напрямую взаимодействовать с внешними устройствами компьютера.

Кобол – язык программирования высокого уровня, разработанный в конце 1950-х гг. для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических На Коболе написаны тысячи прикладных коммерческих систем. Отличительной особенностью языка является возможность эффективной работы с большими массивами данных, что характерно именно коммерческих приложений. Популярность Кобола столь высока, что даже сейчас, при всех его недостатках (по структуре и замыслу Кобол во многом напоминает Фортран) появляются новые его диалекты и реализации.

Фортран – язык программирования высокого уровня, разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Значение этого события трудно переоценить. Это первый язык программирования высокого уровня. Впервые программист мог по-настоящему абстрагироваться от особенностей машинной архитектуры. Ключевой идеей, отличающей новый язык от ассемблера, была концепция подпрограмм. Дело в том, что в отличии от современных компьютеров, которые поддерживают подпрограммы на аппаратном уровне, предоставляя соответствующие команды и структуры данных непосредственно на уровне ассемблера, в середине прошлого века это было совершенно не так. Поэтому трансляция программы на языке Фортран, то есть перевод ее на язык машинных команд, был процессом отнюдь не тривиальным.

Ада – язык программирования высокого уровня, ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.) ЭВМ. Разработан по инициативе министерства обороны США в 1980-х гг. Назван в честь английского математика Ады Августы Байрон (Лавлейс), жившей в 1815-1851 гг.

Бейсик (Beginner's All-purpose Symbolic Instruction Code – многоцелевой язык символического кодирования для начинающих) был задуман в 60-х годах как простой язык для быстрого освоения. Язык задумывался в первую очередь как средство обучения и как первый изучаемый язык программирования. Он предполагался легко интерпретируемым и компилируемым.Он стал фактическим стандартом для МикроЭВМ именно благодаря своей простоте как в освоении так и в реализации. Пригоден для использования на начальном этапе обучения, как средство автоматизации (в случаях когда он встроен в соответствующие системы) либо как средство для быстрого создания приложений.

 

 

Паскаль был разработан известным теоретиком Н.Виртом на основе идей Алгола-68, прежде всего для обучения программированию. Он располагает конструкциями для описания произвольных структур данных, небольшим, но достаточным набором операторов структурного программирования. Обратной стороной простоты и строгости является громоздкость описаний конструкций языка.

Delphi – язык программирования высокого уровня, разработанный фирмой Borland на основе языка Паскаль. Это эффективное средство для быстрого создания приложений. Особое место в таких системах занимают возможности работы с базами данных.

– язык программирования высокого уровня, обеспечивающий полный и эффективный доступ ко всем ресурсам компьютера и переносимость программ между различными платформами и операционными системами.

Си++является развитием языка высокого уровня Cи, вносит возможности объектно-ориентированного программирования, выражая идею класса (объекта) как определяемого пользователем типа. Благодаря этому C++ занял позицию универсального языка для любых задач.

Лисп – алгоритмический язык, разработанный в 1960 г. Дж. Маккарти и предназначенный для манипулирования перечнями элементов данных. Используется преимущественно для решения задач, связанных с искусственным интеллектом.

Пролог – язык программирования высокого уровня декларативного типа, предназначенный для разработки систем и программ искусственного интеллекта. Относится к категории языков пятого поколения. Был разработан в 1971 г. в университете г. Марсель (Франция), относится к числу широко используемых и постоянно развиваемых языков.

Алгол – язык программирования высокого уровня, ориентированный на описание алгоритмов решения вычислительных задач. Был создан в 1958 г для научных исследований. Версия этого языка Алгол-60 была принята Международной конференцией в Париже (1960 г.) и широко использовалась на ЭВМ 2-го поколения. Версия Алгол-68, разработанная группой специалистов Международной федерации по обработке информации ( ИФИП) в 1968 г., получила статус международного универсального языка программирования, ориентированного на решение не только вычислительных, но и информационных задач. Хотя в настоящее время Алгол практически не используется, он послужил основой или оказал существенное влияние на разработку более современных языков, например, Ада, Паскаль и др.

End If

 

Эта форма применяется, когда нужно при выполнении или не выполнении заданного условия выполнить не один, а несколько операторов.

В качестве примера рассмотрим задачу вычисления корней квадратного трехчлена с коэффициентами A, B, C. Как известно, вещественные корни существуют при условии, что дискриминант больше либо равен нулю: D = B2 – 4AC ³ 0. Ниже приведен фрагмент программы, в котором дискриминант сравнивается с нулем и если он оказывается меньше нуля, выводится сообщение «Вещественных корней нет», противном случае подсчитываются значения корней.

 
 

 


D = B^2 – 4*A*C If D < 0 Then Print “ Вещественных корней нет ” Else X1 = (–B + sqr (D)) / (2*A) X2 = (–B – sqr (D)) / (2*A) Print “ Вещественных корней нет ” End If  
D := B2 – 4AC

 
 

 


да нет

D < 0

 

 
 


“Решений Вычисление

нет” корней X1, X2

       
 
   
 


Вывод X1, X2

 

 
 

 


Конец

 

Рис. 10. Фрагмент программы вычисления корней квадратного уравнения и его блок-схема

Еще одним оператором ветвления является Select Case.

Select CaseВыражение

CaseСписок_значений1

Операторы1

CaseСписок_значений2

Операторы2

……….

[Case ElseСписок_значений3

Операторы3 ]

End Select

 

Здесь в качестве параметра Выражение может быть как имя переменной, так и арифметическое выражение, а параметры Список_значений1, Список_значений2 и т.д. могут быть как одиночными числовыми значениями, так и списками – несколькими числами, разделенными запятыми.

Если значение выражения не совпадет ни с одним из значений, указанных в списках, будет выполнены операторы, указанные в разделе Case Else (если таковой присутствует, если же его нет, то следующим будет выполнен оператор, следующий за оператором Select.

В качестве списка значений можно указывать не только одно из возможных значений, но и несколько значений, разделенных запятыми. Можно также указать интервал значений (например, 4 To 6), или задать его с помощью ключевого слова IS и одного из знаков отношения < , <=, >, >=, < >, = (например, IS >= 10).

В качестве примера рассмотрим следующую задачу. Пусть задана кусочно-непрерывная функция f (x) следующим образом:

y

       
 
   
 


–1 для x < –1, 1

f (x) = 0 для –1 £ x < 1,

2 для x ³ 1. –2 –1 0 1 2 x

 

–1

 

 

Требуется написать программу, вычисляющую значение этой функции для любого заданного значения x. Воспользуемся для этой цели оператором ветвления Select Case:

 

Select CaseX

Case IS < –1

Y = –1

Case IS < 1

Y = 2

Case IS >= 1

Y = 1

End Select

 

Предположим, что X = –2. Тогда истинными являются условия IS <= –1 иIS < 1. Однако проверка условия IS < –1 идет первой и Y получит значение –1. Хотя второе условие также истинно для текущего значения X, оператор Y = 0 выполняться не будет, поскольку выбор уже будет сделан.

Пример.

Задан целочисленный массив A из N элементов. Нужно подсчитать количество четных элементов в этом массиве.

Решение. Пусть S – переменная для результата, которой перед началом цикла присвоено нулевое значение. Поскольку длина массива известна, используем цикл типа пересчета.

    S = 0 For i = 1 to N If A(i) mod 2 = 0 then S = S + 1 Next i Print S    

S : = 0

 
 

 


i := 1,2, …, N

 
 

 


нет

A(i) mod 2 = 0

 

да

 

S : = S +1

 
 

 


Вывод S

 
 

 


Рис.11. Пример цикла типа пересчета. Справа – фрагмент программы.

2. Оператор повторений с предусловиемDo While … Loop:

 

Do WhileУсловие

Операторы

Loop

Указанные Операторы повторяются до тех пор, пока Условие остается истинным.

Пример.Найти сумму числового ряда 1 – x1 + x2 x3 + … (0 < x < 1) с точностью e = 0,001. Из курса математики известно, что погрешность суммы знакочередующегося ряда не превышает абсолютной величины первого отброшенного члена.

Поскольку в данном случае количество слагаемых заранее неизвестно, используем оператор цикла типа Do While. Пусть S – переменная для результата, EPS – заданная точность, А – очередное слагаемое

На рис.12 показана блок-схема алгоритма и фрагмент программы.

  A = X S = 1 Do While abs(A) > EPS S = S – A A = – A * X Loop Print S  

S := 1

A := X

 

ôAô> EPS

 

да

S := S – A

A := –A*X

       
 
 
   

 

 


Вывод S

 
 

 


Рис.12. Пример цикла типа Do While с предусловием

Справа – фрагмент программы.

Комментарий. После первого шага величина S будет равна 1–X, а значение A, которое вначале было равно X изменится на – X2. После второго шага S и A окажутся равными соответственно 1–X+X2 и X3. Таким образом в S будет накапливаться сумма числового ряда до тех пор, пока очередное слагаемое по модулю остается больше заданного значения EPS. Если при первой проверке условие не будет выполнено, то цикл выполнятся не будет, следующим будет выполнен оператор вывода.

 

3. Оператор повторений с постусловиемDo … Loop While:

Do

Операторы

Loop WhileУсловие

Операторы повторяются до тех пор, пока Условие остается истинным. Отличие от предыдущего случая в том, что если Условие к моменту начала цикла ложно (имеет значение False), указанные операторы будут хотя бы один раз выполнены.

Для предыдущего примера вариант решения показан на рис.13.

S := 1

    A = X S = 1 Do S = S – A A = – A * X Loop While abs(A) > EPS Print S    
A := X


S := S – A

A := –A*X

 
 


 

ôAô> EPS

да

 

Вывод S

 
 


Рис.13. Пример цикла типа Do While с постусловием.

Справа – фрагмент программы.

 

4. Оператор повторений с предусловиемDo Until … Loop:

Do UntilУсловие

Операторы

Loop

Операторы повторяются до тех пор, пока Условие не станет истинным.

Пример.В текстовом файле A.TXT содержится список фамилий. Нужно прочитать этот файл и вывести список фамилий на экранную форму. Поскольку неизвестно, сколько фамилий в списке, используем для чтения их из файла оператор цикла типа Do Until.

Open “A.TXT” For Input As #1 Do Until EOF(1) Input #1, S Print S Loop Close #1   Рис.14. Пример цикла типа Do Until с предусловием. Справа – фрагмент программы.  

S := 1

A := X

 

конец файла?

да

нет

чтение S

 
 

 


вывод S

 
 


Комментарий. Здесь используется функция EOF, аргументом которой является номер канала, присвоенный открытому для чтения файлу (в данном случае 1). Эта функция возвращает логическое значение True («истина») в случае, когда из открытого файла будут считаны все записи. До тех пор, пока все записи не считаны, значение функции EOF равно False («ложь»). В приведенном фрагменте записи будут считываться в переменную S до тех пор, пока не будет достигнут конец файла.

 

5. Оператор повторений с постусловиемDo … Loop Until:

Do

Операторы

Loop UntilУсловие

Здесь Операторы повторяются до тех пор, пока Условие не станет истинным. Отличие от предыдущего случая в том, что если Условие к моменту начала цикла уже является истинным (имеет значение True), указанные операторы будут хотя бы один раз выполнены.

На рис.15 показан фрагмент программы, в котором решается задача предыдущего примера, но с использованием оператора повторений с постусловием .

 

Open “A.TXT” For Input As #1 Do Input #1, S Print S Loop Until EOF(1) Close #1    

S := 1

A := X


чтение S

 
 

 


вывод S

 
 


конец файла?

нет

да

 

Рис.15. Пример цикла типа Do Until с постусловием.

Справа – фрагмент программы.

Комментарий. Фрагменты программ, представленные на рис.14 и 15 выполняют одни и те же действия и практически равносильны, за одним исключением. Если файл A.TXT окажется пустым, то есть в нем не будет записей, при выполнении второй программы будет выведено сообщение об ошибке, поскольку команда чтения из файла выполняется до того, как проверяется достигнут ли конец файла. В программе на рис.14 такая ошибка исключается, поскольку проверка значения функции EOF происходит в начале цикла.

 

 


Loop

Полезной может оказаться также функция LOF(номер), возвращающая количество байтов памяти, занимаемых открытым файлом.

Запись данных в файл, открытый для записи, осуществляется командой

Print #номер, список_вывода

Здесь список_вывода – одна или несколько переменных (или строки символов, взятые в кавычки), разделенных либо запятыми (,), либо точками с запятой (;). В первом случае выводимые значения будут записаны в виде одной строки и разделены пробелами, во втором – выведены без разделителя, слитно. Если поставить точку с запятой в конец списка вывода, то следующая порция данных, выводимая оператором будет дописана в ту же строку.

Например, в результате выполнения двух операторов

Print #1, “Иванов”

Print #1, “Петров”

в открытым для вывода под номером 1 файле окажутся две строки по одной фамилии в каждой.

Если в конец первого оператора поставить точку с запятой:

Print #1, “Иванов” ;

Print #1, “Петров”

то будет записана одна строка в виде «ИвановПетров».

Следует отметить, что при попытке открыть для чтения несуществующий файл, будет выдано сообщение об ошибке (код ошибки 53). Если же дана команда открыть несуществующий файл для вывода или добавления, сообщения об ошибке не будет, файл с указанным именем будет создан.

 

Файлы произвольного доступа

Произвольный (Random) доступ для ввода или вывода применяется в случае, когда записи в файле имеют фиксированную длину.

Открывается файл для произвольного доступа с помощью оператора

Open имя_файлаFor Random [Access доступ] [Lock] As # номер [Len = длина_записи]

В квадратных скобках указаны необязательные параметры.

ПараметрAccess позволяет задать тип доступа к открываемому файлу. Если он не указан, то по умолчанию используется значение ReadWrite (возможно как чтение, так и запись).

Параметр Lock позволяет задать права доступа к открытому файлу и указывается, если один и тот же файл может использоваться несколькими пользователями или приложениями. Он может принимать следующие значения:

1) Shared (общий) – файл может использоваться всеми процессами для считывания и для записи;

2) LockRead (закрыт для чтения) – никакой другой процесс не может считывать данные из файла;

3) LockWrite (закрыт для записи) – никакой другой процесс не может записывать данные в файл;

4)LockReadWrite (закрыт для чтения и записи) – никакой другой процесс не может ни считывать, ни записывать данные в файл;

Параметр Len задает длину одной записи в байтах

Для чтения данных используется операторGet:

Get # номер , номер_записи, переменная

Для записи – оператор Put:

Put # номер , номер_записи, переменная

В качестве примера рассмотрим следующую задачу. Необходимо создать файл с именем Spisok.dat, в котором каждая запись состоит из двух полей. Первое поле для записи фамилии (типа String длиной 20 символов), вторая для записи личного номера (типа Ineger).

Для того, чтобы в одной записи сохранить значения данных различных типов используем в программе пользовательский тип данных, которому присвоим наименование Person. Кроме того, опишем массив Mass из 100 элементов типа Person.

Type Person

FamAs String* 20

Nom As Integer

End Type

DimMass(1 to 100) AsPerson

В процедуре, которая открывает файл для записи сформированного массива с фамилиями и номерами будут следующие операторы

Private Sub Command1_Click()

Open “Spisok.dat”For Random As #1 Len = 22

For i =1 to 100

Put #1, i , Mass(i)

Nexti

Close #1

End Sub

Предположим, что в дугой процедуре нужно открыть файл Spisok.dat, прочитать записи и вывести значения полей каждой записи на печать.

Private Sub Command2_Click()

DimzapAsPerson

DimnomerAs Integer

Open “Spisok.dat”For Random As #1 Len = 22

nomer = 1

Do until EOF(1)

Get #1, nomer , zap

Printzap.Fam, zap.Nom

nomer = nomer +1

Loop

Close #1

End Sub

 

Примечание. В приведенных выше примерах операторе Open параметру Len присвоено значение 22. Это длина в байтах считываемой записи (20 байт занимает поле Fam и 2 байта поле Nom). Можно было бы поступить по-другому, воспользовавшись функциейLen(переменная), указав в качестве аргумента имя zap – переменной введенного нами типа Person.:

Open “Spisok.dat”For Random As #1 Len = Len(zap)

Файлы прямого доступа можно использовать и для записи стандартных типов данных. Длина каждой записи при этом определяется типом данных (см. табл. 3).


Работа с дисками и папками

На панели инструментов окна Visual Basic есть три объекта, с помощью которых можно осуществлять просмотр существующих на диске папок и выбрать нужные файлы для последующей работы с ними.

Это объекты DriveListBox (список дисков), DirListBox (список папок) и FileListBox (список файлов). При размещении экземпляров этих объектов на форму им будут присвоены имена соответственно Drive1, Dir1 иFile1.

Основным свойством объекта Drive1 является свойство Drive– имя выбранного диска из числа доступных в данный момент. Присвоение значения этому свойству происходит после выбора нужного имени из списка дисков (событие Change).

У объекта Dir1основным свойством является Path – после выбора из списка папок (событие Change) там сохраняется имя выбранной папки или список вложенных папок, разделенных слэшом (обратной косой чертой).

Объект File1на форме представлен в виде текстового окна со списком файлов текущей папки. При выборе из этого списка нужного имени с помощью мыши (событие Click) свойству FileName присваивается имя выбранного файла с указанием пути к текущей папки. Для того, чтобы связать список файлов с выбранной папкой, используется свойство Path.

В качестве примера на рис.23 приведен текст трех процедур, которые запускаются при наступлении указанных событий. В результате работы программы выбранный текстовой файл открывается, считывается и текст выводится в текстовое окно.

 
 


Private Sub Drive1_Change() ' после выбора нужного диска из списка

Dir1.Path = Drive1.Drive ' его имя передается свойству Dir1.Path

ChDir Dir1.Path ‘ и выполняется команда “сменить директорию”

End Sub

 

Private Sub Dir1_Change() ' после выбора нужной папки из списка

File1.Path = Dir1.Path ' путь к этой папке передается свойству File1.Path

End Sub

 

Private Sub File1_Click() ' после выбора нужного файла

File_name = Dir1.Path + "\" + File1.FileName ‘ переменной File_name присваивается

' имя файла и добавляется путь к нему

Open File_name For Input As #1 ’ файл открывается для чтения

ST = "" ' в переменную ST построчно

Do Until EOF(1) ' считываются записи из файла

Input #1, S ' и добавляются управляющие коды

ST = ST + S + Chr(13) + Chr(10) ' <13>, <10>

Loop ‘ файл закрывается

Close #1 ' значение переменной ST выводится

Text2.Text = STT ‘ в окно Text2

End Sub

 

Рис.23. Пример использования объектов DriveListBox, DirListBox и FileListBox

 

Примечание. Для объекта Text2 необходимо на этапе создания экранной формы задать свойство Text2.Multiline = True. Это необходимо для того, чтобы в текстовое окно можно было вывести несколько строк.

 

Еще одну возможность выбора папки и файла из списка имеющихся на диске дает использование объектаCommonDialog. Этот объект отсутствует изначально на панели инструментов. Для того, чтобы его туда поместить, необходимо в основном меню выбрать пункт Project в развернувшемся меню выбрать опцию Components…, в появившемся окне (рис.24) отметить пункт Microsoft Common Dialog Control.

 
 

 


Рис. 24. Окно выбора компонентов

 

В результате в панель инструментов будет добавлена пиктограмма объекта CommonDialog. У этого объекта есть ряд методов, используя которые можно открывать диалоговые окна для выбора файла (методShowOpen); для сохранении файла на диске (метод ShowSave); для выбора цвета из палитры (метод ShowColor); для выбора имени шрифта, его размер и стиля (метод ShowFont).

Если поместить объект CommonDialog на форму, ему будет присвоено имяCommonDialog1. Для того чтобы в чтобы организовать режим выбора нужного файла из диалогового окна Open в соответствующей процедуре достаточно написать строку

CommonDialog1.ShowOpen

Выполнение этой команды приведет к появлению на экране так называемого «файлера» – диалогового окна, с помощью которого можно выбрать нужный диск, папку и файл (см. рис.25). После выбора нужной папки и файла и нажатия кнопки «Открыть» имя выбранного файла передается свойству FileName объектаCommonDialog. После этого он может быть открыт, например для чтения, командой

CommonDialog1.ShowSave

Print #1, S

Close #1

Первая команда выводит диалоговое окно (рис.26), в котором можно выбрать нужную папку и ввести имя файла в соответствующее поле.






Читайте также:

Последнее изменение этой страницы: 2016-03-17; Просмотров: 37; Нарушение авторского права страницы


lektsia.com 2007 - 2017 год. Все права принадлежат их авторам! (0.426 с.) Главная | Обратная связь