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

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

Завдання.





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

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 оперирует с двумя категориями...


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

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

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

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

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