Sir_cat

Пользователь

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

Sir_cat

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

img

Вот к примеру мне надо в матрице найти среднее арифметическое значение всех элементов над главной диагональю и под главной диагональю и сравнить их

Вопросы:

а) могу ли я сделать это через 4 процедуры:

1) ввод матрицы

2)поиск ср ар над гл диагональю 

3)ср ар под гл диагональю 

4) сравнение и вывод результата 

?

б) так как у нас ср ар будет обозначаться, как sr1 и sr2, то как можно вывести из процедуры эти переменные для сравнения (можно ли юзать их в конечной процедуре)? 

в) или лучше делать это в 3 процедуры:

1)ввод

2)сравнение

3)вывод 

p.s. юзаю отдельные процедуры для ввода и вывода тк матрицу надо брать из текстового файла и выводить в другой текстовый файл 

 

BlanketLace

Пользователь

Регистрация: 12.07.2017

Сообщения: 1777

Рейтинг: 511

BlanketLace

Регистрация: 12.07.2017

Сообщения: 1777

Рейтинг: 511

Зачем тут вообще несколько функций? Делай все в основной, не вижу смысла разбивать такое

Sir_cat

Пользователь

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

Sir_cat

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

img
BlanketLace сказал(а):

Зачем тут вообще несколько функций? Делай все в основной, не вижу смысла разбивать такое

Нажмите, чтобы раскрыть...

типо в 1? 

BlanketLace

Пользователь

Регистрация: 12.07.2017

Сообщения: 1777

Рейтинг: 511

BlanketLace

Регистрация: 12.07.2017

Сообщения: 1777

Рейтинг: 511

Sir_cat сказал(а):

типо в 1? 

Нажмите, чтобы раскрыть...

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

Sir_cat

Пользователь

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

Sir_cat

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

img
BlanketLace сказал(а):

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

Нажмите, чтобы раскрыть...

не

BlanketLace сказал(а):

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

Нажмите, чтобы раскрыть...

просто разве через процедуру не удобнее? 

BlanketLace

Пользователь

Регистрация: 12.07.2017

Сообщения: 1777

Рейтинг: 511

BlanketLace

Регистрация: 12.07.2017

Сообщения: 1777

Рейтинг: 511

Sir_cat сказал(а):

просто разве через процедуру не удобнее? 

Нажмите, чтобы раскрыть...

Зачем усложнять? Но ты можешь делать как тебе удобнее офк.

p.s. зачем вообще такое спрашивать, делай как тебе удобнее, лишь бы работало, ты же не проект какой то пишешь, а дз по информатике roflanLico.png

Berglol

Пользователь

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

Berglol

Регистрация: 20.09.2013

Сообщения: 934

Рейтинг: 1736

Sir_cat сказал(а):

4) сравнение и вывод результата 

Нажмите, чтобы раскрыть...

Если в названии функции есть слово "and" (прим. compareAndShowResult()) то это в большинстве случаев приведет к проблемам при разрастании кода. Одна функция - одно логически завершенное действие.

Sir_cat

Пользователь

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

Sir_cat

Регистрация: 20.12.2017

Сообщения: 8028

Рейтинг: 1820

img
Berglol сказал(а):

Если в названии функции есть слово "and" (прим. compareAndShowResult()) то это в большинстве случаев приведет к проблемам при разрастании кода. Одна функция - одно логически завершенное действие.

Нажмите, чтобы раскрыть...

Окей, а как тогда сравниваемые элементы перевести в другую процедуру (процедуру вывода)? 

Delaver

Пользователь

Регистрация: 01.05.2017

Сообщения: 4436

Рейтинг: 1913

Delaver

Регистрация: 01.05.2017

Сообщения: 4436

Рейтинг: 1913

Sir_cat сказал(а):

Окей, а как тогда сравниваемые элементы перевести в другую процедуру (процедуру вывода)? 

Нажмите, чтобы раскрыть...

Зачем тебе процедура? Сделай лучше функцию которая вернет результат сравнения и выведи. Функция в качестве аргумента получает твой массив.

oct2048

Пользователь

Регистрация: 05.09.2017

Сообщения: 199

Рейтинг: 113

oct2048

Регистрация: 05.09.2017

Сообщения: 199

Рейтинг: 113

Sir_cat сказал(а):

) могу ли я сделать это через 4 процедуры:

Нажмите, чтобы раскрыть...

можешь, только зачем?

 

Sir_cat сказал(а):

б) так как у нас ср ар будет обозначаться, как sr1 и sr2, то как можно вывести из процедуры эти переменные для сравнения (можно ли юзать их в конечной процедуре)? 

Нажмите, чтобы раскрыть...

два способа, либо вместо процедуры использовать функцию (function), либо использовать переменные объявленные вне процедур