среда, 29 января 2014 г.

Алгоритм. способи подання алгоритму.



Алгоритмом називається зрозуміле і точне розпорядження виконавцю виконати послідовність дій, спрямованих на досягнення зазначеної мети чи на розв'язання поставленої задачі.В цьому означенні використовується поняття "виконавець". Що це означає? Під виконавцем алгоритму ми розуміємо будь-яку істоту (живу чи неживу), яка спроможна виконати алгоритм. Все залежить від того, якої мети ми намагаємося досягнути. Наприклад: риття ями (виконавці - людина або екскаватор), покупка деяких товарів (один із членів родини), розв'язування математичної задачі (учень або комп'ютер)
Властивості. алгоритму:
1. Зрозумілість. Щоб виконавець міг досягти поставленої перед ним мети, використовуючи даний алгоритм, він повинен уміти виконувати кожну його вказівку, тобто розуміти кожну з команд, що входять до алгоритму. 
2. Визначеність (однозначність). Зрозумілий алгоритм все ж таки не повинен містити вказівки, зміст яких може сприйматися неоднозначно. Наприклад, вказівки "почисти картоплю", "посоли за смаком", "прибери в квартирі" є неоднозначними, тому що в різних випадках можуть призвести до різних результатів. Крім того, в алгоритмах неприпустимі такі ситуації, коли після виконання чергового розпорядження алгоритму виконавцю не зрозуміло, що потрібно робити на наступному кроці. Наприклад: вас послали за яким-небудь товаром у магазин, та ще попередили "без (хліба, цукру і таке інше) не повертайся", а що робити, якщо товар відсутній? 
 3. Дискретність. Як було згадано вище, алгоритм задає повну послідовність дій, які необхідно виконувати для розв'язання задачі. При цьому, для виконання цих дій їх розбивають у визначеній послідовності на прості кроки. Виконати дії наступного розпорядження можна лише виконавши дії попереднього. Ця розбивка алгоритму на окремі елементарні дії (команди), що легко виконуються даним виконавцем, і називається дискретністю.
4. Масовість. Дуже важливо, щоб складений алгоритм забезпечував розв'язання не однієї окремої задачі, а міг виконувати розв'язання широкого класу задач даного типу. Наприклад, алгоритм покупки якого-небудь товару буде завжди однаковий, незалежно від товару, що купується. Або алгоритм прання не залежить від білизни, що переться, і таке інше. Отож, під масовістю алгоритму мається на увазі можливість його застосування для вирішення великої кількості однотипних завдань
.
5. Результативність. Взагалі кажучи, очевидно, що виконання будь-якого алгоритму повинне завершуватися одержанням кінцевих результатів. Тобто ситуації, що в деяких випадках можуть призвести до так званого "зациклення", повинні бути виключені при написанні алгоритму. 



3) Схема алгоритму. Основні конструкції алгоритмів
Блок схеми алгоритмів:
- арифметичний блок, математична формула можна описати за допомогою прямокутника;
- логічний блок, логічні умови (відношення) – у вигляді ромба;
- введення – виведення – за допомогою паралелограма;
- початок – кінець – у вигляді еліпса.
4) Приклади побудови найпростіших алгоритмів
а) Розпорядок робочого дня учня.
1.  7-00  Особиста гігєна. Сніданок.
2. 8-30 14-30 навчання учня в школі.
3.  1430- 14-45  Обід.
4.14-45-16-00 Відпочинок.. Дозвілля.
5. 16-00 – 18-30 Робота над домашнім завданням.
6. 18-30 – 19-30  Прогулянка.
7. 1930 – 19-45 Вечеря.
8. 19-45-21-00 Перегляд телебачення, читання  літератури.
9. 21-00 Сон.
б)  Знайти гіпотенузу прямокутного трикутника.
1. Знайти квадрат першого  катету.
2. Знайти квадрат другого  катету.
3. Знайти суму двох катетів.
4. Обчислити гіпотенузу, знайшовши корень квадратний від суми двох катетів.
Слід зазначити, що якщо змінити послідовність команд, алгоритм може бути не правильним.. Виконавцями  алгоритмів можуть бути : людина, механічні виконавці (станки, роботи), комп’ютер.
Знаходження суми S двох дійсних чисел а,b.
Алгоритмічною мовою                        Мовою програмування
                                                                                     Turbo Basic

