01 (Метода по фортрану), страница 11

2015-07-18СтудИзба

Описание файла

Файл "01" внутри архива находится в папке "metoda_fortran_2_cem". Документ из архива "Метода по фортрану", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика (программирование)" в общих файлах.

Онлайн просмотр документа "01"

Текст 11 страницы из документа "01"

Write(2, 4) ((A(i, j), j = 1, 4), i = 1, 4), Max_1

4 Format(4(9X, 4F6.2/), 9X, ' Max A = ', F6.2/)

Write(2, 5) ((B(i, j), j = 1, 7), i = 1, 7), Max_2

5 Format(7(7F6.2/), ' Max B = ', F6.2/)

Write(2, 6) ((C(i, j), j = 1, 3), i = 1, 3), Max_3

6 Format(3(12X, 3F6.2/), 12X, ' Max C = ', F6.2)

Close(1)

Close(2)

End

Function Poisk(N, A)

Dimension A(N, N)

R = A(1, 1)

Do 1 i = 1, N

Do 1 j = 1, N

If (R.LT.A(i, j)) R = A(i, j)

1 Continue

Poisk = R

Return

End

Подпрограмма общего вида используется в тех случаях, когда в качестве результата расчетов необходимо получить несколько значений. Так же, как и подпрограмма-функция, она является отдельной программной единицей и отличается от подпрограммы-функции тем, что не передает никакого численного значения, связанного с ее именем. Ввод и вывод данных осуществляется через список ее параметров, а вызов подпрограммы организуется с помощью специального оператора Call.

Первым оператором подпрограммы общего вида должен быть оператор Subroutine, который записывается в общем виде:

Subroutine имя ([параметр_1 [, параметр_2]...])

где имя – имя подпрограммы;

параметр_i – формальные параметры (i=1, 2, ...).

Имя подпрограммы общего вида не имеет типа, поскольку результаты вычислений возвращаются через список параметров. Оно не должно появляться в каком-либо другом операторе подпрограммы, кроме оператора Subroutine. В качестве формальных параметров, повторение которых в описании подпрограммы не допускается, могут использоваться имена переменных, массивов и внешних подпрограмм. Если в качестве формальных параметров использованы массивы, то их необходимо описывать по тем же правилам, что и для подпрограммы-функции.

Подпрограмма общего вида имеет следующую структуру:

  • оператор Subroutine;

  • группа операторов, реализующая вычислительный алгоритм;

  • оператор Return;

  • оператор End.

Например:

123456789............................................................72 73.......80

Subroutine Prog(A, B, C, N)

...............

Return

End

Использование операторов Return и End аналогично их применению в подпрограмме-функции.

Обращение к подпрограмме общего вида выполняется с помощью специального оператора Call.

Call имя ([параметр_1 [, параметр_2]...])

где имя – имя подпрограммы;

параметр_i – фактические параметры (i=1, 2, ...).

В качестве фактических параметров могут использоваться выражения, имена массивов и других подпрограмм. Количество, тип и порядок следования формальных и фактических параметров должны совпадать. Фактический параметр, являющийся именем подпрограммы, должен быть описан в программной единице, вызывающей подпрограмму общего вида так же, как и для подпрограммы-функции. Оператор Call передает управление из вызывающей программы в подпрограмму общего вида и устанавливает соответствие между ее формальными параметрами и фактическими параметрами обращения.

Использование подпрограммы общего вида может быть показано на следующем примере: написать подпрограмму вычисления корней приведенного квадратного уравнения и программу ее тестирования следующими уравнениями:

1. x2 - 3x + 2 = 0;

2. x2 + 4x + 4 = 0;

3. x2 - 4x + 13 = 0.

В результате решения тестовых уравнений должны быть получены результаты

1.

x1 = 1,

x2 = 2;

2.

x1 = -2,

x2 = - 2;

3.

x1 = 2 + 3i,

x2 = 2 - 3i.

*** Замечания по программе:

– в качестве признака типа корней уравнения вводится параметр n, принимающий значение 0 для действительных корней и 1 – для комплексных.

– в случае комплексных корней значения действительной и мнимой частей хранить отдельно.

С учетом вышесказанного программа имеет вид:

123456789................................................................72 73....80

Dimension A(3, 2), X1(3), X2(3), N(3)

Open(1, File = 'prog.dat')

Open(2, File = 'prog.res')

Read(1, 1) ((A(i, j), j = 1, 2), i = 1, 3)

1 Format(2F6.2)

Do 10 i = 1, 3

10 Call Roots(A(i, 1), A(i, 2), X1(i), X2(i), N(i))

Write(2, 2)

2 Format(' P', T10, 'Q', T16, 'X1', * T22, 'X2', T27, 'N')

Write(2, 3) ((A(i, j), j = 1, 2), X1(i), X2(i), N(i), i = 1, 3)

3 Format(4F6.2, I3)

Close(1)

Close(2)

End

Subroutine Roots(P, Q, X1, X2, N)

D = (P/2)**2 - Q

If (D.GE.0.0) Then

N = 0

X1 = -P/2 + Sqrt(D)

X2 = -P/2 - Sqrt(D)

Else

N = 1

X1 = -P/2

X2 = Sqrt(-D)

EndIf

Return

End

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

Common список

где список - список имен переменных и массивов, разделенных запятыми.

Оператор должен оформляться в соответствии со следующими правилами:

  • имена переменных и массивов могут встречаться в списке оператора только один раз;

  • имена формальных параметров и функций в списке не до пускаются;

  • оператор Common должен располагаться в программной единице до первого выполняемого оператора.

Работа оператора Common может быть пояснена на примере:

123456789.............................................................72 73.......80

Dimension C(3), X(3), N(3)

Common A, B, C

Open(1, File = 'prog.dat')

Open(2, File = 'prog.res')

.............

Close(1)

Close(2)

End

Subroutine Test(Q, X, N)

Dimension F(3)

Common P, E, F

D = (P/2)**2 - Q

......

Return

End

В данном случае главная программа имеет оператор Common, описывающий общий блок, который содержит значения переменных A и B и одномерного массива C из трех элементов. Такой же блок описан в подпрограмме Test, что позволяет располагать его переменные P, E и массив F в той же области памяти ЭВМ. В результате такого наложения переменные A и P, B и E, а также элементы массивов C и F будут всегда иметь одни и те же значения.

З а д а н и е к л а б о р а т о р н о й р а б о т е

Написать подпрограмму-функцию или подпрограмму общего вида, осуществляющую заданные вычисления, и программу ее тестирования. При тестировании подпрограмм, использовать массивы с количеством элементов не менее 16-ти (например, A(16), B(4, 4)). Исходные данные и результаты вычислений сохранить в файлах prog_7.dat и prog_7.res.

1. Умножить матрицу на вектор.

2. Упорядочить элементы одномерного массива по возрастанию.

3. Найти максимальный элемент двумерного массива и его индексы.

4. Найти среднее арифметическое значение элементов двумерного массива и индексы самого близкого к нему элемента.

5. Вычислить сумму

6. Вычислить сумму двух матриц.

7. Вычислить площадь треугольника по координатам его вершин.

8. Сформировать одномерный массив, заполненный простыми числами.

9. Выделить в одномерный массив строку матрицы с максимальным элементом.

10. Вычислить с помощью ряда Маклорена, учитывая 10 членов ряда

11. Упаковать верхний треугольник симметричной матрицы в вектор.

12. Вычислить площадь треугольника по длине его стороны и прилежащих к ней углам.

13. Сформировать симметричную матрицу, распаковывая вектор в ее верхний треугольник.

14. Определить количество повторений значения первого элемента в двумерном массиве.

15. Переформировать одномерный массив так, чтобы его элементы располагались в обратном порядке.

16. Вычислить норму вектора в декартовом пространстве.

17. Вычислить ex с помощью ряда Маклорена, учитывая 10 членов ряда

18. Вычислить центральный момент инерции ромба, заданного координатами своих углов в виде двумерного массива.

19. Пронормировать вектор по максимальной по модулю составляющей.

20. Найти угол между двумя векторами, которые представлены одномерными массивами.

21. Умножить матрицу на матрицу.

22. Найти длину наибольшей стороны треугольника, заданного координатами своих вершин в виде двумерного массива.

23. Вычислить коэффициенты параболы, проходящей через три точки, координаты которых заданы в виде двумерного массива.

24. Пересчитать декартовы координаты точки в полярные.

25. Вычислить с помощью ряда Маклорена, учитывая 10 членов ряда

26. Сформировать единичную матрицу заданного размера.

27. Сформировать таблицу из n значений произвольно задаваемой функции на отрезке [a, b].

28. Сформировать одномерный массив, заполненный факториалами чисел натурального ряда.

29. Найти номера двух элементов одномерного массива с самыми близкими значениями.

30. Вычислить площадь многоугольника, заданного координатами своих вершин. Координаты хранить в виде двумерного массива.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А № 8

ГРАФИЧЕСКИЙ ВЫВОД ИНФОРМАЦИИ

С п р а в о ч н а я и н ф о р м а ц и я

На экране монитора изображение формируется с помощью светящихся точек – пикселов (от англ. picture element ~ pixel). Используется два режима организации вывода информации на экран: текстовый и графический. Каждый из этих режимов имеет свои особенности. В текстовом режиме информация выводится в 25 строк по 80 символов каждая. При этом каждый символ размещен в прямоугольной области пикселов, которая окрашивается в два цвета: цвет фона и цвет символа. В графическом режиме возможно управление цветом каждого пиксела, что позволяет формировать более сложные изображения.

Существует несколько графических режимов работы монитора, которые различаются как количеством пикселов, формирующих изображение, так и количеством используемых цветов. Например:

  • строк по 640 пикселов и 16 цветов (64035016);

  • строк по 640 пикселов и 16 цветов (64048016);

  • строк по 640 пикселов и 256 цветов (640480256);

и другие.

Каждый из режимов использует фиксированный набор цветов, который называется цветовой палитрой. При выполнении лабораторной работы рекомендуется использовать режим (64048016). В данном режиме в цветовую палитру входят следующие цвета, каждый из которых имеет свой номер:

0

– черный;

8

– темно-серый;

1

– синий;

9

– ярко-синий;

2

– зеленый;

10

– ярко-зеленый;

3

– голубой;

11

– светло-голубой;

4

– красный;

12

– розовый;

5

– сиреневый;

13

– светло-сиреневый;

6

– коричневый;

14

– светло-желтый;

7

– светло-серый;

15

– белый.

Горизонтальные и вертикальные ряды пикселов образуют экранную систему координат, начало которой помещено в верхний левый угол экрана, как показано на рис.1. Экранная координата xэ откладывается по горизонтали, а yэ - по вертикали.

Рис.1.

При включении ЭВМ автоматически устанавливается и поддерживается текстовый режим работы монитора и требуется выполнить ряд специальных действий для того, чтобы перевести его в графический режим. Для упрощения этих операций используются графические пакеты – библиотеки подпрограмм, ориентированных на организацию графического режима и построение изображения. В настоящее время существует широкий спектр различных графических пакетов. В лабораторной работе будет рассмотрен пакет Connell Scientific Graphics, разработанный Е.Коннеллом (Ed. Connell).

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5301
Авторов
на СтудИзбе
417
Средний доход
с одного платного файла
Обучение Подробнее