Сторінка 1

суботу, 28 січня 2017 р.

Складання та реалізація алгоритмів із циклом з лічильником

Увага! Під час роботи з комп'ютером дотримуйтеся правил безпеки і санітарно-гігієнічних норм.
Види навчальної діяльності
Обговорюємо
      1. Чим відрізняються способи зміни значення лічильника в циклі з лічильником у мовах програмування Free Pascal та Python?
      2. Як в операторах циклу в мовах програмування Free Pascal та Python організовують виконання декількох команд у тілі циклу?
      3. У яких випадках доцільніше використовувати цикл з лічильником?
      Діємо разом
      • Вправа 1. Розробіть у середовищі програмування мовою програмування Python проект, за допомогою якого можна визначити, скільки слів введено в текстове поле, якщо відомо, що між словами міститься лише один пропуск. 
      1. У середовищі програмування мовою Python створіть новий файл з іменем Кількість слів.
      2. В області програмного коду запишіть команди за зразком:
      3. import tkinter
        from tkinter import ttk
        from tkinter import messagebox
        main = tkinter.Tk()
        main.title('Кількість слів у реченні')
        
        # створення об'єкта для отримання значення з текстового поля: Введіть речення
        row_var = tkinter.StringVar()
        
        # опрацювання події натиснення кнопки
        def button_click():
            # початкові дані: s - кількість слів (спочатку дорівнює нулю), z - рядок, що складається з одного пропуску
            s = 0
            z = ' '
            # отримання значення введеного рядка і присвоєння змінній st  
            st = row_var.get()
            # визначення довжини рядка
            k = len(st)
            # проходимо за допомогою циклу від початку рядка до кінця, фіксуючи кожне слово, якщо зустрінемо пропуск 
            for i in range(0, k):
                if st[i] == z:
                    s = s + 1 # s++
            # виведення повідомлення про кількість слів у реченні
            tkinter.messagebox.showinfo('Результат', str(s+1))
                
        #створення текстового напису Введіть речення та його розміщення на головній формі
        label = tkinter.Label(text='Введіть речення')
        label.pack()
        
        #створення текстового поля Введіть речення та його розміщення на головній формі
        edit = tkinter.Entry(main, textvariable=row_var)
        edit.pack()
        
        #створення кнопки та розміщення об'єкта на головній формі
        button = tkinter.Button(main, text='Визначити', command=button_click)
        button.pack()
        
        #запуск опрацювання подій програми
        main.mainloop()
      4. Запустіть проект на виконання. Перевірте, чи результат для введеного тексту, як на скріншоті, відповідає значенню 3:
      5. Збережіть проект і завершіть роботу із середовищем програмування.
      • Вправа 2Розробіть проект у середовищі програмування Lazarus, за допомогою якого можна визначити найбільший спільний дільник двох цілих чисел (НСД).
      1. Завантажте середовище Lazarus і створіть новий проект. 
      2. Змініть значення властивостей об'єкта Form1, розмістіть на формі об'єкти, як на зразку, та надайте значень їх властивостям
      3. Змініть шрифт і розмір текстових написів на формі.
      4. Створіть процедуру опрацювання події натиснення кнопки Визначити:
        procedure TForm1.Button1Click(Sender: TObject);
        var a, b: integer;
        begin
           a := StrToInt(Edit1.Text);
           b := StrToInt(Edit2.Text);
           while (a <> 0) and (b <> 0) do
                 begin
                   if a > b then
                      a := a mod b
                   else
                      b := b mod a
                 end;
           Edit3.Text := 'Найбільший спільний дільник ' + IntToStr(a+b);
        end;
      5. Проаналізуйте програмний код, запустіть проект на виконання. Якщо є помилки - виправте їх.
      6. Збережіть проект і завершіть роботу із середовищем програмування.
      Працюємо в парах
      • Поміркуйте, як скласти схему для узагальнення опису циклів із повторенням мовами програмування Free Pascal та Python. Побудуйте таку схему у середовищі текстового процесора. За потреби, доповніть схему новими даними.
      Досліджуємо
      • Завдання. Виконайте фрагменти програм, написані мовою програмування Python
      • а) друкується таблиця множення на 9
      • for i in range(1, 11):
            for j in range(1, 11):
                result = i * j
                print(str(i) + ' * ' + str(j) + ' = ' + str(result))
            print()
      • б) друкуються квадрати чисел від 10 до 1; 
      • for i in range(10, 0, -1):
            print(i*i)
      • в) знаходиться сума цілих чисел від 1 до 10; 
      • n = 10
        s = 0
        for i in range(1, n+1):
            s += i    
        print('Сума цілих чисел з діапазону від 1 до ' + str(n) + ' дорівнює ' + str(s))
      • г) обчислюється добуток парних чисел першого десятка; 
      • d = 1
        for i in range(1, 11):
            if i % 2 == 0:
                d *= i    
        print('Добуток парних чисел першого десятка дорівнює ' + str(d))
      • ґ) визначається кількість введених речень (речення закінчуються крапкою, знаком оклику чи знаком питання)
      • r = input('Введіть текст:\n')
        d = len(r)
        s = 0
        for i in range(0, d):
            if r[i] in ('.', '!', '?'):
                s += 1    
        print('Кількість введених речень ' + str(s))
        Зверніть увагу на оператори циклу, які використовуються в програмах.
      Домашнє завдання
      • Опрацювати підручник: §25 с. 172-174