Как составлять линейные программы

Содержание

Исключительно важно использовать язык блок-схем при разработке алгоритма решения задачи. Решение одной и той же задачи может быть реализовано с помощью различных алгоритмов, отличающихся друг от друга как по времени счета и объему вычислений, так и по своей сложности. Запись этих алгоритмов с помощью блок-схем позволяет сравнивать их, выбирать наилучший алгоритм, упрощать, находить и устранять ошибки.

Отказ от языка блок-схем при разработке алгоритма и разработка алгоритма сразу на языке программирования приводит к значительным потерям времени, к выбору неоптимального алгоритма. Поэтому необходимо изначально разработать алгоритм решения задачи на языке блок-схем, после чего алгоритм перевести на язык программирования.

При разработке алгоритма сложной задачи используется метод пошаговой детализации. На первом шаге продумывается общая структура алгоритма без детальной проработки отдельных его частей. Блоки, требующие детализации, обводятся пунктирной линией и на последующих шагах разработки алгоритма продумываются и детализируются.

Python. Программирование линейных алгоритмов

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

  • Этап 1 . Математическое описание решения задачи.
  • Этап 2 . Определение входных и выходных данных.
  • Этап 3 . Разработка алгоритма решения задачи.

Базовые алгоритмические конструкции

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

  • следование (линейный алгоритм);
  • ветвление (разветвляющийся алгоритм);
  • цикл-пока (циклический алгоритм).

Линейные алгоритмы

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

Пример

ЗАДАЧА. Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.

На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:

Этап 1. Математическое описание решения задачи.

Математическим решением задачи является известная формула:

где с-длина гипотенузы, a, b – длины катетов.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.

Этап 3. Разработка алгоритма решения задачи.

На данной схеме цифрами указаны номера элементов алгоритма, которые соответствуют номерам пунктов словесного описания алгоритма.

Разветвляющиеся алгоритмы

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

Пример

ЗАДАЧА. Разработать алгоритм вычисления наибольшего числа из двух чисел x и y.

Этап 1. Математическое описание решения задачи.

Линейные программы, Python

В схеме алгоритма решения задачи цифрами указаны номера элементов алгоритма, которые соответствуют номерам шагов словесного описания алгоритма

В рассматриваемом алгоритме (рис.3) имеются три ветви решения задачи:

  • первая: это элементы 1, 2, 3, 4, 8.
  • вторая: это элементы 1, 2, 3, 5, 6, 8
  • третья: это элементы 1, 2, 3, 5, 7, 8.

Выбор ветви определяется значениями x и y в элементах 3 и 5, которые являются условиями, определяющими порядок выполнения элементов алгоритма. Если условие (равенство), записанное внутри символа «решение», выполняется при введенных значениях x и y, то следующими выполняется элементы 4 и 8. Это следует из того, что они соединены линией с надписью «да» и направление (последовательность) вычислений обозначена стрелочкой.

Если условие в элементе 3 не выполняется, то следующим выполняется элемент 5. Он соединен с элементом 3 линией с надписью «нет». Если условие, записанное в элементе 5, выполняется, то выполняется элементы 6 и 8, в противном случае выполняются элементы 7 и 8.

Циклические алгоритмы

Циклический алгоритм – определяет повторение некоторой части действий (операций), пока не будет нарушено условие, выполнение которого проверяется в начале цикла. Совокупность операций, выполняемых многократно, называется телом цикла.

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

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

  • параметр цикла – величина, с изменением значения которой связано многократное выполнение цикла;
  • начальное и конечное значения параметров цикла;
  • шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении.

Цикл организован по определенным правилам. Циклический алгоритм состоит из подготовки цикла, тела цикла и условия продолжения цикла.

В подготовку цикла входят действия, связанные с заданием исходных значений для параметров цикла:

  • начальные значения цикла;
  • конечные значения цикла;
  • шаг цикла.

В тело цикла входят:

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

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

Пример

ЗАДАЧА. Разработать алгоритм вычисления суммы натуральных чисел от 1 до 100.

Этап 1. Математическое описание решения задачи.

Обозначим сумму натуральных чисел через S. Тогда формула вычисления суммы натуральных чисел от 1 до 100 может быть записана так:

где Xi – натуральное число X c номером i, который изменяется от 1 до n, n=100 – количество натуральных чисел.

Этап 2. Определение входных и выходных данных.

Входными данными являются натуральные числа: 1, 2, 3, 4, 5, …, 98, 99, 100.

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

Параметр цикла – величина, определяющая количество повторений цикла. В нашем случае i – номер натурального числа.

