Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика_Delphi.doc
Скачиваний:
11
Добавлен:
25.08.2019
Размер:
2.92 Mб
Скачать

Лабораторна робота № 8 «Створення програм з використанням операторів циклів»

Мета: 1. Навчитися створювати програми з операторами циклів.

2. Навчитися виводити результати на екран монітору.

Теорія та практика до лабораторної роботи «Цикли»

  1. Для створення програм, що містять цикли необхідно передбачити вивід результатів на екран монітору. Для цього потрібно визначити, що саме і скільки буде виводитись на екран монітору. Це може бути:

    1. Один кінцевий результат;

    2. Проміжні результати, тобто потрібно виводити кілька результатів.

  2. Для виводу одного кінцевого результату можна використати текстове поле або текстове вікно. Ми вже знайомі з цими об’єктами.

  3. Для виводу кількох результатів необхідно використовувати обєкт МЕМО (багаторядкове поле редагування). Для даного об’єкту можна задати такі властивості: назва, колір, шрифт видимість, ScrollBars – задає наявність чи відсутність горизонтальної чи вертикальної смуг прокрутки у цьому полі. Lines – дає змогу вивести постійний текст у багаторядкове поле редагування.

Наприклад: Задача 1. Надрукувати 10 разів «Вася».

  1. Створюємо форму.

  1. Програмуємо подію для кнопки виконати:

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

begin

for i:=1 to 10 do

memo1.Lines.Add(ІntToStr(i)+' Vasya') //додає нові записи в полі Мемо

end;

  1. Результат роботи програми:

Задача2. Протабулювати функцію y:=sin(2*x)-2*cos(x) з кроком 0.2 на відрізку від 1 до 20.

1. Створити форму за таким зразком:

  1. Змінити властивості об’єктів за таким зразком:

3 .Створити меню з пунктами Обчислення(Протабулювати функцію, Очистити поле виведення, Очистити поле введення), Кінець роботи (Закрити), Про програму(Умова задачі).

4.Збережіть створену форму.

5.Для об’єкту МЕМО встановити властивість ScrollBars – ssBoth, для властивості Lines - знищити значення МЕМО1 і записати Результати х у: Результат буде такий:

6.Програмуємо команду «Протабулювати». Для цього клацаємо двічі на команді Протабулювати функцію і вводимо текст процедури:

procedure TForm1.N2Click(Sender: TObject);

v ar x,y,h,a,b:real; //оголошуємо змінні

cod:integer;

s1,s2:string;

begin //вивід на екран функції для якої виконуємо табуляцію

label1.Caption:=' y:=sin(2*x)-2*cos(x)';

val(edit1.Text,a,cod); //вводимо значення з клавіатури

val(edit2.Text,b,cod);

val(edit3.Text,h,cod);

x:=a; // в циклі виконуємо табуляцію функції

while x<=b+h/2 do

begin

y:=sin(2*x)-2*cos(x);

str(x:10:2,s1); str(y:10:2,s2);

memo1.Lines.Add(s1+s2); //виводимо проміжні результати

x:=x+h; end; end;

7.Для очистки вікна виводу використаємо метод Clear об’єкта Мемо. Для цього клацаємо двічі по на команді Очистити поле виведення, і вводимо текст процедури:

procedure TForm1.N5Click(Sender: TObject);

begin

Memo1.Clear; end; //очистка поля МЕМО

8.Самостійно запрограмуйте очистку полів введення даних.

9.Самостійно запрограмуйте закриття програми.

10.Самостійно створіть вікно з умовою задачі.

Задача 3. Створити програму для обчислення факторіала.

  1. Створюємо форму.

  1. Програмуємо події для кнопок: обчислити, очистити, закрити.

procedure TForm1.Button1Click(Sender: TObject);

var i,f,n:integer;

begin

n:=strToint(edit1.Text); //введення значення числа для якого обчислюється факторіал

f:=1;

for i:=1 to n do

f:=f*i;

edit2.Text:=IntToStr(f); //виведення результату

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Text:='';

Edit2.Text:='';

Edit1.SetFocus; //активізуємо поле Edit1

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Close; end

3. Результат виконання програми:

Практичні завдання: Скласти блок-схему алгоритму розв’язку задачі та записати програму мовою програмування відповідно призначеного варіанту.

Варіант 1

  1. Знайдіть кількість точок із цілочисельними координатами, що попадають у коло радіуса R.

  2. Імітувати на екрані роботу електронного годинника.

  3. На скільки років необхідно покласти в банк суму Х грошових одиниць, щоб одержати суму N грошових одиниць (N>X), якщо банк нараховує 20% річних?

  4. За даним натуральним значенням змінної n обчислити:

Варіант 2

  1. Скласти програму, що роздруковує на екрані таблицю множення.

  2. Знайдіть всі тризначні числа, які рівні сумі кубів своїх цифр. Врахуйте, що abc=100a+10b+c

  3. Високосний рік має 366 днів, а звичайний – 365. Високосним є рік, значення якого ділиться на 4, не ділиться на 100, але ділиться на 400. Визначити, скільки днів було в двадцятому столітті.

  4. Знайти значення (1+0,1)(2+0,2)...(9+0,9).

Варіант 3

  1. Скласти програму виведення всіх тризначних чисел, сума цифр яких дорівнює даному цілому числу. Програма повинна друкувати саме числа, а не набір цифр.

  2. Кожна бактерія ділиться на дві протягом однієї хвилини. У початковий момент є одна бактерія. Складіть програму, що розрахує кількість бактерій на задане Вами ціле значення моменту часу.

  3. Дано ціле число n. Визначити n!

  4. Протабулювати функцію у=х3+2х2-4х+7 на проміжку [-6:6] з кроком 0,1.

Варіант 4

  1. Задано n трійок чисел a,b,c. Визначити, скільки із запропонованих трійок можна використовувати для побудови трикутника, якщо a,b,c - довжини його сторін. (Відомо, що a>b>c)

  2. Знайти суму цілих позитивних чисел, більших 20, менших 100 і кратних 3.

  3. Визначити всі чотиризначні числа, сума цифр яких дорівнює їхньому добутку.

  4. Обчислити: 1+2+4+8+…+210

Варіант 5

  1. Вкажіть всі цілі числа, які збільшаться на 20%, якщо їхньої цифри записати у зворотному порядку.

  2. Складіть програму обчислення степіня числа а з натуральним показником n.

  3. Обчислити Якщо результат менше 10 000, то вивести його на екран. У противному випадку на екран вивести текст: “Результат більше 10 000”.

  4. У бригаді, що працює на збиранні сіна, є N косарок. Перша з них працювала M годин, а кожна наступна на 10 хвилин більше, ніж попередня. Скільки годин працювала вся бригада?

Варіант 6

  1. Скласти програму, у якій серед двозначних чисел друкуються ті числа, які дорівнюють сумі своїх цифр.

  2. Замініть букви цифрами так, щоб рівність ФАКТ+ФАКТ=НАУКА стала вірною. Однаковим буквам повинні відповідати однакові цифри, різним - різні.

  3. Екзаменаційні оцінки групи студентів групи вводяться з клавіатури: , де n число студентів у групі. Обчислити середній бал і кількість п'ятірок.

4. Квиток називають «щасливим», якщо в його номері сума перших трьох цифр дорівнює сумі останніх трьох. Підрахувати число тих «щасливих» квитків, у яких сума трьох цифр дорівнює 13. Номер квитка може бути від 000000 до 999999.

Варіант 7

  1. Складіть програму для визначення N!-M! ( N! = 1*2*3*4*...*n, M<N).

  2. Запросити ім'я користувача й надрукувати "Привіт, Вася!" 10 разів. (якщо Вася - ім'я корис-ча)

  3. Обчислити значення функції на заданому інтервалі із кроком :

. Вивід оформити у вигляді таблиці значень і .

  1. В комп’ютер вводяться по черзі координати N точок. Визначити, скільки з них попадає в коло радіусом R із центром у точці (a,b).

Варіант 8

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

  2. Вивести на екран всі тризначні натуральні числа, сума цифр яких дорівнює заданому числу N. (Операції div і mod не використовувати.)

  3. Дано послідовність: .

Знайти кількість від’ємних елементів послідовності і їхніх порядкових номерів.

  1. В комп’ютер вводяться по черзі дані про зріст N учнів класу. Визначити середній зріст учнів у класі.

Варіант 9

  1. Скласти програму, що друкує всі прості числа, що не перевищують даного числа.

  2. Населення міста збільшується на 3% щороку. В 1983 році населення міста становило 65000. Напишіть програму, що виведе на екран монітору чисельність населення міста в кожному році аж до 1999р.

  3. Дано послідовність: .

Знайти кількість додатних елементів послідовності.

  1. Складіть програму, що обчислює A*B, не користуючись операцією множення. А й B будь-яке натуральне число.

Варіант 10

  1. Знайдіть всі натуральні числа від 1 до 1000, кратні 3.

  2. Скласти програму запиту пароля поки не буде введений пароль вірно. У програмі передбачити лічильник неправильних введень пароля.

  3. Дано послідовність: .

Знайти суму всіх позитивних членів послідовності

  1. Для заданого числа N складіть програму обчислення суми S=1+1/2+1/3+1/4+...+1/N, де N - натуральне число.

Варіант 11

  1. Вивести всі парні числа починаючи від числа N і до числа M. Числа N і M задає користувач.

  2. Знайти кількість ненульових елементів послідовності:

  3. Складіть програму, що виводить повний запис десяткового числа 42*4*, у якій пропущені дві цифри, якщо відомо, що дане число кратне 72.

  4. В діапазоні від 1 до 100 знайти всі «автоморфні» числа. Автоморфним називається таке число, яке записане в своєму квадраті. 5-25, 25-625.

Варіант 12

  1. Скласти програму знаходження суми парних чисел, що перебувають у проміжку від 26 до 88.

  2. Знайти найбільший загальний дільник двох натуральних чисел a і b.

  3. Знайти добуток ненульових елементів послідовності: .

  4. Складіть програму, що визначає максимальне із всіх чисел, що вводяться вами. Кінцем уведення чисел є уведене число 0.

Варіант 13

  1. Спортсмен у перший день пробіг 10 км. Кожний наступний день він збільшував норму на 10% від норми попереднього дня. а) Визначити через скільки днів спортсмен пробіжить сумарний шлях більше 100 км.

  2. Вводяться 14 чисел. Визначити, скільки серед них додатних (включаючи 0) і скільки від’ємних. (Числа вводяться в одну змінну в циклі)

  3. Знайти добуток елементів послідовності: , більших 0.1 і менших 0.5, де . Печатка організувати у вигляді: Добуток =...

  4. Напишіть програму, що визначає суму всіх непарних чисел від 1 до 99.

Варіант 14

  1. Спортсмен у перший день пробіг 10 км. Кожний наступний день він збільшував норму на 10% від норми попереднього дня. а) Який шлях пробіжить спортсмен на 7-й день.

  2. Запропонуйте ввести 16 чисел і виведіть на екран для кожного, чи ділиться воно націло на 11.

  3. Дано послідовність:

Знайти кількість негативних елементів послідовності і їхніх порядкових номерів.

  1. Знайти найбільше й найменше значення функції y=3x2+ x-4, якщо на заданому інтервалі [a,b] Х змінюється із кроком 0,1.

Варіант 15

  1. Спортсмен у перший день пробіг 10 км. Кожний наступний день він збільшував норму на 10% від норми попереднього дня. а) Визначити через скільки днів спортсмен буде пробігати більше 20 км.

  2. Створіть програму, яка запитаєте в користувача, скільки потрібно проаналізувати чисел, а потім запросить ці числа й зробить для кожного висновок, чи є воно парним або від’ємним.

  3. Дано послідовність: .

Знайти суму перших шести членів послідовності.

  1. Написати програму, що виводить таблицю значень функції у = -2,4x2 + 5х - 3 у діапазоні від -2 до 2 із кроком 0.5

Варіант 16

  1. Капосний папуга навчився висмикувати у дідуся Василя волосся, яке ще залишилося у того на голові. Почавши з однієї волосини, він щодня збільшував порцію вдвічі. Через скільки днів дідусеві не знадобиться гребінець, якщо спочатку в нього на голові було аж N волосин?

  2. Знайдіть суму всіх двозначних непарних чисел.

  3. Знайти кількість ненулевих елементів послідовності:

  4. Обчислити:

    1. (1+2)*(1+2+3)*...*(1+2+...+10)

Теоретичні запитання:

  1. Яким повинна бути умова, щоб тіло циклу while жодного разу не виконалось?

  2. Яким повинна бути умова, щоб тіло циклу repeat виконалось один раз? Чому?

  3. Яким повинна бути умова, щоб тіло циклу for жодного разу не виконалося? Чому?

  4. Чому дорівнює крок зміни параметра циклу в операторі for?

  5. Укажіть відмінні риси кожної з конструкцій циклів