Сторінка 1

неділю, 11 лютого 2018 р.

Багаторядкове текстове поле

Увага! Під час роботи з комп'ютером дотримуйтеся правил безпеки і санітарно-гігієнічних норм.
Види навчальної діяльності
Обговорюємо
  1. Які елементи управління використовують для введення чи виведення значень табличних величин у середовищі Lazarus?
  2. Чим відрізняється елемент управління Memo від елементів Edit і Label у середовищі Lazarus?
  3. Яка властивість компонента Memo містить список наявних елементів?
  4. Як визначити кількість елементів у списку Memo1.Lines?
  5. Як запрограмувати вставку елемента в кінець списку поля Memo1?
Діємо разом
  • Вправа 1. Знайдіть суму цілих чисел, які вводяться з клавіатури у поле Memo. кількість чисел не перевищує 100.
  • Створення проекту з використанням мови Object Pascal
  1. Відкрийте середовище Lazarus, створіть новий проект, розмістіть на екранній формі об'єкти Memo1, Button1, Edit1, надайте значення їхнім властивостям самостійно.
    Сума чисел багаторядкового поля
  2. Створіть процедуру опрацювання події натиснення кнопки Знайти суму. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: numbers - масив цілих чисел, n - кількість елементів масиву, sum - сума елементів списку-масиву, i - номер (індекс) елемента масиву.
  3. var numbers: array[1..100] of Integer; {масив для збереження чисел}
        n, i, sum: integer;  
  4. У вікні редактора коду запишіть команди для обчислення суми елементів масиву (списку), які будуть введені з клавіатури і запустіть проект на виконання.
  5. begin
      n := Memo1.Lines.Count;
      sum := 0;
      for i := 1 to n do numbers[i] := StrToInt(Memo1.Lines[i-1]);
      for i :=1 to n do sum := sum + numbers[i];
      Edit1.Text := IntToStr(sum);
    end;
  • Вправа 2. Розробіть проект для розв'язування такої задачі: "Масив numbers[1..10] заповнити випадковими цілими числами в межах від 1 до 100 і вивести значення елементів масиву в поле Memo1. Визначити, в якому рядку списку Memo1 знаходиться елемент, що дорівнює цілому числу (значення вводиться в поле Edit1) і результат записати в поле Memo2".
  • Створення проекту з використанням мови Object Pascal
  1. Відкрийте середовище Lazarus і створіть новий проект, розмістіть на екранній формі об'єкти, як на скріншоті, надайте значенням їхнім властивостям.
    Пошук рядка у списку
  2. Створіть процедуру опрацювання події натиснення кнопки Знайти елемент. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: numbers - масив цілих чисел, який заповнюється випадковим чином від 1 до 100, k - ціле число, яке вводиться в поле Edit1 і шукається в масиві, i - номер (індекс) елемента масиву.
  3. var i, k: integer;
        numbers : array [1..10] of integer;
  4. У вікні редактора коду в тілі програми запишіть команди для очищення обох полів Memo, зберігання значення шуканого числа, введеного у поле Edit1, у змінну k, заповнення масиву за допомогою функції генерування цілих чисел і запису елементів масиву у поле Memo1.  
  5. Randomize;
    Memo1.Clear;  // очищення поля Memo1
    Memo2.Clear;  // очищення поля Memo2
    k := StrToInt(Edit1.Text);
    for i := 1 to 10 do numbers[i] := Random(100); // заповнення масиву випадковими цілими числами
    for i := 1 to 10 do Memo1.Lines.Add(IntToStr(numbers[i])); // додавання елементів масиву у Memo1
  6. Доповніть програму, введенням наступного коду, який здійснює пошук у полі Memo1 рядка із значенням введеного числа k і виводить інформацію про результати пошуку у поле Memo2 та виконайте проект.
  7. for i := 0 to Memo1.Lines.Count - 1 do
            begin
              if StrToInt(Memo1.Lines[i]) = k
                 then
                     Memo2.Lines.Add('Знайдено в рядку ' + IntToStr(i))
                 else
                     Memo2.Lines.Add('Не знайдено в рядку ' + IntToStr(i))
            end;
Працюємо в парах
  1. Запишіть оператор, призначений для виведення п'ятого рядка зі списку Memo1 у текстове поле Edit1.
  2. Визначте, для чого в біометричний паспорт додають чип. Як він програмується та як з нього зчитати дані?
Виконуємо самостійно
  • Завдання. Створити програму-перекладач з української мови на англійську і навпаки.
  1. У середовищі Lazarus створіть новий проект. Змініть значення властивості Caption форми, розмістіть на формі два компоненти Memo. Властивості ScrollBars елементів Memo1, Memo2 надайте значення ssVertical для появи вертикальних смуг прокручування.
  2. За допомогою редактора рядків масив Memo1.Lines заповніть українськими словами, масив Memo2.Lines - їхніми англійськими відповідниками. 
  3. Розмістіть на формі компоненти Label, Button, Edit і налаштуйте їхні властивості згідно із скріншотом.
    Програма-перекладач
  4. Опишіть глобальні змінні для збереження масивів слів: eng_words і ukr_words.
  5. var
      Form1: TForm1;
      eng_words, ukr_words : array[0..100] of string;
    
    implementation 
  6. Створіть процедуру OnClick для кнопки Заповнити масиви слів. Запишіть оператори для заповнення масивів eng_words і ukr_words масивами Memo1.Lines і Memo1.Lines.
  7. var i : integer;
    begin
         for i := 0 to Memo1.Lines.Count - 1 do
             begin
               ukr_words[i] := Memo1.Lines[i];
               eng_words[i] := Memo2.Lines[i];
             end;
    end;
  8. Створіть процедуру обробки події OnClick для кнопки Перекласти англійською. Запишіть оператори для перекладу українського слова на англійську мову.
  9. var i: integer;
        s: string;
    begin
         s := Edit1.Text; // вводимо слово, яке бажаємо перекласти
         i := -1;
         repeat
            i := i + 1;          // збільшуємо індекс елемента
         until ukr_words[i] = s; // поки не знайдемо слово s
         Edit2.Text := eng_words[i]; {виводимо елемент із масиву англійських слів
         із таким індексом, як у слова s у масиві українських слів}
    end; 
  10. Створіть процедуру обробки події OnClick для кнопки Перекласти українською.
  11. var i: integer;
        s: string;
    begin
        s := Edit4.Text; // вводимо слово, яке бажаємо перекласти
        i := -1;
        repeat
            i := i + 1;         // збільшуємо індекс елемента
        until eng_words[i] = s; // поки не знайдемо слово s
        Edit3.Text := ukr_words[i]; {виводимо елемент із масиву українських слів
        із таким індексом, як у слова s у масиві англійських слів}
    end; 
  12. Перевірте роботу програми.
    Програма-перекладач
Домашнє завдання
  • Опрацювати підручник: §33 с. 184-189 (Інформатика, 9 клас, автори: Бондаренко О. О., Ластовецький В. В., Пилипчук О. П., Шестопалов Є. А.)