Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Правильная организация циклов Неправильная–циклы перекрываются.Содержание книги
Поиск на нашем сайте
Рис. 8
Конечный оператор цикла не может быть оператором: перехода, цикла, условным оператором, возврата, паузы и останова. Если цикл, по условию задачи, должен быть закончен одним из “запрещенных ” операторов, то в качестве конечного оператора цикла рекомендуется использовать оператор продолжения CONTINUE, разместив его после “запрещенного” оператора. Пример: вычислить сумму элементов каждого столбца прямоугольной матрицы. Суммы разметить в массиве S. В программе необходимо оператором DIMENSION зарезервировать место в памяти ЭВМ для массивов А и S, т.е. двумерный массив А(50, 40)и одномерный массив S(40). Тогда программа может иметь следующий вид:
PROGRAM SUMSTO DIMENSION A (50,40), S (40) PRINT*, ‘Введите количество строк N и столбцов К в массиве А’ READ (5, *) N, K PRINT*, ‘Введите элементы массива А по строкам ’ READ (5, *) ((A (I, J), J=1,K), I=1,N) PRINT*, ((A(I,J), J=1,K), I=1,N) * PRINT 50, ((A(I,J), J=1,K), I=1,N) * 50 FORMAT(2X, ' ИСХОДНАЯ МАТРИЦА A ', / (2X,3F6.1))
SUM = 0. DO 10 J=1, N SUM =SUM + A (J, I) 10 CONTINUE S (I) =SUM 15 CONTINUE PRINT *, ‘ СУММЫ ЭЛЕМЕНТОВ СТОЛБЦОВ’ PRINT*,‘ S (I)= ’, (S(I), I=1,K) END
В этой программе ввод элементов матрицы осуществляется по строкам, оператором ввода: READ(5, *) ((A (I, J), J=1,K), I=1,N) (неявный цикл). Затем занулением создается ячейка SUM, для суммирования элементов каждого столбца, что выполняется вложенным циклом DO. Сумма элементов каждого столбца заносится в массив S, в результате работы внешнего цикла DO. Когда все столбцы просуммированы и занесены в массив S, он (его содержимое) выводится на печать.
Задания к лабораторной работе № 4 Вариант № 1 Составить программу выборки минимального элемента из массива А (М, N). Использовать форматный вывод. (М, N ≤ 20.) Вариант № 2 Составить программу выборки максимального элемента из массива А (М, N). Использовать форматный вывод. (М, N ≤ 20.) Вариант № 3 Составить программу вычисления суммы отрицательных элементов из массива А (М, N). Использовать форматный вывод. (М, N ≤ 20.) Вариант № 4 Составить программу вычисления суммы положительных элементов из массива А(М,N). Использовать форматный вывод. (М, N ≤ 20.) Вариант № 5 Составить программу вычисления количества положительных элементов в массиве А (М, N). Результат распечатать. (М, N ≤ 20.)
Вариант № 6 Составить программу вычисления количества отрицательных элементов в массиве А (М, N). Использовать форматный вывод. (М, N ≤ 20.)
4.5 Пример выполнения задания лабораторной работы № 4 Тема: Работа с двумерными массивами. Цель работы: Составление программы для обработки элементов двумерных массивов. Теория: Краткие сведения из теории ………
Пример варианта задания: Составить блок-схему (рис 9.) и программу выборки минимального элементаизмассива А (М, N), используя форматный вывод. (М, N≤ 20) PROGRAM MIN_EL DIMENSION A (20, 20) *IrinaI418z
READ(5,*) N, M PRINT *,'ввести элементы массива' READ (5,*) ((A(I,J), I = 1, N), J=1,M) AMIN = A (1,1) DO 2 I = 1, N DO 2 J = 1, M IF (А(I, J).GE. AMIN) GOTO 2 AMIN = A (I, J) да 2 CONTINUE PRINT*, 3, AMIN нет
END Введите N, M 3 3 Введите элементы массива -2 5 3 1 0 25 7 11 9
Ответ: AMIN -2 Рис. 9
РАЗДЕЛ V. Лабораторная работа № 5
Программные единицы Все рассмотренные до сих пор программы состояли из одной программной единицы, начинавшейся с оператора PROGRAM. Однако программа на Фортране может состоять из нескольких программных единиц. Такая составная программа всегда содержит главную программную единицу, или главную программу, и одну или несколько подпрограмм. Главная программа, как следует из названия, является ведущей программной единицей, и обработка всей программы начинается с первого исполняемого оператора главной программы. При записи на диске или на бумаге главную программу обычно располагают в начале всей программы, за главной программой следуют подпрограммы. Порядок следования подпрограмм значения не имеет. Нередко последовательность команд, выполняющих конкретное вычисление, необходимо повторить в нескольких различных точках программной единицы. Записывать эту последовательность команд несколько раз слишком трудоемко. Существует специальный механизм, позволяющий записать последовательность команд только один раз и выполнить ее в тех точках программы, где это необходимо. Для этого нужная последовательность команд соответствующим образом оформляется, в виде отдельной программной единицы, называемой подпрограммой. Идея подпрограммы оказалась очень плодотворной, стало возможным создание больших библиотек подпрограмм, написанных специалистами, компоновка сложных программ из библиотечных подпрограмм и подпрограмм, написанных программистом. Программист избавлен, таким образом, от необходимости тратить массу времени на написание своих собственных программ, выполняющих стандартные, математические вычисления. Эта идея использована и при построении стандартных функций Фортрана. Например, в операторе Х = - В + SQRT(В*В - 4.0*А*С) находится значение аргумента функции SQRT (т.е. делаются вычисления в скобках). Затем переход ко встроенной функции (т.е. подпрограмме) SQRT, которая выполняет последовательность команд по вычислению квадратного корня. Найденное значение корня возвращается в арифметическое выражение и вычисление значения этого выражения продолжается. Имеются два основных типа подпрограмм: FUNCTION (подпрограммы – функции) и SUBROUTINE подпрограммы. FUNCTION во многом подобна стандартным функциям языка Фортран, вычисляет единственное значение и возвращает управление в вызывающую программную единицу вместе с вычисленным значением. SUBROUTINE - подпрограммы позволяют решать более сложные задачи, например, такие как сортировка чисел в массиве, вычислять координаты центра тяжести тел сложной формы, выполнять сложные операции вывода и т.п. Программная единица, из которой осуществляется вызов подпрограммы, называется вызывающей программной единицей или программным модулем. Часто это главная программа, но вызывающей программной единицей может быть и подпрограмма. В Фортране запрещен вызов подпрограммы из самой себя непосредственно или через другую программную единицу. 5.2. Оператор FUNCTION Определение подпрограммы - функции всегда начинается с оператора FUNCTION. За ним указывается имя функции, а затем - список аргументов в скобках. Перед ним может быть описатель типа REAL или INTEGER. Таким образом, общая форма оператора определения функции имеет вид: тип FUNCTION имя (список аргументов) Имя функции дается по общим правилам для имен переменных. Следует избегать употребления в операторе FUNCTION имен стандартных функций. Если выбранное имя функции совпадает с именем стандартной функции, то будет вычисляться значение стандартной функции, за исключением случаев, которые будут рассмотрены позже. Возвращаемое в вызывающую программную единицу вычисленное значение связано с именем функции, поэтому тип этого значения определяется либо по имени функции в соответствии со стандартным соглашением о типах, либо типом функции, явно указанным в операторе FUNCTION. Информация, необходимая для вычисления значения функции, передается из вызывающей программной единицы через аргумент функции. Тип аргументов и их количество зависят от назначения функции. В качестве аргументов функции чаще всего используются простые вещественные и целые переменные. Аргументы отделяются друг от друга запятыми. Весь список аргументов заключается в скобки. Скобки обязательно должны быть, даже если аргументов нет. Теперь рассмотрим примеры операторов FUNCTION F(X) Этот оператор определяет функцию с именем F, вычисляющую вещественное значение. Она имеет один вещественный аргумент, обозначенный в определении функции буквой X. Оператор REAL FUNCTION LONG(А, В) определяет функцию с именем LONG, которая вычисляет вещественное значение и имеет два аргумента вещественных, обозначенных буквами А и В. Если бы не был указан тип функции REAL, то функция LONG в соответствии с соглашением о типах вычисляла бы целое значение. При использовании этой функции необходимо в вызывающей программной единице объявить имя - LONG вещественным при помощи оператораREAL. Оператор INTEGER FUNCTION COUNT (I, J, Y) определяет функцию с именем COUNT, которая выдает целое значение и имеет два целых аргумента I и J и один вещественный аргумент Y. Оператор FUNCSION NCHEK () определяет функцию с именем NCHEK, которая выдает целое значение и не имеет аргументов, однако скобки в записи оператора опустить нельзя.
|
|||||||||||||
Последнее изменение этой страницы: 2016-04-07; просмотров: 309; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.205.178 (0.01 с.) |