
Московский институт электроники и математики
Национального исследовательского университета
«Высшая школа экономики»
Кафедра «Информационные технологии и автоматизированные системы»
ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №5
По дисциплине «Программирование» (язык Pascal)
Группа С-11
Вариант 30
Выполнил студент
Станкевич Максим Алексеевич
Москва 2012
Часть I
Задание 1
Задание
Оформить в виде функции общую часть в предложенных формулах:
a = x + 2,55(x + x2 + 1/x);
b=2,55(x + 1 + (x + 1)2 + 1/(x + 1));
c=2,55((x – y)3 + (x – y)6 + 1/(x – y)3);
d=(x – 1)2 + 2,55(1/x + 1/x2 + x).
Постановка задачи
Дано: x, y;
Результат: a, b, c, d;
При:
Связь:
a = x + 2,55(x + x2 + 1/x);
b=2,55(x + 1 + (x + 1)2 + 1/(x + 1));
c=2,55((x – y)3 + (x – y)6 + 1/(x – y)3);
d=(x – 1)2 + 2,55(1/x + 1/x2 + x).
Внешняя спецификация
Лабораторная работа 5
Задание 1
Введите x
<x>
Введите y
<y>
a=<<f(x,x,e)>>
b=<<f(l,m,e)>>
c=<<f(l,n,q)>>
d=<<f(k,x,h)>>
Алгоритм
Алгоритм «Лабораторная 5, задание 1»
Внутренние переменные
x,y,z,k,m,n — вещ
e,l,q,h,g — цел
Функция f
f:=x+2.55*(power(y,z)+power(y, z*2)+power(y,z*(-1)));
Начало
вход(x,y)
выход(f)
f:=x+2.55*(power(y,z)+power(y,z*2)+power(y,z*(-1)));
l:=0;
k:=sqr(x-1);
m:=x+1;
n:=x-y;
e:=1;
q:=3;
h:=-1;
g:=2;
ввод(x,y)
вывод(‘a = ’,f(x,x,e); ‘b = ’,f(l,m,e); ‘c = ’,f(l,n,q); ‘d = ’, f(k,x,h))
Конец
Текст программы
program lab5n1;
var x, y, z, k, m, n:real;
e,l, q, h, g:integer;
function f(x,y,z:real):real;
begin
f:=x+2.55*(power(y,z)+power(y, z*2)+power(y,z*(-1)));
end;
begin
writeln('Лабораторная работа 5, задание 1');
writeln('Введите y');
readln(y);
writeln('Введите х');
readln(x);
l:=0;
k:=sqr(x-1);
m:=x+1;
n:=x-y;
e:=1;
q:=3;
h:=-1;
g:=2;
writeln('a = ',f(x,x,e):10:3);
writeln('b = ',f(l,m,e):10:3);
writeln('c = ',f(l,n,q):10:3);
writeln('d = ',f(k,x,h):10:3);
end.
Тесты к программе и результаты
Введённые данные
|
Результат
|
x=2; y=3.
|
a = 18.575 b = 31.450 c = -2.550 d = 8.013
|
Задание 2
Задание
Вычислить:
S = maxmin |bi,j|, где bi,j – элементы матрицы B[1:n, 1:n].
j-1,m i-1,n
Постановка задачи
Дано: n, m, B[1:n, 1:n];
Результат: S;
При: n – натуральное, n<=nmax;
Связь:
S = maxmin |bi,j|, где bi,j – элементы матрицы B[1:n, 1:n].
j-1,m i-1,n
Внешняя спецификация
Лабораторная работа 5
Задание 2
Введите число строк и столбцов матрицы B
{<n>,}* до n>0, n=round(n), n<=nmax
Введите матрицу B размера <<n>> на <<m>>
<b[1,1]>, <b[1,2]>, …, <b[1,m]>
…
<b[n,1]>, <b[n,2]>, …, <b[n,m]>
Исходный массив
<b[1,1]>, <b[1,2]>, …, <b[1,m]>
…
<b[n,1]>, <b[n,2]>, …, <b[n,m]>
S=<<S>>
Алгоритм
Алг «Лабораторная работа 5, задание 2 (функция r)»
вход(n,B[1:n,1:n])
выход(max)
Нач
max:=-maxint
цикл для j:=1 до n
max:=b[i,j]
цикл от i:=2 до n
если |b[i,j]|<|min| то min:=b[i,j]
кцикл
кцикл
если min>max то max:=min
кесли
r:=max
Кон
Начало
Вывод('Введите число строк и столбцов матрицы A');
Цикл readln(p) Пока (p>0) и (p=round(p)) и (p<=nmax);
n:=round(p);
кцикл
Вывод('Введите матрицу В размера ',n ,' на ',n);
Цикл для i:=1 до n
Цикл для j:=1 до n
Цикл readln(p) Пока p=round(p);
b[i,j]:=round(p);
Кцикл
кцикл
Вывод('Исходный массив');
Цикл для i:=1 до n
Цикл для j:=1 до n
Вывод(b[i,j]:4);
кцикл
кцикл
s:=r(n,b);
Вывод('S = ',s);
Конец.
Текст программы
program lab5n2;
const nmax=20;
mmax=20;
type matr=array[1..nmax,1..mmax] of integer;
var b:matr;
p:real;
s,n,i,j:integer;
//1
function r(n:integer;var b:matr):integer;
var i,j,max,min:integer;
begin
max:=-maxint;
for j:=1 to n do begin
min:=b[1,j];
for i:=2 to n do
if abs(b[i,j])<abs(min) then
min:=b[i,j];
if min>max then max:=min;
end;
r:=max;
end;
//2
begin
writeln('Введите число строк и столбцов матрицы A');
repeat readln(p) until (p>0) and (p=round(p)) and (p<=nmax);
n:=round(p);
writeln('Введите матрицу В размера ',n ,' на ',n);
for i:=1 to n do
for j:=1 to n do begin
repeat readln(p) until p=round(p);
b[i,j]:=round(p);
end;
Writeln('Исходный массив');
For i:=1 to n do
begin
For j:=1 to n do
write(b[i,j]:4);
writeln;
end;
Writeln;
s:=r(n,b);
writeln('s = ',s);
end.
Тесты к программе и результаты
Введённые данные
|
Результат
|
n=3 B= 3 44 -5 -6 12 51 2 55 1 |
S = 12
|