Читайте также:
Как состарить документ программа

Подготовка цикла заключается в задании начального и конечного значений параметра цикла.

  • начальное значение параметра цикла равно 1,
  • конечное значение параметра цикла равно n,
  • шаг цикла равен 1.

Для корректного суммирования необходимо предварительно задать начальное значение суммы, равное 0.

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

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

Этап 3. Разработка алгоритма решения задачи.

Введем обозначения: S – сумма последовательности, i – значение натурального числа.

Начальное значение цикла i=1, конечное значение цикла i =100, шаг цикла 1.

Линейный алгоритм. Понятие и особенности. Блок-схема

Каждый человек на протяжении своей жизни решает множество задач разной сложности. Но даже самые простые из задач выполняются последовательно, то есть за несколько шагов. Эту последовательность можно назвать алгоритмом. Последовательности бывают разные, но начинать их изучение лучше всего с линейных.

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

Алгоритмический язык

Представьте, что человеку, работающему за компьютером, поставлена некая вычислительная задача. В языке программирования решение этой задачи выполняется с помощью алгоритмизации. Решение предполагает: — разбиение на этапы; — разработку алгоритма; — составление программы решения на алгоритмическом языке; — ввод данных; — отладку программы (возможны ошибки — их надо исправить); — выполнение на ПК; — анализ результатов.

Алгоритмический язык является средством описания алгоритмов, а уже алгоритм, в свою очередь, представляет собой чёткое описание определённой последовательности действий, направленных на решение необходимой задачи.

Свойства алгоритма

Их несколько: — конечность. Любой алгоритм должен быть завершённым, а окончание наступает после выполнения определённого числа шагов; — однозначность, понятность. Не допускается разных толкований, неопределённости и двусмысленности — всё должно быть чётко и ясно, а также понятно исполнителю — и правила выполнения действий линейного алгоритма, и сами действия; — результативность. Итог работы — результат, полученный за конечное число шагов; — универсальность, массовость. Качественный алгоритм способен решать не одну задачу, а целый класс задач, имеющих схожую постановку/структуру.

Линейная структура

Любой алгоритм составляется из ряда базовых структур. Простейшей базовой структурой является следование — структура с линейными характеристиками. Из этого можно сформулировать определение.

Линейный алгоритм — это алгоритм, образуемый командами, которые выполняются однократно и именно в той последовательности, в которой записаны. Линейная структура, по сути, проста. Записать её можно как в текстовой, так и в графической форме.

Представим, что у нас стоит задача пропылесосить ковёр в комнате. В текстовой форме алгоритм будет следующим: — принести пылесос к месту уборки; — включить; — пропылесосить; — выключить; — унести пылесос.

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

Теперь поговорим про графическую форму представления.

Блок-схема

Для изображения алгоритма графически используют блок-схемы. Они представляют собой геометрические фигуры (блоки), соединённые стрелками. Стрелки показывают связь между этапами и последовательность их выполнения. Каждый блок сопровождается надписью.

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

Блок ввода-вывода данных (отображает список вводимых и выводимых переменных):

Арифметический блок (отображает арифметическую операцию/группу операций):

Условный блок (позволяет описать условие). Алгоритмы с таким блоком используются при графической визуализации алгоритмов с ветвлением:

Условного блока нет в классическом линейном алгоритме, так как в нём, как уже было сказано ранее, все операции выполняются последовательно, то есть одна за другой. В линейном алгоритме размещение блоков выглядит следующим образом:

А вот, как решается задача по нахождению площади треугольника по формуле Герона. Здесь a, b, c – это длины сторон, S – площадь треугольника, P – периметр.

Следует обратить внимание, что запись «=» — это не математическое равенство, а операция присваивания. В результате этой операции переменная, стоящая слева от оператора, получает значение, которое указано справа. Значение не обязательно должно быть сразу определено (a = 3) — оно может вычисляться посредством выражения (a = b + z), где b = 1, a z = 2.

Примеры линейных алгоритмов

Если рассмотреть примеры решения на языке Pascal (именно этот язык до сих пор используется для изучения основ алгоритмизации и программирования), то можно увидеть следующую картину:

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

Как составить программу линейной структуры?

Порядок следующий: — определите, что именно относится к исходным данными, а также каков типы/класс этих данных, выберите имена переменных; — определите, каков тип данных будет у искомого результата, выберите название переменных (переменной); — определите, какие математические формулы связывают результат и исходные данные; — если требуется наличие промежуточных данных, определите класс/типы этих данных и выберите имена; — опишите все используемые переменные; — запишите окончательный алгоритм. Он должен включать в себя ввод данных, вычисления, вывод результатов.

