понеділок, 20 січня 2020 р.

Налагодження готової програми

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

1. Завантажити готові проекти за посиланням
https://bit.ly/30DjaAw

2. По черзі відкрити проекти і виправити помилки

Проект "Вік" - робота з текстовими величинами


Проект "Калькулятор" - робота з числовими величинами


3. Додати в кожному проекті коментарі для читабельності коду

пʼятниця, 17 січня 2020 р.

Візуалізація елементів табличної величини

Візуалізація елементів табличної величини за допомогою прямокутників

Візуалізація елементів табличної величини за допомогою інших примітивів

Візуалізація елементів табличної величини за допомогою графічних примітивів



Відобразити у вигляді лінійчатої діаграми дані таблиці

 У розділі опису глобальних змінних опишемо:

var
  Form1: TForm1;
  sh: array[1..4] of TShape;  
  lb: array[1..4] of TLabel; 

Заповнення масивів відбуватиметься під час створення форми:

procedure TForm1.FormCreate(Sender: TObject);
  var   i: Integer;
begin
  Image1.Canvas.Brush.Color := clWhite; 
  Image1.Canvas.FillRect(Image1.ClientRect);
  sh[1] := Shape1; 
  sh[2] := Shape2;
  sh[3] := Shape3;
  sh[4] := Shape4;
  lb[1] := Label1;
  lb[2] := Label2;
  lb[3] := Label3;
  lb[4] := Label4;
end;  

Код процедури обробки події onclick для кнопки Побудувати діаграму може бути таким:

procedure TForm1.Button1Click(Sender: TObject);
  const D: array[1..4] of Integer = (981, 705, 591, 174);
  Nazva: array[1..4] of String = ('Дніпро', 'Дністер', 'Десна', 'Дунай');
  var   i: Integer;
begin
  For i := 1 to 4 do
      begin
        sh[i].Width := D[i] div 5;
        lb[i].Caption := Nazva[i];
        sh[i].Top := 25*i;   lb[i].Top := 25*i;
        Image1.Canvas.TextOut (D[i] div 5+20, 25*i, IntToStr(D[i]));
      end;
end;

Побудова гістограми з використанням графічних методів 

  

Код процедури обробки події onclick для кнопки Побудувати діаграму може бути таким:

procedure TForm1.Button1Click(Sender: TObject);
const SrBal: array[1..4] of Real = (9.8, 8.5, 9.1, 7.4);
Nazva: array[1..4] of String = ('Інформатика', 'Алгебра', 'Геометрія', 'Фізика');
var i: Integer;
begin
  Label1.Caption :='';
   Image1.Canvas.Brush.Color := clWhite;
   Image1.Canvas.FillRect(Image1.ClientRect);
   Image1.Canvas.Polyline ([Point(5,5),Point(5,140),Point (240,140)]);
   Image1.Canvas.Polyline ([Point (2,8), Point (5,5), Point (9,9)]);
   Image1.Canvas.Polyline ([Point (235,137), Point (240,140), Point (235,143)]);

   For i := 1 to 4 do begin
        With Image1.Canvas do begin
         
             Brush.Color := RGBToColor (i*50, 150, 150);
             Brush.Style := bsSolid;
             Rectangle (i*50, Round(150-SrBal[i]*10), i*50+30, 140);
             Brush.Style := bsClear;
             Font.Size := 12;
             TextOut (i*50, Round(130-SrBal[i]*10), FloatToStr(SrBal[i]));
        end;
 
   Label1.Caption := Label1.Caption + ' ' + Nazva[i];
  end;
end;