Пример выполнения задания
Задание
В массиве найти максимальный элемент и его местоположение.
Граф-схема алгоритма.
Даны 2 способа графического представления алгоритма (см. рис.3.1).
Программа
Вариант 1.
PROGRAM Ex1;
{Массив X заполняется путем ввода данных с клавиатуры из предопределенного файла Input; используемые переменные: Xmax – значение максимального элемента, Nmax – индекс максимального элемента}
Uses Crt;
Const N=10;
Type Mas=array[1..N] of real;
Var X:Mas;
i, Nmax: integer;
Xmax:real;
BEGIN
{Заполнение массива}
For i:=1 to N do
Begin
Write(‘Вводите элемент ’,‘X[’,i,‘]=’);
Readln(X[i]);
end;
Write();
{Поиск максимального элемента}
Xmax:=X[1];
Nmax:=1;
For i:=2 to N do
If X[i]>Xmax then
Begin
Xmax:=X[i];
Nmax:=I
end;
{Вывод результатов}
ClrScr;
Writeln(‘Исходный массив:’);
For i:=1 to N do
Write (X[i]:6:2);
Writeln;
Writeln(‘Максимальный элемент массива=’, Xmax);
Writeln(‘Индекс максимального элемента массива=’, Nmax)
END.
Вариант 2.
PROGRAM Ex2;
{Массив X заполняется с использованием генератора равномерно-распределенных чисел; используемые переменные: Xmax – значение максимального элемента, Nmax – индекс максимального элемента}
Uses Crt;
Const N=10;
Type Mas=array[1..N] of real;
Var X:Mas;
i, Nmax: integer;
Xmax:real;
BEGIN
{Заполнение массива}
Randomize;
For i:=1 to N do
X[i]:=Random(1000)/100 – 5;
{Поиск максимального элемента}
Xmax:=X[1];
Nmax:=1;
For i:=2 to N do
If X[i]>Xmax then
Begin
Xmax:=X[i];
Nmax:=I
end;
{Вывод результатов}
ClrScr;
Writeln(‘Исходный массив:’);
For i:=1 to N do
Write (X[i]:6:2);
Writeln;
Writeln(‘Максимальный элемент массива=’, Xmax);
Writeln(‘Индекс максимального элемента массива=’, Nmax)
END.
Вариант 3.
PROGRAM Ex3;
{Массив X заполняется с использованием типизированной константы-массив; используемые переменные: Nmax – индекс максимального элемента}
Uses Crt;
Const N=10;
Соnst X:array[1..N] of real = (3.5, 5.5, 3.5, 64.39, 4.5, 7.34, 6.45, 7.67, 4.67, 12.34);
Var i, Nmax: integer;
BEGIN
{Поиск максимального элемента}
Nmax:=1;
For i:=2 to N do
If X[i]>X[Nmax] then Nmax:=i;
{Вывод результатов}
ClrScr;
Writeln(‘Исходный массив:’);
For i:=1 to N do
Write (X[i]:6:2);
Writeln;
Writeln(‘Максимальный элемент массива =’, X[Nmax]);
Writeln(‘Индекс максимального элемента массива =’, Nmax)
END.
Тестовые наборы для отладки программы
Тест 1.
Массив ввода: 23.1 -2.12 5.4 6.45 -3.12 5.333 56.78 -1.222 45.26 4.12
Результаты: Xmax=56.78; Nmax=7.
Тест 2.
Массив ввода: 3.2 -99.234 -5.45 -5.225 3.2 34.23 5.5 7.7 9.77 111.12
Результаты: Xmax=111.12; Nmax=10.
Тест 3.
Массив ввода: -2.1 -1.1 40 -5.24 -6.45 -3.12 -6.4 -5.89 40 40
Результаты: Xmax=40; Nmax=3.
Тест 4.
Массив ввода: -2.1 -1.1 -40 -5.24 -6.45 -3.12 -4.4 -0.89 -43 -42.45
Результаты: Xmax= -0.89; Nmax=8.
Рис.3.1. Граф-схема алгоритма
Задание №1
В последовательности чисел :
а) подсчитать число перемен знака;
б) подсчитать число чередования четных и нечетных членов последовательности.