русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ord(X) - порядковий номер значення змінної X в списку ідентифікаторів. Succ(X) - наступне значення для величини Х.


Дата добавления: 2015-06-12; просмотров: 669; Нарушение авторских прав


Pred(X) - попереднє значення цього типу.

Зверніть увагу на те, що для функції Ord нумерація серед значень йде, починаючи від нуля. Для останнього значення не можна застосовувати функцію Succ, для першого - Pred.

Змінні різних перераховуваних типів несумісні один з одним.

Безліч стандартних порядкових типів в мові Паскаль насправді визначені як перераховувані. Це типи Char, Integer, інші. Достоїнства стандартних порядкових типів лише в тому, що над кожним з них вже визначені специфічні дії. Наприклад, тип Boolean описаний так:

TypeBoolean = (False, True);

Єдина його відмінність від перераховуваних типів, визначуваних програмістом, полягає в тому, що значення типу Boolean можна виводити на екран. Можете перевірити, Ord(False)=0.

Цікаво, що змінна перераховуваного типу може бути лічильником в циклі "з параметром".

Приклад:

Program T1;TypeColors = (Black, Blue, Green, Cyan, Red, Magenta, Brown, Yellow, White);VarC1, C2: Colors;Begin

C1:=Green;C2:=Red;Writeln(Ord(C1), Ord(Succ(C2)))

End.

Під час виконання на екрані з'являться числа "2" і "5", що відповідає номерам значень Green і Magenta.

Наступний тип, який можна визначити в програмі, - тип-діапазон.

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

Формат опису отрезочного типу :Type<Ім'я типу>=<Нач.>.<Кон.>;

Приклади:Type

Age=0.150; {Ціле число в інтервалі від 0 до 150}Lat='A'. 'Z'; {Заголовні букви латинського алфавіту}Month=(January, February, March, April, May, June, July, August, September, October, November, December);Spring=March.May; {Весняні місяці}



Є ще одна можливість визначити новий тип, про існування якої можна було б і здогадатися.

Type<Ім'я типу>=<Ім'я раніше певного або стандартного типу>;

Приклад:TypeNumber=Byte;


Масиви

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

Ви знаєте, що комп'ютер призначений в основному для полегшення роботи людини з великими інформаційними об'ємами. Як же, використовуючи тільки змінні відомих вам типів, зберегти в пам'яті і обробити дані, що містять десяток, сотню, тисячу чисел або, приміром, рядків? Адже такі завдання зустрічаються у будь-якій області знання. Звичайно, можна завести стільки змінних, скільки даних, можна навіть занести в них значення, але тільки представте, якої величини буде текст такої програми, скільки часу знадобиться для його складання, як багато місця для можливих помилок? Природно, про це замислювалися і автори мов програмування. Тому в усіх існуючих мовах є типи змінних, що відповідають за зберігання великих масивів даних. У мові Паскаль вони так і називаються: "масиви".

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

Опис типу лінійного масиву виглядає так:

Type <Ім'я типу>=Array [<Діапазон індексів>] Of <Тип елементів>;

Індексами можуть виступати змінні будь-яких порядкових типів. При вказівці діапазону початковий індекс не повинен перевищувати кінцевий. Тип елементів масиву може бути будь-яким (стандартним або описаним раніше).

Описати змінну-масив можна і відразу (без попереднього опису типу) в розділі опису змінних :

Var <Змінна-масив> : Array [<Діапазон індексів>] Of <Тип елементів>;

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

Var

S, BB: Array [1.40] Of Real;N: Array ['A'.'Z'] Of Integer;R: Array [- 20.20] Of Word;T: Array [1.40] Of Real;

Тепер змінні S, BB і T є масивами з сорока дійсних чисел; масив N має індекси символьного типу і цілочисельні елементи; масив R може зберігати в собі 41 число типу Word.

Єдиною дією, яку можливо зробити з масивом цілком, - привласнення. Для цього прикладу опису згодом допустимий наступний запис: S:=BB;

Проте, привласнювати можна тільки масиви однакових типів. Навіть масиву T присвоїти масив S не можна, хоча, здавалося б, їх описи співпадають, зроблені вони в різних записах розділу опису.

Ніяких інших операцій з масивами цілком зробити неможливо, але з елементами масивів можна працювати точно також, як з простими змінними відповідного типу. Звернення до окремого елементу масиву робиться за допомогою вказівки імені усього масиву і в квадратних дужках - індексу конкретного елементу. Наприклад:R[10] - елемент масиву R з індексом 10.

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

BB[15] - пряма адресація;

BB[K] - непряма адресація через змінну K, значення якої буде використано в якості індексу елементу масиву BB.

Така організація роботи з такою структурою даних, як масив, дозволяє використовувати цикл для заповнення, обробки і роздруку його вмісту.

Якщо ви пам'ятаєте, з такою формою організації даних ми зустрічалися, коли вивчали строкові змінні. Дійсно, змінні типу String дуже близькі за своїми властивостями масивам типу Char. Відмінності в наступному: строкові змінні можна було вводити з клавіатури і роздруковувати на екрані (із звичайним масивом це не проходить); довжина строкової змінної була обмежена 255 символами (255 B), а для розміру масиву критичним об'ємом інформації є 64 KB.

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

Program M1;VarA : Array [1.20] Of Integer;Begin

A[1]:=7; {Заповнюємо масив значеннями (окремо кожен компонент)}A[2]:=32;A[3]:=-70;............. {Трудомістке завдання?}A[20]:=56;Writeln(A[1],A[2],A[3], ?,A[20])

End.

Як би не був примітивний наведений приклад, він все ж ілюструє можливість безпосереднього звернення до кожного елементу масиву окремо. Правда, ніякої переваги масиву перед декількома простими змінними тут не видно. Тому - інший спосіб:



<== предыдущая лекция | следующая лекция ==>
Program Str5;Var | Program M2;Var


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.436 сек.