Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Завдання.





У заданій квадратній матриці значення деяких діагональних елементів дорівнюють нулю. Переставити рядки або стовпці матриці таким чином, щоб діагональні елементи стали ненульовими. Якщо це неможливо зробити, вивести відповідне повідомлення.

2. Hipo-діаграма

 

3. Блок-схема головної програми


 

 

Введення масиву InputArr

 

 


 

Вивведення масиву Browse Відповідь Answer

Перевірка нулів на головній діагоналі Checknul

Перетворення матриці Solution


 

4. Screen Shot результатів

Program lab2_3;

type arr=array[1..10,1..10] of real;

var mas:arr; {array}

i,j,k, {counters}

n,nul:integer;

tmp:real; {temp variable}

flag:boolean; {flag}

str:string; {answer srting of possibility change}

procedure Browse; {display array}

begin

for i:=1 to n do

begin

for j:=1 to n do

write(mas[i,j]:6:2);

writeln;

end;

writeln;

end;

 

procedure InputArr(var masiv:arr); {entering of array}

var key:char; {user answer}

range1,range2:integer; {range of values array elements}

begin

writeln;

writeln('Result of lab2_3');

writeln('Variant 5, made by Znakhurenko Viktoriya');

writeln('mas[1..n]');

repeat

write('Enter number of lines in array <=10 ');

readln(n); {entering lines in array}

until (n>0) and (n<=10); {cyrcle by entering correct value}

 

repeat {cyrcle for getting correct choice}

writeln;

writeln('Oppurtunites of filling array elements');

writeln('1. Random ');

writeln('2. Keyboard entering');

write('Your choise [1/2] ');

readln(key); {get user choice}

until(key='1')or(key='2');

 

if(key='1')then {random filling}

begin

repeat

writeln;

write('border of range random numbers low and high range ');

readln(range1,range2);

until(range1<range2); {range of filling}

{low range must be less than high one}

 

for i:=1 to n do

for j:=1 to n do {randomind number from [range1;range2] }

masiv[i,j]:=random(range2-range1+1)+range1;

end

else

begin

write('Array mas: '); {users inputing numbers from keyboard}

for i:=1 to n do

begin

for j:=1 to n do

read(masiv[i,j]);

writeln;

end;

writeln;

end;

writeln;

flag:=true;

end;

 

procedure ChackNul(mas:arr); {circle for chacking null elements on main diagonal}

begin

flag:=true;

for i:=1 to n do

if mas[i,i]=0 then

flag:=false; {change flag}

 

end;

 

procedure Solution(var mas:arr);

begin

for i:=1 to n do

begin

if(mas[i,i]=0)then {condition of null element}

begin

for j:=1 to n do

begin

if(mas[i,j]<>0)and (j>=i)then

begin

for k:=1 to n do {exchange column}

begin

tmp:=mas[k,j];

mas[k,j]:=mas[k,i];

mas[k,i]:=tmp;

end;

j:=n;

end;

if(mas[j,i]<>0)and(i>=j)then

begin

for k:=1 to n do {exchange line}

begin

tmp:=mas[j,k];

mas[j,k]:=mas[i,k];

mas[i,k]:=tmp;

end;

j:=n;

end;

end;

end;

end;

end;

 

procedure Answer;

begin

str:='Possible to invert';

ChackNul(mas);

if (flag=false) then

begin

Solution(mas);

ChackNul(mas);

end;

if flag=false then {condition of impossibility changing}

str:='Impossibile to invert';

writeln(str);

end;

 

{main program}

begin

randomize;

InputArr(mas);

Browse;

Answer;

Browse;

end.


 

5. Screen Shot результатів

6. Аналіз роботи

Як ми бачимо зі ScreenShot’ів, ми ввели 4 варіанти даних.

Введення першого рядка,з якого будуть видалятися слова, та другого рядка слів, що видалятимуться.

1. Розмір матриці 4, спосіб заповнення – генерування чисел, границі генерування 0 та 1, бачимо 3 нулі на головній діагоналі. Не можна перемістити рядки та стовпчики так, що не буду діагональних нульових елементів, тому що маємо нульовий рядок.

2. Розмір матриці 5, спосіб заповнення – генерація випадкових чисел, границі генерування 0 3. Маємо 2 нульових елементи. Переміщення можливе.

3. Розмір матриці 3, спосіб заповнення – введення з клавіатури. Маємо 3 нульові діагональні елементи. Переміщення можливе.

4. Здійснено зациклення програми на введення можливої кількості елементів(додатне число, менше 10), також на спосіб введення чисел

(1. Генерація випадкових чисел. 2. Введення з клавіатури)

 







Дата добавления: 2015-09-04; просмотров: 451. Нарушение авторских прав; Мы поможем в написании вашей работы!




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

Педагогическая структура процесса социализации Характеризуя социализацию как педагогический процессе, следует рассмотреть ее основные компоненты: цель, содержание, средства, функции субъекта и объекта...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия