Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Правила установления соответствия между формальными и фактическими аргументами при обращении к подпрограммам↑ ⇐ ПредыдущаяСтр 12 из 12 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Соблюдение следующих правил является обязательным при использовании подпрограмм FUNCTION и SUBROUTINE. 1. Необходимо, чтобы количество, тип и порядок следования фактических аргументов в указателе функции или в операторе CALL соответствовали количеству, типу и порядку следования формальных аргументов, указанных в операторе FUNCTION или SUBROUTINE. Например, к подпрограмме
SUBROUTINE SUM (А, В, К, N) В = А**К N = N + K
можно обратиться с помощью следующего оператора CALL SUM (С, REZ, 5, L) 2. Между формальными и фактическими аргументами должно быть установлено следующее соответствие (Табл. №12): Таблица №12
3. Если формальный аргумент является массивом, то соответствующий фактический аргумент должен быть либо массивом, либо элементом массива. В этом случае массивы в вызывающей и вызываемой программах должны быть объявлены таким образом, чтобы размер массива или части массива, используемого в качестве фактического аргумента, был не меньше размера массива, используемого в качестве формального аргумента. Количество и величины измерений фактического и формального массивов могут не совпадать. Пример.
В этом случае между элементами массивов А и В устанавливается соответствие, начиная с первых элементов: А (1) А (2) А (3) А (4) А (5) А (6) А (7) А (8)... В (1) В (2) В (3) В (4) В (5) Если обращение к подпрограмме S1 осуществляется с помощью оператора CALL S1 (A (3)) то соответствие будет следующим: А (1) А (2) А (3) А (4) А (5) А (6) А (7) А (8)... В (1) В (2) В (3) В (4) В (5)
Пример.
В этом случае между элементами массивов А и В устанавливается следующее соответствие: А (1) А (2) А (3) А (4) А (5) А (6) А (7) В (1,1) В (2,1) В (3,1) В (1,2) В (2,2) В (3,2) Необходимо помнить, что элементы двухмерного массива хранятся в памяти ЭВМ по столбцам.
4. Формальный аргумент — массив может быть описан в подпрограмме оператором DIMENSION с максимальными значениями всех измерений, заданными целыми переменными, например
SUBROUTINE S3 (X, N, М) DIMENSION X (N, M) … В этом случае значения переменных N и М должны быть определены в подпрограмме как формальные аргументы. Они также не должны превышать максимальных значений измерений массива — фактического аргумента. Обращение к подпрограмме S3 может быть таким: DIMENSION A (4, 2) … CALL S3 (А, 4, 2) …Формальные аргументы N и М получат значения 4 и 2, и между элементами массивов A (4, 2) и X (4, 2) будет полное соответствие, так как количество и величины их измерений совпадают. При обращении к подпрограмме S3 оператором CALL S3 (А, 2, 2) элементам формального массива X (2, 2) ставятся в соответствие элементы фактического массива А (4, 2) следующим образом: А (1,1) А (2,1) А (3,1) А (4,1) А (1,2) А (2,2)... Х (1,1) X(2,1) Х (1,2) Х (2,2)
5. Константа, выражение и имя подпрограммы могут быть использованы в качестве фактического аргумента только в том случае, если в подпрограмме соответствующему формальному аргументу не присваивается значение. 6.3 Примеры выполнения задания к лабораторной работе № 6 Пример1. Составить программу вычисления значения функции при заданных значениях а, Ь и с, где х1, х2 — корни уравнения ах2 + bx – 1,5 = 0; у1 и y2 — корни уравнения 2у2 – у + с = 0. Вычисление корней выполнять в подпрограмме SUBROUTINE. Если корни мнимые, то считать их равными нулю. Организуем подпрограмму с именем QUADR, предназначенную для вычисления корней t1 и t2 квадратного уравнения at2 + bt + с = 0. Список формальных аргументов должен содержать пять аргументов: a, b и c, являющихся исходными данными для работы подпрограммы, t1 и t2, обозначающих результаты ее выполнения. Формулы для вычисления действительных корней уравнения:
; .
При составлении подпрограммы положим, что значение коэффициента a ≠ нулю. В основной программе необходимо дважды обратиться к подпрограмме QUADR, записав соответствующие значения фактических аргументов. Программа решения задачи имеет вид:
подпрограмма основная программа
Задания на тему: составление подпрограмм типа SUBR0UTINE. Составить тексты программ иблок-схемы к заданиям 1), 2), 3). (смотри на стр. 65 возможные варианты решений)
1) Билеты, на городском транспорте имеют номера от 000 000 до 999 999. Билет считается «счастливым», если сумма первых трех цифр его номера равна сумме трех последних цифр. Найти количество всех «счастливых» билетов (смотри на стр. 60 программу с именем LUCK).
2) Вычислить К членов последовательности, общий член которой
* Раздел – SUBROUTINE, * Вычислить К членов последовательности, общий член которой * A(N)=A(N-1)/N, A(1)=B. Дописать головную программуVUZAIK, из которой * происходит вызов подпрограммы AIK.
SUBROUTINE AIK (A,B,K) DIMENSION A(K) A(1)=B DO 5 L=2,K D=L A(L)=A(L-1)/D 5 CONTINUE RETURN END
3) Расположить элементы одномерного массива в порядке их возрастания. Дописать головную программу мas_rost, из которой происходит вызов подпрограммы rost(A,N).
6.5 Задания к лабораторным работам №5 и №6 (Составить тексты программ иблок-схемы). 1. Составить программу вычисления значения функции g = log2 (x) (logb (x + y) + logb+1 (x - у)) при заданных значениях b, x и у. Для вычисления логарифма по произвольному основанию использовать оператор-функцию (logat = ln t / ln a).
2. Составить программу вычисления значения функции для заданных значений х и t. Вычисление многочлена ax2 + bx + c организовать в виде оператора-функции.
3. Составить программу вычисления среднего арифметического положительных элементов массивов A (50) и C (80), используя подпрограмму FUNCTION. Если в массиве нет положительных элементов, то их среднее арифметическое считать нулем.
4. Составить программу вычисления суммы положительных и отрицательных элементов массивов X (40) и Y (50) с использованием подпрограммы SUBROUTINE.
5. Составить программу вычисления значения функции где amin и bmin — минимальные элементы массивов A (50) и B (20) соответственно. Вычисление минимального элемента массива оформить в виде подпрог- раммы FUNCTION с именем MIN.
6. Составить программу вычисления значения функции ,
где nx, mx, lx — соответственно количество отрицательных, положительных и нулевых элементов массива X (20); ny, my, ly — соответствующие характеристики массива Y (30). Для вычисления характеристик массивов использовать подпрограмму SUBROUTINE.
7. Составить подпрограмму записи элементов прямоугольной матрицы в одномерный массив в порядке следования строк. Используя подпрограмму, сформировать соответствующие одномерные массивы для матриц A (5,2) и Y (3,3).
8. Составить подпрограмму вычисления координат минимального элемента квадратной матрицы. Используя подпрограмму, заменить эти элементы нулями в матрицах А (5,5) и М(3,3). 9. Составить программу вычисления значения функции где ai и bi - элементы массивов A(20) и B(40) соответственно. Вычисление суммы заданного количества элементов массива оформить в виде подпрограммы FUNCTION. Контрольные вопросы к пройденному материалу
1. В какой последовательности выполняются операторы программы? 2. Какие действия ЭВМ определены операторами: а) присваивания; б) ввода/вывода. 3. Какую информацию задает предложение FORMAT? 4. По блок-схеме программы объяснить алгоритм решения задачи. 5. Объяснить различие числовых данных целого и вещественного типов. 6. Как определить тип констант и переменных?
7. Перечислить основные правила задания арифметических выражений. 8. Что определяют спецификации I, Е,F, Х, литерал? Что определяет список специ фикаций предложения FORMAT? 9. Объясните взаимодействие оператора вывода с предложением FORMAT. 10. В каком порядке выполняются операторы программы? 11. Объяснить действия безусловного и условного операторов перехода? 12. Объяснять алгоритмы и программы примеров. 13. Объяснить алгоритм и программу, разработанную в соответствии с индивиду альным вариантом задания. 14. Правила записи переменных с индексами.
15. Правила описания массивов с индексами в памяти ЭВМ. 16. Структура и действие оператора цикла. 17. Правила программирования с использованием оператора цикла. 18. Основные способы ввода-вывода массивов. 19. Объяснить примеры, приведенные в разд.4. 20. Перечислить требования к формальным параметрам операторов-функций. 21. Могут ли в состав выражения операторов-функций входить переменные, отлич ные от формальных параметров? 22. В какой части программы должны размещаться операторы-функции? 23. Перечислить основные отличия подпрограммы-функции от операторов-функций. 24. Как оформляется подпрограмма-функция? 25. Перечислить требования, которым должны удовлетворять фактические парамет ры при обращении к функции. 26. Правила обращения к функциям, описанным операторами. 27. Правила обращения к подпрограммам-функциям. 28. Как оформляется подпрограмма общего вида? 29. Как производится обращение к подпрограммам общего вида? 30. Каким образом результаты, полученные в подпрограмме,могут передаваться в основную программу? 31. Как определяются допустимые типы фактических параметров при обращении к подпрограмме? 32. В чем состоит модульная структура программы, целью ее использования?
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА 1. Г.Г. Калиш Основы вычислительной техники. – Москва “Высшая школа”. 2000. с 269 2. Дж. Ашкрофт, Р. Элдридж, Р. Полон, Г. Уилсон Программирование на Фортране 77. – Москва “Радио и связь”. 1990. с. 265 3. О.В. Бартеньев Современный Фортран. – 2-е изд., испр. - М.: “Диалог - МИФИ”, 1998г.- 397с. 4. О.В. Бартеньев Фортран для студентов. М.: “Диалог - МИФИ”, 1999г. 397 с. 5. В.Е. Краскевич, К.Х. Зеленский, В.И. Гречко Численные методы в инженерных исследованиях. – Киев, «Вища школа». 1986. с. 261 6. А.И. Плис. Н.А. Сливина Лабораторный практикум по высшей математике. – Москва “Высшая школа” 1983. с 192 7. Вычислительная техника в инженерных и экономических расчетах / Под ред. А.В.Петрова. - М.: Высшая школа, 1984. - 320 с.
8. Сапрыкина Л.Т., Фомина А.А. Методические указания к выполнению лабораторных работ «Программирование на ЭВМ и численные методы». – Николаев: НКИ, 1985. – 72с. 9. Ю.В. Петропавлов, Ю.Г. Тендитный Избранные вопросы вычислительной математики. Херсон, филиал УГМТУ, 1999. Примечание 1: Варианты возможных решений заданий 5.6 и 6.4.
раздел 6.4; задание 1) * Раздел – SUBROUTINE, * Пример использования * вложенных циклов.
PROGRAM LUCK NC=0 DO 2 I=1,10 DO 2 J=1,10 DO 2 K=1,10 DO 2 L=1,10 DO 2 M=1,10 DO 2 N=1,10 IF(I+J+K-L-M-N) 2,1,1 1 NC=NC+1 2 CONTINUE PRINT 3, NC 3 FORMAT (' ЧИСЛО СЧАСТЛИВЫХ *БИЛЕТОВ РАВНО ', I 6) END
раздел 5.6; задание 2)
С 0 Д Е Р Ж А Н И Е Введение…………………………………………............………………..…….…….......3 1. Операционная система (ОС)…………..………..………….…………..………...…...3 1.1 Семейство операционных систем Windows ….……………………………….….....3 1.2 “Мышь”……………….………………………………………………………………..4 1.3 Магнитные носители ……..….………………………………………………….……4
РАЗДЕЛ I. Контрольная работа (части I II). Лабораторная работа №1………….......5 1.1. Общие сведения о языке Фортран. Этапы обработки программ…...………......5 1.1.2 Основные символы и ключевые слова……………………………………….…...5 1.1.3 Осповные элементы ФОРТРАНа………………………………………………….6 1.1.4 Типы данных в ФОРТРАНе ……………………………………………………....6 1.1.5 Арифметические выражения и операции……………………………………...….7 1.1.6 Операции над вещественными и целыми величинами…………………..….......8 1.1.7 Возведение в вещественную степень ()……………………………..8 1.1.8 Возведение в отрицательную степень………………………………………..…....8 1.1.9 Корень квадратный……………………………………………………………..…...9 1.1.9.1 Таблицы с примерами записей выражений на Фортране…(1,2,3)……….........9 1.1.9.2Операции отношения…………………………………………………………...10 1.1.9.3 Логические значения…………………………………………………………….10 1.1.10 Тригонометрические функции…………………………………………………..11 1.1.11 Обратные тригонометрические функции……………………………………...12 1.1.12 Арифметический оператор присваивания………………………………………12 1.2 Запись программ на Фортране………………………………………………….…...12 1.2.1 Обработка программ на компьютере…………………………………………......14 1.2.2 Оператор бесформатного ввода READ…………………………………………...15 1.2.3 Операторы вывода……………………………………………….………………....15 1.2.4 Отчет по лабораторной работе….............................................….……….............17
1.2.5 Оператор PARAMETER…………………………………………………………....17 1.2.6 БЛОК – СХЕМЫ ……....……………………………………………………….........18 1.2.7 Алгоритм выполнение практической работы…………………………….……...19 1.2.8 Консоль-проект ………………………………………………………………........20 1.3 Задания к контрольной работе (часть 1)………………………………………....21 1.3.1 Оператор FORMAT………………………………………………………………...24 1.3.2 Задания к контрольной работе (часть 2) ………………………………………...27 1.3.3 Пример выполнения контрольной работы (часть1, 2) ………………………..…24 1.3.4 Задания к лабораторной работе № 1…………………………………………......28 1.3.5 Пример выполнения лабораторной работы № 1……………………………….....31 1.3.6 Метки операторов………………………………………………………………...…32 1.3.7 Форматный ввод………………………………………………………………….....32
РАЗДЕЛ II. Лабораторная работа № 2..……………..…………………………….....33 2.1. Алгоритмы……………………………..….………………………………….…….....33 2.2 Рассмотрим пример составления схем алгоритмов…………..…..…………..…....34 2.3 Операторы передачи управления……………….……………………………..…......35 2.4 Вычисляемый оператор перехода…………..……….………………………….…....35 2.5 Условный арифметический оператор IF……..………………………………..….....35 2.6 Логический условный оператор IF …………………………………………….......36 2.7 Пример выполнения задания в работе № 2 …………………………………........37 2.8 Задания к лабораторной работе № 2…………………………………………….….38
РАЗДЕЛ III. Лабораторная работа № 3 ………………………………………........40 3.1 Циклический алгоритм …………………………………………………………......40 3.2 Вспомогательные операторы управления…………………………...………….....42 3.3 Оператор паузы …………………………………………………………………......43 3.4 Массивы………………………………………………………………………….......43 3.5 Оператор DIMENSION……………………………………………………….…......44 3.6 Индексные выражения……………….………………………………………….…..44 3.7 Ввод – вывод одномерных массивов………………………….……………………44 3.8 Оператор цикла DO……………………………………………………………….…46 3.9 Задания к лабораторной работе № 3………………………………………………..47 3.10 Пример выполнения задания к лабораторной работе № 3……………………....47
РАЗДЕЛ IV. Лабораторная работа № 4 …………………………………………......48 4.1Дополнение к оператору цикла DO……………………………………………......48 4.2 Двумерные массивы……………………………………………………………...…49 4.2.1 Ввод/вывод элементов матрицы………………………………………………....49 4.3 Вложенные циклы…………………………………………………………………..50 4.4 Задания к лабораторной работе № 4…………………………………………..…..51 4.5 Пример выполнения задания к лабораторной работе № 4…………………....…51
РАЗДЕЛ V. Лабораторная работа № 5………………………………..………........52 5.1 Программные единицы………………………………………………………….....52 5.2 Оператор FUNCTION………………………………………………………….…...53 5.3 Другие операторы, входящие в подпрограммную – функцию……………….....54 5.4 Обращение к подпрограмме – функции……………………………………….....54 5.5 Примеры решения заданий к лабораторной работе № 5.............….……….......56 5.6 Задания на тему: составление подпрограмм типа FUNCTION ……………......57 РАЗДЕЛ VI. Лабораторная работа № 6……………………………..…………..…..58 6.1 Подпрограммы типа SUBR0UTINE………………………………..………....…...58 6.2 соответствия между формальными и фактическими аргументами .. ……......….59 6.3 Примеры выполнения задания к лабораторной работе № 6………..….…..........61 6.4 Задания на тему: составление подпрограмм типа SUBR0UTINE……..….........61 6.5 Задания к лабораторным работам №5 и №6…………………………..…..…..…62 Контрольные вопросы к пройденному материалу…………………………..…........63 Литература………………………………………………………………………...........64 Примечание 1 (возможные решения)…….……………………………………..........65 Содержание……………………………………………………………………….........66 Примечание 2 (для заметок)…………………………………………………….........67
Для заметок:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-07; просмотров: 725; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.198.148 (0.014 с.) |