Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторки програмування.doc
Скачиваний:
12
Добавлен:
16.05.2015
Размер:
385.02 Кб
Скачать

{Головна програма}

begin

Repeat

ClrScr;

Input(inv,NN,N); {введення конкретної довжини масиву N<=NN }

{введення числа від’ємних елементів масиву K<=N, що треба підрахувати}

Input(invK,N,K);

InputVector(N,A);

OutputVector(N,A);

Writeln('Сума перших K від’ємних елементів масиву A=',

Summa(k,N,A):15:0);

Writeln('Повторити? (y/n)');

ch:=ReadKey;

Until (ch='n') or (ch='N');

end.

Для одержання результату в контрольній роботі №3 (варіант 60) необхідно ввести фактичне значення довжини масиву N (1<=N<=NN), значення числа від’ємних елементів масиву ДО (K<=N) , що треба підрахувати, і

значення елементів вихідного масиву A[i], i=1,...,N (з перевіркою на діапазон LONGINT).

Ім'я програми - WORK3.

  • У фігурні дужки включені директиви компілятора (див. Дод. 8) для обробки дійсної суми типу EXTENDED:

  • $N+ - використовувати числовий співпроцесор (реалізувати операції з крапкою, що плаває, апаратно);

  • $E+ -включити режим програмної эмуляції співпроцесора.

  • У поле опису бібліотек, констант і змінних завдань стандартний модуль CRT, визначені константи: NN, inv, inv, inv1, inv4, inv5.

  • Описано власний тип даних Array для опису масиву довжиною NN, елементи якого мають тип LongInt, - Type Array=Array[1..NN] of Longint;

  • Описано змінні k, N:Integer і масив A:Array; задана символьна змінна ch.

Далі йдуть описи процедур Input, InputVector, OutputVector, і функції Summa.

  • Записано головну програму, що викликає потрібні процедури і функції, відповідно до алгоритму рішення задачі.

Опис процедури Input

  • У заголовку процедури описані формальні змінні:

вхідні: inv, NN (значення яких передаються з основної програми);

вихідне N (значення визначається в процедурі і передається в основну програму).

  • У циклі Repeat ...Until (N<=NN) and (N>=1) вводиться значення змінної N - Readln(N) з перевіркою (тобто що N повинно бути більше або дорівнює одиниці і менше або дорівнює NN - заданому за умовою завдання значенню розміру масиву). Потім керування передається в основну програму.

Опис процедури InputVector

  • У заголовку процедури описані параметри:

N, переданий з основної програми;

A - масив елементів матриці, що вводяться.

  • Описано локальні змінні:

i : integer- параметр циклу for;

Ra : Real - робоча змінна ( елемент масиву, що вводиться,);

s1 : String - рядок, формований для аварійного висновку.

  • У циклі for вводяться значення елемента матриці через робочу змінну Ra і перевіряються на допустимі значення (у даному випадку взяті межі зміни для змінних типу longint).

  • Якщо значення, що вводиться, задовольняє заданій умові, то елементам матриці присвоюється значення A[]]:=trunc(ra).

  • Інакше

  1. стрічковій змінний присвоюється значення s1:=inv5+inv4;

  • (‘ значення, щов водяться, виходять за діапазон [- 147483648...2147483647]!!!!!!’).

  1. це повідомлення виводиться на екран;

  2. також на екран виводиться повідомлення «Повторите введення»;

  3. керування передається на мітку L і знову вводимо значення елементів матриці з перевіркою на припустимі значення.

  • Керування передається в головну програму, коли закінчиться цикл for .