Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Процедура обработки щелчка на кнопке “Ввод”
procedure TForm1.Button1Click(Sender: TObject);
var i:size;
Begin
m:=StrToInt(Edit1.text);
for i:=1 to m do a[i]:=StrToInt(Form1.Memo1.Lines[i])
End;
Процедура обработки щелчка на кнопке “Поиск”
procedure TForm1.Button2Click(Sender: TObject);
var n:integer;//количество строк в поле Memo1
max:integer; i,imax:size;
st:string;//строка для сообщения
begin n:=Form1.Memo1.Lines.Count;
//подсчет кол-ва строк в Memo1
if n=0 then ShowMessage('исходные данные не введены');
if n > m then begin // в поле Memo1 есть текст
ShowMessage('количество введенных строк'+
#13'превышает размер массива.');
n:=m;//будем вводить "m" строк end;
{ В поле Memo строки пронумерованы с нуля }
{ Вывод введенного массива в окно сообщения }
if n > 0 then
begin st:='Введенный массив'+#13;
for i:=1 to n do
st:=st+IntToStr(i)+' '+IntToStr(a[i])+#13;
ShowMessage(st)
End;
max:=a[1]; imax:=1;
for i:=1 to n do
if a[i]>max then begin max:=a[i]; imax:=i end;
Label4.Caption:='max='+IntToStr(max);
Label5.Caption:='indexmax='+IntToStr(imax);end;
Сценарий выполнения программы:
1. Запустить программу (Ru n).
2. Вести в поле Edit1 значение n - количество элементов массива(n ).
3. В поле Memo1, начиная со строки с номером 1, ввести элементы массива(по одному числу в строке).
4. Нажать кнопку “ Ввод ”.
5. Нажать кнопку “ Поиск ”. Появится окно с сообщением “Количество введенных строк превышает размер массива”(Первая строка ее номер нулевой, содержит текст “ Вводитемассив ”). Нажать кнопку “ ОК ”. Появится окно с сообщением “Введенный массив” и после него сами элементы.
6. Просмотреть их и нажать “ ОК ”.
7. Проанализировать результаты.
8. Для завершения работы нажать кнопку “ Выход ”.
Пример 5.3 Создание приложения с вводом двумерного массива в поле Edit и выводом его в таблицу StringGrid
Постановка задачи: в двумерном массиве A(m*n) определить максимальный элемент и его место расположение.
Компонент StringGrid страницы Additional предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки. Таблица делится на две части: фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Центральным свойством компонента является Cells - двумерный массив ячеек. Конкретная ячейка определяется парой чисел – номером столбца и номером ряда, на пересечении которых она находится(нумерация начинается с нуля). Например, Cells [2,3]. Здесь первый индекс 2 – это номер 3-го столбца, а второй индекс 3 – номер 4-го ряда (4-ой строки). Будьте внимательны при выводе в таблицу матрицы по строкам.
Вид формы с компонентами:
Размещенные компоненты:
Компоненты | Свойство | Значение | Пояснение |
Label(1,10) Button1 Button2 Edit1 Edit2 Edit3 StringGrid1 | Caption Caption Caption Text Text Text ColCount RowCount FixedCols FixedRow s | Текст на форме Расчет Выход Пусто Пусто Пусто | Количество строк матрицы Количество столбцов Матрица по строкам Количество столбцов таблицы Количество строк таблицы Количество фиксированных столбцов и строк для надписей номеров |
Процедура обработки щелчка на кнопке “Расчет”
(Перед процедурой разместить функцию выделения
подстроки из строки GetSubSrt)
function GetSubStr(st:string;n:integer):string;
var i,p:integer;
begin for i:=1 to n-1 do begin p:=pos(' ',st);
st:=copy(st,p+1,length(st)-p) end;
p:=pos(' ',st);//конец нужной подстроки
if p <> 0 then result:=copy(st,1,p-1) else result:=st end;
procedure TForm1.Button1Click(Sender: TObject);
const nn=6; type size=1..nn;
var a:array[size,size]of integer; m,n:size; max:integer;
imax,jmax: size; i,j,k: integer;
Begin
m:=StrToInt(Edit1.text); n:=StrToInt(Edit2.text);
{ Ввод матрицы из Edit3}
k:=1;
for i:=1 to m do
for j:=1 to n do
Begin
a[i,j]:=StrToInt(GetSubStr(Edit3.text,k));
k:=k+1
End;
{Вывод номеров строк в 0-м столбце и столбцов в 0-й строке}
Дата публикования: 2014-11-18; Прочитано: 276 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!