На этом всё, в следующий раз рассмотрим на примерах программу разветвлённой структуры. Если же вас интересует тема алгоритмизации в контексте разработки программного обеспечения, ждём вас на профессиональном курсе OTUS!

Линейный алгоритм и как решать задачи: подборка примеров, детальное описание

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

Линейная конструкция является алгоритмом из группы команд. Следование командам – однократное, последовательное. Простая структура может быть выражена в виде графика или текстового описания.

Как сформировать алгоритм: порядок действий

Чтобы получилась целостная конструкция, нужно выполнить следующие шаги:

  • Выявить исходные значения, данные в задании;
  • Определить класс первоначальной информации, ее тип;
  • Задать имя для каждой переменной;
  • Выделить класс сведений для искомых параметров;
  • Задать названия искомых переменных;
  • Подобрать ряд алгебраических формул для объединения исходной информации и результата решения;
  • Определить необходимость ввода промежуточных переменных;
  • Установить класс промежуточных параметров;
  • Описать все переменные, которые используются в алгоритмической системе;
  • Записать окончательную конструкцию.
Читайте также:
Как установить LG программ на компьютер

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

Дан фрагмент линейного алгоритма a 8 – как решить задачу

В задаче дан фрагмент линейного алгоритма а 8, при этом б : = 6 + 3а, а : = б : 3а. Нужно вычислить переменную после решения системы.

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

б = 6 + 3 × 8 = 6 + 24 = 30

Пока число а не изменилось, оно равняется 8. Формируется дробное выражение с 8 в знаменателе: а = 30 : 3 × 8 = 10 × 8 = 80

Итог: когда код исполнится, переменная станет равна 80.

Блок-схема простейшего линейного алгоритма

Рассмотрим принцип линейных выражений на простом примере из жизни. Необходимо построить алгоритм покупки хлеба. В текстовой форме он будет иметь вид:

  • Старт;
  • Выход из дома;
  • Поход в магазин;
  • Выбор хлеба;
  • Оплата товара;
  • Получение сдачи;
  • Поход домой;
  • Конец.

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

Решение задачи по алгоритму «Узор»

Робот владеет четырьмя командами: перемещается вправо, влево, вниз, вверх. Каждый ход – одна клетка в указанном направлении. Команда «Закрасить» заставляет исполнителя зарисовывать клетки, в которых он пребывает в данный момент. Нужно составить алгоритмическую структуру закрашивания двух угловых верхних клеток, одной средней, возврата в угловую верхнюю клетку. Точка возврата отмечена на рисунке *.

  • Начало;
  • Закрасить;
  • Переход вправо;
  • Переход вправо;
  • Закрасить;
  • Переход вниз;
  • Движение в левую клетку;
  • Закрасить;
  • Движение вверх;
  • Движение влево;
  • Конец.

Источник: al-shell.ru

Ввод и вывод

Она выводит на экран текст «приглашения», а затем получает строку, которую пользователь вводит с клавиатуры. Часто вместе с функцией ввода используют ту или иную функцию преобразования типа данных, например

a = float(input(‘Введите ускорение: ‘))

Для вывода данных в языке Python используют функцию

print(список вывода)

Для управления расположением выводимых данных на экране можно использовать специальные символы (табуляция — t , новая строка — n и др.), а также параметры sep=’разделитель’ и end=’конечный_символ’ , например

print(‘Результаты:’, x, y**3, sep=’t’, end=’nn’)

В данном случае строка «Результаты:» и значения x и y 3 разделяются не пробелом, а табуляцией, а в конце перевод строки будет сделан дважды.

Алгоритм линейной структуры

Любой алгоритм можно составить из нескольких базовых структур. Простейшей из них является линейная (следование).

Линейный алгоритм (следование) образуется командами, выполняемыми однократно в той последовательности, в которой они записаны.

Пример программы линейной структуры

Блок-схема

Блок-схема (следование)

Программа на языке Python

# линейный алгоритм a = float(input(‘Введите a: ‘)) b = float(input(‘Введите b: ‘)) c = 2 * a + b print(‘c=’, c)

Чтобы составить программу линейной структуры…

  1. Определяем, что является исходными данными, какие будут у них типы. Выбираем имена переменных.
  2. Определяем, что является искомыми результатами, какие будут у них типы. Выбираем имена переменных.
  3. Определяем, какие формулы связывают исходные данные с результатами.
  4. Если нужны промежуточные данные, определяем их типы и выбираем имена вспомогательных переменных.
  5. Записываем алгоритм, который должен включать:
  1. ввод всех исходных данных;
  2. вычисления;
  3. вывод результатов.

