Лабораторная работа №14 Пример: В теле процедуры запишем Begin … if MessageDlg('Yo!',mtWarning,[mbYes, mbNo],0)=mrYes then close; end. Получим:  Задания для самостоятельной работы: Перераспределить значения переменных x и y так, чтобы в х оказалось большее, а в у – меньшее. Посетитель проиграл в казино a рублей. У него есть фишки 2, 5, 15, 20, 50, 100, 500$. Сколько фишек разного достоинства отдаст игрок, если будет платить с самых дорогих? Работа с датой и временем Тип TDateTime Var t: TDateTime; Для обработки даты и времени модуль SysUtils содержит следующие основные функции: function Date: TDataTime; - возвращает текущую дату как значение типа TDateTime. function DateToStr(Date: TDateTime): string; - преобразовывает дату, указанную параметром Date, в строку. function DayOfWeek(Date: TDateTime): Integer; - возвращает номер дня недели для даты, указанной параметром Date. Для воскресенья возвращается значение 1, для понедельника - 2 и т. д. function EncodeDate(Year, Month, Day: Word): TDateTime; - собирает значение даты из заданных составляющих Year, Month и Day и возвращает его как значение типа TDateTime. function DecodeDate(Date: TDateTime): Word; - собирает значение типа TDateTime и возвращает его как значение типа дата из заданных составляющих Year, Month и Day. function Now: TDateTime; - возвращает значение текущей даты и времени. function StrToDate(const S; string): TDateTime; - преобразовывает значение строки, указываемое параметром S, в дату типа TDateTime. function Time: TDateTime; - возвращает текущее значение времени. function TimeToStr(Time: TDateTime): string; - преобразовывает время в строку в соответствии с форматом, определяемым глобальной переменной LongTimeFormat. TDateTimePocker – ввод и отобрание даты/времен Свойства компонента: Свойство | Описание | CalAlignment | Определяет положение раскрывающегося календаря: dtaLeft – слева от компонента; dtaRight – справа от компонента. Учитывается только для Kind=dtkDate и DateMode=dmComoBox | CalColors | Цвет календаря | Checked | Если выполняются условия Checked=True и ShowCheckBox=True, то флажок рядом с полем даты (времени) будет показан и установлен. Наличие флажка или его отсутствие разрешает или запрещает ручной ввод даты или времени | Date | Содержит введенную дату | DateFormat | Определяет формат показа даты: dfShort – 11.01.04; dfLong – 5 сентября 2004 г. | DateMode | Определяет способ выбора даты: dmComboBox – с помощью раскрывающегося календаря; dmUpDown – с помощью встроенного компонента TUpDown | Kind | Определяет содержимое компонента: dtkDate – дата; dtkTime – время | MaxDate | Определяет максимальную дату, которую может выбрать или ввести пользователь | MinDate | Определяет минимальную дату, которую может выбрать или ввести пользователь | Time | Содержит введенное пользователем время | TMonthCalendar – календарь Предназначен для выбора и отображения даты. Очень похож на календарь, рассмотренный выше, но в отличие от него может одновременно отображать несколько смежных месяцев – в зависимости от своих размеров. Свойства компонента: Свойство | Описание | CalColors | Цвет календаря (фона, дат, заголовков) | Date | Определяет выбранную дату | EndDate | Определяет конечную дату диапазона выбранных дат | FirstDayOfWeek | Определяет первый день недели | MaxDate | Определяет максимальную дату, месяц которой еще будет доступен для отображения в компоненте. Если свойство содержит пустое значение, то отображается любой следующий месяц | MinDate | Определяет минимальную дату, месяц которой еще будет доступен для отображения в компоненте. Если свойство содержит пустое значение, то отображается любой предыдущий месяц | ShowTodayCircle | Разрешает/запрещает обводить кружком текущую дату | WeekNumbers | Разрешает/запрещает показ порядковых номеров недель от начала года в левой колонке | TTimer – таймер Данный компонент служит для отсчета интервалов реального времени. Минимальный реально достижимый интервал отсчета времени в ОС MS-DOS, Windows 95/98/ME не может быть меньше 55 миллисекунд (этот интервал называется тиком). Для ОС Windows NT Server, Windows 2000, Windows XP длительность тика составляет 10 миллисекунд. TCalenar – календарь Компонент календарь отображает календарь на выбранный месяц и год. Его свойства Day, Month, Year могут содержать любую дату от 1 до 9999 года от Рождества Христова.  Лабораторная работа №15 Рассмотрим пример, в котором числа 2006, 1, 1 выводятся в формате даты 1.1.2006. var MyTime: TDateTime; begin MyTime := EncodeDate(2006, 1, 1); Edit1.Text := DateToStr(MyTime); end; Для вывода в однострочное окно текущей записи на экран необходимо Edit1.Text := DateToStr(Now); Задания для самостоятельной работы: По введенному номеру года найти количество понедельников в этом году. По введенному номеру года найти количество пятниц 13. Компоненты вкладки Samples. Обработка событий OnDownClick и OnUpClick TSpinButton – спаренные кнопки  | Для данного компонента следует написать обработчики событий OnDownClick и OnUpClick, в которых реализуется реакция программы на щелчок по той или иной кнопке. | TСolorGrid – цветовая таблица
 | Класс предназначен для выбора и отображения цветов из 16-цветной палитры. Свойство BackGroundIndex содержит индекс выбранного фонового цвета, GridOrdering определяет количество колонок и столбцов. | Лабораторная работа №16 Задача: При нажатии на верхнюю спаренную кнопку выводится сообщение Up, на нижнюю – Down. procedure TForm1.SpinButton1DownClick(Sender: TObject); begin edit2.text:='Down' end; procedure TForm1.SpinButton1UpClick(Sender: TObject); begin edit2.text:='Up' end; Задания для самостоятельной работы: Составить задачу, в которой форма окрашивается в выбранный из палитры цвет. Компоненты вкладки Dialogs TOpenDialog – открытие файлов и TSaveDialog – сохранение файлов Компоненты имеют идентичные свойства. Свойство | Описание | FileName | Имя файла из которого читаются (TOpenDialog) или записываются (TSaveDialog) данные | Filter | Отбор файлов | DefaultExt | Формируется полное имя файла, если при ручном вводе пользователь не указал расширение | Files | Доступ к выбранным именам файлов, если разрешен множественный выбор | Лабораторная работа №17 Программа для просмотра содержимого текстового файла. На пустую форму нанести компонент TOpenDialog, кнопку TButton и многострочное поле TMemo. При работе программы щелчок по кнопке будет сигналом о необходимости загрузить в поле новый файл. Procedure TForm1.Button1Click (Sender: TObject); Begin // настраиваем компонент на отбор текстовых файлов OpenDialog1.Filter := ‘Текстовые файлы|*.txt|’+’Bat файлы |*.bat|’; // выполняем диалог и анализируем его результат If OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then // Результат успешный – пользователь выбрал файл // загружаем файл в поле Memo Memo1.Lines.LoadFromFile (OpenDialog1.FileName) End; Контрольная работа Вариант №1 Найти наибольшее из 3 чисел a, b, c. Найти сумму чисел s=1/(p+2)+ 2/(p+2)+…+ p/(p+2) Дана строка. Найти количество вхождений букв А. Дан двумерный массив. Найти количество элементов меньших 10. Вариант №2 Найти среднее арифметическое положительных чисел из a, b, c, d. Найти сумму чисел s=1+1/2+1/3+…+1/k Дана строка. Найти количество знаков +, -, *, / Дан одномерный массив. Найти сумму элементов кратных 5. Вариант №3 Найти среднее геометрическое положительных чисел из a, b, c. Примечание: среднее геометрическое считать равному квадратному корню из a*b*c. Найти сумму чисел s=1+1/4+1/9+…+1/n2 Дана строка. Заменить * знаком +. Дан одномерный массив. Найти количество элементов равных 0. Вариант №4* Дана точка А(x1, y1). Определить принадлежит ли она треугольнику со сторонами (x2, y2), (x3, y3), (x4, y4). Найти сумму чисел s=(1+3+5+…+2n-1)2-(2+4+6+…+2n)3 Дана строка. Найти сумму входящих в нее цифр. Дан динамический массив. Заполнить его следующим образом: 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | … | … | ... | … | n | n | n | n | Список рекомендуемой литературы Delphi 7. Учебный курс./Под ред. С.И.Бобровского. – СПб.: Питер, 2003. Архангельский А.Я. Object Pascal в Delphi 5. – М. БИНОМ. 1999. Архангельский А.Я. Программирование в Delphi 7. – М., 2004. Борковский А.Б. Англо-русский словарь по программированию и информатике. – М., 1990. Информатика./ Под ред. Н.В. Макаровой. – М., 2003. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика. – М., 1999. Орлов С.А. Технологии разработки программного обеспечения. – СПб., 2003. Семакин И., Шеина Т. Преподавание базового курса информатики в средней школе. Методическое пособие – М., 2000. Угринович Н., Морозов В., Нечаев В. Преподавание курса «Информатика и информационные технологии». Методическое пособие – М., 2002. Фаронов В.В. Delphi. Программирование на языке высокого уровня. – СПб., 2004. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. Издание 7-е, переработанное. – М.: «Нолидж», 2000. |