Решение задач с одномерными массивами Задание
Написать программу, в которой:
1. Ввести 12 вещественных чисел из файла in.txt в одномерный массив и вывести этот массив в результирующий файл out.txt.
2. Дополнительные параметры, если они есть в варианте задания, ввести в диалоге с клавиатуры и вывести в файл out.txt.
3. Вычислить значения трех переменных, которые входят в состав выражения, и значение выражения.
4. По мере вычисления переменных и выражения выводить их значения в файл out.txt, поясняя фразами из индивидуального задания.
Комментарии к заданию
1. При подготовке исходных данных в файле In.txt воспользуйтесь любым текстовым редактором. Для отладки в файле подготовьте числа, значения которых соответствуют индивидуальному заданию - среди них должны быть числа отрицательные, положительные, большие D и т. д.
2. Исходные данные и результаты выводите в файл out.txt только по формату.
3. Если вычисление какой-либо переменной невозможно из-за отсутствия в массиве подходящих элементов, вывести соответствующее сообщение (смотри пример программы).
4. Все переменные, используемые как индексы элементов массива и счетчики, должны быть целого типа.
5. Имена переменных в программе не должны совпадать с именами встроенных функций Фортрана.
Содержание отчета
1. Название работы и номер варианта задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст варианта индивидуального задания.
4. Единая блок-схема программы, cоставленная из фрагментов.
5. Распечатка текста программы.
6. Распечатка файла out.txt.
Справочная информация
Таблица 9.
Средние значения множества вещественных чисел а1, а2, а3, …, аn
Среднее арифметическое
|
| Среднее геометрическое
|
| Среднее квадратичное
|
| Среднее гармоническое
|
где ai ¹0, n – количество ненулевых элементов
|
Пример
В массиве M из 12 вещественных чисел (должны быть отрицательные, положительные и равные нулю) найти:
1. A – среднее арифметическое отрицательных элементов, больших D (D <0, ввести с клавиатуры),
2. B – номер минимального положительного элемента,
3. C – среднее гармоническое ненулевых элементов с четными номерами.
Вычислить Z = A + B – C.
Блок-схемы
Далее приведены 3 фрагмента блок-схемы программы. Для отчета следует из фрагментов составить единую блок-схему программы Vector.
| Рис.4. A – среднеарифметическое отрицательных, больших D * - сообщение: «В массиве нет отрицательных элементов, больших D»
|
Рис.5. B – номер минимального положительного элемента
** - сообщение: «В массиве нет положительных элементов»
|
|
| Рис.6. C – средне гармоническое ненулевых элементов с четными номерами
*** - сообщение: «Все элементы массива с четными номерами = 0»
| Программа (пример)
Program Vector
! студент (фамилия, имя) группа № работа № вариант №
Implicit None
Real,dimension(1:12):: M
Real:: A, C, D, Z
Integer B, i, Notr, Cnt
Open(1,FILE=’In.txt’) ! файл с исходным массивом
Open(2,FILE =’Out.txt’) ! результирующий файл
Write(2,*) ’Программа Vector’
Read(1,*)M ! ввод массива
Write(2,10) M ! вывод массива в 2 колонки с заголовком
10 Format (?????)! допишите оператор Format
Write(*,*) ’Input D < 0’ ! диалог для ввода значения D <0
Read(*,*) D
Write(2,14) ’D =’, D, ’- должно быть отрицательным’
14 Format (?????)! допишите оператор Format
! *****
По блок-схемам, составленным с учетом индивидуального задания, написать операторы программы Vector для вычисления и форматного вывода трех переменных и результирующего выражения. Выводить значения переменных по мере их вычисления, поясняя формулировками из индивидуального задания.
! *****
End ProgramVector
Результаты программы Vector
Содержимое файла Out.txt в результате работы программы Vector для приведенного примера задания, пояснения пишите по-русски:
Программа Vector
Исходный массив
× × × 6 строк в 2 колонки
D = -12.00 - должно быть отрицательным
A = -17.05 - среднее арифметическое элементов D<M<0
B = 10 - номер минимального положительного элемента
C = 25.13 - средне гармоническое элементов с нечетными номерами
Z = 34.77 = A + B – C
Контрольные вопросы
1. Что в программировании называют массивом?
2. Основные характеристики одномерногомассива.
3. Ранг массива; приведите примеры массивов 0, 1, 2 ранга и их математическую интерпретацию.
4. Примеры описания одномерного массива, диапазон индекса. Что в программе объявляют операторы?
Logical C(7), D(7), B(-7:0), U(0:7)
Integer A(-3:3)
Real Е(0:6)
Какие массивы конформны?
Как лучше описать эти массивы в Фортран-90?
5. Порядок размещения элементов массива в памяти ПК.
6. В программе объявлен одномерный массив A с нумерацией элементов от 1 до 12. Какой триплет задаёт секцию: - из всех элементов массива в обратном порядке? - из последних 8 элементов массива? - из первой трети массива? - из элементов массива с нечетными номерами?
7. Как работает оператор where?Приведитепримеры оператора where а) без блока; в) с одним блоком; с) с двумяблоками.
8. В программе объявлен массив: Real,dimension(1:10)::A
Что произойдет при выполнении каждого из операторов?
Read(1,*) A(10)
Write(*,*) A(10)
Read(*,*) A(11)
Write(*,*) A(11)
Write(*,11) A(8:10)
Напишите оператор format для последнего оператора Write.
Как вывести 6 последних элементов массива A?
Пример контрольного задания
1. Дан массив из 20 элементов. Написать программу нахождения номера максимального по модулю среди первых 8 элементов массива (аналогичные задачи смотри в вариантах заданий). Блок-схема обязательна. Вывести значение по формату.
2. В программе используется вещественный массив из 100 элементов. Напишите операторы для вывода элементов массива в виде:
a) Заголовок «Исходный массив»;
b) Элементы массива по четыре в строке.
3. В файле data.txt – 12 чисел натурального ряда. Как будут выглядеть выведенные на экран строки (с пробелами)?
Integer, dimension(1:12):: Mas = 0
Open(1,file = ’data.txt’)
Read(1,*) Mas(3), Mas(5)
Write(*,11) Mas(3:5)
11 Format (I4)
Таблица 10.
Варианты индивидуальных заданий «Одномерные массивы»
№
| Выражение
| Определение переменных
|
|
| A – сумма отрицательных элементов с четными номерами;
B – максимальный элемент среди N первых элементов;
C – среднее геометрическое положительных элементов.
|
|
| R – произведение положительных элементов с нечетными номерами;
Q – последний положительный элемент с четным номером;
S – среднее гармоническое положительных элементов.
|
|
| H – количество нулей среди N последних элементов;
E – номер минимального элемента;
G – среднее квадратичное элементов с четными номерами.
|
|
| S – сумма положительных элементов, меньших D;
T – минимальный по модулю ненулевой элемент (со знаком);
U – среднее арифметическое N первых элементов.
|
|
| X – количество элементов со значениями из интервала [A, B];
Y – модуль минимального элемента;
Z – среднее арифметическое элементов с нечетными номерами.
|
|
| U – произведение элементов с четными номерами;
R – номер максимального по модулю элемента;
S – среднее арифметическое N последних элементов.
|
|
| A – произведение ненулевых элементов;
B – последний отрицательный элемент с нечетным номером;
C – среднее арифметическое положительных элементов.
|
|
| R – сумма всех элементов;
Q – номер первого нулевого элемента;
S – среднее геометрическое положительных среди N последних элементов.
|
|
| H – сумма положительных среди N первых элементов;
E – номер первого отрицательного элемента;
G – среднее арифметическое отрицательных элементов.
|
|
| A – первый положительный элемент с четным номером;
B – сумма элементов с нечетными номерами;
C – среднее гармоническое ненулевых среди N первых элементов.
|
|
| X – количество элементов, меньших D, с нечетными номерами;
Y – максимальный по модулю элемент (со знаком);
Z – среднее квадратичное положительных элементов.
|
|
| A – произведение положительных элементов;
B – последний положительный элемент с четным номером;
C – среднее квадратичное N первых элементов.
|
|
| V – сумма отрицательных элементов, больших D, (D<0) ;
T – номер максимального элемента;
U – среднее геометрическое положительных среди N первых элементов.
|
| (U+T) (S+2)
| S – сумма модулей отрицательных элементов;
T – номер минимального по модулю ненулевого элемента;
U – среднее квадратичное N последних элементов.
|
|
| H – произведение модулей отрицательных элементов;
E – номер последнего положительного элемента:
G – среднее арифметическое элементов с четными номерами.
|
|
| X – сумма элементов, больших D, с четными номерами;
Y – номер максимального отрицательного элемента;
Z – среднее квадратичное всех элементов.
|
|
| A – среднее гармоническое отрицательных элементов;
B – номер второго нулевого элемента;
C – количество отрицательных элементов с четными номерами.
|
|
| A – сумма положительных элементов;
B – номер минимального положительного элемента;
C – среднее гармоническое ненулевых элементов.
|
|
| X – количество положительных элементов с четными номерами;
Y – номер последнего нулевого элемента:
Z – среднее гармоническое ненулевых элементов, больших D.
|
|
| A – произведение отрицательных элементов;
B – максимальный по модулю элемент (со знаком);
C – среднее арифметическое модулей отрицательных элементов.
|
|
| H – количество отрицательных элементов;
E – минимальный элемент среди N последних элементов;
G – среднее квадратичное элементов с четными номерами.
|
|
| S – количество положительных элементов;
T – минимальный положительный элемент;
U – среднее арифметическое элементов.
|
|
| U – произведение ненулевых среди N первых элементов;
R – номер максимального по модулю элемента;
S – среднее геометрическое положительных элементов.
|
|
| R – максимальный элемент с четным номером;
Q – количество ненулевых элементов;
S – среднее гармоническое положительных элементов.
|
| (U+T) (S+2)
| S – сумма N последних элементов;
T – максимальный отрицательный элемент;
U – среднее квадратичное элементов с четными номерами.
|
|
| A – количество элементов, больших D;
B – первый положительный элемент с четным номером;
C – среднее арифметическое N первых элементов.
|
|
| H – сумма элементов со значениями из интервала [A, B];
E – последний положительный элемент с четным номером;
C – среднее арифметическое положительных элементов.
|
|
| H – произведение элементов со значениями из интервала [A, B];
E – номер минимального по модулю ненулевого элемента;
C – среднее геометрическое положительных среди N последних элементов.
|
|
| R – количество элементов, меньших D;
Q – модуль минимального элемента;
S – среднее квадратичное положительных элементов.
|
|
| U – минимальный элемент с номером из интервала [K, L];
T – среднее арифметическое элементов с нечетными номерами.
R – сколько нулей среди N последних элементов.
|
|