Найти номер наименьшего по абсолютной величине элемента массива x. Ввод исходных данных осуществляется из файла, вывод результатов – в файл. Для передачи имён файлов должны использоваться параметры программы.
Класс | Имя | Смысл | Тип | Структура | Диапазон | Формат |
---|---|---|---|---|---|---|
Входные данные | x | Исходный массив | вещ. | одномерный массив | ||
n | Количество элементов массива | цел. | простая переменная | 1 ≤ n ≤ 20 | ||
Выходные данные | imin | Номер наименьшего по абсолютной величине элемента | цел. | простая переменная | XX | |
Промежуточные данные | min | Значение наименьшего по абсолютной величине элемента | вещ. | простая переменная | ||
i | Счётчик цикла | цел. | простая переменная | |||
f | Файловая переменная | TextFile | простая переменная |
Недостаточно параметров. Не существует файл с исходными данными.
№ теста | Входные данные | Ожидаемые результаты | Смысл теста |
---|---|---|---|
1 |
n = 5 x = {12, 3, -2, 5, 8} |
imin = 3 | Минимальный по модулю элемент находится в середине массива. Минимальный по модулю элемент совпадает с минимальным элементом. |
2 |
n = 5 x = {12, 3, 6, -5, 8} |
imin = 2 | Минимальный по модулю элемент находится в середине массива. Минимальный по модулю элемент не совпадает с минимальным элементом. |
3 |
n = 4 x = {1, -5, 7, 13} |
imin = 1 | Минимальный по модулю элемент – первый в массиве. Минимальный по модулю элемент не совпадает с минимальным элементом. |
4 |
n = 4 x = {-25, -15, -10, -7} |
imin = 4 | Минимальный по модулю элемент – последний в массиве. Минимальный по модулю элемент не совпадает с минимальным элементом. |
Вводим исходные данные. Присваиваем начальные значения переменным imin и min. В цикле перебираем все элементы массива (для одномерного массива можно начать со второго элемента). Если i-ый элемент по модулю меньше текущего минимума (переменная min), присваиваем новые значения переменным imin и min. Выводим полученные результаты.
{ Программа поиска номера наименьшего по абсолютной величине элемента массива X }
program Lab6;
const
nmax = 10;
type
mas = array [1..nmax] of real;
var
x: mas;
min: real;
n, imin, i: integer;
f: TextFile;
begin
if ParamCount < 2 then
writeln('Недостаточно параметров!');
else
begin
if not FileExists(ParamStr(1)) then
writeln('Невозможно открыть файл ''', ParamStr(1), ''' для чтения');
else
begin
{ Ввод исходных данных }
AssignFile(f, ParamStr(1));
Reset(f);
readln(f, n);
for i := 1 to n do
read(f, x[i]);
CloseFile(f);
{ Поиск номера наименьшего по абсолютной величине элемента массива }
min := abs(x[1]);
imin := 1;
for i := 2 to n do
if abs(x[i]) < min then
begin
min := abs(x[i]);
imin := i;
end;
{ Вывод полученных результатов }
AssignFile(f, ParamStr(2));
Rewrite(f);
writeln(f, 'Массив X из ', n:2, ' элементов/-а');
for i := 1 to n do
write(f, x[i]:8:2);
writeln(f); writeln(f);
writeln(f, 'Номер наименьшего по абсолютной величине элемента = ', imin:2);
CloseFile(f);
end;
end;
end.