алг Сума                                           program Suma;
дійсн а, b, S                                                  var a,b,S:real;
поч                                                               begin
ввести а, b                                                    read(a,b);
S:=a+b                                                          S:=a+b;
вивести S                                                   write(S)
кін                                                                end
На відміну від алгоритмічної мови, правильність алгоритму (програми) записаної в мові програмування можна перевірити за допомогою комп’ютера.

понедельник, 20 января 2014 г.

Графічний редактор








Unit1
var
  Form1: TForm1;
     pen1, brush1, rect1, circl1: boolean;
 cl:TColor;
 drag:boolean;

procedure TForm1.FormCreate(Sender: TObject);
begin
image1.Canvas.Brush.Color:=clWhite;        image1.Canvas.FillRect(ClientRect);
end;

procedure TForm1.N6Click(Sender: TObject);
begin
   Form2.ShowModal;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
             if OpenDialog1.Execute then          image1.Picture.LoadFromFile(OpenDialog1.filename);
end;

procedure TForm1.N7Click(Sender: TObject);
begin
            image1.Canvas.Brush.Color:=clWhite;
        image1.Canvas.FillRect(ClientRect);
        pen1:=false;       
        brush1:=false;
end;

procedure TForm1.N8Click(Sender: TObject);
begin
         If ColorDialog1.Execute then
        cl:= ColorDialog1.color;
end;

procedure TForm1.ColorGrid1Click(Sender: TObject);
begin
    cl:=ColorGrid1.ForegroundColor;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
          if drag then image1.Canvas.LineTo(x,y);
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
         drag:=false;
end;

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  pen1:=false;
Brush1:=true;
rect1:=false;
circl1:=false;
end;

procedure TForm1.ToolButton2Click(Sender: TObject);
begin
  pen1:=false;
Brush1:=false;
rect1:=true;
circl1:=false;
end;

procedure TForm1.ToolButton3Click(Sender: TObject);
begin
    pen1:=false;
Brush1:=false;
rect1:=false;
circl1:=true;
end;

procedure TForm1.ToolButton4Click(Sender: TObject);
begin
   pen1:=true;
Brush1:=false;
rect1:=false;
circl1:=false;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
               if pen1 then
        begin
                image1.Canvas.Pen.Color:=cl;
                drag:=true;
                image1.Canvas.MoveTo(x,y);
        end;
        if brush1 then
        begin
                image1.Canvas.Brush.Color:=cl;
                image1.Canvas.FillRect(ClientRect);
        end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
         if drag then image1.Canvas.LineTo(x,y);
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    drag:=false;
end;

procedure TForm1.N9Click(Sender: TObject);
begin
Form3.ShowModal;
end;
unit2;
procedure TForm2.Button1Click(Sender: TObject);

begin
  x:=Edit1.Text;
  y:=Edit2.Text;
   form1.Image1.Width:=x;
    form1.Image1.Height:=y;
    form1.Image1.Visible:=true;
   Form2.Close;
   form1.SetFocus;
end;

unit3

procedure TForm3.FormCreate(Sender: TObject);
begin
Edit1.Text:=''  ;
Edit2.Text:='';
  x1:=form1.Image1.Width  ;
   y1:=Form1.Image1.Height  ;
 Edit1.Text:= x1;
 Edit2.Text:=y1;
  
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
    x4:=Edit1.Text;
  y4:=Edit2.Text;
   form1.Image1.Width:=x4;
    form1.Image1.Height:=y4;
    form1.Image1.Visible:=true;
   Form3.Close;
   form1.SetFocus;
end;