- •«Информатика»
- •Содержание
- •1. Константы
- •2. Типы констант
- •3. Переменные
- •4. Типы переменных
- •5. Операторы описания
- •6. Арифметические операции Операции по приоритету:
- •7. Расположение текста программы на экране дисплея
- •Правила набора текста программ:
- •Правило:
- •4 Write(6,*)’ Введите значения сторон треугольника a,b,c’
- •8. Технология прохождения фортран – программ на эвм
- •Технология прохождения фортран – программ на эвм
- •9. Арифметический оператор if
- •If(арифметическое выражение) m1, m2, m3
- •Примечание:
- •Правило:
- •If арифметический не может быть последним оператором в цикле do.
- •4 Write(6,*)’ Введите значения сторон треугольника a,b,c’
- •8 Write(6,*)’ Площадь треугольника равна нулю’
- •9 Write(6,*)’ Такой треугольник не существует’
- •10. If логический
- •If(логическое выражение) выполняемый оператор
- •70% Ошибок у программистов возникает из-за несоответствия типов переменных!.
- •Условные обозначения логических операторов на блок-схемах
- •If арифметический if логический
- •11. Табулирование функции
- •12. Оператор цикла do
- •Внимание:
- •Примечание:
- •3 Write(6,*)’Введите переменные a,b,c’
- •13. Массивы
- •Примечание:
- •Вычисление определенного интеграла
- •1 Write(6,*)’Введите значения a,b,dx’
- •14.Работа содномерными массивами Ввод массивов
- •Первый способ ввода массивов:
- •Второй способ ввода массивов:
- •Третий способ ввода массивов:
- •15. Вывод массивов Первый способ вывода массива
- •Второй способ вывода массива:
- •Третий способ вывода массива:
- •Четвёртый способ вывода массива:
- •Способ вывода массива в два столбца:
- •Фрагменты задач с одномерными массивами
- •If(b.Eq.K) write(6,*)’ Число m является чётным’
- •Сортировка массива
- •Второй способ сортировки массива:
- •16. Конструкция if then–else if then–else – end if
- •If (логическое выражение 1) then
- •Правила:
- •Примечания:
- •17. Оператор data
- •Правило:
- •Правило:
- •18.Работа с двухмерными массивами
- •19. Ввод двухмерного массива
- •Второй способ ввода массивов:
- •Третий способ ввода массивов:
- •Четвертый способ ввода массивов:
- •Фрагменты задач с двухмерными массивами
- •20. Вывод двухмерного массива
Сортировка массива
Задача:
Одномерный массив А(200) отсортировать по убыванию.
Решение. В цикле сравниваем поочередно два рядом стоящих элемента массива. И, если последующий элемент больше предыдущего, то меняем их местами. За один цикл от 1 до N-1 поменяются местами все элементы, значения которых удовлетворяет условию. Если же цикл поместить внутри такого же цикла, то поменяются местами все элементы и массив будет отсортирован.
С первый способ сортировки массива
REAL A(200)
WRITE(6,*)’Введите количество элементов массива А и их
*значения’
READ(5,*) N,(A(I),I=1,N)
DO 8 J=1,N–1
DO 7 I=1,N–1
IF(.NOT.(A(I+1).GT.A(I))) GO TO 7 Если ложно условие, что A(I+1) больше, чем A(I), то ничего не переставлять и идти на конец цикла
Или можно записать проще: IF(A(I+1).LE.A(I)) GO TO 7
Или ещё можно записать: IF(A(I).GT.A(I+1)) GO TO 7
C Блок перестановки соседних чисел в массиве
B=A(I)
A(I)=A(I+1)
A(I+1)=B
7 CONTINUE
8 CONTINUE
WRITE(6,*)’Отсортированный массив:’
DO 28 I=1,N,2 Выводится в два столбца
28 WRITE(6,*) ’A(‘,I,’)=’,A(I),’ A(‘,I+1,’)=’,A(I+1)
PAUSE
STOP
END
Для того чтобы этой программой можно было сделать сортировку по возрастанию необходимо убрать .NOT. (или .GT. заменить .LT.).
Недостаток способа:
– для того чтобы отсортировать массив необходимо сделать очень большое количество циклов ((N–1)2циклов).
Лучше использовать второй способ сортировки массива, который лишён указанного недостатка.
Второй способ сортировки массива:
Он заключается в том, что в каждом внешнем цикле, переходя во внутренний цикл, мы находим максимальное значение из оставшихся элементов массива и запоминаем его номер. Затем переставляем местами максимальный элемент с тем, с которого начался внутренний цикл.
С Второй способ сортировки массива
REAL A(200)
WRITE(6,*)’Введите количество элементов массива А и их
*значения’
READ(5,*) N,(A(I),I=1,N)
DO 8 J=1,N–1 Задаем внешний цикл
AMA=A(J) Делаем подготовку к нахождению максимума
DO 7 I=J,N Задаем внутренний цикл
C Внутренний цикл определения максимального элемента и его номера
С Он начинается с J-того элемента и продолжается до N
IF(A(I).GT.AMA) AMA=A(I) Запоминаем максимум
7 IF(A(I).EQ.AMA) NMA=I и его номер
C Блок перестановки
B=A(J)
A(J)=AMA
A(NMA)=B
CONTINUE
WRITE(6,*)’Отсортированный массив:’
DO 28 I=1,N
28 WRITE(6,*) ’A(‘,I,’)=’,A(I)
PAUSE
STOP
END
16. Конструкция if then–else if then–else – end if
Эта конструкция позволяет разветвлять программу в нескольких направлениях.
If (логическое выражение 1) then
СIF – блок
A=…
IF …
DO 8 … выполняемые операторы
WRITE
READ
CALL
ELSE IF (логическое выражение 2) THEN
С ELSE IF – блок 1
…….Выполняемые операторы
…….
ELSE IF (логическое выражение N) THEN
С ELSE IF – блок N-1
……. Выполняемые операторы
…….
ELSE
С ELSE – блок
……. Выполняемые операторы
…….
END IF
Конструкция обязательно начинается с IFTHEN, а заканчиваетсяENDIF. Другие блоки могут отсутствовать. КонструкцияIFTHENработает следующим образом:
анализируется логическое выражение 1. Если оно истинно, то выполняются все операторы IF– блока, а затем выполнение передаётся оператору, следующему заENDIF. Если логическое выражение 1 ложно, то анализируется логическое выражение 2ELSEIF– блока. При истинном значении логического выражения 2 выполняются все операторыELSEIF– блока 1, а затем выполнение передаётся оператору, следующему заENDIF. Если логическое выражение 2 ложно, то анализируется следующее логическое выражение следующегоELSEIF– блока. Таких выражений может быть бесконечное количество. Если ни одно из логических выражений не оказалось истинным, то мы доходим доELSE– блока и происходит выполнение всех операторовELSE– блока.
Затем управление передается оператору, следующему после ENDIF.