GotoXY в Pascal.

Процедура GotoXY используется в Pascal для перевода курсора в нужную позицию на экране. Для этой процедуры указываются координаты. После указания процедуры GotoXY в коде программы сообщение будет выводиться на экран в тех координатах, которые мы ...

Использование Var, Integer, Readln.

Процедура Readln используется не только для задержки экрана. Ее основная задача - ввод данных с клавиатуры. В этой статье мы научимся вводить числа с клавиатуры, и потом выводить их на экран. Для этого нам будет необходимо познакомиться с разделом ...

Процедуры STR и VAL.

В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот, используются процедуры STR и VAl.

...

Циклы и массивы

Линейные процессы вычислений.

Простейший алгоритм представляет собой цепочку блоков (операторов) от начального блока до конечного. Каждый блок должен быть выполнен один единственный раз. Это линейный алгоритм. Он отражает ...

Вложенный арифметический цикл.

Под вложенным арифметическим циклом понимают такую алгоритмическую структуру, при которой в тело одного цикла с параметром включен другой цикл со своим параметром.

Одной из наиболее распространенных задач обработки массивов является поиск минимального (максимального) элемента.

Пример 31. В массиве X из 20 вещественных чисел поменять местами наибольшие и наименьшие элементы.

Уточним пространство решений. В массиве X может присутствовать несколько максимальных и минимальных элементов. Возможен неординарный случай для этой задачи, который состоит в том, что все элементы массива равны между собой. Переменные, используемые в программе, и их тип описаны в следующей таблице:

massiv.....

Эту задачу нужно решать с помощью двух последовательных просмотров массива X. Целью первого просмотра является вычисление наибольшего МАХ и наименьшего МIN значений элементов массива X. В начале просмотра значение первого элемента Х[1] считается одновременно наибольшим и наименьшим, что справедливо в том случае, если в массиве всего один элемент. Далее со второго элемента Х[2] и до последнего Х[20] сравниваются значение текущего элемента с MIN. Если значение текущего элемента меньше, то оно с этого момента считается минимальным. По окончании цикла в рабочей ячейке MIN окажется число, равное значению наименьшего элемента. Аналогично поступаем для нахождения МАХ.
Далее нужно сравнить между собой MIN и МАХ. Если эти величины равны между собой, то массив состоит из 20 равнозначных элементов. Следовательно, переставлять их местами нет необходимости. Если MIN?МАХ, то нужно наименьшим элементам присвоить значение МАХ, а наибольшим элементам присвоить значение MIN. Эти действия являются основой для второго просмотра массива X.


PROGRAM PR31;
VAR   
X: ARRAY [ 1.. 20] OF REAL;
I: INTEGER;
MIN, MAX: REAL;
BEGIN
WRITELN('Введите массив X, из 20 вещественных чисел');
FOR I := 1 ТО 20 DO READ(X[I]);
MIN :=Х[1];
МАХ :=Х[1];
FOR I := 2 ТО 20
         DO BEGIN
          IF      MIN>X[I]
          THEN MIN := X[I];
          IF      MAX<X[I]
          THEN MAX := X[I];
         END;
IF MIN <> MAX
THEN FOR I := 1 TO 20
DO BEGIN
       IF MAX = X[I]
       THEN X[I] := MIN
      ELSE IF MIN = X[I]
                THEN X[I]:=MAX;
END;
WRITELN('Элементы массива X имеют значения:');
FOR I := 1 TO 20 DO WRITE(X[I]: 4:1,'  ');
WRITELN
END.


Предыдущая статья: Индексы одномерного массива.
Оглавление: Лекции по Pascal.
Следующая статья: Сортировка одномерного массива.


Комментарии  

 
-12 # мадо 22.02.2014 07:10
:eek: :P :sigh: :-*
 
 
-7 # кетпчунез 17.03.2016 05:57
:o 8) :lol: :lol: :-| :-| ;-) :-x :-* :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :eek: :sigh:
 
 
-10 # ыыыыы 20.11.2016 09:29
;-) ;-) ;-) 8) :cry: 8) :D :D :D :D :D :D :D :D :D :D :D :D :D :-)
 
 
-7 # Ыыыы 14.12.2016 02:25
:-* :o
 
 
-1 # КАК ТАК ТО 09.05.2017 20:54
Вы знаете что внутриблочные переменные не могут иметь одинаковые имена с переменными из верхнего уровня (строка 8).Поправьте меня если не так что.
 
 
-2 # ЗЫКЛЮЧЕННЫЙ 30.10.2017 14:13
:-x хурмы поел. очень плохо сбебя чувствуюююю.... ю.
 
 
-2 # Xaxa 10.11.2017 07:58
Как у вас дела ,ребята? :roll:
 
 
+1 # укенгшщщшгнекыцывп 23.11.2017 11:26
:D :lol: :-) ;-) 8) :-| :-* :oops: :sad: :cry: :o :-? :eek: :zzz :P :roll: :sigh:
 
   ГлавнаяПаскальЛекции по ПаскальАрифметический цикл с рекуррентной зависимостью.