Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
інформатика.docx
Скачиваний:
1
Добавлен:
27.04.2019
Размер:
85.49 Кб
Скачать

Організація циклів за допомогою оператора безумовного переходу goto

Оператор безумовного переходу goto дозволяє перейти на виконання іншого оператора (поміченого міткою) замість послідовного виконання команд. Синтаксис оператора безумовного переходу такий:

goto <мітка>;

Один із операторів програми повинен бути помічений вказаною міткою, а мітка обов'язково описана в розділі Label програми. Як організувати цикл за допомогою оператора goto, розглянемо на наступному прикладі:

Program Example1; {малює на екрані 10 символів '*'//**********}

Label L1; {описана мітка L1 в розділі Label}

Var i: Integer;

Begin

i:=0;

L1:write('*'); {рядок помічений міткою L1}

i:=i+1; {збільшуємо i на 1}

if i<10 then goto L1;{якщо i<10, то переходимо на

помічений міткою рядок}

End.

Будь-який циклічний процес можна запрограмувати без використання міток, за допомогою операторів циклу for, while та repeat-until.

Приклади програм:

Прикдад 6: Обчислити значення , x - дійсне, n - ціле. Врахувати випадок від'ємного n.

Program pr6;

Var

x, p: Real;

i, n: Integer;

Begin

Readln(n);

p:=1;

if n<0 then begin x:=1/x; n:=-n; end;

for i:=1 to n do

p:=p*x;

Writeln('Значення х^n = ', p);

End.

Приклад 7: Знайти суму всіх парних натуральних чисел, що не перевищують деякого n і не діляться на 13.

Program pr7;

Var i, n, S: Integer;

Begin

Writeln('Введіть n');

Readln(n);

S:=0; i:=2;

while i<=n do

begin

if (i mod 13 <> 0) then S:=S+i; {додаємо до змінної S лише ті числа i, для яких остача від ділення на 13 відмінна від нуля}

i:=i+2; {збільшуєм на 2, так як потрібно переглянути лише парні числа}

end;

Writeln('Значення суми = ', S);

End.

Приклад 8: Написати програму для вгадування числа від 1 до 100 задуманого програмою за допомогою генератора випадкових чисел Random. Функція Random(n) – повертає випадкове число від 0 до n-1.

Program pr8;

Uses crt;{підключаємо модуль crt, для використання функції random}

Var

x, y: Byte;

Begin

Randomize;{для того, щоб значення random не повторювались при новому запуску програми}

x:=Random(100)+1;{повертає число від 1 до 100}

repeat

Writeln('Введіть число');

Readln(y);

If x<y then Writeln(‘Задумане число менше !’) else

If x>y then Writeln(‘Задумане число більше !’);

Until x=y;

Writeln(‘Ви відгадали !’);

End.

Масиви даних

Масивом називається впорядкована скінченна послідовність однотипних даних, які називаються елементами масиву. Тип даних може бути довільним. Порядок елементів в масиві задається набором індексів-чисел, які однозначно визначають місце елемента в масиві та забезпечують прямий доступ до його елементів. Масив характеризується іменем, типом даних, які його утворюють, вимірністю (кількістю індексів) та максимальним значенням кожного індекса. За вимірнісю розрізняють одновимірні (один індекс), двовимірні (два індекси) масиви і т.д.

Для звертання до масиву досить вказати його ім’я, для доступу до його елемента вказують ім’я масиву та, у квадратних дужках, через кому, значення відповідних індексів даного елемента. Наприклад, B[1]-перший елемент масиву B, Y1[i]- i-й елемент масиву Y1, SS[5,2]-елемент двовимірного масиву SS, який стоїть на перетині п’ятого рядка та другого стовпчика.

Будь-який масив, що використовується в програмі, повинен бути описаним в розділі описів прграми.При цьому вказується тип масиву та межі зміни його індексів. Опис має вигляд

<ім´я масиву>: Array [список індексів] of <тип масиву>

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

Приклади опису одновимірних масивів змінних:

Var

A, B: array [1..10] of Real;

{A, B-одновимірні масиви дійсних чисел}

N: array [1..10] of Integer;

{N-одновимірний масив цілих чисел}

P: array [1..10] of String [15];

{P-одновимірний масив рядкових змінних}

Приклади опису одновимірних масивів констант:

Const

X: array [1..10] of real=(1.2,-4.5,0.8,9.1,0.1,-6.4,3.9,-7.6,1.4,3.6);

P: array [1..10] of String [15]=(‘Комаров’,’Степанчук’,…);

Введення значень елементів одновимірного масиву зручно робити так:

For i:=1 no 10 do

Readln(A[i]);

або з підказкою:

For i:=1 no 10 do

Begin

Write(‘Введіть A’,i:1,’=’);

Readln(A[i]);

End;

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

Виведення на екран значень елементів масиву змінних можна виконати так:

For i:=1 to 10 do

Writeln(‘A’,i:1,’=’,A[i]:8:2);

Тепер розглянемо приклади використання масивів при розв’ язку задач.

Приклад 1. Протабулювати функцію в нерівновіддалених точках.

Так як точки нерівновіддалені, то їх абсциси можуть бути задані масивом

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

Program tabul;

Const n=10;

Var

X:array[1..n] of real;

Y:real;

i:integer;

Begin

{Введення елементів масиву Х}

for i:=1 to n do

readln(x[i]);

{Обчислення значень функції}

for i:=1 to n do

begin

y:=x[i]+sin(abs(x[i]));

writeln(y:10:2,x[i]:6:2)

end;

End.

Приклад 2. Нехай в одновимірному масиві { }потрібно обчислити суму додатніх і суму від´ємних елементів масиву. Враховуючи, що нульовий елемент суми не змінює, програма розв´язку даної задачі матиме наступний вигляд:

Program sum;

Const n=20;

Var

X:array[1..n] of real;

sd,sv:real;

i:integer;

Begin

{Введення елементів масиву Х}

for i:=1 to n do

readln(x[i]);

sd:=0; sv:=0;

{Обчислення суми додатніх та від´ємних елементів

масиву x}

for i:=1 to n do

if x[i]>0 then sd:=sd+x[i] else sv:=sv+x[i];

writeln(‘Сума додатніх елементів масиву =’,sd:8:2,

Сума від´ємних елементів масиву=’,sv:8:2);

End.