Константні величини icon

Константні величини




Скачати 105.45 Kb.
НазваКонстантні величини
Дата конвертації07.10.2013
Розмір105.45 Kb.
ТипДокументи

Константні величини.


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

Константна величина (або просто константа) в мові програмування – це іменована величина, яка має значення, що не може змінюватися в процесі виконання програми.

В мові програмування Паскаль константи описуються в розділі опису констант, який починається зі службового слова const, якому слідує перелік відокремлених символами ";" визначень констант користувача:

<Ім'я константи> = <значення>;

де <ім'я константи> – це ідентифікатор, створений за правилами мови програмування.

Наприклад:

const

month = 12;

language = 'Pascal';

symbol = 'S';

Ім'я константи встановлює зв'язок між об'єктом програми і певним значенням. Застосування в тілі програми імені константи означає його контекстну заміну на значення константи.

Константи можна використовувати у арифметичних, логічних виразах тощо при умові пристайності типу даних. Так, для констант вищенаведеного прикладу вважається, що month має цілий числовий тип даних, language – рядковий, symbol – символьний чи рядковий в залежності від контексту.

^ Робота з масивами.


Часто в алгоритмах виникає необхідність обробки великої кількості даних (сотень, тисяч тощо). Описати тисячі змінних – дуже громіздка задача, тому в мовах програмування звичайно вводять спеціальний тип даних масив.

Масив у мові програмування – це сукупність даних одного типу.

Змінні типу масив на мові програмування Паскаль описуються у вигляді:

<ім'я масиву> : array[ПЗ..КЗ] of <тип даних>;

де <тип даних> – це тип змінних, які складають масив; тип даних – це будь-який тип даних, у тому разі і масив;

<ім'я масиву> - це ідентифікатор, він створюється за тими ж правилами, що й імена змінних;

ПЗ – це номер першого елементу масиву, КЗ – номер останнього елементу (тобто загалом масив буде мати КЗ-ПЗ+1 елемент); значення ПЗ та КЗ повинні бути константами одного типу даних, тип даних має бути таким, щоб його значення можна було перелічити (наприклад, цілий або символьний, але не дійсний).

Масиви часто називають ще лінійними таблицями.


Наприклад:

А:array[1..100] of integer;

– масив із сотні цілих чисел;

B:array['a'..'d'] of real;

– масив із 4 дійсних чисел;

C:array[-5..5] of array[0..3] of char;

– масив із 44 змінних символьного типу (11 масивів по 4 елементів в кожному).


Масиви масивів називають ще двомірними масивами або матрицями. Якщо представити двомірний масив у вигляді прямокутної таблиці, то перший номер буде номером рядку масива, а другий – номером колонки.

Вкладену структуру масивів можна продовжувати довше, тоді з'являться тримірні, чотиримірні масиви і так далі.


Для звертання до конкретного елементу масива (для надання їй значення або для його зчитування) після назви масиву в квадратних дужках указується номер елементу, наприклад:

А[3] := 8;

A[X+6] := A[X+7] – 6;

В['c'] := A[4] / 65.89;

С[4][3] := '?';


Двомірні масиви часто зустрічаються в практичних задачах (тримірні та вище – майже ніколи), тому для них у мові програмування Паскаль дозволений скорочений опис:

<ім'я масиву>:array[ПЗ1..КЗ1,ПЗ2..КЗ2] of <тип даних>;

ПЗ1..КЗ1 – це діапазон зміни номеру рядка масиву, а ПЗ2..КЗ2 – діапазон номеру колонки (тобто загалом масив буде мати (КЗ1-ПЗ1+1)(КЗ2-ПЗ2+1) елемент).


Наприклад:

М:array[5..10,1..5] of integer;

– двомірний масив із 30 змінних цілого типу (6 рядків по 5 елементів в кожному).

М[6,3] := 8;

M[[g+1,g div 4] := g–7;


Стандартних алгоритмів роботи з масивами.


Існує багато алгоритмів обробки масивів. Нижче наведені деякі найбільш поширені з них. Обробка буде проводитися на прикладах масивів:

A:array[1..100] of integer;

М:array[1..20,1..10] of integer;


1. Введення масиву з клавіатури.


for і:=1 to 100 do

begin

write('Введіть ',і,'-ий елемент:');

readln(A[i]);

end;


for і:=1 to 20 do

for j:=1 to 10 do

begin

write('Введіть ',і,' ',j,' елемент:');

readln(M[I,j]);

end;


2. ^ Виведення масиву на екран.


for і:=1 to 100 do

write(A[i]:4);

for і:=1 to 20 do

begin

for j:=1 to 10 do

write(M[i,j]:4);

writeln;

end;


3. Обчислення суми елементів масиву.


s:=0;

for і:=1 to 100 do

s:=s+A[i];


s:=0;

for і:=1 to 20 do

for j:=1 to 10 do

s:=s+M[i,j]:4;


Для підрахунку добутку чисел у текст фрагменту необхідно внести такі зміни: значення змінної s спочатку повинно дорівнювати 1; наступне значення змінної s можна одержати через попереднє шляхом помноження s:=s*A[i] (або M[i,j]).


4. ^ Обчислення кількості елементів масиву за ознакою (наприклад, кількості парних елементів).


k:=0;

for і:=1 to 100 do

if A[i] mod 2 = 0 then

k:=k+1;


k:=0;

for і:=1 to 20 do

for j:=1 to 10 do

if M[i,j] mod 2 = 0 then

k:=k+1;


Для обчислення кількості елементів за іншою ознакою змінюється тільки умова.


5. ^ Знаходження найбільшого елементу масива.


max:=A[1];

for і:=2 to 100 do

if A[i]>max then

max:=A[i];


max:=M[1,1];

for і:=1 to 20 do

for j:=1 to 10 do

if M[i,j]>max then

max:=M[i,j];


Для знаходження найменшого з елементів масиву в умові треба замінити знак більше ">" на менше "<".


6. ^ Пошук заданого елементу у масиві (лінійний пошук).


Метод лінійного пошуку заключається в тому, що перевіряються всі елементи масиву з початку до кінця по черзі. Якщо при перевірці знаходиться елемент, перевірка зупиняється, інакше вона доходить до кінця масиву. Лінійний пошук – не дуже ефективний спосіб пошуку елементу в масиві, але для довільного масиву цей спосіб єдиний.

Приклад фрагменту програми:

i:=1;

while (i<=100) and (A[i]<>x) do

i:=i+1;

if i=101 then

write('Елемент не знайдено.')

else

write('Елемент знаходиться за номером:',i);


При реалізації лінійного пошуку у двомірному масиві його зручно перевіряти за допомогою однієї змінної, яка буде пробігати значення від 1 до N*M, де N та M – це розміри двомірного масиву. Номер рядка можна обчислити через і по формулі:

(i - 1) div 10 + 1,

номер колонки:

(i - 1) mod 10 + 1.


Приклад фрагменту програми:

i:=1;

while (i<=200) and

(M[(i-1) div 10+1, (i-1) mod 10+1]<>x) do

i:=i+1;

if i=101 then

write('Елемент не знайдено.')

else

write('Елемент знаходиться за номером:',

(i-1) div 10+1,' ',(i-1) mod 10+1);


Для заданого масиву існує три можливих види пошуку:

  • знаходження номеру першого входження заданого елементу в масив (приклад фрагменту програми наведено вище);

  • знаходження номеру останнього входження заданого елементу в масив (пошук треба виконувати, починаючи з кінця масиву до його початку);

  • знаходження номерів всіх входжень заданого елементу в масив.

Алгоритм пошуку всіх елементів в масиві ілюструє метод прапорця.

"Прапорець" – це змінна, яка може набувати одного з двох значень, звичайно це true та false. Таку змінну доцільно застосовувати в циклічних алгоритмах як сигнал виконання певної умови. До початку роботи циклу "прапорцю" надається значення false. У тілі циклу розміщується умовний оператор, в якому при виконанні умови, що перевіряється, значення змінної – "прапорця" змінюється на true ("прапорець" піднято). Якщо, по закінченні роботи циклу, значення "прапорця" дорівнює false, то умова в тілі циклу не виконалася жодного разу.

Приклад фрагменту програми:

flag:=false;

for i:= to 100 do

if x=A[i] then

begin

write('Елемент знаходиться за номером:',i);

flag:=true;

end;

if not flag then

write('Елемент не знайдено.');


7. ^ Пошук заданого елементу у впорядкованого масиві (двійковий пошук).


Суттєво скоротити кількість операцій, які необхідні для знаходження заданого числа у впорядкованому (наприклад, за зростанням) масиві, дозволяє алгоритм так званого двійкового пошуку (його називають також алгоритмом бінарного пошуку або алгоритмом ділення навпіл). За цим алгоритмом задане число порівнюється зі середнім за номером елементом. Якщо серединне число виявляється більшим за задане, то задане число має знаходитися у першій половині масиву, якщо менше – у другій. Таким чином, за одне порівняння діапазон пошуку зменшується в два рази. Указана процедура повторюється далі для зменшеного діапазону пошуку, і так далі до тих пір, поки довжина діапазону не зменшиться до 1.

Двійковий пошук дозволяє значно скоротити кількість необхідних для пошуку перевірок, наприклад, для масиву з 1000 чисел задане число буде знайдено щонайбільше за 10 порівнянь.

Приклад фрагменту програми:


l:=1; {ліва границя діапазону пошуку}

r:=n; {права границя діапазону пошуку}

fl:=false; {ознака того, що число знайдене}

repeat

m:=(l+r)div 2; {обчислення середини діапазону}

if x=A[m] then fl:=true; {число знайдено}

if x
else l:=m+1; {більше, зміна лівої границі}

until (l>r) or fl; {число знайдено або

діапазон вичерпався}

if fl then writeln(’Число знаходиться на місці ’,m)

else writeln(’Такого числа немає.’)


З використанням двійкового пошуку можна швидко знайти номер одного із входжень заданого елементу в масив. Якщо в упорядкованому масиві таких елементів декілька, то вони стоять підряд. Тож знайти всі входження заданого елементу – це значить знайти діапазон. Знайшовши одне входження елементу двійковим пошуком, можна від нього зміщуватися ліворуч, доки не буде знайдений початок діапазону, потім праворуч до кінця діапазону.


8. ^ Сортування (упорядкування) масиву.


Сортування – дуже розповсюджений процесів обробки даних.

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

На наш час створено десятки методів сортування, які розрізняються за швидкістю, простотою тощо. Тут будуть розглянуті три прості (а значить, і малоефективні) методи.


Розглянемо сортування методом обміну (або методом "бульбашки"), наприклад, за неубуванням.

Опис методу:

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

Приклад фрагменту програми:

for i:=1 to 99 do

{i - номер перегляду масива,

перегляд здійснюється від позиції 1 до n-i+1}

for j:=1 to 100-i do

if A[j]>A[j+1] then {обмін}

begin

t:=A[j+1];A[j+1]:=A[j];A[j]:=t;

end;

Для упорядкування масиву за незростанням треба замінити в умові знак більше ">" на менше "<" (на останню позицію буде переміщуватися найменший елемент).

Сортування обміном має ефективність приблизно в два рази нижче, ніж наведений нижче метод вставляння через велику кількість обмінів. Алгоритм обміну можна покращити, якщо на кожному перегляді масиву перевіряти, чи не є весь масив вже відсортованим. Це можна реалізувати за допомогою "прапорця" (див. вище "Лінійний пошук").

Приклад фрагменту програми:

i:=1; flag:=true;

while flag do

begin

flag:=false;

for j:=1 to 100-i do

if A[j]>A[j+1] then

begin

t:=A[j+1];A[j+1]:=A[j];A[j]:=t;

flag:=true;

end;

i:=i+1;

end;


Розглянемо сортування методом вибору, наприклад, за незростанням.

Опис методу:

Серед всіх елементів масиву шукається найбільший елемент, який потім міняється позиціями з першим. Далі від другої позиції до останньої шукається найбільший елемент та міняється позиціями з другим. Третій за розміром елемент переміщується на третє місце і так далі.

Приклад фрагменту програми:

for i:=1 to 99 do {і – номер перегляду масива}

begin

mi:=i; {в mi зберігається номер найбільшого елемента}

for j:=i+1 to 100 do

if A[j]
t:=A[i];A[i]:=A[mi];A[mi]:=t;

end;


Для упорядкування масиву за неубуванням треба замінити в умові знак менше "<" на більше ">" (на першу позицію буде переміщуватися найменший елемент).

Ефективність методу вибору дещо нижча за ефективність методу вставляння, але значно перевищує ефективність методу обміну.


Розглянемо сортування методом вставляння, наприклад, за незростанням.

Опис методу:

Порівнюються перші два елементи масиву А[1] и А2: якщо А[1]<А[2] то елементи міняються позиціями. Таким чином, отримаємо перші два елементи масиву упорядкованими. Далі береться А[3] та вставляється в упорядковану послідовність попередніх елементів так, щоб упорядкування не порушилось. Цей процес продовжується до останнього елементу масиву.

Приклад фрагменту програми:

for i:=1 to 99 do

begin

j:=i; t=A[j+1];

while(A[j]>t)and(j>=1) do

begin

A[j+1]:=A[j];

j:=j-1;

end;

A[j+1]:=t;

end;

Для упорядкування масиву за неубуванням треба замінити в умові знак більше ">" на менше "<".



Схожі:

Константні величини iconОдиниці вимірювання величин. Співвідношення між одиницями вимірювання однієї І тієї ж величини значення десяткових префіксів
Для позначення одиниць різних величин використовуються префікси, які показують, у скільки разів збільшилась чи зменшилась основна...
Константні величини iconКонспект уроку математики
Мета: освітня: закріпити свідоме розуміння правил знаходження невідомого члена пропорції пропорційної залежності при розв’язуванні...
Константні величини iconТеоретичні питання
Тому для визначення похибок вимірювань замість істинного використовують умовно істинне (дійсне) значення фізичної величини. Дійсним...
Константні величини iconНомінація Величини й одиниці вимірювання

Константні величини iconКонтрольна робота "табличні величини"
Прізвище та ім'я Клас Дата Оцінка
Константні величини iconДокументи
1. /Задач_ на рядков_ величини.doc
Константні величини iconВеличини приросту індексу споживчих цін для проведення індексації грошових доходів населення

Константні величини iconЗагальна к-ть балів: Інструкції до виконання роботи
Величини, розмірності, співвідношення між одиницями вимірювання. Природознавство, 5 клас. Самостійна робота. Варіант ІІ
Константні величини iconЗагальна к-ть балів: Інструкції до виконання роботи
Величини, розмірності, співвідношення між одиницями вимірювання. Природознавство, 5 клас. Самостійна робота. Варіант І
Константні величини iconЗразок виконання завдання з дисципліни “Теорія ймовірностей та математична статистика”
За наведеними результатами 50-ти вимірів значень деякої неперервної випадкової величини потрібно
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи