Разработка программы для нахождения промежуточных значений функции по имеющемуся набору известных значений

Автор:

Сюй Цзнтао, ГБОУ Школа 460, 11 «И»

Руководитель:

Крысанов В.О., ГБОУ Школа 460,

учитель математики и информатики

Цели и задачи

Цель работы: разработка системы нахождения кривой функции, заданной табличным методом.

Задачи:

  • построение математический модели;
  • выбор архитектуры программы и проектирование программы; разработка алгоритма;
  • интеграция результатов вычисления с системой LATEX; реализация компиляции LATEX-файлов в исходном файле программы.

Используемое программное обеспечение

  • Данная программа разработана на языке программирования Си.
  • Результаты вычислений записываются в PDF-файл при помощи системы компьютерной вёрстки LATEX.

Что такое LATEX?

LATEX — компьютерная система типографского набора, предназначенная для верстки документов (основана на системе TEX, которая создана Д.Э. Кнутом из Стэнфордского университета).

Преимущества и недостатки LATEX

Достоинства:

  • документ LATEX отображается на всех компьютерных платформах одинаково;
  • LATEX — бесплатно распространяемое ПО;
  • самое лучшее полиграфическое качество документа.


Недостатки:

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

Различия между LATEX и Microsoft Word

LATEX: «Hello, World!»

\documentclass{article}
\begin{document}
    Hello world!
\end{document}

Пример исходного файла LATEX, который выводит на печать
«Hello world!»:

Математические аспекты

l_{i}(x) = \prod_{j=0, j\neq i}^{n}\frac{x-x_j}{x_i-x_j} = \frac{x-x_0}{x_i-x_0}\cdots \frac{x-x_{i-1}}{x_i-x_{i-1}}\frac{x-x_{i-1}}{x_i-x_{i-1}}\cdots\frac{x-x_n}{x_i-x_n}
\widetilde{f} = L(x) = \sum_{i=0}^{n}y_il_j(x)
xs = \{x_0, x_1, ..., x_k, ..., x_n\}, ys = \{y_0, y_1, ..., y_k, ..., y_n\}

Иммеем

Программистские аспекты

int main() {
    FILE *f, *g;
    int N;
    double a, b, eps;

    f = fopen("data", "r");
    g = fopen("output.tex", "w");

    fscanf(f, "%d", &N);
    fscanf(f, "%lf", &eps);
    fscanf(f, "%lf %lf", &a, &b);

    double*arrX = (double*)malloc(sizeof(double)*N);
    double*arrY = (double*)malloc(sizeof(double)*N);

    for(int i = 0; i < N; i++ ){
        fscanf(f, "%lf %lf", &arrX[i], &arrY[i]);
        printf("%lf %lf\n", arrX[i], arrY[i]);
    }
    ...
}
// для записи в .tex-файл
fprintf(fileTEX, "...");

Пример работы программы

Заключение

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

Made with Slides.com