Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2014, 19:47   #1
Ksyusha
 
Регистрация: 18.03.2014
Сообщений: 4
По умолчанию Массивы и подпрограммы / Free Pascal

Как оформить описание алгоритма решения задачи:
program prog3;

const

digits=3;

type

matrix=array[1..10, 1..10] of real;

vector=array[1..10] of real;

var

m:matrix;

v:vector;

n:integer;

procedure input_matrix (var m:matrix; var n:integer);

var

p1,p2,a,b:real;

input:boolean;

i,j:integer;

begin

input:=false;

repeat

writeln('Введите размер квадратной матрицы n');

writeln('не менее 2 и не более 10:');

readln(n);

if (n<2) or (n>10) then

begin

writeln(' Вы ввели неправильный размер матрицы,');

writeln('n должно быть не менее 2 и не более 10.');

end

else

begin

input:=true;

end;

until input;

writeln('Введите левую a и правую b границы ');

writeln('диапазона значений компонент матрицы:');

write('a = ');readln(a);

write('b = ');readln(b);

if a>b then

begin

p1:=a;

a:=b;

b:=p1;

end;

if a=b then begin p1:=0; p2:=b; end

else if b=0 then begin p1:=a; p2:=0; end

else begin p1:=b-a; p2:=a; end;

{p1 - расстояние между левой и правой границей}

{p2 - левая граница}

randomize;

for i:=1 to n do

for j:=1 to n do

m[i,j]:=p2+random*p1;

end; {input_matrix}

procedure output_matrix(var m:matrix; n:integer);

var

i,j:integer;

begin

for i:=1 to n do

begin

for j:=1 to n do

begin

write(m[i,j]:0igits);

write(' ');

end;

writeln;

end;

writeln;

end; {output_matrix}

procedure change_matrix(var m:matrix;n:integer);

var

i,j:integer;

min_r,min_c,max_r,max_c:integer;

min_z,max_z:real;

value:real;

begin

min_z:=100000;

for i:=1 to n do

for j:=1 to n do

if m[i,j]then

begin

min_r:=i;min_c:=j;min_z:=m[i,j];

end;

writeln('Минимальное значение и индексы:');

write(min_z:0igits);

write('; столбец: ');

write(min_c);

write(', строка: ');

writeln(min_r);

max_z:=-100000;

for i:=1 to n do

for j:=1 to n do

if m[i,j]>max_z then

begin

max_c:=j;max_r:=i;max_z:=m[i,j];

end;

writeln('Максимальное значение и индексы:');

write(max_z:0igits);

write('; столбец: ');

write(max_c);

write(', строка: ');

writeln(max_r);

{изменение элементов строки и столбца}

write('Изменение элементов ');

write(min_r);

write(' строки и ');

write(max_c);

writeln(' столбца');

for i:=1 to n do

begin

value:=m[min_r,i];

m[min_r,i]:=m[i,max_c];

m[i,max_c]:=value;

end;

end; {change_matrix}

procedure vector_v(m:matrix;var v:vector;n:integer);

var

i:integer;

s:real;

begin

for i:=1 to n do

v[i]:=m[i,i];

s:=0;

for i:=1 to n do

s:=s+v[i];

writeln('Вектор v[n]:');

for i:=1 to n do

write(v[i]:0igits,' ');

writeln;

write('Сумма компонентов вектора: ');

writeln(s:0igits);

end; {vector_v}

begin

input_matrix(m,n);

writeln('Первоначальная матрица');

output_matrix(m,n);

change_matrix(m,n);

writeln('Новая матрица');

output_matrix(m,n);

vector_v(m,v,n);

readln;

end.
Ksyusha вне форума Ответить с цитированием
Старый 10.04.2014, 20:37   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

В соседней Вашей теме есть ответ по поводу блок-схем.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Free Pascal!!! МАССИВЫ!!!!(( Vika_0_0 Паскаль, Turbo Pascal, PascalABC.NET 3 13.03.2012 20:39
Pascal: Массивы, подпрограммы, текст на языке Pascal WarriorCow Помощь студентам 4 22.02.2012 15:28
Free pascal. Массивы Никнейм Помощь студентам 8 28.01.2012 09:40
(Pascal)Двумернные массивы и подпрограммы litokha Помощь студентам 1 12.12.2011 17:32
Подпрограммы-процедуры, подпрограммы-функции в Pascal rishikesh Помощь студентам 19 18.05.2010 23:05