Паскаль: масиви, Детальна інформація

Паскаль: масиви
Тип документу: Реферат
Сторінок: 9
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 23.4
Скачувань: 2049
Індексування – це єдина операція над масивами як цілісними об'єктами. Тому обробка масивів описується через обробку їх компонентів. Щоправда, в мові Турбо Паскаль можна присвоювати однотипні масиви. Наприклад, за дії означень

var a, b : array[char] of integer; ch : char;

можна замість циклу

for ch:= chr(0) to chr(255) do b[ch]:=a[ch];

написати лаконічно

b := a;

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

Задачі

1.* Нехай масив має тип array [ 1..20 ] of integer. Написати процедуру читання його перших n елементів, де n\xF0A3 20, за умови:

а) спочатку задається n, потім n значень. За n>20 слід повернутися до читання n.

б) вхідних значень довільна кількість; їх кінець задається у спосіб (2) або (3) з параграфа 5.6. Якщо прочитано 20 елементів, а ознаки закінчення вводу немає, то виконання процедури повинно завершатися.

2.* На вхід програми подається N цілих чисел X1, ... , XN із діапазону 0 ..100; N>0. Написати програму обчислення:

1) їх середнього арифметичного значення M та дисперсії D, тобто середнього арифметичного квадратів різниць між числами та M:

D = ( ( X1 - M )2 + … + ( XN - M )2 ) / N;

2) кількостей повторень K1, K2, … , K100 кожного з чисел 1, 2, … , 100.

Числа надходять у програму

а) від стандартного пристрою введення, тобто клавіатури;

б) від генератора випадкових чисел.

3. Коефіцієнти A0, A1, … , An полінома

A0 + A1*X + … + An*Xn,

де n\xF0A3 99, задаються елементами масиву типу array [0..99] of real. Окрема змінна зберігає степінь полінома n. Написати модуль, що має означення типу поліномів і задає обчислення значення полінома в точці v, похідної полінома (це поліном степеня n-1), суми, різниці та добутку двох поліномів, частки та остачі від ділення полінома на біном x - c.

4.* Риби народжуються навесні й живуть не більше 9,5 років. Навесні на кожну рибину припадає в середньому B новонароджених мальків. Кількість риб незалежно від їхнього віку за рік (від весни до весни) зменшується в D разів. Навесні першого року у водоймище випустили M новонароджених мальків. Написати програму обчислення, скільки риби та якого віку буде у водоймищі навесні через Y років.

5. Черга – це така послідовність, що елементи додаються в її кінець, а вилучаються з її початку. Написати модуль роботи з чергою цілих, поданою в масиві. У модулі повинні бути підпрограми:

1) ініціалізації модуля;

2) скидання черги (вилучення всіх її елементів);

3) обчислення кількості елементів у черзі;

4) перевірки, чи порожня черга;

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

6) додавання елемента в кінець черги;

7) добування та вилучення елемента з її початку.

The online video editor trusted by teams to make professional video in minutes