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

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

Завдання.






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

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; просмотров: 428. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

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