- •Курс лабораторних робіт
- •Порядок виконання контрольної роботи
- •Зміст пояснювальної записки
- •Лабораторна робота № 1
- •Варіанти
- •Контрольні питання
- •Лабораторна робота № 2
- •Варіанти
- •Контрольні питання
- •Лабораторна робота № 3 організація циклів і робота з одномірними масивами
- •Контрольныe питання
- •Лабораторна робота № 4
- •Варіанти
- •Контрольні питання
- •Список використаної і літератури, що рекомендується
- •Додаток 1
- •Алгоритм обчислення знаменника наступний:
- •Алгоритм обчислення значення виразу:
- •Алгоритм роботи процедури Input:
- •Алгоритм виконання головної програми:
- •Додаток 2
- •Алгоритм виконання функції f
- •Алгоритм виконання процедури Input
- •Опис головної програми
- •Додаток 3
- •{Головна програма}
- •Опис процедури Input
- •Опис процедури InputVector
- •Опис процедури OutputVector
- •Опис функції Summa
- •Опис головної програми
- •Додаток 4
- •Опис процедури Input
- •Опис процедури InputMatrix.
- •Опис процедури OutputMatrix.
- •Опис процедури Evaluate.
- •Опис головної програми
{Головна програма}
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).
Інакше
стрічковій змінний присвоюється значення s1:=inv5+inv4;
(‘ значення, щов водяться, виходять за діапазон [- 147483648...2147483647]!!!!!!’).
це повідомлення виводиться на екран;
також на екран виводиться повідомлення «Повторите введення»;
керування передається на мітку L і знову вводимо значення елементів матриці з перевіркою на припустимі значення.
Керування передається в головну програму, коли закінчиться цикл for .