Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornaya_5_prog.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
65.02 Кб
Скачать

Московский институт электроники и математики

Национального исследовательского университета

«Высшая школа экономики»

Кафедра «Информационные технологии и автоматизированные системы»

 

ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]