Сторінка 1

суботу, 10 лютого 2018 р.

Одновимірний масив даних

Увага! Під час роботи з комп'ютером дотримуйтеся правил безпеки і санітарно-гігієнічних норм.
Види навчальної діяльності
Обговорюємо
  1. Чим табличні величини відрізняються від текстових або числових величин?
  2. Дайте означення одномірному масиву як структурованого типу даних.
  3. У чому відмінність опису табличних величин мовами програмування Object Pascal і Python?
  4. Опишіть масиви: А з трьох дійсних чисел; В з десяти символів мовами Object Pascal і Python.
  5. У чому відмінність табличної величини та елемента табличної величини?
  6. Чи можна визначити кількість елементів за описом табличної величини мовами програмування Object Pascal і Python?
  7. Які засоби для введення та виведення елементів табличних величин передбачені у програмах мовами програмування Object Pascal і Python?
Діємо разом
  • Вправа 1. Розробіть проект для введення масиву х, що складається з n (n < 20) дійсних чисел, де значення кількості елементів масиву вводять у текстове поле, а самі елементи - у вікні введення.
  • Створення проекту з використанням мови Object Pascal
  1. Відкрийте середовище Lazarus, створіть новий проект, розмістіть на екранній формі об'єкти, як показано на скріншоті, надайте значення їхнім властивостям самостійно.
    Введення масиву
  2. Створіть процедуру опрацювання події натиснення кнопки Розпочати введення. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: x - масив дійсних чисел, n - кількість елементів масиву, i - номер (індекс) елемента масиву.
  3. var i, n: integer;
        x : array [1..20] of real; 
  4. У вікні редактора коду запишіть команди введення кількості елементів масиву та надання значень елементів у вікні повідомлення з використанням оператора повторення for.
  5. begin
        n := StrToInt(Edit1.Text);
        for i := 1 to n do
            x[i] := StrToFloat(InputBox('Введення елементів масиву', 'Введіть ' + IntToStr(i) + 'елемент', '0,00'));
    end;
  • Створення проекту з використанням мови Python
  1. Відкрийте середовище програмування мовою Python, створіть новий файл і збережіть його під іменем Введення масиву.
  2. У вікні редактора коду введіть команду для імпорту бібліотеки візуальних компонентів.
  3. import tkinter
  4. Запишіть програму за зразком, використавши метод append - додавання елементів до списку.
  5. main = tkinter.Tk()
    # створення об'єкту для отримання значення кількості елементів з текстового поля
    s = tkinter.StringVar()
    # створення порожнього списку
    x = []
    # опрацювання події натиснення кнопки
    def button_click():
        n = int(s.get())
        i = 0
        for i in range(n):
            # додавання до списку чергового елемента
            x.append(float(input('Введіть елемент: ')))
    # створення текстового напису та його розміщення на головній формі
    label = tkinter.Label(text = 'Введіть кількість елементів:')
    label.pack()
    # створення текстового поля та його розміщення на головній формі
    edit = tkinter.Entry(main, textvariable = s)
    edit.pack()
    # створення кнопки та розміщення її на головній формі
    button = tkinter.Button(main, text = 'Розпочати введення', command = button_click)
    button.pack()
    # запуск опрацювання подій програми
    main.mainloop()  
  6. Запустіть проект на виконання і перевірте, чи відповідають умові завдання дії, пов'язані з об'єктами управління екранної форми. Якщо є помилки, виправте їх, збережіть зміни.
    Введення масиву
  • Вправа 2. Розробіть проект для поелементного виведення масиву a з n (n < 20) цілих чисел від 0 до 10 у вікні повідомлення, де значення кількості елементів масиву вводять у текстове поле, а елементи добираються випадково після запуску програми.
  • Створення проекту з використанням мови Object Pascal
  1. Відкрийте середовище Lazarus і створіть новий проект, розмістіть на екранній формі об'єкти, як на скріншоті, надайте значенням їхнім властивостям.
    Виведення масиву
  2. Створіть процедуру опрацювання події натиснення кнопки Розпочати. У вікні редактора коду опишіть змінні, які будуть використовуватись у проекті: a - масив цілих чисел, n - кількість елементів масиву, i - номер (індекс) елемента масиву, s - рядок, у якому формуватиметься масив значень для виведення.
  3. var i, n: integer;
        a : array [1..20] of integer;
        s : string;
  4. У вікні редактора коду в тілі програми запишіть команди введення кількості елементів масиву та надання значень елементів масиву за допомогою функції генерування цілих чисел.
  5. n := StrToInt(Edit1.Text);
    Randomize;
    for i := 1 to n do
        a[i] := random(10);
  6. Доповніть програму, введенням наступного коду і виконайте проект.
  7. s := '';
    for i := 1 to n do
        s := s + IntToStr(a[i]) + ' ';
    MessageDlg(s, MtInformation, [mbOk], 0);
  • Створення проекту з використанням мови Python
  1. Відкрийте середовище програмування мовою Python, створіть новий файл і збережіть його під іменем Виведення масиву.
  2. У вікні редактора коду введіть команди оголошення об'єктів екранної форми проекту.
  3. import tkinter
    from tkinter import ttk
    from tkinter import messagebox
    import random
    main = tkinter.Tk()
    # створення об'єкту для отримання значення кількості елементів з текстового поля
    s = tkinter.StringVar()
    # створення порожнього списку
    x = []
  4. Продовжте програму за зразком, створюючи рядкову величину s_row, у якій формується результуючий список значень, розділених пропусками.
  5. # опрацювання події натиснення кнопки
    def button_click():
        n = int(s.get())
        # задання початкового значення результуючого рядка
        s_row = ''
        for i in range(n):
            # додавання до списку чергового елемента, завдяки генеруванню випадкових чисел від 0 до 10
            x.append(random.randint(0, 10))
            # створення списку елементів у рядку
            s_row = s_row + str(x[i]) + ' '
        # виведення вікна повідомлення із результатом
        messagebox.showwarning('Результат', s_row)
  6. Розмістіть елементи управління на екранній формі, доповнивши програму кодом.
  7. # створення текстового напису та його розміщення на головній формі
    label = tkinter.Label(text = 'Введіть кількість елементів:')
    label.pack()
    # створення текстового поля та його розміщення на головній формі
    edit = tkinter.Entry(main, textvariable = s)
    edit.pack()
    # створення кнопки та розміщення її на головній формі
    button = tkinter.Button(main, text = 'Розпочати', command = button_click)
    button.pack()
    # запуск опрацювання подій програми
    main.mainloop()
  8. Запустіть проект на виконання і перевірте, чи відповідають умові завдання дії, пов'язані з об'єктами управління екранної форми. Якщо є помилки, виправте їх, збережіть зміни.
    Виведення масивуВиведення масиву
Працюємо в парах
  1. Запишіть оператори присвоювання, які виконують такі дії: першому елементу масиву С присвоїти значення третього і п’ятого елементів; шостому елементу масиву С присвоїти значення подвоєного добутку першого і другого елементів.
  2. Поставте у відповідність опис табличної величини: 1) таблиця з 10 текстових величин; 2) таблиця з 10 дійсних чисел; 3) таблиця із 6 символьних величин; 4) таблиця з послідовністю 9 чисел, що змінюються через 0.1; 5) таблиця з 7 текстових величин; та відповідну таблицю значень:
    Таблиця значень
Виконуємо самостійно
  • Завдання 1. Дано послідовність із n цілих чисел (N<=100). Визначити кількість парних чисел, які мають парні індекси.
  1. У середовищі Lazarus створіть новий проект. Змініть значення властивостей форми, розмістіть на формі компоненти, налаштуйте їхні властивості згідно із скріншотом.
  2. Для зберігання елементів використаємо масив. Оскільки кількість елементів послідовності (N<=100), опишіть масив numbers і глобальні змінні: n - кількість елементів послідовності, k - шукана кількість парних чисел, що мають парні індекси, i - індекс поточного елемента масиву.
  3. var
      Form1: TForm1;
      numbers : array [1..100] of integer;
      n, k, i : integer;
    
    implementation
  4. Створіть процедуру обробки події OnClick для кнопки Заповнити масив. Запишіть оператори для введення значення n і заповнення масиву випадковими числами.
  5. n := StrToInt(Edit1.Text);
      Randomize;
      ListBox1.Clear; // очищення поля списку
      for i := 1 to n do begin
         numbers[i] := Random(20);
         ListBox1.Items.Add(IntToStr(numbers[i]));
      end;
  6. Створіть процедуру обробки події OnClick для кнопки Обчислити k. У циклі перебираємо елементи масиву numbers, якщо numbers[i] відповідає умові, збільшуємо значення k на 1.
  7.   k := 0;
      for i := 1 to n do
         if (numbers[i] Mod 2 = 0) and (i Mod 2 = 0) then k := k + 1;
      Edit2.Text := IntToStr(k);  
  8. Перевірте роботу програми для різних значень n
  9. Змініть програмний код так, щоб після натискання командної кнопки Обчислити k до списку ListBox1 виводилися значення тих елементів масиву, які мають непарні індекси (numbers[1], numbers[3], numbers[5], ...).
  10. Виконайте і збережіть проект.
  • Завдання 2. Створіть у середовищі Lazarus програму для заповнення масиву Numbers[1..10] числами 1, 4, 9, ..., 100 і виведення значень елементів масиву в поле ListBox. Екранна форма проекту може мати вигляд, як на скріншоті.
    Скористайтеся програмним кодом, який необхідно доповнити в рядку після коментаря. 
  • procedure TForm1.Button1Click(Sender: TObject);
    var Numbers : array [1..10] of integer;
        i, a : integer;
    begin
    Randomize;
    for i := 1 to 10 do
            begin
                 // масив повинен заповнитись десятьма випадковими числами із наступного ряду 1, 4, 9, 16, ..., 100
                 // для цього запишіть вираз, у якому за допомогою функції random генерується випадкове число з діапазону [0;9] і додається 2, результат присвоюється а
                 // запишіть вираз для присвоєння значень у масив, використовуючи формулу елемент_масиву := (a - 1)^2
            end;
        for i := 1 to 10 do
            // виведення чисел з масиву і запис їх у вигляді рядків у ListBox  
            ListBox1.Items.Add(IntToStr(Numbers[i]));
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
       // очищення ListBox
       ListBox1.Clear;
    end;
Домашнє завдання
  • Опрацювати підручник: §32 с. 179-183 (Інформатика, 9 клас, автори: Бондаренко О. О., Ластовецький В. В., Пилипчук О. П., Шестопалов Є. А.)