Лабораторная работа № 4. Задача с использованием инструкции if
Один или несколько инструкций, которые выполняются при том или ином выборе. Если инструкция одна, то слова begin и end могут быть опущены. Использование инструкции if позволяет выбрать одну из альтернативных ветвей. Конструкция выбора может быть реализована как: Определить отрицательный корень уравнения AX + BX + C=0. Значения коэффициентов А, В, С ввести с поля редактирования. Вторая форма… Читать ещё >
Лабораторная работа № 4. Задача с использованием инструкции if (реферат, курсовая, диплом, контрольная)
Цель работы Целью работы является получение практических навыков использования инструкции if, поля редактирования формы Edit для ввода последовательности данных.
Краткие теоретические сведения.
Использование инструкции if позволяет выбрать одну из альтернативных ветвей. Конструкция выбора может быть реализована как:
if then begin end;
а также в виде.
if then begin.
end.
else.
begin end ;
Здесь.
— одно из следующих шести логических выражений: А1 А2, А1=А2, А1А2, А1= А2 в результате выполнения дающие значения типа BOOLEAN. Самыми простыми логическими выражениями являются константы TRUE и FALSE.
— один или несколько инструкций, которые выполняются при том или ином выборе. Если инструкция одна, то слова begin и end могут быть опущены.
В первой реализации выполняется, если принимает значение TRUE — истина. Если не выполняется, т. е. принимает значение FALSE, инструкция конкретных действий не предпринимает, просто выполняется следующая инструкция программы.
Вторая форма инструкции if называется полной формой Здесь выполняется, если выполняется, иначе выполняется .
Ввод элементов массива можно осуществить с помощью поле редактирования Edit. Для ввода последовательности чисел на форме необходимо разместить два компонента: поле редактирования Edit и кнопку Ввод. Числа вводятся в поле Edit через пробел. После щелчка по кнопке Ввод программа должна выделить первую подстроку из введенной строки в поле Edit и преобразовать ее в число. Для ввода массива и преобразований используется функция пользователя GetSubStr. Ниже приведен текст программы этой функции. Для выделения n-ой подстроки (элемента массива) функция GetSubStr сначала в цикле удаляет предшествующие ей n-1 подстроку, затем находит пробел, который отмечает конец нужной подстроки, выделяет подстроку и возвращает ее в качестве значения функции. Функция GetSubStr правильно работает вне зависимости от количества пробелов между числами. Прежде чем записать в массив выделенную подстроку (значение функции) необходимо преобразовать ее в число. Это можно выполнить функцией StrToInt (), если числа целые и функцией StrToFloat (), если числа вещественного типа.
Для нахождения позиции пробела в строке используется функция Pos (,). Функция возвращает число определяющий позицию в. Если подстрока не окажется в данной строке то возвращается ноль. Для выделения подстроки использована функция Copy (,). Функция выделяет из символов начиная с указанной. Если указанной подстроки не окажется в данной строке то выделяет «пусто».
Задание к работе.
Реализовать проект с помощью которого можно определить отрицательный элемент массива целых чисел. Перенести на форму необходимые компоненты для решения данной задачи и определить им необходимые свойства. Отладить проект в Delphi.
Для ввода последовательности данных нужно построить диалоговое окно, состоящее из следующих компонент: меток Label1 и Label2, поля редактирования Edit1 и командной кнопки «ввод» Button1. Приведем процедуру обработку события OnClick для командной кнопки.
procedure TForm1. Button1Click (Sender:TObject);
const Size = 5;
var.
a:array[1.Size] of string [5];
i: integer;
st: string;
begin.
{ввод элементов массива из поля редактирования формы}.
for i:=1 to Size do.
a[i]: = GetSubStr (Edit1.text, i);
{вывод отрицательных элементов массива}.
st:= `';
for i:= 1 to Size do.
if a[i] < 0 then st:= st + IntToStr (a[i]) + `';
Label2.caption := `отрицательные элементы массива:'+ st.
end.
Пользовательская функция GetSubStr (Edit1.text, i) состоит из следующих инструкций: Function getsubstr (st:string; //-строка, содержащая введенные в поле Edit числа.
n:integer) //- номер подстроки.
:string; //- подстрока или ` `.
var.
p:integer;
begin.
{если в начале строки есть пробелы, то они удаляются}.
while (pos (' ', st)=1) and (length (st)>0) do.
delete (st, 1,1);
if n>1.
then.
repeat.
p:=pos (' ', st);
if p0.
then.
begin.
st:=copy (st, p+1,length (st)-p);
{если в начале оставшейся части строки есть пробелы, то они удаляются}.
while (pos (' ', st)=1) and (length (st)>0) do.
delete (st, 1,1);
n:=n-1;
end;
until (n=1) or (p=0);
{ st начинается с нужной подстроки}.
if n>1.
then result:=' '.
else.
begin.
p:=pos (' ', st);
if p0.
then result:=copy (st, 1, p-1).
else result:=st;
end;
end;
Задание для самостоятельного выполнения.
- 1. Составить проект, определяющий максимальный элемент числового ряда.
- 2. Упорядочить числовую последовательность по убыванию значений ее оставляющих.
- 3. Определить число элементов массива меньше и больше некоторого заданного числа N .
- 4. Найти количество отрицательных и положительных чисел в ряде.
- 5. Найти число четных и число нечетных чисел в числовой последовательности.
- 6. Определить отрицательный корень уравнения AX + BX + C=0. Значения коэффициентов А, В, С ввести с поля редактирования.
- 7. Каких чисел больше в числовом ряде отрицательных или положительных ?
- 8. Определить первое повторяющееся число и количество его повторений в заданной последовательности.
- 9. Каких чисел больше в числовом ряде четных или нечетных ?
- 10. В заданной последовательности чисел сколько одноразрядных, двухразрядных и трехразрядных составляющих?