Работа с массивами на языке паскаль(Статья 3)
При поиске максимального и минимального, в цикле происходит сравнение элементов, с тем элементом, который претендует стать максимальным(минимальным). Но вот не задача, если, например, ищется минимальный, то перед тем как сравнимать элементы с переменной в которой бедет храниться минимальный, что ей присвоить? Может быть ноль, нет так как массив может быть только из положительных чисел, и тогда минимальным будет элемент равный нулю, которой может даже и не входить в данный массив. То есть нужно такое число, которое будет или больше всех элементов массива, или же будет одним из элементов массива. Я при поиске минимального присваиваю этой переменной значение первого элемента массива, то есть min := a[1]; и цикл начинаю уже со второго элемента, то есть значение минимального не стоит сравнивать с первым элементом, так как это он и есть в переменной минимального. Плюсы такого присвоения, это
1) цикл уменьшается на 1.
2) в задаче уменьшается на одну операцию присвоения, то есть, очень часто встречал, что в качестве минимального перед циклом присваивают maxint, то есть максимальное число целых чисел, но вот зачем, я согласился бы если все элементы в массиве были равны этому числу, тогда да ничего страшного, но в другом случае, сразу же при начале цикла, будет идти сравнение с первым элементом массива, и если он окажется не равен переменной минимального, то нужно будет присвоить значение первого, а если еще нужно будет присвоить индексы, и так далее, то есть на мой взгляд не очень удобно так делать.
Аналогично и при поиске минимального, то есть присвоить переменной в качестве максимального элемента первый элемент массива. Вроде и мелочь, но все же, Вам не нужно будет ломать голово какой же элемент присвоить в качестве миксимального или в качестве минимального, просто используйте первый элемент массива
Но что же делеть, если нужно найти максимальный среди отрицательных, или же минимальный среди положительных. То есть мы же не можем с уверенностью утверждать, что первый элемент подходит под эти ограничения. Я в данном случае делаю цикл, в котором нахожу первый подходящий по критериям элемент и его присваиваю переменной отвечающей за минимальный(максимальный) элемент, а далее уже с ним сравниваю остальные элементы матрицы либо одномерного массива.
Помните, хоть компьютер и железный не нужно перегружать его лишними вычислениями.
Виталий каталог решенных задач на паскале programstud.ru
1) цикл уменьшается на 1.
2) в задаче уменьшается на одну операцию присвоения, то есть, очень часто встречал, что в качестве минимального перед циклом присваивают maxint, то есть максимальное число целых чисел, но вот зачем, я согласился бы если все элементы в массиве были равны этому числу, тогда да ничего страшного, но в другом случае, сразу же при начале цикла, будет идти сравнение с первым элементом массива, и если он окажется не равен переменной минимального, то нужно будет присвоить значение первого, а если еще нужно будет присвоить индексы, и так далее, то есть на мой взгляд не очень удобно так делать.
Аналогично и при поиске минимального, то есть присвоить переменной в качестве максимального элемента первый элемент массива. Вроде и мелочь, но все же, Вам не нужно будет ломать голово какой же элемент присвоить в качестве миксимального или в качестве минимального, просто используйте первый элемент массива
Но что же делеть, если нужно найти максимальный среди отрицательных, или же минимальный среди положительных. То есть мы же не можем с уверенностью утверждать, что первый элемент подходит под эти ограничения. Я в данном случае делаю цикл, в котором нахожу первый подходящий по критериям элемент и его присваиваю переменной отвечающей за минимальный(максимальный) элемент, а далее уже с ним сравниваю остальные элементы матрицы либо одномерного массива.
Помните, хоть компьютер и железный не нужно перегружать его лишними вычислениями.
Виталий каталог решенных задач на паскале programstud.ru
Отзывы и комментарии