Разработка алгоритма решения
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Основной алгоритм

Алгоритм решения задачи — линейный и состоит из:

· ввода значений x и y;

· вычисления значения t1;

· вычисления значения t2;

· выведения значений t1 и t2.

Оптимизация алгоритма

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

Выражение ax встречается один раз в первой формуле и дважды — во второй. Следовательно, можно один раз произвести умножение a*x, а потом использовать этот результат.

Во второй формуле дважды встречается умножение квадратного корня на тангенс — это вычисление можно так же сделать один раз.

Выражение c2–b2 можно разложить на (c+b)(c–b). До разложения в выражении было две операции умножения (возведение в степень 2) и одна — сложения. После разложения — два сложения и одно умножение, что выгоднее для вычислений.

Ограничения на значения параметров

Аргумент функции, которую вычисляет логарифм, не может быть 0 или меньше. Отсюда вытекают требования к значениям: a * x + b > 0; y * x + d > 0

Аргумент функции извлечения квадратного корня не может быть меньше 0, отсюда: c2–b2>=0

В знаменателе выражения не может быть 0, отсюда:

кроме того:

ОБРАЩАЕМ ВНИМАНИЕ, ЧТО В ПРОГРАММНОЙ РЕАЛИЗАЦИИ НЕ РАССМАТРИВАЮТСЯ ПРОВЕРКА НА КОРРЕКТНОСТЬ, ЕЕ НЕОБХОДИМО ВЫПОЛНИТЬ САМОСТОЯТЕЛЬНО!!!!

Определение переменных программы

Для решения задачи понадобятся переменные для представления каждого параметра формул — a, b, c, d, x,y и результатов — t1, t2. Кроме того, придется ввести дополнительную переменную ax для хранения промежуточного результата , необходимого для оптимизации. Тип всех переменных — double.

Разработка текста программы

/* Лабораторная работа 2 */

/* Арифметические выражения и функции */

/* Пример решения. Вариант ____ */

#include <stdio.h> /* Программа начинается с включения файлов */

#include <math.h>

int main(void) /* открываемглавнуюфункцию*/

{

double x,y; /* параметры, которые вводятся */

double a=12.5, b=1.3; /*параметры, которые задаются в программе */

double c=14.1, d=2.7;

double t1, t2; /* результаты */

double ax; /* рабочаяпеременная */

printf("Введите x, y >"); /*Вводятся значения для переменных x и y */

scanf("%lf %lf",&x,&y);

ax=a*x; /* вычисляется первое промежуточное значение */

t1=(b*log(ax+b)/a+d*log(y*x+d)/y)/c; /*вычисляется первый результат*/

ax=sqrt((c-b)*(c+b))*tan(ax); /* второй промежуточный результат */

t2=log((ax+b)/(ax-b))/2/a/b; /*второйокончательный результат */

printf("t1 = %lg\n",t1); /*Полученные результаты на экран */

printf("t2 = %lg\n",t2);

return 0;

}

Отладка программы

При отладке программы можно проверять правильность выполнения каждой операции. Для этого сложные операторы-выражения, разбиваются на последовательность операторов-выражений, в каждом из которых выполняется только одна операция. Результат каждой такой операции выводится на экран или отслеживается в пошаговом режиме.

 



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

Логические операции. Условный оператор
в языке C

Цель работы : получение практических навыков в работе с условным оператором и разветвленными алгоритмами в языке C.

Темы для предварительной проработки

· Логические операции

· Условный оператор

Задание: Построить программу, которая вводит координаты точки(x, y) и определяет, попадает ли точка в заштрихованную область на рисунке, который соответствует Вашему варианту, представленному в таблице 2.8. Попадание на границу области считать попаданием в область. Предварительно вывести на экран замкнутую область в виде пересечения графиков. Предусмотреть выход из программы по желанию пользователя "Продолжить Да/Нет?").

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

 Таблица 2.8 — Варианты индивидуальных заданий

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
1 Зелёный на светло-красном   2 Белый на чёрном  
3 Фиолетовый на белом   4 Черный на светло-зелёном  

Таблица 2.8 — Продолжение

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
5 Белый на чёрном   6 Коричневый на жёлтом  
7 Зелёный на светло-красном   8 Фиолетовый на светло-сером  
9 Чёрный на светло-зелёном   10 Чёрный на светло-зелёном  

Таблица 2.8 — Продолжение

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
11 Черный на светло-фиолетовом   12 Фиолетовый на светло-сером  
13 Морскойволны на светло-красном   14 Зелёный на светло-красном  
15 Чёрный на светло-фиолетовом   16 Бирюзовый на светло-красном  

Таблица 2.8 — Продолжение

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
17 Белый на чёрном   18 Фиолетовый на белом  
19 Бирюзовый на светло-красном   20 Красный на светло-сером  
21 Фиолетовый на светло-сером   22 Фиолетовый на белом  

Таблица 2.8 — Продолжение

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
23 Коричневый на жёлтом   24 Чёрный на светло-фиолетовом  
25 Белый на чёрном   26 Коричневый на жёлтом  
27 Фиолетовый на светло-сером   28 Коричневый на жёлтом  

Таблица 2.8 — Продолжение

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
29 Чёрный на светло-зелёном   30 Зелёный на светло-красном  
31 Жёлтый на синем   32 Красный на зелёном  
33 Светло-серый на красном   34 Голубой на чёрном  

Таблица 2.8 — Продолжение

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
35 Жёлтый на красном   36 Светло-красный на зелёном  
37 Жёлтый на зелёном   38 Белый на чёрном  
39 Чорний на білому   40 Ясно-червоний на чорному  

 


Таблица 2.8 — Продолжение

Вариант Задание и цветовая гамма
41 Чёрный на светло-зелёном

 

Методические указания









Пример решения задачи

 

Дата: 2019-02-02, просмотров: 351.