Giter Club home page Giter Club logo

nstu-computing-programming's Introduction

Лабораторные работы по дисциплине "Численный методы (Программирование вычислений)" на факультете ПМИ, НГТУ

 

lab_1.for

Условия задачи

Написать программу, реализующую на языке ФОРТРАН вычисление заданного набора геометрических характеристик треугольников с использованием текстового меню. Меню должно содержать следующие пункты:

  1. ввод нового треугольника;
  2. вычисление площади треугольника;
  3. вычисление минимального угла в градусах;
  4. вычисление косинуса минимального угла;
  5. окончание работы.

Программа должна соответствовать следующим требованиям:

  • программа должна быть модульной, каждое действие пункта меню реализуется в виде отдельной подпрограммы;
  • введенные пользователем параметры треугольника должны храниться в общих блоках (см. «оператор COMMON» в справке по языку ФОРТРАН), остальные данные могут как храниться в общих блоках, так и передаваться через параметры;
  • вещественные числа хранятся с одинарной точностью, если в варианте не указано другое;
  • вычисления производятся оптимальным образом (и в отчете это необходимо обосновать);
  • все вводимые данные проверяются на корректность, при любых входных данных программа должна реагировать разумно, т.е. выдавать либо результат, либо сообщение об ошибке в данных;
  • все углы измеряются в градусах (возможно, с дробной частью).

Треугольник задается координатами вершин, использовать формулу Герона.
 

lab_2.for

Условия задачи

Изучить операторы ввода-вывода и форматирования текста на языке FORTRAN. Познакомиться с такими понятиями вычислительной математики, как «конечная арифметика», «значащие цифры», «верные значащие цифры», «абсолютная и относительная погрешности», «накопление погрешности вычислений», «округление».

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

  • рограмма должна вводить для каждой из двух переменных значение минимума, максимума и шага изменения;
  • все параметры вводить из файла с фиксированным именем, сообщения об ошибках выдавать на экран, в диалог не вступать;
  • результатом работы программы должен быть текстовый файл, содержащий таблицу значений функции; выдача таблицы на экран не обязательна;
  • формируемая таблица должна содержать n+1 строк и m+1 столбцов, первая строка, заголовки столбцов, должна содержать значения x, первый столбец, заголовки строк, – значения y;
  • значения n и m программа должна определять из заданных значений минимума и максимума каждого аргумента, а также шагов их изменения; при этом независимо от того, делит шаг диапазон изменения нацело или нет, последним значением аргумента должен быть заданный пользователем максимум;
  • строки и столбцы таблицы должны разделяться приемлемыми символами (например, | и –);
  • каждое представленное в таблице значение должно содержать ровно 4 значащие цифры числа;
  • все вводимые данные должны проверяться на корректность, для любых данных программа должна давать корректный результат (сообщение об ошибке на русском или английском языке – корректный результат, сообщение системы о делении на ноль – некорректный результат);
  • в случае, когда не все значения аргументов попадают в область определения табулируемой функции, в соответствующих клетках таблицы должен содержаться какой-то замещающий текст (например, «не определено», «бесконечность» и т.п.);
  • в случае, когда формирование таблицы по каким-то причинам невозможно (например, весь диапазон изменения аргументов не попал в область определения), программа должна выдать разумное сообщение о причинах отказа формирования таблицы и не формировать файл;
  • все углы должны измеряться в градусах (возможно, с дробной частью).
     

lab_3.for

Условия задачи

  1. Написать программу, реализующую на языке ФОРТРАН требуемые действия над матрицами произвольной (задаваемой пользователем) размерности с учетом следующих требований:
    • для распределения памяти под необходимые массивы использовать идеи псевдодинамической памяти: память выделять в головной программе, описав 1 одномерный массив максимально возможной для данного компьютера размерности; вся оставшаяся после распределения память должна находиться в конце этого массива; при недостатке памяти выдавать соответствующее сообщение;
    • каждое действие (ввод данных, вывод результата, перемножение и т.д.) должно быть реализовано в виде подпрограммы; для тех вариантов, в которых возможно реализовать перемножение строки на столбец с помощью перемножения одномерных векторов, обязательно наличие такой подпрограммы;
    • вычисления должны производиться оптимальным образом;
    • все входные данные должны вводиться из файлов (матрицы и векторы в разных файлах); размерности всех объектов (а также любая вспомогательная скалярная информация, например, ширина ленты) хранятся в отдельном текстовом файле, например, два целых числа для прямоугольной плотной матрицы, одно – для вектора); при этом матрица в файлах хранится уже в заданном формате, число файлов для хранения матрицы определяется форматом и обычно совпадает с числом массивов.
  2. Протестировать разработанную программу. Для тестирования использовать матрицы небольшой размерности.
  3. Реализовать задание лабораторной работы с использованием написанных ранее подпрограмм при условии, что матрицы и векторы хранятся в файлах прямого доступа (файл с размерностями оставить текстовым).
  4. Разработать программу генерации тестов большой размерности в заданном формате. Программа должна создавать все требуемые файлы прямого доступа.
  5. Для просмотра и создания тестов с файлами прямого доступа рекомендуется написать дополнительные программы, которые формируют файл прямого доступа по заданному текстовому файлу, и наоборот.
  6. Для просмотра матриц малой размерности, заданных в разреженном и профильном формате, рекомендуется разработать программу, выводящую матрицу в плотном формате в текстовый файл.

Умножение несимметричной матрицы на вектор. Матрица в памяти хранится в профильном строчно-столбцовом формате.

nstu-computing-programming's People

Contributors

alecsmirnov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.