Практична робота № 9.1

Тема. Реалізація алгоритмів з одновимірними і двовимірними масивами у вигляді програм
Мета. Навчитися складати та записувати мовою програмування алгоритми роботи з одновимірними та двовимірними масивами.

Приклад 1.
Створити програму, яка за допомогою текстового поля та кнопки додаватиме дані до одновимірного масиву, щоразу після введення елемента виводитиме весь масив у інше текстове поле. У текстові мітки (надписи) виводитиме інформацію про кількість уведених елементів, найбільший та найменший елементи масиву.

Розв’язання

var
  m:array[1..10 ]of real;
  count:Integer = 0;
  min,max,temp:real;
  i:integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
        //збільшуємо лічильник
        count :=count + 1;
        //додаємо елемент до масиву
        m[count ]:= StrToFloat(Edit1.Text);
        //виводимо масив, визначаємо макс. та мін. елементи
        Memo1.Text := '';
        min := m[1];
        max := m[1];
        For i := 1 To count do
        begin
            temp := m[i];
            Memo1.Lines.Add(FloatToStr(temp));
            If temp < min Then min := temp;
            If temp > max Then max := temp;
        end;
        //виводимо дані про кількість, максимальний та мінімальний елементи
        Label5.Caption := FloatToStr(count);
        Label7.Caption := FloatToStr(min);
        Label6.Caption := FloatToStr(max);
        //обнуляємо Edit1 та ставимо на нього фокус вводу
        Edit1.Text := '0';
        Edit1.SetFocus;
        //якщо масив заповнено, то робимо кнопку неактивною
        If count = 10 Then Button1.Enabled := False;

end;

Приклад 2
Написати програму, за допомогою якої можна:
1.   Увести числові дані до двохвимірного масиву розмірністю 4х4;
2.   Помножити всі елементи другого стовпчика на 3;
3.   Знайти суму всіх елементів новоствореної матриці та вивести її на форму;
4.   Вивести отриманий в результаті множення масив для перегляду.
Деякі корисні властивості компонента StringGrid
Кількість рядків
     
RowCount
Кількість стовпців

ColCount
Кількість фіксованих стовпців

FixedCols
Кількість фіксованих рядків

FixedRows
Дозвіл на редагування комірок

Options → goEditing
Масив комірок таблиці (c-стовпець, r-рядок)

Cells[c,r]






Розв’язання 

var
    m:array[0..3,0..3] of real;
    c,r:integer;
    sum:real = 0;

procedure TForm1.Button1Click(Sender: TObject);
begin
    //Зчитуємо дані з першої таблиці до масиву
    for r := 0 to 3 do
    begin
         for c := 0 to 3 do
         begin
            if StringGrid1.Cells[c,r]='' then StringGrid1.Cells[c,r]:='0';
            m[r,c]:=StrToFloat(StringGrid1.Cells[c,r]);
         end;
    end;
    //множимо елементи другого стовпцика на 3
    For r := 0 To 3 do
    begin
            m[r, 1] := m[r, 1]*3;
    end;
    //рахуємо суму елементів масиву

    for r := 0 to 3 do
    begin
         for c := 0 to 3 do
         begin
            sum:=sum+m[r,c];
         end;
    end;
    Label4.caption := FloatToStr(sum);
    //виводимо змінену матрицю
    for r := 0 to 3 do
    begin
         for c := 0 to 3 do
         begin
            StringGrid2.Cells[c,r]:=FloatToStr(m[r,c]);
         end;
    end;


end;

Немає коментарів:

Дописати коментар