
- •4.Вычислить значения выражений:
- •7.Вычислить значения выражений:
- •8.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:
- •9. Вычислить значения выражений:
- •10. Вычислить значения выражений: ,
- •Задание: Создать собственный объект и использовать его в программе.
- •Задание: Создать собственный объект с помощью конструкторов и деструкторов и использовать его в программе.
- •Как создать объект с помощью конструктора?
- •Как удалить объект с помощью деструктора?
- •Выполнение индивидуального задания
- •Задания:
- •Вариант №1
- •Какие свойства компонента Memo вы знаете?
- •1.Дано двузначное число. Определить: а) входит ли в него цифра 3;
Вариант №1
Дан массив натуральных чисел А(10). Найти сумму элементов, кратных данному К.
Вариант №2
Дана последовательность целых чисел а1, …, а10. Выяснить, какое число встречается раньше – положительное или отрицательное.
Вариант №3
Дана последовательность действительных чисел а1 , …, а10. Заменить все ее члены, большие данного Z, этим числом. Подсчитать количество замен.
Вариант №4
Дан массив действительных чисел, размерность которого 10. Подсчитать сколько в нем отрицательных, положительных и нулевых элементов.
Вариант №5
Даны целые числа а1, а2, …, а10.Вывести на печать только те числа, для которых выполняется а[i] < i.
Вариант №6
Даны натуральные числа а1, а2, …, а10.Подсчитать количество чисел у которых остаток от деления на М равен L (O <L <M - 1).
Вариант №7
При поступлении в вуз абитуриенты, получившие “двойку” на первом экзамене, ко второму не допускаются. В массиве А[10] записаны оценки экзаменующихся, полученные на первом экзамене. Подсчитать, сколько человек не допущено ко второму экзамену.
Вариант №8
Дана последовательность чисел, среди которых имеется один нуль. Вывести на печать все числа, включительно до нуля.
Вариант №9
Дана последовательность действительных чисел а1, а2, …, а10. Подсчитать те ее элементы, которые принадлежат отрезку [c, d].
Вариант №10
Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М. Если таких нет, то выдать сообщение об этом.
Вариант №11
Последовательность а1, а2, …, аn состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы.
Вариант №12
В последовательности действительных чисел а1, а2, …, а10, есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P1 и произведение положительных элементов P2. Сравнить модуль Р2 с модулем Р1 указать, какое из произведений по модулю больше.
Вариант №13
Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулём
Вариант №14
Даны целые числа а1, а2, …, а10. Наименьший член этой последовательности заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменений.
Вариант №15
Даны действительные числа а1, а2, …, а10. Требуется умножить все члены последовательности на квадрат ее наименьшего члена, если а10 > 0, и на квадрат ее наибольшего члена, если а10 < 0.
Контрольные вопросы:
Какой компонент используется для работы с одномерным массивом?
Какие свойства компонента Memo вы знаете?
Лабораторная работа №18 Использование компонентов списков и выпадающих списков.
Тема: Создание списков. Работа со списками в приложении.
Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами для создания списков выбора на форме приложения. Закрепить полученные на лекции знания. Написать и отладить программу
Теория:
TComboBox - раскрывающийся список выбора
Комбинированный список TComboBox представляет собой комбинацию списка TListBox и редактора TEdit, и поэтому большинство его свойств и методов заимствованы у этих компонентов. Существуют пять модификаций компонента, определяемые его свойством style:
csSimple, csDropDown, csDropDownList, csOwnerDrawFixed И csOwner DrawVariabie. В первом случае список всегда раскрыт, в остальных он раскрывается после нажатия кнопки справа от редактора (рис. 18.7). В модификации csDropDownList редактор работает в режиме отображения выбора и его нельзя использовать для ввода новой строки (в других модификациях это возможно). Модификации csOwnerDrawFixed и csOwnerDrawVariable используются программной прорисовки элементов списка. Используемые для этого свойства и методы полностью совпадают со свойствами и методами TListBox аналогичного назначения. Наполнение списка ведется методами Add, Append, Insert и т. п. его свойства Items класса TStrings
Пример: По номеру фамилии в списке вывести его должность.
p
rocedure
TForm1.FormCreate (Sender: TObject);
begin
ListBox1.Items[0]:='Иванов';
ListBox1.Items[1]:='Петров';
ListBox1.Items[2]:='Сидоров';
end;
procedure TForm1.Button1Click (Sender: TObject);
var i:integer;
begin
i:= StrToInt(Edit1.Text);
case i of
1: Label2.Caption:='директор';
2: Label2.Caption:='менеджер';
3: Label2.Caption:='дворник';
end;
end;
Задания:
Вариант №1
По введенному дню недели определить, рабочий или выходной день.
Вариант №2
По введенному номеру месяца определить, название месяца.
Вариант №3
Для целого числа К от 1 до 9 напечатать значение переменной К римскими цифрами.
Вариант №4
Имеются следующие описания:
Язык = (Паскаль, Ява, Бейсик, Фортран, Лисп)
По русскому названию языка вывести английский эквивалент.
Вариант №5
Имеются описания:
Сезон = (зима, весна, лето, осень)
Погода = (тепло, холодно)
По сезону ответить какова погода.
Вариант №6
По введенному натуральному числу (1..100) обозначающему количество ворон, вывести надпись «На дереве К ворон», где ворона склоняется соответственно: ворон, ворона, вороны. Если число > 100, то надпись «Ветка обломилась».
Вариант №7
По введенному номеру месяца определить количество дней в месяце (год не високосный).
Вариант №8
По возрасту человека определить ходит ли он в садик, в школу, на работу или сидит на пенсии, а при Н > 120 «Уже умер».
Вариант №9
Для целого числа К, обозначающего стоимость некоторой покупки вывести «вы сделали покупку на К рублей», учитывая при этом, что при некоторых значениях К слово «рублей» надо заменить на слово «рубль» ил «рубля».
Вариант №10
Имеются следующие описания:
Страна = (Австрия, Болгария, Греция, Италия, Норвегия, Франция, ФРГ)
Столица = (Вена, София, Афины, Рим, Осло, Париж, Бон)
По значению страны определить столицу.
Вариант №11
По номеру ноты вывести ее текстовый эквивалент (до, ре, ми, фа, соль, ля, си) и написать ее соседние ноты. (Например: Фа – Ми и Соль)
Вариант №12
По номеру шахматной клетки (1..64) определить ее значение. (Например:1 – А1, а 64 – Н8 )
Вариант №13
Группу детей, приехавшую в пионерский лагерь, распределяют по отрядам следующим образом:
6-7 лет – 5 отряд; 7-9 лет – 4 отряд; 9-11 лет – 3 отряд; 11-13 лет – 2 отряд; 13-15 (включительно) – 1 отряд. Определить по вводимому возрасту отряд для ребенка.
Вариант №14
Задается код цвета, требуется выдать какой цвет. Использовать свою собственную кодировку.
Вариант №15
Имеются следующие описания:
Число = 1..31
День недели = (вс, пн, вт, ср, чт, пт, сб)
Считая, что год не високосный и его 1 января приходится на любой день недели, определить день недели, на который приходится день с введенной датой.
Контрольные вопросы:
Какие компоненты для работы со списками вы знаете?
Компонент ListBox
Компонент ComboBox
Лабораторная работа №19 Использование компонентов таблиц для работы с двумерным массивом.
Тема: Работа с двумерным массивом (компонента StringGrid).
Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами вывода двумерного массива на форме приложения. Закрепить полученные на лекции знания. Написать и отладить программу
Теория:
К
омпонент
TStringGrid предназначен для создания таблиц,
в ячейках которых располагаются
произвольные текстовые строки. Он
является прямым потомком TDrawGrid, от
которого им унаследовано большинство
свойств и методов.
Таблица делится на две части - фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов (если эти свойства имеют 0, таблица не содержит фиксированной зоны). Рабочая часть - это остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое - заголовки строк и рядов.
Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел - номером столбца и номером ряда, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например:
Cells [1,1] := 'Левая верхняя ячейка рабочей зоны';
Количество ячеек по каждому измерению хранит пара свойств Colcount (количество столбцов) и RowCount (количество рядов). Значения-этих свойств и, следовательно, размеры таблицы могут меняться как на этапе разработки программы, так и в ходе ее работы, однако их значения должны быть как минимум на единицу больше соответственно значений в свойства FixedCois и FixedRows, определяющих размеры фиксированной зоны.
Пример: Найти сумму всех элементов двумерного массива 4х4.
Расположить на форме следующие компоненты: StringGrid(Additional), Button, Label, Edit(для вывода результата);
Свойства StringGrid, заменить на FixedCols=0(без заголовков строк), FixedRols=0(без заголовков столбцов);
Свойства RowCount=4, ColCount=4;
Свойство Options| GoEditing = true (разрешить редактировать);
Расположить компоненты следующим образом:
Н
апишите
следующий обработчик
события:
Procedure Form1.Button1Click (Sender: TObject);
var a: array [0..3,0..3] of integer;
i,j,s:integer;
begin
s:=0;
for i:=0 to 3 do
for j:=0 to 3 do
begin
a[i,j]:= StrToInt(StringGrid1.Cells[i,j]); {считывание элементов }
s:=s+a[i,j];
end;
Edit1.Text:=IntToStr(s);
end;
Задания:
Вариант № 1
Дана действительная матрица А(n,m). Найти максимальное по величине число.
Вариант № 2
Дана матрица A(n,m). Найти сумму каждой из строк, имеющих четные номера.
Вариант № 3
Дана матрица A(n,m). Найти среднее арифметическое всех значений.
Вариант № 4
Дана матрица A(n,m). Если элемент отрицательный увеличить его в два раза, если отрицательный уменьшить на 4, если равен нулю – заменить единицей.
Вариант № 5
Дана матрица A(n,m). Найти средне арифметическое элементов каждого из столбцов, имеющих нечетные номера.
Вариант № 6
Дана матрица A(n,m). Заменить строки на соответствующие столбцы.
Вариант № 7
Дана матрица A(n,m). Вывести новую матрицу, состоящею из элементов составленных при прохождении матрицы по спирали.
Вариант № 8
Дана матрица A(n,m). Найти максимальный и минимальный элемент. Заменить их, поставив минимальный на место максимального.
Вариант № 9
Дана матрица A(n,m). Заменить элементы находящиеся на главной и побочной диагонали на единицы.
Вариант № 10
Дана матрица A(n,m). Заменить строку К на столбец Р.
Вариант № 11
Дана матрица A(n,m). Заменить четные строки на нечетные столбцы.
Вариант № 12
Дана матрица A(n,m) и массив В(n,m). Вывести матрицу элементами которой является значения состоящие из произведения элемента массива на каждый элемент соответствующей строки.
Вариант № 13
Дана матрица A(n,m). Поменять местами первую и последнюю строку, а каждый элемент этих строк увеличить в два раза.
Вариант № 14
Дана матрица A(n,m). Найти строки элементы, которых одинаковы, если таковых нет, то первую строку скопировать на последнею.
Вариант № 15
Дана матрица A(n,m) состоящая из нулей и единиц. Заменить на – 4 те строки, у которых все элементы единиц.
Контрольные вопросы:
Назначение компоненты StringGrid.
Свойства компоненты StringGrid.
Методы компоненты StringGrid.
Лабораторная работа №20 Использование компонентов кнопок обычных, графических и с фиксацией.
TButton
Компонент TButton представляет собой стандартную кнопку и широко используется для управления программами. Кнопка может содержать текст, описывающий выполняемое ей действие.
Property Cancel: Boolean;
|
Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши Esc |
Property Default: Boolean; |
Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши Enter |
Property Enabled: Boolean; |
Если имеет значение False, то кнопка недоступна для нажатия |
TModalResulr = Low(Integer) .. High (Integer); Property TModalResult;- |
Определяет результат, с которым было закрыто модальное окно |
В терминологии Windows модальными окнами называются такие специальные окна, которые, раз появившись на экране, блокируют работу пользователя с другими окнами вплоть до своего закрытия. Если у кнопки определено свойство ModalResult, нажатие на нее приводит к закрытию модального окна и возвращает в программу значение ModalResult как результат диалога с пользователем. В Delphi определены следующие стандартные значения ModalResult:
mrNone |
Модальное окно не закрывается |
mrOk |
Была нажата кнопка Ok |
mrCancel |
Была нажата кнопка Cancel |
mrAbort |
Была нажата кнопка Abort |
mrRetry |
Была нажата кнопка Retry |
mrIgnore |
Была нажата кнопка Ignore |
mrYes |
Была нажата кнопка Yes |
mrNo |
Была нажата кнопка No |
mrAll |
Была нажата кнопка All |
TCheckBox
Кнопка с независимой фиксацией позволяет выбрать или отменить определенную функцию. Свойство State позволяет установить значение кнопки. Кнопка может находиться во включенном, выключенном и неактивном состоянии.
TLeftRight = (taLeftJustify, taRightJustify); Property Alignment: TLeftRight; |
Определяет положение текста: taLeftJustify -с левой стороны компонента; taRightJustify -с правой стороны |
Property AllowGrayed: Boolean; |
Разрешает (запрещает) использование неактивного состояния cbGrayed |
Property Checked: Boolean; |
Содержит выбор пользователя типа Да/Нет. Состояния cbUnchecked и cbGrayed отражаются как False |
TcheckBoxState = (cbUnchecked, cbChecked, cbGrayed) ; Property State: CheckBoxState; |
Содержит состояние компонента: cbUnchecked – нет; cbChecked • да; cbGrayed –неактивен |
RadioButton
Кнопки с зависимой фиксацией предназначены для выбора одной опции из нескольких взаимоисключающих, поэтому таких кнопок должно быть как минимум две. Для группировки кнопок с зависимой фиксацией внутри формы их необходимо разместить внутри компонента Panel, GroupBox или ScrollBox. Состояние кнопки содержится в свойстве Checked.
TBitBtn
Пиктографическая кнопка TBitBtn представляет собой разновидность стандартной кнопки TButton, которая помимо текста может содержать графическое изображение. Растровое изображение определяется с помощью свойства Clyph. В комплект поставки DELPHI (поддиректория Images/Buttons) входит около 160 различных вариантов растровых изображений для кнопок. Кроме того, пользователь может самостоятельно создать растровое изображения с помощью встроенного в DELPHY графического редактора.
Свойство Kind позволяет выбрать одну из 11 стандартных разновидностей кнопки (рис.П2.1.)
Нажатие любой из кнопок, кроме bkCustom и bkHelp, закрывает модальное окно и возвращает в программу результат mrXXX: bkOk -mrOk, bkCancel - mrCancel и т.д. Кнопка bkClose для модального окна возвращает mrCancel, а для главного окна программы - закрывает его и завершает работу программы. Кнопка bkHelp автоматически вызывает раздел справочной службы, связанный с HelpContext формы, на которую она помещена.
Property Glyph: TBitmap; |
Определяет связанные с кнопкой растровые изображения (до 4) |
TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll); Property Kind: TBitBtnKind; . |
Определяет разновидность кнопки |
TButtonLayout = (bIGlyphLeft, bIGlyphRight, bIGlyphTop, ,blGlyphBottom) ; Property Layout: TButtonLayout; |
Определяет край кнопки, к которому прижимается пиктограмма |
Property Margin: Integer; |
Определяет расстояние в пикселях от края кнопки до пиктограммы |
TnumGlyphs: 1..4 ; Property NumGlyphs: TnumGlyphs; |
Определяет количество растровых изображений. Таких состояний может быть четыре: нормальное, запрещенное, нажатое, и утопленное |
Property Spacing: Integer; |
Определяет расстояние в пикселях от пиктограммы до надписи на кнопке |
T Property Style: TButtonStyle.;
|
Определяет стиль оформления кнопки, зависящий от операционной системы |
TSpeedButton
Еще один вариант кнопки, который отличается от TBitBtn тремя обстоятельствами: во-первых, не предусмотрен вывод надписи, во-вторых, имеется возможность фиксации в утопленном состоянии и, в-третьих, она не может закрыть модальное окно.
Задание:
Используя все разновидности кнопок , решить: