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

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

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

Одновимірні масиви - Реферат

віку буде у водоймищі навесні через Y років.
5. Черга - це така послідовність, що елементи додаються в її кінець, а вилучаються з її початку. Написати модуль роботи з чергою цілих, поданою в масиві. У модулі повинні бути підпрограми:
1) ініціалізації модуля;
2) скидання черги (вилучення всіх її елементів);
3) обчислення кількості елементів у черзі;
4) перевірки, чи порожня черга;
5) обчислення обсягу вільного місця в черзі (кількість елементів, які можна додати до її заповнення);
6) додавання елемента в кінець черги;
7) добування та вилучення елемента з її початку.
6. Стек, або магазин - це така послідовність, що елементи додаються й вилучаються з її початку. Написати модуль роботи зі стеком цілих, поданим у масиві. У модулі повинні бути підпрограми:
1) ініціалізації модуля;
2) скидання стека (вилучення всіх його елементів);
3) обчислення кількості елементів стека;
4) перевірки, чи порожній стек;
5) обчислення обсягу вільного місця в стеку (кількість елементів, які можна додати до його заповнення);
6) додавання елемента до початку стека;
7) добування й вилучення елемента з початку стека.
7. Масив структур подає кілька послідовностей цілих чисел. Одне поле структури зберігає число, значення іншого поля задає місце цього числа в якійсь із послідовностей. 0 значить, що число не входить у жодну послідовність (структура незайнята), -1 - що структура подає останній елемент послідовності, інше значення в межах індексової множини масиву вказує на структуру, яка подає наступний елемент послідовності.
Означити умови коректності подання та написати процедуру їх перевірки.
Написати процедуру дефрагментації масиву, щоб подання кожної послідовності займало послідовні елементи масиву та між поданнями не було незайнятих структур.
8.* Нехай {a1, a2, … , an} - множина цілих чисел. Написати процедуру пошуку всіх її підмножин, таких, що сума елементів кожної з них дорівнює заданому числу M.
9. Написати процедуру формування масиву, що подає n-й рядок біноміальних коефіцієнтів.
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].
Найпростішими виразами типу рядок є ім'я змінної-рядка, рядкова стала (літерал), або вираз типу char. Над рядками означена бінарна операція катенації (або дописування); її знаком є '+'. Результат одержується дописуванням правого операнда до лівого: значенням виразу '123'+'45' є '12345'. Ціла довжина рядка повертається з виклику функції length із аргументом-рядком: length('123') = 3.
Рядки - єдиний нескалярний тип, змінні та вирази якого можуть бути аргументами стандартних процедур читання та запису. Особливості виконання цих процедур розглядаються в розділі 14. Рядки також можуть повертатися як значення функцій.
Вираз типу "рядок" можна присвоїти змінній-рядку. Його символи присвоюються елементам змінної, починаючи з першого. Якщо довжина значення більша максимально можливої довжини n змінної, то присвоюються лише n перших символів. При цьому довжина значення (або n) неявно присвоюється додатковому компоненту змінної-рядка (як символ нульовому елементу масиву). Наприклад, нехай змінна s означена як string[3]. Після присвоювання
s:='12345'
чотири її компоненти з індексами 0, 1, 2, 3 матимуть значення chr(3), '1', '2', '3', а після
s:='12'
- chr(2), '1', '2', а останній компонент буде недоступним, і його значення буде "сміттям". За останнього значення змінної s виконання оператора
s:=s+'9'
надасть їй значення '129', а оператора
s:='9'+s
- значення '912'. В обох випадках s[0]=chr(3). Після присвоювання s:='' змінна s подає порожній рядок: s[0]=chr(0), а решта елементів недоступні.
Змінити довжину значення можна явно, змінивши нульовий символ. Якщо після s:='' виконати s[0]:=2, то значення компонентів із індексами 1 і 2 зі "сміття" перетворяться на значення-рядок. Присвоювання іншим елементам рядка не змінює довжини його значення.
У типах рядків означено операції порівняння =, , <, … . За означенням, рядки рівні, якщо мають ту саму довжину, і в її межах відповідні символи однакові. У противному разі вони не рівні. Упорядкування рядків залежить від системи програмування.
У мові Турбо Паскаль, якщо length(s1)length(s) з s вилучається підрядок до кінця рядка.
Задачі
10.* Що друкується в результаті виконання програми:
а) program strconc ( input, output );
var a: integer; c: char; s: string;
begin
s :='';
for a := 0 to 2 do
begin
c := chr ( ord ( '0' ) + a ); s := c + s + c; writeln ( s )
end
end.
б) program concstr ( input, output );
var a: integer; c: char; s: string;
begin
s :=''; c:= chr ( 47 );
while length ( s ) < 7 do
begin
c := succ ( c ); s := s + c + s; writeln ( s )
end
end.
11. Застосовуючи операцію "+", функцію length та подання рядка масивом із додатковою змінною, щозадає довжину рядка, написати модуль із такими підпрограмами обробки рядків:
1)* функції eq, ne, lt, le, gt, ge лексикографічного порівняння пари рядків відповідно на =, , <, , >=;
2) процедура addsym вставлення символу в указане місце рядка зі збільшенням його довжини на 1(якщо збільшення неможливе, то останній символ "витісняється");
3)* процедура delsym вилучення символу з указаним номером із рядка зі зменшенням його довжини на 1;
4)* функція substr повернення
Loading...

 
 

Цікаве