Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_Delphi.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
7.21 Mб
Скачать
  • Подведите курсор мыши к кнопке «Выход» и два раза щелкните по ней мышью, активизируется редактор кода и будет создана процедура для обработки команд кнопки «Выход».

    • Введите в тело процедуры следующую команду: Close(); После чего процедура примет следующий вид:

    procedure TForm1.Button3Click(Sender: TObject);

    begin

    Close();

    end;

    • Активизируйте кнопку «Очистить» для создания процедуры очистки окон для ввода данных и вывода результата.

    • Введите следующую команду: Edit1.Clear; (используется метод Clear компонента Edit). Тоже сделайте для второго и третьего компонента Edit.

    После чего процедура примет следующий вид:

    procedure TForm1.Button2Click(Sender: TObject);

    begin

    Edit1.Clear;

    Edit2.Clear;

    Edit3. Clear;

    end;

    • Активизируйте кнопку «Выполнить».

    • В разделе Var опишите переменные следующим образом:

    Var

    a,b,c,h: integer;

    • Введите следующие команды:

    a:=StrToInt(Edit1.Text);

    b:=StrToInt(Edit2.Text);

    c:=StrToInt(Edit3.Text);

    F A>B THEN BEGIN H:=A; A:=B; B:=H; END;

    IF A>C THEN BEGIN H:=A; A:=C; C:=H; END;

    IF B>C THEN BEGIN H:=B; B:=C; C:=H; END;

    Edit1.Text:=IntToStr(a);

    Edit2.Text:=IntToStr(b);

    Edit3.Text:=IntToStr(c);

    • процедура примет следующий вид:

    procedure TForm1.Button1Click(Sender: TObject);

    Var

    a,b,c,h: integer;

    begin

    a:=StrToInt(Edit1.Text);

    b:=StrToInt(Edit2.Text);

    c:=StrToInt(Edit3.Text);

    IF A>B THEN BEGIN H:=A; A:=B; B:=H; END;

    IF A>C THEN BEGIN H:=A; A:=C; C:=H; END;

    IF B>C THEN BEGIN H:=B; B:=C; C:=H; END;

    Edit1.Text:=IntToStr(a);

    Edit2.Text:=IntToStr(b);

    Edit3.Text:=IntToStr(c);

    end;

    Так как данные, вводимые в поле Edit имеют строковый тип данных их необходимо преобразовать к типу переменной при помощи функции StrToInt (переменные x,y,z имеют целочисленный тип). При выводе результата данные целого типа преобразуются к строковому при помощи функции IntToStr.

    1. Запустить программу на выполнение выбрав команду Run из одноименного меню или нажав на пиктограмму запуска программы.

    2. Ввести в программу произвольные исходные данные.

    3. Получить результат в виде

    1. Представить результат выполнения программы преподавателю.

    2. Занести в отчет результат выполнения программы и исходные данные.

    3. Выполнить предложенные варианты задания.

    4. Закончить работу с системой Delphi.

    ВАРИАНТЫ ЗАДАНИЙ:

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

    Лабораторная работа №2

    Создание объектов в среде Delphi. Изменение свойств объектов.

    Цель занятия:

    Освоение принципов создания и использования простейших объектов в среде Delphi.

    Изучение свойств инспектора объектов.

    Получение практических навыков работы объектно-ориентированного программирования.

    Вопросы для коллоквиума.

    1. Укажите основные составные части Delphi.

    2. Дайте определение Редактору форм.

    3. Укажите назначение палитры компонент.

    4. Для чего предназначен Редактор кода.

    Порядок выполнения работы.

    1. Загрузить систему Delphi.

    2. Составить программу сортировки по убыванию числовой последовательности а1,а2,...,аN. Вывести на печать отсортированную последовательность элементов.

    Для сортировки числовой последовательности воспользуемся простым перебором значений последовательности, сравнивая при этом их с каждым последующим элементом. Если какое-либо последующее значение элемента окажется больше предыдущего, то эти значения обмениваются местами при помощи дополнительной переменной. Перебор продолжается до последнего элемента.

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

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

    Введем обозначения: А - числовая последовательность а12,...,аN; N - размерность массива; переменная M – дополнительная переменная для обмена элементов последовательности; переменная I - параметр 1 цикла, переменная J - параметр 2 цикла.

    1. Установить на форме 1 следующие компоненты:

    • из вкладки Standart выбрать и установить компонент Edit для ввода размерности массива.

    • из вкладки Standart выбрать и установить компонент ListBox для формирования одномерного массива.

    • установить на форме 1 сверху над компонентами Edit и ListBox компоненты Label.

    • установите на форме компонент Button – кнопка для запуска и выполнения программы, в свойстве Caption кнопки укажите – «Выполнить». Точно также создайте кнопку с надписью «Выход», «Очистить» и «Заполнить». В результате ваша форма примет следующий вид:

    1. Ввести составленную программу следующим образом:

    2. Введите в тело процедуры для обработки команд кнопки «Выход» команду: Close();

    3. Создайте процедуру очистки данных и вывода результата для кнопки «Очистить». Для очистки компонента ListBox используйте метод компонента Clear; (listbox1.Clear;)

    4. Активизируйте кнопку «Заполнить». Опишите используемые переменные n,i:integer; a:array [0..20] of integer;.

    5. Введите в тело процедуры кнопки «Заполнить» следующие команды:

    randomize;

    n:=StrToInt(Edit1.Text);

    for i:=0 to n-1 do

    ListBox1.Items[i]:=IntToStr(random(20)-5);

    1. Процедура примет следующий вид:

    procedure TForm1.Button4Click(Sender: TObject);

    Var n,i:integer;

    a:array [0..20] of integer;

    begin

    randomize;

    n:=StrToInt(Edit1.Text);

    for i:=0 to n-1 do

    ListBox1.Items[i]:=IntToStr(random(20)-5);

    end;

    1. Активизируйте кнопку «Выполнить». Опишите используемые переменные b,i,j,n:integer; a:array [0..20] of integer; и введите в тело процедуры кнопки «Выполнить» следующие команды:

    n:=StrToInt(Edit1.Text);

    for i:=0 to n-1 do

    a[i]:=StrToInt(ListBox1.Items[i]);

    for i:=0 to n-2 do

    for j:=i+1 to n-1 do

    if a[i]>a[j] then

    begin

    b:=a[i];

    a[i]:=a[j];

    a[j]:=b;

    end;

    for i:=0 to n-1 do

    ListBox1.Items[i]:=IntToStr(a[i]);

    Процедура примет следующий вид:

    procedure TForm1.Button1Click(Sender: TObject);

    Var b,i,j,n:integer;

    a:array [0..20] of integer;

    begin

    n:=StrToInt(Edit1.Text);

    for i:=0 to n-1 do

    a[i]:=StrToInt(ListBox1.Items[i]);

    for i:=0 to n-2 do

    for j:=i+1 to n-1 do

    if a[i]>a[j] then

    begin

    b:=a[i];

    a[i]:=a[j];

    a[j]:=b;

    end;

    for i:=0 to n-1 do

    ListBox1.Items[i]:=IntToStr(a[i]);

    end;

    1. Запустить программу на выполнение, выбрав команду Run из одноименного меню или нажав на пиктограмму запуска программы.

    2. Ввести в программу произвольные исходные данные.

    3. Получить результат в виде

    1. Представить результат выполнения программы преподавателю.

    2. Занести в отчет результат выполнения программы и исходные данные.

    3. Выполнить представленные задания.

    4. Закончить работу с системой Delphi.

    Варианты заданий:

          1. Дан массив из десяти целочисленных элементов, найти в массиве первый отрицательный элемент и его позицию. Результат представить в следующем виде: при помощи радиопереключателей, расположенных на панели обозначить номера элементов массива, при вычислении первого отрицательного элемента радиопереключатель номер которого совпадает с номером найденного элемента массива, отмечается точкой. Цвет надписи, расположенной на радиопереключателе, изменяется с синего на красный.

          2. Создать программу, выполняющую следующие действия:

    • После запуска программы в окне изображается три поля (список типа ListBox).

    • По щелчку мышью на кнопке «Случайный выбор» из трех слов, выбранных из списка, составляется предложение случайным образом.

    • Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.

    Предложенные слова:

    Кошка

    Быстро

    Плавает

    Змея

    Высоко

    Летает

    Кузнечик

    Медленно

    Бегает

    Дельфин

    Сильно

    Ползает

    Черепаха

    Хорошо

    Прыгает

    Ласточка

    Плохо

    Прячется

    Лабораторная работа №3

    Создание объектов в среде Delphi. Изменение свойств объектов.

    Цель занятия:

    Освоение принципов создания и использования простейших объектов в среде Delphi.

    Изучение свойств инспектора объектов.

    Получение практических навыков работы объектно-ориентированного программирования.

    Вопросы для коллоквиума.

    1. Укажите основные составные части Delphi.

    2. Дайте определение Редактору форм.

    3. Укажите назначение палитры компонент.

    4. Для чего предназначен Редактор кода.

    Порядок выполнения работы.

    1. Загрузить систему Delphi.

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

    3. Установить на форме 1 следующие компоненты:

    - из вкладки Additional выбрать и установить компонент StringGrid для формирования двумерного массива. В свойствах компонента StringGrid ColCount – указать количество строк – 5 (нумерация строк идет от «0»), RowCount – количество столбцов 5.

    - из вкладки Standart выбрать и установить компоненты ListBox для формирования одномерных массивов В и С для вывода результата.

    - установить на форме 1 сверху над компонентами ListBox и StringGrid компоненты Label. В свойствах компонента Caption изменить надпись Label1(2..) на имена массивов.

    - установите на форме компонент Button – кнопка для запуска и выполнения программы, в свойстве Caption кнопки укажите – «Выполнить». Точно также создайте кнопку с надписью «Выход», «Очистить» и «Заполнить». В результате должна получится форма следующего вида:

    1. Ввести составленную программу следующим образом:

    2. Подведите курсор мыши к кнопке «Выход» и два раза щелкните по ней мышью, активизируется редактор кода и будет создана процедура для обработки команд кнопки «Выход».

    1. Введите в тело процедуры следующую команду: Close();

      • procedure TForm1.Button3Click(Sender: TObject);

      • begin

      • Close();

      • end;

    1. Создайте процедуру очистки данных и вывода результата для кнопки «Очистить». Для очистки компонента StringGrid укажите следующие команды, предварительно описав переменные i,j:

    with StringGrid1 do

    for i:=0 to 4 do

    for j:=0 to 4 do

    Cells[j,i]:=' ';

    Очистите списки с помощью метода Clear.

    1. Активизируйте кнопку «Заполнить». В разделе Var опишите используемые переменные j,i : integer; (глобальные пременные). Введите в тело процедуры кнопки «Заполнить» следующие команды:

    randomize;

    with StringGrid1 do

    for i:=0 to 4 do

    for j:=0 to 4 do

    Cells[j,i]:=IntToStr(random(30)-7);

    • процедура примет следующий вид:

    • procedure TForm1.Button4Click(Sender: TObject);

    begin

    randomize;

    with StringGrid1 do

    for i:=0 to 4 do

    for j:=0 to 4 do

    Cells[j,i]:=IntToStr(random(30)-7);

    end;

    1. Активизируйте кнопку «Выполнить». Опишите используемые переменные a:array[0..4,0..4]of integer; b,c:array [0..4]of integer; и введите в тело процедуры кнопки «Выполнить» следующие команды:

    with StringGrid1 do

    for j:=0 to 4 do

    for i:=0 to 4 do

    a[i,j]:=StrToInt(Cells[i,j]);

    for j:=0 to 4 do

    for i:=0 to 4 do

    begin

    if i=j then b[j]:=a[i,j];

    if (i+j)=4 then c[j]:=a[i,j];

    end;

    for j:=0 to 4 do

    ListBox1.Items[j]:=IntToStr(b[j]);

    for j:=0 to 4 do

    ListBox2.Items[j]:=IntToStr(c[j]);

    1. процедура примет следующий вид:

      • procedure TForm1.Button4Click(Sender: TObject);

    VAR a:array[0..4,0..4]of integer;

    b,c:array [0..4]of integer;

    begin

    with StringGrid1 do

    for j:=0 to 4 do

    for i:=0 to 4 do

    a[i,j]:=StrToInt(Cells[i,j]);

    for j:=0 to 4 do

    for i:=0 to 4 do

    begin

    if i=j then b[j]:=a[i,j];

    if (i+j)=4 then c[j]:=a[i,j];

    end;

    for j:=0 to 4 do

    ListBox1.Items[j]:=IntToStr(b[j]);

    for j:=0 to 4 do

    ListBox2.Items[j]:=IntToStr(c[j]);

    end;

    • Так как данные, вводимые в поле StringGrid1 имеют строковый тип данных их необходимо преобразовать к типу переменной при помощи функции StrToInt (переменная a[i,j] имеет целочисленный тип). При выводе результата данные целого типа преобразуются к строковому при помощи функции IntToStr, данные вещественного типа – функцией FloatToStr.

    • Запустить программу на выполнение, выбрав команду Run из одноименного меню или нажав на пиктограмму запуска программы.

  • Ввести в программу произвольные исходные данные.