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

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

Завдання.





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

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


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

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

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

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

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