WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Програмування: масиви та рядки - Реферат

Програмування: масиви та рядки - Реферат


Реферат з інформатики
Програмування: масиви та рядки.
1. Одновимірні масиви
Масив у програмуванні - це тип структури даних, що має складені значення.
Якщо треба об'єднати кілька сотень або тисяч значень,що мають один тип, нам потрібні структури, в яких змінні однотипні й відрізняються номерами.
Масив - це змінна, утворена послідовністю змінних, причому:
усі вони (компоненти, або елементи масиву) мають той самий тип;
кожний компонент має свій номер у послідовності (індекс) і відрізняється ним від інших елементів(ідентифікується);
множина індексів (індексова множина) скінченна й зафіксована в означенні масиву та в процесі виконання програми не змінюється;
можливість обробки компонента, або його доступність, не залежить від його місця в послідовності (елементи рівнодоступні).
Кількість елементів індексової множини називається довжиною масиву.
Подивимося на масив із точки зору математики. Нехай компоненти масиву мають тип T, а індекси - тип I.Значенням змінної-масиву є послідовність значень типу T, занумерованих значеннями типу I. Множина всіх таких функцій утворює носій для типу, який у мові Паскаль означається виразом вигляду
array [I ] of T.
Наприклад, масив, у якому треба зберігати коефіцієнти полінома, міг би мати тип array[0..101]of real. У такому масиві 102 компоненти дійсного типу із номерами від 0 до 101. Або масив, у якому треба зберігати кількості символів, прочитаних десь, міг би мати тип array [ char ] of integer. У ньому 256 цілих змінних, а їх номерами є символи.
Типом компонентів може бути довільний тип, окрім файлів. Типом індексів I - будь-який
перелічуваний тип. Щоправда, система Бор ланд-Паскаль не дозволяє вказувати типи integer та word, а тим паче тип longint, як типи індексів. Там занадто багато елементів. Але це не страшно, оскільки система дозволяє створювати масиви навіть із ще більшою кількістю елементів.
Якщо тип індексів означається виразом у дужках [ ] як діапазон, то, зрозуміло, там пишуться дві сталі, і ніяких змінних там не може бути.
В означенні масивів як змінних немає ніяких особливостей. Наприклад, ми можемо написати як
type ART=array[0..101]of real; var A : ART;
так і
var A : array[0..101]of real;
В обох випадках змінна A складається зі 102 дійсних змінних. Вони ідентифікуються виразами A[0], A[1], … ,A[101]. Або виразами вигляду A[індексовий-вираз], де індексовий-вираз має значення від 0 до 101.
. Нехай ім'я означено як масив типу array[I] of T, E - вираз типу I. Тоді вираз ім'я[E] задає елемент цього масиву, тобто змінну типу T, номер якої в масиві є значенням виразу E.
Вирази з операцією [] допустимі в операторах скрізь, де вживається змінна відповідного типу, за винятком того, що елемент масиву не може бути параметром циклу. Наприклад, якщо діє означення типу ART та змінної A, то можна писати щось на зразок
A[1] :=1; A[2] := A[1]+2;
for k := 3 to 101 do readln(A[k]);
writeln(A[1]+A[2]+A[3]+A[4]).
Індексування - це єдина операція над масивами як цілісними об'єктами. Тому обробка масивів описується через обробку їх компонентів. Щоправда, в мові Бор ланд-Паскаль можна присвоювати однотипні масиви. Наприклад, за дії означень
var a, b : array[char] of integer; ch : char;
можна замість циклу
for ch:= chr(0) to chr(255) do b[ch]:=a[ch];
написати лаконічно
b := a;
Задачі
1)На вхід програми подається N цілих чисел X1, ... , XN із діапазону 0 ..100; N>0. Написати програму обчислення:
- їх середнього арифметичного значення M та дисперсії D, тобто середнього арифметичного квадратів різниць між числами та M:
D = ( ( X1 - M )2 + … + ( XN - M )2 ) / N;
- кількостей повторень K1, K2, … , K100 кожного з чисел 1, 2, … , 100.
Числа надходять у програму
а) від стандартного пристрою введення, тобто клавіатури;
б) від генератора випадкових чисел.
2). Черга - це така послідовність, що елементи додаються в її кінець, а вилучаються з її початку. Написати програму роботи з чергою цілих, поданою в масиві.Потрібно забезпечити:
- скидання черги (вилучення всіх її елементів);
- обчислення кількості елементів у черзі;
- перевірки, чи порожня черга;
- обчислення обсягу вільного місця в черзі (кількість елементів, які можна додати до її заповнення);
- додавання елемента в кінець черги;
- добування та вилучення елемента з її початку.
3).Стек, або магазин - це така послідовність, що елементи додаються й вилучаються з її початку. Написати програму роботи зі стеком цілих, поданим у масиві. Потрібно забезпечити:
- скидання стека (вилучення всіх його елементів);
- обчислення кількості елементів стека;
- перевірки, чи порожній стек;
- обчислення обсягу вільного місця в стеку (кількість елементів, які можна додати до його заповнення);
- додавання елемента до початку стека;
- добування й вилучення елемента з початку стека.
2. Рядки
Рядок у загальному значенні цього слова - скінченна послідовність символів. У програмуванні для подання рядків використовують масиви символів.
Типи рядків мають свої специфічні операції, не означені над масивами символів, тобто рядки та символьні масиви є цілком різними типами.
Змінна-рядок є масивом символів разом із додатковим компонентом. В означенні типу задається довжина n послідовності символьних компонентів, індексованих цілими 1,…,n. Додатковий компонент указує довжину послідовності символів, поданої в масиві. Ця довжина значення-рядка може змінюватися в процесі виконання програми від 0 до довжини масиву n.
У мові Бор ланд-Паскаль тип рядків задається виразом вигляду
string[n],
де n - ціла стала з діапазону 1..255 (можливо, іменована). Наприклад, string[80]. Змінна такого типу є масивом символів із індексами від 0 до n. Значення-рядок подається змінними з індексами від 1 до n, змінна з індексом 0подає довжину рядка. Точніше, якщо її значення c, то m=ord(c) розглядається як довжина значення-рядка. У процесі виконання програми вона може мінятися від 0 до n.
Елементи масиву з індексами від m+1 до n недоступні; їх значення можна розглядати як "сміття". Спроба присвоїти щось цим елементам або взяти їх значення призведе до аварійного завершення програми.
Оскільки невід'ємна довжина значення-рядка подається в одному байті, вона не може перевищувати 255. Звідси "маємо, те що маємо", тобто обмеження 255 на довжини рядків. Ім'я типу string еквівалентне виразові string[255].
Loading...

 
 

Цікаве