Будьте внимательны: любая переменная должна получить значение до того, как она будет как-либо использована.

Задание

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

Источник: appledu.ru

platonovsergey/oopszi-lab-1

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.md

ООПСЗИ — Практическое задание №1

Вариант: 18

Выполнил: студент 3 курса, БПЗ1601, Платонов Сергей

Овладеть навыками создания однофайловых и многофайловых проектов в интегрированной среде разработки Microsoft Visual Studio и научится создавать линейные программы на языке C с применением арифметических операций.

По номеру Вашего варианта выбрать задачу, решаемую в этой лабораторной работе, и выполнить для нее следующие задания.

Составить программу, имеющую линейный алгоритм и состоящую из одной функции void main() . Программу записать в файл с именем task1.c. Скомпилировать, скомпоновать и выполнить. В функции main огранизовать вычисление:

  • для исходных данных, значения которых задать в виде констант в тексте функции main
  • для исходных произвольных данных, значения которых пользователь программы должен ввести с клавиатуры в процессе выполнения программы.

Вывод действительных чисел осуществлять с точностью до 0.0001.

Исходные данные, заданные в константе:

double x, f; x = 5; f = (((x + 2) / sqrt(2 * x)) — (x / (sqrt(2 * x) + 2)) + (2 / (x — sqrt(2 * x)))) * ((sqrt(x) — sqrt(2)) / (x + 2)); printf(«x = %.4fn», x); // 5.0000 printf(«f = %.4fn», f); // 0.2740

Исходные произвольные данные, заданные в пользователем с клавиатуры:

