Середа, 01.05.2024, 10:53
Вітаю Вас Гість | Реєстрація | Вхід

Інформатика в Білицькій ЗОШ І - ІІІ ступенів №1

Меню сайту
Вхід на сайт
Наше опитування
Оцініть мій сайт
1. Відмінно
2. Непогано
3. Добре
4. Погано
5. Жахливо
Всього відповідей: 8
Друзі сайту
  • Білицька ЗОШ №1
  • Мої Білики
  • Урок Delphi 4

     
     

    Мова Delphi
    Змінні, константа і їх типи

    Дані в комп'ютері можна розглядати як елементи пам'яті, які мають свої імена (ідентифікатори). Всі дані в програмі на мові Delphi повинні бути описані до їх першого використання. І компілятор стежить, щоб в програмі вони використовувалися в відповідності до цього опису, що дозволяє уникнути помилок. 

        Будь-яка величина в Delphi може бути постійною або змінною. Її ім'я (ідентифікатор) може складатися з комбінації латинських букв, цифр і знака підкреслення, і починатися не з цифри. При цьому регістр символів значення не має. 

    Місце опису даних в програмі - поза логічних блоків begin / end . У модулі перед ключовим словом implementation є блок опису: 

    var
      Form1: TForm1;

    Саме тут, починаючи з наступного рядка, зручно оголошувати глобальні змінні і константи. Як бачимо, одна (Form1) вже є! 
     

    Команда оголошення змінних в мові Delphi :

     var ім'я_змінної : тип_змінної ;    

       Слово var - ключове. Іменем може бути будь-який ідентифікатор, якщо він не був описаний раніше і не є одним з ключових або зарезервованих слів мови Delphi . Якщо потрібно описати кілька змінних одного типу, то їх перераховують, відокремлюючи комами: 

     var A, B, C : Integer;

        Якщо кілька описів слідують один за одним, то ключове слово var повторно можна не вказувати:

    var A, B : Integer;
            C, D : String;

     Постійну величину інакше називають константою . Звичайно, в програмі можна використовувати числа і рядки безпосередньо: 3.1415 або 'Це значення числа пі' , але іноді зручніше привласнити їх ідентифікатором. Опис констант аналогічно опису змінних, але використовується ключове слово const , за ім'ям ідентифікатора слідує тип, потім знак рівності і його значення. Причому тип константи допускається не вказувати:

    const pi=3.1415 ;
             ZnakPi : String = 'Це значення числа пі';

     До речі, константа Pi вбудована в Delphi, тобто для того щоб використовувати в Delphi число 3,1415 ... в розрахунках, потрібно просто привласнити вбудовану константу Pi змінної типуReal або просто використовувати безпосередньо в виразах.

        Тепер прийшов час дізнатися про типи даних, що використовуються в Delphi . Перш за все це рядки і числа. Рядком називається послідовність символів, укладена в поодинокі лапки:

    'Це текстовий рядок'

    Якщо текст повинен містити сам символ лапки, то його треба повторити двічі:

    'Це' '- символ одиночної лапки'

       Рядок може бути і порожній, яка не містить символів. Тоді він складається з двох без пробілу лапок, що йдуть один за одним . Природно, рядок може складатися і тільки з одних прогалин. 

       Найпопулярніший строковий тип - String . Рядок типу String може містити змінну кількість символів об'ємом до 2 Гбайт. Якщо потрібно обмежити розмір рядка фіксованим значенням, то після ключового слова String в квадратних дужках вказується число, яке визначає кількість символів у рядку: String [50] .Більш повно робота з рядками Delphi описується далі. 

       Одиночний символ має тип Char і записується у вигляді знака в одиночних лапках: 'a' . Є символи, які на екрані відобразити неможливо, наприклад, символ кінця рядка (дорівнює # 13), символ розриву рядків (дорівнює # 10). Такі символи записуються в вигляді їх числового коду (в кодуванні ANSI ), перед яким стоїть знак # . Наприклад, # 0 . 
       Нарешті, існують так звані нуль-терминировать рядки. Відлік символів в таких рядках починається з нуля, а закінчується символом з кодом 0 ( # 0 ). Такі рядки мають тип PChar . Числа бувають цілі і дробові . У цій таблиці наведено стандартні типи цілих чисел і відповідні їм ДІПАЗОН допустимих значень.

       ціле число    -2147483648 .. +2147483647
       кардинальний    0 .. 4294967295
       Shortint    -128 .. +127
       Smallint    -32768 .. 32767
       Int64    -2 63 .. +2 63 -1
       байт    0 .. +255
       слово    0 .. +65535
    Найбільш зручним для використання в програмах є тип Delphi Integer .Інші цілі типи використовуються для зменшення місця, займаного даними в пам'яті комп'ютера.

     Дробові числа мають дробову частину, відокремлювану десятковою крапкою. Допускається використання символу e (або E ), за яким слідує число, яке вказує, що ліву частину потрібно помножити на 10 у відповідній мірі: 5e25 - п'ять помножити на десять у двадцять п'ятого ступеня. 
    Нижче наведено стандартні типи дрібних чисел і відповідні їм діапазони допустимих значень . Для більшості типів вказано діапазон позитивних значень, проте допустимим є аналогічний діапазон негативних значень, а також число 0 .

     

       реальний    5 * 10 -324 .. 1.7 * 10 308
       Real48    2.9 * 10 -39 .. 1.7 * 10 38
       Singl    1.5 * 10 -45 .. 3.4 * 10 38
       подвійний    5 * 10 -324 .. 1.7 * 10 308
       розширений    3.6 * 10 -4951 .. 1.1 * 10 4932 -1
       Comp    -2 63 .. +2 63 -1
       валюта    922337203685477.5807
    Найбільш зручним для використання в програмах є тип Delphi Real . Йому еквівілентен тип Double , але в майбутньому це може бути змінено.Обчислення з дробовими числами виконуються наближено, за винятком типу Currency (фінансовий), який призначений для мінімізації помилок округлення в бухгалтерських розрахунках.

     Наступним типом даних є логічний Boolean , що складається всього з двох значень: True (Істина) і False(Брехня). При цьому True> False . 

       Тепер, використовуючи компоненти, їх властивості та події, вводячи власні змінні, можна конструювати програми, що містять обчислення. Залишилося дізнатися, як обчислене значення вивести на екран. Про консольні програми я тут не говорю ! А в нормальних віконних Windows-додатках це значення потрібно помістити в який-небудь компонент, який має властивості Text або Caption . Це, наприклад, такі компоненти як Label і Edit , та й сама Форма має властивість Caption , куди теж можна виводити інформацію. Однак, в Delphi інформацію перед виведенням, як правило, необхідно перетворювати. Так як привласнення можливе тільки між змінними одного типу, то така програма (не намагайтеся її виконувати):

       var A, B, C: Integer ;
      begin
       A := 5 ;
       B := 10 ;
       C := A+B ;
       Label1.Caption := C ;
      end ;

    викличе помилку, так як властивість Caption має текстовий тип String , а використані змінні - цифровийтип Integer . Значить, потрібно перетворити значення змінної C в текстовий тип. Для цього є вбудована функція IntToStr . Рядок в нашій "програмі", що викликала помилку, повинна виглядати так:    

       Label1.Caption := IntToStr(C) ;

    Така програма, крім показу числа 15 , ні на що не здатна. Ми повинні навчитися вводити в програму інші числа.Використовуємо компоненти Edit . Введені числа будуть міститися у властивості Text цих компонентів.Розташуємо на формі два компоненти Edit , один компонент Label і кнопку Button , після натискання на яку і будемо проводити обчислення. У компоненти Edit1 і Edit2 будемо вводити числа для підсумовування.Щоб переміститися в редактор коду, клацнемо двічі по нашій кнопці Button1. Ми потрапимо прямо в сформовану для нас середовищем Delphi заготовку обробника натискання на кнопку, безпосередньо між операторами begin і end . Напишемо таке просте код:

      procedure TForm1.Button1Click(Sender: TObject);
      var A, B, C: Integer;//Не забудьте опис змінних
      begin
      //Початок коду:
       A := Edit1.Text;
       B := Edit2.Text;
       C := A+B;
       Label1.Caption := IntToStr(C);
      //Кінець коду
      end ; 

     При спробі виконати цей код Delphi покаже помилки з аналогічної причини - змінні A і B мають цифровий тип Integer , а властивість Text - текстовий тип String. Виправити помилки допоможе вбудована функція StrToInt , що виконує зворотне перетворення - текст в ціле число. Оператори присвоєння змінним A і B повинні виглядати так: 

       A := StrToInt(Edit1.Text);
       B := StrToInt(Edit2.Text);

    В даному випадку змінні A, B, Cвикористовувалися для наочності. Можна обійтися одним рядком: 

       Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));

     

    Аналогічно, є функції і для перетворення в рядок і назад дійсних чисел c плаваючою ( Float ing англ.) Коми, що мають тип Real . Для перетворення в рядок - FloatToStr , назад - StrToFloat .    Часто результати обчислень, що мають тип Delphi Real , мають після коми довгий "хвіст" цифр. При виведенні такої змінної в текстовому вигляді необхідно обмежити кількість цифр після коми. Як це можна зробити, описується також в Уроці Delphi Робота з рядками Delphi .