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

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

Завдання.





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

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


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

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

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