scanf(«%lf», // 3 f = (((x + 2) / sqrt(2 * x)) — (x / (sqrt(2 * x) + 2)) + (2 / (x — sqrt(2 * x)))) * ((sqrt(x) — sqrt(2)) / (x + 2)); printf(«x = %.4fn», x); // 3.0000 printf(«f = %.4fn», f); // 0.3178

Читайте также:
Как рассчитать отпуск в программе камин

Линейный алгоритм функции из task1.c разделить на две процедуры, выделив в одну вычислительные операции этого алгоритма, а в другую все операции ввода-вывода. Каждую процедуру оформить как функцию. Вычислительную часть алгоритма оформить как функцию с параметрами, передаваемыми по значению, и возвращаемым значением. Прототип функции:

double f(double x)

Другую часть алгоритма оформить как функцию void main() , вызывающую первую функцию нужное количество раз. Записать тексты функций файл с именем task2.с в следующем порядке: функция с параметрами, функция main. Cкомпилировать, скомпоновать и выполнить.

double f(double x) < return ( (((x + 2) / sqrt(2 * x)) — (x / (sqrt(2 * x) + 2)) + (2 / (x — sqrt(2 * x)))) * ((sqrt(x) — sqrt(2)) / (x + 2)) ); >

Все операции ввода-вывода:

printf(«Введите x:n»); scanf(«%lf», // 3
printf(«x = %.4fn», x); // 3.0000 printf(«f = %.4fn», f(x)); // 0.3178

Создать файл task3.с, в котором изменить порядок записи текстов функций, созданных в задании 2. Функции записать в следующем порядке: функция main, функция с параметрами, организующая вычисления double f(double x) . Внести требуемые дополнения, добиться успешной компиляции, скомпоновать и выполнить.

double f(double x);
int main() < setlocale(LC_ALL, «RUS»); double x; printf(«Введите x:n»); scanf(«%lf», printf(«x = %fn», x); printf(«f = %fn», f(x)); system(«pause»); return 0; >
double f(double x) < return ((((x + 2) / sqrt(2 * x)) — (x / (sqrt(2 * x) + 2)) + (2 / (x — sqrt(2 * x)))) * ((sqrt(x) — sqrt(2)) / (x + 2))); >

По-прежнему линейный алгоритм функции из задания 1 разделить на две процедуры, выделив в одну вычислительные операции этого алгоритма, а в другую все операции ввода-вывода.

Вычислительную часть алгоритма оформить как функцию без параметров и без возвращаемого значения. Прототип функции void f(void) .

Другую часть алгоритма оформить как функцию void main(), вызывающую вычислительную функцию. Обмен данными между функциями организовать через глобальные объекты ( double x, y – аргументы, double result – результат вычисления). Записать тексты функций в файл с именем task4.с в следующем порядке: функция main, затем функция без возвращаемого значения и без параметров. Cкомпилировать, скомпоновать и выполнить.

Вычислительную часть алгоритма оформить как функцию без параметров и без возвращаемого значения. Прототип функции void f(void) :

void f(void);

Обмен данными между функциями организовать через глобальные объекты ( double x, y – аргументы, double result – результат вычисления):

double x, result;

Все операции ввода-вывода, оформить как функцию void main() , вызывающую вычислительную функцию:

void main() < setlocale(LC_ALL, «RUS»); printf(«Введите x:n»); scanf(«%lf», // 3 f(); printf(«f = %.4fn», result); // 0.3178 system(«pause»); >

В этом задании необходимо разделить текст файла task3.с на два файла. В первый файл с именем task5_main.c поместить текст функции main. Скомпилировать только файл task5_main.c.

Во второй файл с именем task5_func.с поместить текст функции с параметрами double f(double x) . Скомпилировать только файл task5_func.c. После раздельной компиляции осуществить совместную компоновку. Полученный исполняемый файл выполнить.

Первый файл task5_main.c:

#include #include #include double f(double x); void main() < setlocale(LC_ALL, «RUS»); double x; printf(«Введите x:n»); scanf(«%lf», printf(«x = %fn», x); printf(«f = %fn», f(x)); system(«pause»); >

Второй файл task5_func.с:

#include double f(double x) < return ((((x + 2) / sqrt(2 * x)) — (x / (sqrt(2 * x) + 2)) + (2 / (x — sqrt(2 * x)))) * ((sqrt(x) — sqrt(2)) / (x + 2))); >

В этом задании необходимо разделить текст файла task4.с на два файла.

В первый файл с именем task6_main.c поместить текст функции main . Скомпилировать только файл task6_main.c.

Во второй файл с именем task6_func.с поместить определения глобальных объектов ( double x, y – аргументы, double result – результат вычисления) и текст функции без параметров void f(void) . Скомпилировать только файл task6_func.c.

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

Проанализировать результаты работы и сделать выводы.

Первый файл task6_main.c:

#include #include #include void f(); double x, result; void main() < setlocale(LC_ALL, «RUS»); printf(«Введите x:n»); scanf(«%lf», f(); printf(«f = %fn», result); system(«pause»); >

Второй файл task6_func.с:

#include void f() < result = (((x + 2) / sqrt(2 * x)) — (x / (sqrt(2 * x) + 2)) + (2 / (x — sqrt(2 * x)))) * ((sqrt(x) — sqrt(2)) / (x + 2)); >

Вывод: Не получается осуществить компоновку и скомпилировать по отдельности файлы: task6_main.c и task6_func.c. При компиляции файла task6_main.c появляется ошибка, что функция f() предварительно объявлена, но не определена. При компиляции файла task6_func.c появляется ошибка, что переменные x, result не объявлены, и что в этом файле не найдена главная функция voud main() .

В этом задании необходимо модифицировать тексты файлов из задания 6.

Описание функции и внешних переменных выделить в отдельный заголовочный файл func.h, включить его содержимое в файлы task7_main.c и task7_func.c. Определение внешних переменных произвести в файле task7_func.c.

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

Первый файл task7_main.c:

#include #include #include #include «../headers/func.h» void main() < setlocale(LC_ALL, «RUS»); printf(«Введите x:n»); scanf(«%lf», f(); printf(«x = %fn», x); printf(«f = %fn», result); system(«pause»); >

Второй файл task7_main.c:

#include #include «../headers/func.h» double x, result; void f() < result = (((x + 2) / sqrt(2 * x)) — (x / (sqrt(2 * x) + 2)) + (2 / (x — sqrt(2 * x)))) * ((sqrt(x) — sqrt(2)) / (x + 2)); >

Заголовочный файл func.h:

void f(); extern double x, result;

Скомпилировать по отдельности файлы из задания 7 task7_main.c и task7_func.c. Создать статическую библиотеку task8_lib.lib, включающую объектный файл task7_func.obj. Выполнить полученный исполняемый файл.

Файлы task7_main.c и task7_func.c были скомпилированы по отдельности. Статическая библиотека task8_lib.lib, включающая объектный файл task7_func.obj:

add_library(task8_lib STATIC task7_func.c)

Полученная статическая библиотека скомпонована с файлом task7_main.obj:

add_executable(task8 task7_main.c) target_link_libraries(task8 task8_lib)

Статическая библиотека скомпонована с помощью Cmake (src/CMakeList.txt).

About

Практическое задание №1. Однофайловые и многофайловые проекты в IDE Microsoft Visual Studio 2019 Community. Создание линейных программ на языке C применением арифметических операций

Источник: github.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru