Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа П2Б,Г.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.09 Mб
Скачать

Вариант №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.

Контрольные вопросы:

  1. Какой компонент используется для работы с одномерным массивом?

  2. Какие свойства компонента 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 января приходится на любой день недели, определить день недели, на который приходится день с введенной датой.

Контрольные вопросы:

  1. Какие компоненты для работы со списками вы знаете?

  2. Компонент ListBox

  3. Компонент ComboBox

Лабораторная работа №19 Использование компонентов таблиц для работы с двумерным массивом.

Тема: Работа с двумерным массивом (компонента StringGrid).

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами вывода двумерного массива на форме приложения. Закрепить полученные на лекции знания. Написать и отладить программу

Теория:

К омпонент TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки. Он является прямым потомком TDrawGrid, от которого им унаследовано большинство свойств и методов.

Таблица делится на две части - фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов (если эти свойства имеют 0, таблица не содержит фиксированной зоны). Рабочая часть - это остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое - заголовки строк и рядов.

Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел - номером столбца и номером ряда, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например:

Cells [1,1] := 'Левая верхняя ячейка рабочей зоны';

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

Пример: Найти сумму всех элементов двумерного массива 4х4.

  1. Расположить на форме следующие компоненты: StringGrid(Additional), Button, Label, Edit(для вывода результата);

  2. Свойства StringGrid, заменить на FixedCols=0(без заголовков строк), FixedRols=0(без заголовков столбцов);

  3. Свойства RowCount=4, ColCount=4;

  4. Свойство Options| GoEditing = true (разрешить редактировать);

  5. Расположить компоненты следующим образом:

Н апишите следующий обработчик события:

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 те строки, у которых все элементы единиц.

Контрольные вопросы:

  1. Назначение компоненты StringGrid.

  2. Свойства компоненты StringGrid.

  3. Методы компоненты 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 ButtonStyle = (bsAutoDetect, bsWin31, bsNew);

Property Style: TButtonStyle.;

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

TSpeedButton

Еще один вариант кнопки, который отличается от TBitBtn тремя обстоятельствами: во-первых, не предусмотрен вывод надписи, во-вторых, имеется возможность фиксации в утопленном состоянии и, в-третьих, она не может закрыть модальное окно.

Задание:

Используя все разновидности кнопок , решить: