РГР № 3. Циклический алгоритм.




Задание: Вывести на экран таблицу значений f(хi) из таблицы 2 (см. задания для РГР) при изменении аргумента хi от а до b, где хi – i - ое значение х на отрезке [a, b], причем x0 =a, xk+1 =b. При выводе таблицы на экран использовать символы псевдографики.

Математическое описание задачи: для данной задачи математическое описание присутствует в задание РГР № 2.

Схема алгоритма. В соответствии с заданием разработан алгоритм, схема которого отражена блок-схемой на рисунке 3.1.

Рисунок 3.1 – Блок-схема задания РГР № 3.

Разработка программы. Разработка программы проводилась на языке высокого уровня Паскаль. Список идентификаторов для программы, разрабатываемой в соответствии с алгоритмом, отраженном на рисунке 3.1, представлен в таблице 3.1.

Таблица 3.1 – Список идентификаторов для задания РГР № 3.

 

Наименование переменной и ее смысл Обозначение в алгоритме Обозначение в программе
  Аргумент x x x
  Аргумент N N N
  Значение функции f f f
  Число k k k
  Начальное значение а а А
  Начальное значение b b b
  Число i i i

Текст программы представлен на рисунке 3.2.

write(' a = ');read(a);

write(' b = ');read(b);

write(' N = ');read(N);

write(' На сколько разбить отрезков k ');read(k);

H:= (b - a) / k; {Шаг диапазона}

writeln('Изменение функции f:=x*1/(exp(ln(exp(ln(abs(x))*2.34)+cos(x))*(x*cos(x))))');

writeln(' на интервале [', a, ';', b, '] с шагом ', H:0:2);

writeln;

writeln;

writeln(' ┌────────┬──────────┐ ');

writeln(' │ xi │ fi │ ');

writeln(' ├────────┼──────────┤ ');

for i:= 0 to k do

Begin

x:= a + i * H;

if (x < 0) and (x < N) then

f:= x * 1 / (exp(ln(exp(ln(abs(x)) * 2.34) + cos(x)) * (x * cos(x))));

if (x > 0) and (x < N) then

f:= x * (exp(ln(exp(ln(x) * 2.34) + cos(x)) * (x * cos(x))));

if (x > 0) and (x >= N) then

f:= ln(abs(ln(abs((x * sin(ln(x) * N)))))) / ln(3);

if (x < 0) and (x >= N) then

f:= ln(abs(ln(abs((x * sin(ln(abs((x) * N)))))))) / ln(3);

Begin

writeln(' │', x:6:5, ' │ ', f:2:6, '│');

end;

end;

writeln(' └────────┴──────────┘');

end.

Тестирование программы. Тестирование является процессом прогона программы на различных входных данных с целью обнаружения ошибок в ней.

Результаты тестирования отражены в таблице 3.2. Вид окна с результатами работы программы на некотором наборе исходных данных показан на рисунке 3.3.

Таблица 3.2 – Результаты тестирования программы РГР № 3.

№ Теста Тестовые действия Результат программы
Ожидаемый результат Результат, выданный программой
  Ввод числовых данных Ввод натуральных чисел Корректный вывод на экран цифр Цифры отображаются корректно
  Некорректный ввод данных Ввод дробных чисел (туда, где они не допустимы) Выдача сообщения об ошибке Выдача сообщения об ошибке
Вводимые данные - буквы Выдача сообщения об ошибке Выдача сообщения об ошибке

 

Проведенное тестирование показало корректную работу программы на предложенных тестовых наборах входных данных, а выявленные ошибки были исправлены путем введения в программу дополнительных проверок.

Рисунок 3.3 – Результат программы.

РГР № 4. Преобразование матриц.

Задание: Дана матрица А размера n*m, где n<=15, m<=15. Предусмотреть, чтобы ее элементы a(i,j) могли задаваться с клавиатуры или заполняться случайными целыми числами из диапазона [-N*10; N*10), где N – номер варианта. Ввести два целых числа k и q. В строках от k до q (включая k и q) отсортировать элементы в порядке убывания.

Математическое описание задачи: для данной задачи математическое описание присутствует в задание РГР № 4.

Схема алгоритма. В соответствии с заданием разработан алгоритм, схема которого отражена блок-схемой на рисунке 4.1.

 

Рисунок 4.1 – Блок-схема задания РГР № 4.

Разработка программы. Разработка программы проводилась на языке высокого уровня Паскаль. Список идентификаторов для программы, разрабатываемой в соответствии с алгоритмом, отраженном на рисунке 4.1, представлен в таблице 4.1.

 

Таблица 4.1 – Список идентификаторов для задания РГР № 4.

 

Наименование переменной и ее смысл Обозначение в алгоритме Обозначение в программе
  Число d d d
  Количество строк (n)   n n
  Количество столбцов (m) m m
  Массив x x x
  Номер строки i i i
  Номер столбца j j j
  Номер строки, с которой начинаем преобразования (k) k k
  Номер строки, с которой начинаем преобразования (q) q q
  Число g g g

Текст программы представлен на рисунке 4.2.

write(' Выбор между автоматическим и ручным вводом d = (0 - ввод-автомат) ');read(d);

writeln;

write(' n = ');read(n);

write(' m = ');read(m);

if d = 0 then

for i:= 1 to n do

for j:= 1 to m do

x[i, j]:= random(100)

Else

for i:= 1 to n do

for j:= 1 to m do

Begin

write(' x[', i, ',', j, '] = ');readln(x[i, j]);

end;

writeln;writeln(' Вывод исходного массива');

for i:= 1 to n do

Begin

for j:= 1 to m do

write(x[i, j]:7:2, ' ');

writeln;

end;

writeln;

write(' k = ');read(k);

write(' q = ');read(q);

b:= 0;

while b <=q do

Begin

for i:= k to q do

for j:= 1 to m do

Begin

if x[i, j] < x[i, j + 1] then

Begin

g:= x[i, j];

x[i, j]:= x[i, j + 1];

x[i, j + 1]:= g;

end;

if x[i, j] < x[i, j + 1] then

x[i, j]:= x[i, j];

end;

inc(b);

end;

writeln;

writeln(' Изменённый массив');

for i:= 1 to n do

Begin

for j:= 1 to m do

write(x[i, j]:7:2, ' ');

writeln;

end;

readkey;

end.

Тестирование программы. Тестирование является процессом прогона программы на различных входных данных с целью обнаружения ошибок в ней.

Результаты тестирования отражены в таблице 4.2. Вид окна с результатами работы программы на некотором наборе исходных данных показан на рисунке 4.3.

Рисунок 4.3 – Результат программы.

 

 

Таблица 4.2 – Результаты тестирования программы РГР № 4.

№ Теста Тестовые действия Результат программы
Ожидаемый результат Результат, выданный программой
  Ввод числовых данных Ввод натуральных чисел Корректный вывод на экран цифр Цифры отображаются корректно
  Некорректный ввод данных Ввод дробных чисел (туда, где они не допустимы) Выдача сообщения об ошибке Выдача сообщения об ошибке
Вводимые данные - буквы Выдача сообщения об ошибке Выдача сообщения об ошибке

 

Проведенное тестирование показало корректную работу программы на предложенных тестовых наборах входных данных, а выявленные ошибки были исправлены путем введения в программу дополнительных проверок.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: