p>
Над логічними змінними можливі наступні операції: p>
And (и) p>
Or (або) p>
Not (не) p>
Ord (false) = 0 Ord (true) = 1 p>
Символьний тип.
Chor - служить для зберігання одного символу (1 байт) p>
(літера, цифра, розділові знаки, спеціальні символи, безпосередньо код). Значення символьних змінних задаються в апострофа - "
А "," 9 ". P>
Рядок.
String - рядкові змінні (255 байт). p>
Це рядок символів ув'язнених у апострофа.
Речовий тип.
Real - служить для зберігання дійсних чисел (6 байт) p>
(11 знаків після коми).
Можуть бути задані у формі з: p>
1. фіксованою точкою p>
0,5; 5,0; -133,15 p>
плаваючою точкою 1200 = 120,0 Е +1 = 12,0 Е +2 = 1,2 Е +3 = 12000,0 Е-1 (показник ступеня 38) p>
Використовується для зображення дуже великих або дуже маленьких чисел. p>
Стандартні
функції.
sin (x) sin x (вещ .) p>
cos (x) cos x (вещ.) p>
arctg (x) arctg x (вещ.) p>
exp (x) ex (вещ.) p>
ln (x) ln x (вещ.) p>
pi (x) 3.14 (вещ.) p>
abs (x) (вещ.) p>
sqr (x) x2 (вещ.) p>
sqrt (x) (вещ.) p>
trunc (x) ціла частина числа, дробова залишається без заокруглений. (цел) p>
trunc (3.7) = 3 trunc (3.1) = 3 trunc (-3.7) = -3 p>
frag (x) дрібна частина числа (вещ.) p>
int (x) найближчим найменше ціле число (цел.) p>
int (3.4) = 3 int (3.7) = 3 int (-3.4) = -4 p>
round (x) найближчим ціле число (матем округ-е) (цел.) p>
round (3.14) = 3 round (3.74) = 4 round (-3.14) = -3 p>
random (x) генератор випадкових чисел (вещ.) p>
від 0 до x; якщо x - відсутня, діапазон чисел 0 1 p>
odd (x) повертає TRUE, якщо x - число непарне (лог.) p>
Аргументом стандартної функції може бути змінна, константа, вираз, що стоїть праворуч від імені в дужках. Сприймається в
радіанах для тригонометричних функції. p>
Структура програми на Паскалі. b>
Програма - це
послідовність інструкцій комп'ютера призводять до кінцевого результату за
кінцеве число кроків.
Програма, написана на алгоритмічній мові, перекладається на мову машинних команд: p>
program b> <ім'я> ; b> p>
<описова частина>;
<розділ функцій і процедур> ; b> p>
begin p>
<виконавча частина> ; b> p>
end. p>
Зарезервовані слова: p>
program - завжди перший; p>
begin - початок; p>
end - кінець. p>
<ім'я> - присвоюється укладачем програми (будується за правилами змінних). p>
Описова частина програми.
Всі змінні, використовувані в програмі повинні бути
описані. p>
Опис починається зі службового слова var. b> p>
program ff; p>
var p>
i, n: integer; x, y, z: real; p>
begin; p>
......... p>
end. p>
Список змінних від типу відділяється ": b>", опис одне від іншого - "; b>", список змінних - ", b>". p>
Мітки у програмі описуються за допомогою службового слова: label. b> p>
Константи: const b>. p>
Користувацький тип даних: type b>. p>
Виконавча частина програми.
Окремі інструкції, що входять до програми, називаються операторами. Оператори відокремлюються один від іншого - "; b >". p>
Бувають трьох типів: p>
порожній оператор; p>
простий оператор; p>
складовою оператор. p>
Складовою оператор: p>
begin p>
<оператор 1> ; b> <оператор 2> ; b> ... p>
end ; b> p>
Оператори
Паскаля.
Оператор присвоєння. b> p>
": =" - Знак присвоєння.
<мінлива> : = b> <вираження> ; b> p>
b> Читається Одинокова.
Приклад: p>
; p>
Паскаль не допускає змішаних виразів. Зліва - дійсне, праворуч - ціле вираз (допустимо). p>
Якщо у виразі є хоча б один речова змінна, все вираз буде речовим. p>
Оператори вводу-виводу. b> p>
READ (<список - введення>) p>
- ім'я оператора введення; p>
- список змінних, розділених комами. p>
WRITE (<список - виведення>) p>
- ім'я оператора виводу; p>
- список змінних виводу, розділених комами. p>
READLN (a, b, c) - після вода значень a, b і c курсор переміщається на наступний рядок. p>
WRITELN - без списку висновку можна використовувати для пропуску рядків при оформленні виводу результатів. p>
У операторі WRITE можна використовувати формат виведення значень змінних. p>
Writeln ( '_ a =', a: 8:3, '_ b =', b: 4); p>
при a = 341.154, b = 2 p>
_ a = _ 341.154 _ b = _ 144 p>
при a = 1.3, b = 144 p>
_ a = _ _ _ _ 1.300 b = _ 144 p>
Program _ prim; p>
сlrscr - оператор гасіння екрану; p>
var a, b: integer; p>
x, y: real; p>
begin writeln ( 'введіть a, b'); p>
readln (a, b); p>
x: = a + b; y: = a/b; p>
writeln ( 'x =', x: 8:3, '_ _', 'y =', y: 8:3) p>
end. p>
Ключові слова горять яскравіше, ніж весь текст програми. p>
Оператори умови і переходу. b> p>
Строки програми на Паскалі не нумеруються. Окремі рядки в програмі можуть мати мітки, до яких можна
переходити. p>
Мітки повинні бути описані за допомогою ключового слова p>
label N1, N2 ...; p>
в описовій частині програми. p>
N1, N2, ... - ідентифікатор або ціле число (позитивне) (0 9999). p>
Оператор: GO b> TO b> N; b>-передає управління рядку з міткою N. p>
program pr; p>
label 3; p>
var p>
x, y: real; p>
begin p>
3: readln (x, y); p>
go to 3; p>
end. p>
Оператор : b> IF <умови> b> THEN b> P1 [ b> ELSE b> < b> P2
]; b> якщо якось інакше (не обов'язкова частина) p>
<умова> - логічне вираження; p>
P1, P2 - простий або складової оператори. p>
З цього оператора: p>
якщо <умова> - "істинно", то виконується P1 (true); p>
- "помилково", то виконується P2 (false). p>
Якщо ELSE - відсутня і <умова> - "помилково", то управління передається наступному
оператору. p>
Роздрукувати найбільша з двох чисел: p>
IF a> b THEN write (a) ELSE write (b). p>
Обчислити значення функції: p>
Y = p>
If x> = 0 then y: = sin (x) else y: = - sin (x); p>
Логічні вирази можуть бути складними, складеними за допомогою логічних операцій: AND (и) OR (або) NOT (не). p>
IF (a> b) and (a> c) THEN writeln ( 'a =', a) p>
IF a <0 THEN p>
складовою
оператор (P1) p>
ELSE p>
cоставной оператор (P2) p >
Паскаль допускає вкладеність операторів IF. p>
IF n> 0 THEN p>
IF (m div n)> n THEN p>
m: = mn p>
ELSE p>
m: = m + n; p>
ELSE - завжди відноситься до найближчого оператора IF. p>
Якщо n> 0 і (m div n)> n буде виконано m: = mn. p>
Якщо n> 0, але (m div n) n буде виконано m: = m + n. p>
Якщо n 0 - перехід до наступного оператору . p>
p>
Завдання: p>
Обчислити: y = p>
Program fun; p>
var p>
x, y: real; p>
begin p>
writeln ( 'введіть x'); readln (x); p>
if x> 90 then writeln ( 'функція не визначена') p>
else begin p>
if x <0 then y: = 0 p>
else y: = SIN (x * PI/180); p>
writeln ( 'y =', y: 8:3); p>
end; (складової оператор) p>
end. p>
Оператор CASE ... b> OF; b> цей оператор призначений для заміни конструкцій з вкладених IF. p>
Структура: p>
CASE N of p>
N1: P1; p>
N2: P2; p>
NN: PN; p>
[else P;] - необов'язкова частина оператора. p>
end; p>
де N - цілочисельних змінна, або вираз цілочисельного типу. p>
N1, N2, ... NN - можливі значення змінної N. p>
P, P1, P2, ... PN - прості або складені оператори. p>
З цього оператора: p>
якщо значення - N = N1, то виконується P1 (після чого управління
передається оператору наступному за оператором case ... of); p>
якщо значення - N = N2, то виконується P2, інакше P. p>
p>
Якщо структура else - відсутня і N - не приймає жодного з перерахованих значень, управління
передається наступному за case ... of оператору. p>
Циклічні обчислювальні процеси. b> p>
Процеси, в яких низка дій повторюються багато разів з одним і тим же математичним залежностей, називаються циклічними. p>
Оператори циклу. b> p>
При організації циклів необхідно: p>
- визначити параметр циклу і його початкове значення; p>
- змінювати значення параметра циклу на кожному кроці ітерації; p>
- перевірка на вихід з циклу. p>
FOR i: = N TO K DO P p>
(для) (до) (виконувати) p>
де i - параметр циклу; p>
N, K - його початкове і кінцеве значення; p>
P - простий або складової оператор; p>
I, N, K - змінні або константи цілого типу. p>
Крок зміни i - дорівнює 1. p>
Якщо K
FOR i: = N DOWNTO K DO P p>
Розглянемо приклад. p>
Обчислити p>
S = 1 +1/2 +1/3 + ... +1/50 p>
Виділимо змінну для накопичення суми - Sum. Значення цієї змінної необхідно попередньо обнулити. Паскаль не виробляє попередньої,
початкової, ініціалізації змінних. Тому сума може бути перекручена без Sum = 0. P>
Program sum; p>
Var p>
i: integer; p>
sum: real; p>
begin p>
sum: = 0; p>
for i: = 1 to 50 do p>
Sum: = sum + 1/i; p>
Writeln ( 'сума =', Sum); p>
end. p>
Оператор for застосовують у тих випадках, коли значення параметра циклу цілі і змінюються з
кроком 1, -1. p>
Оператор циклу з постусловіем. b> p>
REPEAT p>
- тіло циклу p>
UNTIL <умова>; p>
де P1, P2, ... PN - будь-які оператори. p>
З цього оператора виконується "тіло циклу", а потім перевіряється <умова>, якщо воно не виповнилося, цикл повторюється. І
так до тих пір, поки <умова> не буде виконано. p>
Необхідно пам'ятати: якщо <умова> відразу виповнилося, цикл буде пройдений один раз. p>
Обчислити: y = a sin (x), x = , = 0.2 p>
program fun; p>
var p>
y, a, x: real; p>
begin p>
x: = 0; read (a) p>
repeat p>
y: = a * sin (x); writeln (y, x); x: = x + 0.2; p>
until x> 1; p>
end. p>
Дії, які підкреслені, необхідні для організації циклу. p>
Оператор циклу з передумовою. b> p>
WHILE <умова> DO P; p>
Де P - простий або складової оператор. p>
З цього оператору перевіряється <умова> і, якщо воно виконується, то виконується - P,
після чого знову перевіряється <умова> і т. д. p>
Отже, P - виконується до тих пір, поки виконується <умова>. p>
Якщо умова жодного разу не виповнилося, P - ігнорується, керування передається наступному оператору. p>
Обчислити: y = sin x, x , x , - ввести з
клавіатури. p>
Підрахувати середнє позитивне і негативне середнє значення функції. p>
Program cikl; p>
var p>
y, x, x k, d x: real; p>
n, k: integer; SP, n - середня та кількість позитивних значень. p>
SP, S0: real; S0, k - середнє і кількість негативних значень. p>
begin p>
writeln ( 'введіть x - початкова, x - кінцеве, dx - крок'); p>
read (x, x k, d x); p>
SP: = 0; S0: = 0; n: = 0; k: = 0; p>
While x <= kx do. p>
P Складовою
оператор. p>
if n = 0 then writeln ( 'Негативні відсутні') p>
else writeln ( 'Середні негативні =', SP/n); p>
if k = 0 then writeln ( 'Позитивні відсутні') p>
else writeln ( 'Середні позитивні =', S0/k); p>
end. p>
Масиви
p>
Завдання 1: p>
Скласти програму підрахунку суми і твори елементів одновимірного масиву. p>
Program b> sum-prois; p>
uses crt; p>
const p>
n = 100; p>
var p>
a: array [1 ... n] of real; p>
n, k, i: integer; p>
p, s: real; p>
begin p>
clrscr; s: = 0; p: = 1; p>
writeln ( 'введіть розмір масиву'); readln (nk); p>
writeln ( 'введіть елемент масиву'); p>
for i: = 1 to nk do p>
readln (a [i]); p>
for i: = 1 to nk do p>
begin p>
s: = s + a [i]; p>
p: = p * a [i]; p>
end; p>
writeln ( 'Сум. =', s, 'произ. =', p); p>
end. p>
Необхідно підготувати осередку: p>
- при накопичення суми - s = 0 p>
- при підрахунку твори - p = 1. p>
Завдання розрахована на обробку масиву з максимальним розміром 100 елементів (n = 100). p>
Конкретний розмір масиву вводиться з клавіатури (nk). p>
При кожному проходженні через цикл з клавіатури вводиться тільки один елемент масиву. Два
циклу for можна було об'єднати в один. p>
Двовимірні масиви. b> p>
Двовимірний масив можна представити у вигляді матриці. . p>
Опис двовимірних масивів: p>
a - ім'я масиву; p>
n, m - кількість рядків і стовпців у масиві. p>
Розмір масиву - n m. p>
a [i, j] - елемент що стоїть на перетині i-го рядка і j-го стовпця. p>
Кожен елемент визначається двома індексами. p>
a [i, i] - елементи головної діагоналі. p>
a [i, 2] - елементи другого стлбца. p>
Завдання 1. p>
Скласти програму підрахунку суми елементів над головною діагоналлю в двовимірному масиві. p>
Program b> matrix; p>
const p>
n = 10; p>
m = 10; p>
var p>
a: array b> [1 ... n, 1 ... m] of b> real; p>
i, j: integer; n, m: integer; p>
s: real; p>
begin s: = 0; p>
writeln ( 'введіть розмір масиву m, n); p>
readln (n, m); p>
(Введення масиву:) p>
for i: = 1 to n do p>
for j: = 1 to m do p>
readln (a [i, j ]); p>
for i: = 1 to n do p>
for j: = i b> to m do p>
s: s + a [i, j]; p>
writeln ( 's =', s); p>
end. p>
Для введення елементів масиву використовуються вкладені цикли. p>
i - параметр зовнішнього циклу; p>
j - параметр внутрішнього циклу; p>
i - змінюється повільніше j. p>
Елементи масиву необхідно вводити по рядках. p>