Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OT_METOD_KP_ONOEOT

.pdf
Скачиваний:
18
Добавлен:
12.05.2015
Размер:
845.28 Кб
Скачать

Комп’ютерний практикум №3. Частина 3

Процедури та Функції

Мета

Засвоїти поняття процедури та функції. Мати поняття про область видимості змінних, про локальні та глобальні змінні.

Робоче завдання

Навчитися розрізняти процедури та функції. Навчитися вміло їх використовувати в залежності від поставленого завдання. Навчитись правильно використовувати глобальні та локальні змінні.

Хід роботи

Розв’язати задачу з обов’язковим використанням як мінімум чотирьох підпрограм. Заборонено використовувати функцій exp та ln, окрім випадків зазначених в завданні.

Варіанти завдань

1. Обчислити значення функції:

 

sin

 

 

Для значень х, розташованих на інтервалі [a;b] з кроком s,

.

Роздрукувати таблицю значень x та y. Передбачити ділення, ,на

0.

Кількість інтервалів, межі інтервалів та крок для кожного інтервалу задає користувач.

2.Визначити максимальний елемент серед трьох масивів розмірами NxN

3.Обчислити значення виразу:

2A

1

Де

, ,

– кількість нульових елементів в одновимірних масивах

довжиною N.

40

4. Обчислити значення виразу:

2

Де

,

,

– максимальні елементи в масивів A, B, C.

,– мінімальні елементи масивів A,C.

5.Визначити середнє арифметичне масивів A,B,C розміром NxN.

6.Обчислити значення виразу:

!

1 ! ! √ !

7.Зробити дзеркальне відображення одновимірних масивів A,B,C. Масиви різної довжини.

8.Зробити дзеркальне відображення відносно побічної діагоналі в масивах A, B, C. Розмір масивів NxN.

9.Поміняти місцями мінімальний та максимальний елементи в одновимірних масивах A, B, C. Розмір масивів різний.

10.Обчислити значення виразу:

1 ! !

11.Знайти перших десять членів послідовності, яка задана формулою. :

sin ,

12.Знайти максимальне значення серед елементів трьох одновимірних масивів. Масиви різної довжини.

13.Обчислити значення виразу:

21 !,

41

14.Визначити суму усіх елементів, суму елементів побічної діагоналі, суму елементів головної діагоналі матриць A,B,C,D. Розмір масивів різний.

Відшукати значення функції для всіх

 

 

 

,

15.якщо початкова інформація задана таблицею:2.5, 2.71,4.75,7.87,9,10

 

 

x

0

2

4

6

8

10

 

 

 

 

 

 

 

 

 

 

 

 

 

y

1.76

4.89

10.21

8.43

15.6

21.09

 

 

 

 

 

 

 

 

 

 

 

 

Відомо, що:

 

 

 

 

 

 

 

 

,

16.Дана множина точок координатної площини у вигляді двох одновимірних масивів X та Y. Віднайти найдовший та найкоротший відрізок.

17.Обчислити значення виразу:

! , ,

18.Визначити середнє геометричне трьох одновимірних масивів. Вибрати з отриманих значень найменше.

19.Відшукати кількість входжень заданого числа до масиву. Підрахунок потрібно виконати для трьох двовимірних масивів. Результати роздрукувати у вигляді таблиці. Передбачити можливість підрахунку входжень нового числа по вже заданим масивам.

20.Розкласти задане ціле число на прості множники. Множники зберегти у масиві.

21.Обчислити значення виразу:

, ,

42

22.Дана множина точок координатної площини у вигляді двох одновимірних масивів. Віднайти усі точки, які утворюють прямокутний трикутник. Роздрукувати координати точок для кожного трикутника окремо.

23.Дано три одновимірних масиви однакової довжини. Замінити всі нульові елементи у масивах на найбільший за модулем елемент серед трьох масивів.

24.Дано три масиви цілих чисел однакової довжини. Для кожного масиву підрахувати кількість чисел-перевертишів. Роздрукувати ці числа та їх позиції у масиві.

25.Обчислити значення виразу:

!, ,

Стислі теоретичні відомості

