Чтобы правильно составить требуемую таблицу, программе необходимы значения, которые пользователь введет в программу. Вводить значения надо после приглашения программы к соответствующему действию. Важный момент – если таблица полностью не поместиться на экран, то после заполнения последней строки, помещающейся на данном экране, программа попросит нажать любую клавишу и продолжить составление таблицы на чистом экране, т.е. предварительно очистив предыдущую таблицу.
2.8. Тестовый пример.
Программа предназначена для вычисления таблицы значений функции,
заданной в виде разложения в ряд.
Введите границы интервала [A,B] ( причем (A<B) ); точность E (E>0)
и шаг изменения аргумента H (H>0):
Начало интервала A:
0.5
Конец интервала B:
7.6
Точность E:
.001
Шаг H:
1
Вы ввели:
A=0.50000 B=7.60000 H=1.00000 E=0.00100
------------------------------------------------------------------------------------------
¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦
------------------------------------------------------------------------------------------
¦ 1 ¦ 0.50000000000 ¦ 0.70477448832 ¦ 7 ¦
¦ 2 ¦ 1.50000000000 ¦ 0.57770993869 ¦ 8 ¦
¦ 3 ¦ 2.50000000000 ¦ 0.71713212380 ¦ 10 ¦
¦ 4 ¦ 3.50000000000 ¦ 0.66752823117 ¦ 10 ¦
¦ 5 ¦ 4.50000000000 ¦ 0.59106729937 ¦ 10 ¦
¦ 6 ¦ 5.50000000000 ¦ 0.72198206866 ¦ 2 ¦
¦ 7 ¦ 6.50000000000 ¦ 0.60541986599 ¦ 9 ¦
¦ 8 ¦ 7.50000000000 ¦ 0.61517755154 ¦ 10 ¦
------------------------------------------------------------------------------------------
3.Работа с матрицами
Задание (вариант №15):
Вычислить сумму элементов матрицы В(К,К), К £ 50, расположенных над двумя диагоналями и под ними:
Имя переменной | Тип переменной | Значение |
Matrix | array [1..50,1..50] of integer | Матрица, вводимая пользователем |
i | byte | Счетчик цикла (для матрицы) |
j | byte | Счетчик цикла (для матрицы) |
K | byte | Размерность матрицы, определяемая пользователем |
sum | integer | Сумма элементов |
key | char | "Техническая" переменная, равная ответу пользователя |
3.5 Схема алгоритма.
да
нет
нет
3.6 Текст программы.
Program kkr1_3;
var
Matrix:array [1..50,1..50] of integer;
i,j,K:byte;
sum:integer;
key:char;
begin
Writeln('Программа ищет сумму элементов матрицы, находящихся над и под ее диагоналями.');
Writeln;
{------------------------------------------------------------------------}
{Определение размерности матрицы}
repeat
Writeln('Введите размерность матрицы (K<=50): ');
readln(K);
if ((K<=1) or (K>50)) then
begin
writeln('Такая размерность невозможна по условию.');
writeln('Повторите ввод.');
end;
until ( (K>1) and (K<=50) );
{------------------------------------------------------------------------}
{Ввод матрицы}
writeln(‘Введите матрицу’);
for i:=1 to K do
for j:=1 to K do
begin
write('Matrix[',i,',',j,']=');
Readln(Matrix[i,j]);
end;
{------------------------------------------------------------------------}
{Вывод матрицы}
Writeln('Вы ввели: ');
for i:=1 to K do
begin
for j:=1 to K do write(Matrix[i,j],' ');
writeln;
end;
{------------------------------------------------------------------------}
{Вычисление суммы элементов. Первый проход}
Writeln;
for j:=1 to k do
begin
if j<=(k/2) then
begin
for i:=(j-1) downto 1 do sum:=sum+Matrix[i,j]
end
else
for i:=(j+1) to k do sum:=sum+Matrix[i,j];
end;
{------------------------------------------------------------------------}
{Вычисление суммы элементов. Второй проход}
for j:=k downto 1 do
begin
if j>(k/2) then
begin
for i:=(k-j) downto 1 do sum:=sum+Matrix[i,j];
end
else for i:=(k-j+2) to k do sum:=sum+Matrix[i,j];
end;
{------------------------------------------------------------------------}
{Вывод результата}
writeln('Cумма элементов над и под диагоналями равна ',sum);
end.
3.7 Инструкция пользователю.
Программа предназначена для вычислений суммы элементов матрицы расположенных над и под ее диагоналями. Ввод матрицы осуществляется пользователем в удобной для человека математической форме. Например:
1 2 3
4 5 6
7 8 9
Для запуска программы требуется набрать ее имя (kkr1_3.exe) в командной строке и нажать Enter. Программа выведет краткую информацию о собственном предназначении и попросить ввести размерность матрицы, которую пользователь будет вводить.
Размерность матрицы должна быть меньше или равна 50. Здесь есть особый момент. Естественно, размерность не может быть равной нулю или отрицательному числу. Поэтому при указании этих значений программа сообщит об их некорректности и попросит повторить ввод. Можно отказаться от ввода, нажав любую клавишу, или ввести новое значение, нажав Y. Кроме того, если размерность матрицы 1 или 2, то элементов, расположенных над и под диагоналями не существует. Программа логично выдаст результат, что их сумма равна нулю, при этом не сообщая об отсутствии таких элементов.
После указания размерности следует ввести саму матрицу. Матрицу наиболее удобно вводить следующим образом: элементы одной строки разделять пробелами, строки же – клавишей Enter. Если будет введено элементов больше, чем указанно размерностью матрицей, то такие элементы обрабатываться не будет. Чтобы не было недопонимания, пользователю выводится матрица, с которой осуществляются вычисления.
Программа посчитает сумму требуемых элементов и выдаст результат на экран. После этого, она завершится.
3.8. Тестовый пример.
Программа ищет сумму элементов матрицы, находящихся над и под ее диагоналями.
Введите размерность матрицы (K<=50):
3
Введите матрицу
Matrix[1,1]=12
Matrix[1,2]=45
Matrix[1,3]=89
Matrix[2,1]=74
Matrix[2,2]=23
Matrix[2,3]=5
Matrix[3,1]=4
Matrix[3,2]=15
Matrix[3,3]=65
Вы ввели:
12 45 89
74 23 5
4 15 65
Cумма элементов над и под диагоналями равна 60
Вывод.