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

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

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

· ввода значений 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;

}

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

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

 



Лабораторная работа №3

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

1. Цель работы

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

3. Задание

4. Варианты индивидуальных заданий

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

5.1. Разработка алгоритма решения

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

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

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


Цель работы

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

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

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

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

Задание

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



Варианты индивидуальных заданий

Вариант Задание и цветовая гамма Вариант Задание и цветовая гамма
1 Зелёный на светло-красном   2 Белый на чёрном  
3 Фиолетовый на белом   4 Черный на светло-зелёном  
5 Белый на чёрном   6 Коричневый на жёлтом  
7 Зелёный на светло-красном   8 Фиолетовый на светло-сером  
9 Чёрный на светло-зелёном   10 Чёрный на светло-зелёном  
11 Черный на светло-фиолетовом   12 Фиолетовый на светло-сером  
13 Морскойволны на светло-красном   14 Зелёный на светло-красном  
15 Чёрный на светло-фиолетовом   16 Бирюзовый на светло-красном  
17 Белый на чёрном   18 Фиолетовый на белом  
19 Бирюзовый на светло-красном   20 Красный на светло-сером  
21 Фиолетовый на светло-сером   22 Фиолетовый на белом  
23 Коричневый на жёлтом   24 Чёрный на светло-фиолетовом  
25 Белый на чёрном   26 Коричневый на жёлтом  
27 Фиолетовый на светло-сером   28 Коричневый на жёлтом  
29 Чёрный на светло-зелёном   30 Зелёный на светло-красном  
31 Жёлтый на синем   32 Красный на зелёном  
33 Светло-серый на красном   34 Голубой на чёрном  
35 Жёлтый на красном   36 Светло-красный на зелёном  
37 Жёлтый на зелёном   38 Белый на чёрном  
39 Чорний на білому   40 Ясно-червоний на чорному  

 

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



Дата: 2018-12-21, просмотров: 637.