Концепція структурного програмування полягає в тому, що будь-яку складну чи громіздку задачу потрібно звести до послідовності простіших підзадач, записати підпрограми для їхнього розв'язування і створити головну програму, яка складається з викликів цих підпрограм.

Застосування підпрограм робить програму структурно більш зрозумілішою, економить пам'ять, дозволяє писати програми великого розміру. В мові Turbo Pascal є два види підпрограм. А саме: процедури та функції. Вони відрізняються між собою описом, способом виклику а також поверненням результату. В головній програмі всі підпрограми розміщуються зразу після описової частини програми до оператора Begin.

43

Опис процедури

PROCEDURE <ім’я_процедури>(

ім’я_параметру1:тип; ім’я_параметру2:тип; VAR ім’я_параметру3:тип);

BEGIN

{ тіло процедури }

END;

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

Процедура повертає значення, що визначається через параметри-змінні, які описуються, як VAR ім’я_параметру3:тип; у списку параметрів. Параметри, що описуються, як ім’я_параметру2:тип; називаються параметрами-значеннями. В розділі локальних даних (може бути відсутнім) описуються тільки ті змінні, які використовуються самою процедурою. Глобальні змінні описуються в головній програмі. Вони можуть бути використаними як в основній програмі так і в підпрограмах. Результати роботи підпрограма повертає до основної програми через формальні параметри та глобальні дані.

Оператор виклику процедури:

Ім’я_процедури(фактичні значення параметрів);

Опис функції

FUNCTION <ім’я_функції>(ім’я_параметру:тип):тип_значення_ функції; BEGIN

{ тіло функції, в кінці тіла обов’язковий оператор ім’я_функції:=значення; }

END;

44

Функція має свій тип - це може бути скалярний тип тобто: цілий, дійсний, логічний, символьний, та рядковий.

Виклик функції можливий через оператор присвоєння або через параметр процедури або іншої функції:

Ім’я змінної:= імя_функції(фактичні значення параметрів); Write (імя_функції(фактичні значення параметрів));

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

Відносно формальних параметрів, локальних та глобальних даних, в функції діють такі ж вимоги, як і в процедурах.

Формальні параметри – це локальні змінні, що використовуються тільки в тілі процедури або функції. Фактичні параметри підставляються під час виклику процедури або функції та змінюють формальні параметри.

Для опису параметрів використовується розділ типів користувача:

TYPE ім’я_типу = стандартний_тип;

Контрольні питання

1.Що таке функція?

2.Що таке процедура?

3.Які розділи можна використовувати в процедурах та функціях?

4.Яка різниця між процедурою та функцією?

5.Для чого використовуються процедури та функції?

6.Який оператор обов’язково повинен бути в тілі функції?

7.Чи можна використовувати назву функцію у тілі функції у якості змінної? Якщо можливо то як саме?

8.Що таке формальні параметри?

9.Що таке фактичні параметри?

10.Яка відмінність між формальними та фактичними параметрами?

45

Комп’ютерний практикум №4

Робота с текстовими рядками

Мета

Засвоїти поняття текстових рядків. Вивчити основні алгоритми для роботи з рядками..

Робоче завдання

Навчитися працювати з текстовими рядками. Розуміти різницю між текстовими рядками та звичайними масивами. Навчитися виконувати прості операції над рядками, такі як, пошук, копіювання підрядка, видалення підрядка, тощо.

Хід роботи

Розв’язати задачу з обов’язковим використанням текстових рядків.

Варіанти завдань

1.Дано рядок, що складається з слів, набраних великими літерами і розділених пробілами (одним або декількома). Перетворити кожне слово в рядку, замінивши в ньому всі наступні входження його першої літери на символ «.» (Крапка). Наприклад, слово «МІНІМУМ» треба перетворити в «МІНІ.У.». Кількість пропусків між словами не змінювати.

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

3.Дана рядок, що містить латинські букви і круглі дужки. Якщо дужки розставлені правильно (тобто кожній відкриваючій відповідає одна закриваюча дужка), то вивести число 0. В іншому випадку вивести або номер позиції, в якій розташована перша

46

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

4.Дано рядок, що зображає двійковий запис цілого додатного числа. Вивести рядок, що зображає десяткову запис цього ж числа.

5.Дано рядок, що зображає арифметичний вираз виду «<цифра> ± <цифра> ± ... ± <цифра>», де на місці знаку операції «±» знаходиться символ «+» або «-» (наприклад, « 4 +7-2-8 »). Вивести значення даного виразу (ціле число).

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

7.Дано рядок-речення. Підрахувати кількість голосних букв, що містяться в рядку.

8.Дано рядок. Перетворити в ньому усі малі літери (як латинські, так і російські) в прописні.

9.Дано рядок, що складається з слів, розділених пробілами (одним або декількома). Знайти довжину найкоротшого слова.

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

11.Дано рядок, що складається з слів, набраних великими літерами і розділених пробілами (одним або декількома). Знайти кількість слів, які починаються і закінчуються однією і тією ж буквою.

12.Дано рядок, що містить принаймні один символ пробілу. Вивести підрядок, розташований між першим і другим пробілом вихідного рядка. Якщо рядок містить тільки один пробіл, то

вивести порожній рядок.

47

13.Дано рядок, що складається з слів, набраних великими літерами і розділених пробілами (одним або декількома). Знайти кількість слів, які містять хоча б одну букву «А».

14.Дана рядок, що містить повне ім'я файлу. Виділити з цього рядка назва першого каталогу (без символів «\»). Якщо файл міститься в кореневому каталозі, то вивести символ «\».

15.Дано рядок-речення. Зашифрувати її, виконавши циклічну заміну кожної букви на наступну за нею в алфавіті і зберігши при цьому регістр букв («А» перейде в «Б», «а» - в «б», «Б» - в «В», «я » - у« а » і т. д.). Букву "ґ" в алфавіті не враховувати. Знаки пунктуації та пробіли не змінювати.

16.Дана рядок, що містить цифри і малі латинські літери. Якщо букви в рядку впорядковані за алфавітом, то вивести 0; в іншому випадку вивести номер першого символу рядка, що порушує алфавітний порядок.

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

18.Дано рядок-речення. Підрахувати кількість знаків пунктуації, що містяться в рядку.

19.Дано рядок-речення. Зашифрувати її, помістивши спочатку всі символи, розташовані на парних позиціях рядка, а потім, у зворотному порядку, всі символи, розташовані на непарних позиціях (наприклад, рядок «Програма» перетвориться в «ргаамроП»).

20.Дано символ C і рядки S, S0. Перед кожним входженням символу C в рядок S вставити рядок S0.

48

21.Дано символ C і рядок S. Подвоїти кожне входження символу C в рядок S.

22.Дано рядок. Якщо він є записом цілого числа, то вивести 1, якщо дійсного (з дробовою частиною) - вивести 2; якщо рядок не можна перетворити в число, то вивести 0. Вважати, що дробовою частина дійсного числа відокремлюється від його цілої частини десяткового точкою «.».

23.Дано рядок, що складається з слів, розділених пробілами (одним або декількома). Вивести рядок, що містить ці ж слова, розділені одним символом «.» (Крапка). В кінці рядка точку не ставити.

24.Дано ціле число N (> 0 ) та рядок S. Перетворити рядок S в рядок довжини N таким чином: якщо довжина рядка S більше N, то відкинути перші символи, якщо довжина рядка S менше N, то в його початок додати символи «.» (Крапка).

25.Дано цілі додатні числа N1 та N2 і рядки S1 і S2. Отримати з цих рядків новий рядок, що містить перші N1 символів рядка S1 і останні N2 символів рядка S2 (у зазначеному порядку).

Стислі теоретичні відомості

Один з різновидів одновимірних масивів - масив символів, або рядок, посідає особливе місце у багатьох мовах програмування. І це не випадково, адже алгоритми перетворення рядків застосовуються для вирішення вкрай широкого кола задач: редагування та перекладу текстів, алгебричних перетворень формул, криптоаналізу, в інформаційно-пошукових системах, електронних словниках тощо. Більш того, відомо, що будь-який алгоритм можна подати у вигляді алгоритму перетворення рядків. У мові Pascal з усіх можливих типів масивів лише для рядків було зарезервовано стандартний структурований тип даних - string, а також розроблено потужну бібліотеку процедур і функцій обробки даних рядкового типу.

49

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]