«Урок «Программирование линейных алгоритмов на C++BUILDER»


Министерство образования и науки РД
ГБОУ СПО
«Республиканский профессионально-педагогический колледж № 2»
Предметно-цикловая комиссия дисциплин предметной подготовки математических, естественно - научных дисциплин и дисциплин предметной подготовки специальности 090203 «Программирование в компьютерных системах»
Методические указания
по выполнению лабораторной работы
по МДК 03.01 Технология разработки ПОспециальности 09.02.03
«Программирование в компьютерных системах»
ТЕМА «ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ»
в среде C++ BuilderКизляр, 2014
ТЕМА «ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ «
Цель лабораторной работы: изучить технологии программирования, основы языка и научиться составлять каркас простейшей программы в среде C++ Builder. Написать и отладить программу линейного алгоритма.
1.Технология программирования
ЭВМ служит для обработки информации. Любые процессы, связанные с обработкой информации на ЭВМ, априори связаны с программой. Программа – это один из основных инструментов пользователя компьютером. Образ программы, чаще всего, хранится в памяти машины (например, на диске) как исполняемый модуль (один или несколько файлов). Из образа на диске с помощью специального программного загрузчика может быть построена исполняемая программа уже в оперативной памяти машины. В настоящем курсе нас интересует программа язык C++ Builder, который позволит, используя присущие ему языковые правила, операторы, функции, свойства, методы, и другие конструкции создавать пользовательские алгоритмические программы.
Алгоритмом называется точное предписание, определяющее последовательность действий исполнителя, направленных на решение поставленной задачи. Алгоритм должен обладать рядом свойств.
Свойства алгоритма:
Однозначность алгоритма, под которой понимается единственность толкования исполнителем правил и порядка выполнения действий. Для этого алгоритм должен быть записан командами из системы команд исполнителя.
Конечность алгоритма – обязательность завершения каждого из действий и всего алгоритма в целом.
Результативность алгоритма, предполагающая, что его выполнение завершится получением определённых результатов.
Массовость, т.е. возможность применения алгоритма к целому классу задач, отвечающих общей постановке задачи. Для того, чтобы алгоритм обладал свойством массовости, следует составлять его с использованием обозначения переменных величин и избегая конкретных константных значений.
Правильность алгоритма, под которой понимается способность алгоритма выдавать правильные результаты решения поставленной задачи.
2.Жизненный цикл и этапы разработки программного продукта
Жизненный цикл программного продукта (ПП) — это период времени, начинающийся с момента принятия решения о необходимости создания ПП и заканчивающийся в момент его полного изъятия из эксплуатации.
Структуру жизненного цикла ПП, состав процессов, действия и задачи, которые должны быть выполнены во время создания ПП, определяет и регламентирует международный стандарт ISO/IEC 12207:1995 «Information Technology — Software Life Cycle Processes» (ISO — International Organization for Standardization — Международная организация по стандартизации; IEC — International Electrotechnical Commission — Международная комиссия по электротехнике; название стандарта «Информационные технологии — Процессы жизненного цикла программ»).Под процессом понимают совокупность взаимосвязанных действий, преобразующих входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными, полученными от других процессов, и результатами.Каждый процесс разделен на набор действий, каждое действие — на набор задач. Запуск и выполнение процесса, действия или задачи осуществляются другими процессами.
В соответствии со стандартом ISO/IEC 12207 все процессы жизненного цикла ПП разделены на три базовые группы:
основные процессы (включают в себя набор определенных действий и связанных с ними задач, которые должны быть выполнены в течение жизненного цикла ПП);
вспомогательные (поддерживающие) процессы (создание надежного, полностью удовлетворяющего требованиям заказчика ПП в установленные договором сроки. К вспомогательным относятся процессы документирования, управления конфигурацией, обеспечения качества, верификации, аттестации, совместной оценки, аудита, разрешения проблем);организационные процессы (организация процесса разработки надежного, полностью удовлетворяющего требованиям заказчика ПП в установленные договором сроки и управление этим процессом. К организационным относятся процессы управления, создания инфраструктуры, усовершенствования, обучения).Редько, какая либо большая программа работает сразу правильно. Обычно большие программы могут содержать ошибки, которые находят во время эксплуатации. Их нужно разработчикам программы ликвидировать, если получают рекламацию на ошибку. Жизненный цикл ПП включает и процесс разработки, который состоит из следующих этапов:
Первый этап – постановка задачи. На этом этапе требуется хорошо изучить предметную область задачи, и осуществить сбор информации. Нужно чётко определить цель задачи, дать словесное описание содержания задачи и продумать общий подход к её решению, и сделать эскизный проект.
Второй этап – математическое или информационное моделирование. Цель этого этапа – создать такую математическую модель решаемой задачи, которая может быть реализована на компьютере. Часто математическая постановка задачи сводится к простому перечислению формул и логических условий, однако возможно, что для полученной модели известны несколько методов решения, и тогда следует выбрать лучший из них.
Третий этап – алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения.
В роли исполнителей могут выступать люди, роботы, компьютеры. Способ записи алгоритма зависит от выбора исполнителя. Наглядно алгоритм представляется в виде блок–схемы, схемы из UML-диаграмм и (или) других конструкций графы и т.д.. Четвёртый этап – программирование. Программой называют план действий, подлежащих выполнению исполнителем, в качестве которого может выступать компьютер. От алгоритма программа отличается тем, что записывается на языке понятном для исполнителя. Если исполнителем является компьютер, то программа записывается на одном из языков программирования. В компьютере в конечном итоге при выполнении данные и команды представляются в виде последовательности нулей и единиц. Поэтому, когда говорят о «понятности» языка программирования для компьютера подразумевают наличие специальной программы, способной перевести инструкции языка программирования в последовательность двоичных компьютерных команд. Язык программирования выполняет функции посредника между человеком и ЭВМ и поэтому с одной стороны должен быть удобен для записи алгоритмов в понятной для человека форме, а с другой стороны легко преобразовываться в машинные коды.
Программа и исходные данные вводятся в ЭВМ с клавиатуры с помощью редактора текстов или загружаются в редактор с внешнего носителя, результаты работы программы выводятся на экран дисплея или записываются на носитель информации.
Пятый этап – трансляция программы. Трансляция означает перевод команд языка программирования в компьютерные двоичные коды. На этом этапе происходит проверка программы на ее соответствие правилам (синтаксису) языка программирования и при отсутствии синтаксических ошибок создается исполняемый файл программы. Исполняемый файл содержит инструкции в двоичном коде. Если транслятор обнаруживает в программе несоответствия синтаксису, то исполняемый файл создать не удастся. Программист должен устранить несоответствия (исправить синтаксические ошибки). После этого необходимо проверить программу на наличие логических ошибок. Для этого нужно подобрать систему тестов (набор исходных данных с заранее известным результатом) и сравнить выдаваемые программой результаты с контрольными тестовыми данными. Подробнее об этом в следующем разделе.
Шестой этап – тестирование и отладка программы. На этом этапе происходит исполнение программы на ЭВМ, поиск и исправление логических ошибок, то есть ошибок приводящих к неправильной работе программы. При этом программисту приходится выполнять анализ работы программы. Для сложных программ этот этап, как правило, требует гораздо больше времени и сил, чем написание первоначального текста программы.
Отладка программы – сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы проверить программу на контрольных примерах. Под контрольными примерами подразумеваются различные комбинации исходных данных. Контрольные примеры выбираются так, чтобы при работе были задействованы все ветви алгоритма. Дело в том, что некоторые ошибки в программе могут проявиться только при попытке выполнения конкретных действий. Детализация плана зависит от того, как поведёт себя программа на этих примерах: на одном она может зациклиться, на другом дать явно неверный ответ и т.д. Сложные программы отлаживают отдельными фрагментами, или специальными инструментариями, которые предназначены для выполнения отладки программы, обычно обозначают их отдельным пунктом или подпунктом в меню «Debug» рассмотрение этого пункта далеко выходит за пределы одной темы.
Седьмой этап – исполнение отлаженной программы и анализ результатов. На этом этапе программист запускает программу и задаёт исходные данные, требуемые по условию задачи. Полученные результаты анализирует постановщик задачи, на основании анализа принимаются решения, вырабатываются рекомендации, делаются выводы.
Возможно, что по итогам анализа результатов потребуется возврат ко второму этапу для повторного выполнения всех этапов с учётом приобретённого опыта. Таким образом, в процессе создания программы некоторые этапы повторяют до тех пор, пока не будет получен алгоритм и программа, удовлетворяющие указанным выше свойствам.
Арифметические и алгебраические функции
В языке С++ имеется большое количество математических функций, приведем часть наиболее часто используемые. Для их использования в тексте программы необходимо подключить заголовочный файл например:
#include <math.h>
Талица 2.5.
Некоторые наиболее часто используемые математические функции С++
Функция Описание Синтаксис Файл
abs Абсолютное значение целого х int abs(int x) stdlib.h
cabs Модуль комплексного числа z double cabs(struct complex z)
struct complex {double x, y;}; math.hcabslМодуль комплексного числа z long double cabsl(struct _complexl z)
struct complex { long double x, y; }; math.hCeil Округление вверх , наименьшее целое не меньше х double ceil(double x); math.hCeil Округление вверх , наименьшее целое не меньше Х int Ceil(Extended X); Math.hpp
Ceil Округление вверх , наименьшее целое не меньше х long double ceill(long double x); math.hDivЦелочисленное деление numer/denomtypedef struct {
int quot; // ÷частное
int rem; // - остаток
} div_t;
div_t div(int numer, int denom) math.hExpЭкспонента double exp(double x); math.hexplЭкспонента long double expl(long double x); math.hfabsАбсолютное значение double fabs(double x); math.hfabslАбсолютное значение long double fabsl(long double x); math.hfloor Округление вверх, наименьшее целое не меньше х double floor(double x); math.hFloor Округление вверх , наименьшее целое не меньше Х int Floor(Extended X); Math.hpp
floorlОкругление вверх , наименьшее целое не меньше х long double floorl(long double x); math.hfmodОстаток от деления x/y double fmod(double x, double y) math.hfmodlОстаток от деления x/y long double fmodl(long double x, long double y) math.hfrexpРазделяет х на мантиссу (возвращает) и степень exponent double frexp(double x, int *exponent); math.hFrexp Разделяет X на мантиссу Mantissa (возвращает) и степень Exponent void Frexp(Extended X, Extended &Mantissa, int &Exponent); Math.hpp
frexpРазделяет х на мантиссу (возвращает) и степень exponent long double frexpl(long double x, int *exponent) math.hIntPowerВозводит Base в целую степень Exponent Extended IntPower(Extended Base, int Exponent); Math.hpp
Labs Абсолютное значение long labs(long int x); stdlib.hldiv_tЦелочисленное деление numer/denom; quot – результат rem – остаток typedef struct {
long int quot; // целое
long int rem; // остаток
} ldiv_tldiv_t ldiv(long int numer, long int denom);
math.h stdlib.hLog Натуральный логарифм double log(double x); math.hLnXP1 Натуральный логарифм (Х+1) Extended LnXP1(Extended X); Math.hpp
Log2 Логарифм по основанию 2 Extended Log2(Extended X) Math.hpp
log10 Десятичный логарифм double log10(double x) math.hLog10 Десятичный логарифм Extended Log10(Extended X) Math.hpp
log10l Десятичный логарифм long double log10l(long double x) math.hLoglНатуральный логарифм long double logl(long double x) math.hLogNЛогарифм Х по основанию Base Extended LogN(Extended Base, Extended X) Math.hpp
_lrotlЦиклический сдвиг влево val на count битов unsigned long _lrotl(unsigned long val, int count) stdlib.h_rotrЦиклический сдвиг вправо val на count битов unsigned long _lrotr(unsigned long val, int count) stdlib.hMax Макрос возвращает максимальное значение из a и b любых типов max(a, b); stdlib.hMin Макрос возвращает минимальное значение из a и b любых типов min(a, b) stdlib.hmodfРазделяет х на целую часть ipart и возвращает дробную часть. double modf(double x, double *ipart) math.hmodflРазделяет х на целую часть ipart и возвращает дробную часть. long double modfl(long double x, long double *ipart) math.hPoly Полином от х степени degree коэффициентами coeffsdouble poly(double x, int n, double c[ ]); math.hPoly Полином от X степени Coefficients_Size коэффициентами Coefficients Extended Poly(Extended X, const double * Coefficients, const int Coefficients_Size); Math.hpp
polyl Полином от от х степени degree коэффициентами coeffslong double polyl(long double x, int degree, long double coeffs[]); math.hPow xymath.hPower Возводит Base в степень Exponent Extended Power(Extended Base, Extended Exponent); Math.hpp
powl xylong double powl(long double x, long double y); math.h_lrotlЦиклический сдвиг влево value на count битов unsigned short _rotl(unsigned short value, int count); stdlib.h_rotrЦиклический сдвиг вправо value на count битов unsigned short _rotr( unsigned short value, int count); stdlib.hSqrtКорень квадратный double sqrt(double x); math.hSqrtlКорень квадратный long double sqrtl(long double x); math.hacosФункция арккосинуса. Значение аргумента должно находиться в диапазоне от -1 до +1. double acos(double x); math.h, cmathФункция Описание Синтаксис Файл
AsinФункция арксинуса. Значение аргумента должно находиться в диапазоне от -1 до +1. double asin(double x); math.h, cmathatanФункция арктангенса. double atan(double x); math.h, cmathatan2 Функция арктангенса от значения y/x. double atan2(double y, double x); math.h, cmathCosФункция косинуса. Аргумент задается в радианах. double cos(double x); math.h, cmathfrexpРазбивает число с плавающей точкой value на нормализованную мантиссу и целую часть как степень числа 2. Целочисленная степень записывается в область памяти, на которую указывает exp, а мантисса используется как значение, которое возвращает функция. double frexp(double value, int *exp); math.h, cmathhypotВычисляет гипотенузу z прямоугольного треугольника по значениям катетов x, y: double hypot(double x, double y); math.h, cmathpow10 Возвращает значение 10p double pow10(int p); math.h, cmathSin Функция синуса. Угол задается в радианах. double sin(double x); math.hSinhВозвращает значение гиперболического синуса для x. double sinh(double x); math.hTan Функция тангенса. Угол задается в радианах. double tan(double x); math.hTanhВозвращает значение гиперболического тангенса для x. double tanh(double x); math.h3. Структура программ C++ Builder
Задание 1. Нарисовать блок-схему и составить программу вычисления x и y математического выражения

для вводимых значений a, b.
Панель диалога программы организовать в виде, представленном на рис. 2.1.
3.1. Построение блок – схемы задания

Рис. 2.2. Блок схема задания
Составим блок – схему для нашего задания
Основные элементы для построения блок-схемы, а в государственных стандартах под названием СХЕМЫ АЛГОРИТМОВ, ПРОГРАММ ДАННЫХ И СИСТЕМ ГОСТ 19.701-90 (ИСО 5807-85).
3.2. Настройка формы
Сначала начнем создавать эскизный проект (визуальный интерфейс пользователя).
В предыдущем примере «Здравствуй мир!», мы задали размеры с помощью мыши, «захватывая» одну из кромок формы или выделенную строку заголовка, и отрегулировали нужные размеры формы и ее положение на экране. Однако чаще всего при выполнении программ иногда нужно бывают определение параметров свойств, либо вручную, либо внутри программы. В нашем примере попытаемся задать свойства окна через Object Inspector вручную.

Рис. 2.3. Свойства формы.
Некоторые особо значимые свойства мы описали при изучении темы 1. Расширим тот перечень свойств.
Таблица 2.6.
Рекомендуемые параметры для формы в задании
Свойства Параметры и значения
Caption Программирование линейных алгоритмов
Width 551
Height 317
Left 196
Top 108
BorderIcon.biMinimizeFalse
BorderIcon.biMaximizeFalse
Некоторые свойства формы Name Имя формы. Используется для обращения к компонентам формы, для управления формой и т.д.
Caption Текст заголовка.
Width – Ширина формы.
Height – Высота формы
Top – Расстояние от верхней границы формы до верхней границы экрана.
Left – Расстояние от левой границы формы до левой границы экрана.Color – Цвет фона. По умолчанию принимает значение операционной системы, или можно задать нужный цвет.
Font – Шрифт. Шрифт может наследовать компоненты расположенные на форме, имеется возможность его запрещения.
Введем теперь некоторые параметры, приведенные в таблице 2.6.

Рис. 2.4. Вид формы с параметрами из таблицы 2.7. после старта программы
3.3.Настройка компонент
Аналогично можно задавать значения и изменять параметры для свойства для любых компонентов используемых в проекте. Далее мы будем добавлять компоненты Button1, Button2, Label1, Label2, Edit1, Edit1 и Memo1. И расстановим их как указанно в задании.
С компонентой Label мы знакомы при изучении темы 1
Компонента Edit (Standard) ввод/вывод текстовой информации
Если необходимо ввести из формы в программу или вывести на форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого компонентой Edit, для чего в меню компонент выбирается пиктограмма Edit и щелчком кнопкой мыши устанавливается в нужном месте формы. Размер окошка и его положение на форме можно регулировать и в ручном режиме, используя манипулятор мышь.
При этом в заголовочный файл Unit1.h автоматически вставляется переменная Edit* (1,2,…) класса TEdit. В поле Text (Edit1–>Text) такой переменной будет содержаться строка символов (тип AnsiString) и отображаться в соответствующем окне Edit*.
Щелкнув мышью на Edit1 в инспекторе объектов на свойстве text удалите запись Edit1, и аналогично Edit2
Для работы с компонентой Edit в C++ Builder существуют стандартные функции, которые позволяют тип AnsiString преобразовать в числовые типы.
Приведем их в таблице
Таблица 2.7.
Некоторые функции компоненты EditНаименование Тип Действия
StrToFloat(St) float преобразует строку St в вещественное число
StrToInt(St) intпреобразует строку St в целое число
FloatToStr (W) AnsiStringпреобразует вещественное число W в строку символов
FormatFloat (формат, W) AnsiStringпреобразует вещественное число W в строку
IntToStr (W) AnsiStringпреобразует целое число W в строку символов
FloatToStrF(W, формат, n1, n2) AnsiStringвещественное число W в строку символов под управлением формата:
ffFixedфиксированное положение разделителя целой и дробной частей, n1 – общее количество цифр числа, n2 – количество цифр в дробной части, причем число округляется с учетом первой отбрасываемой цифры
fFfExponentn1 задает общее количество цифр мантиссы, n2 – количество цифр порядка XX (число округляется)
ffGeneral– универсальный формат, использующий наиболее удобную для чтения форму представления вещественного числа; соответствует формату ffFixed, если количество цифр в целой части n1, а само число больше 0,00001, в противном случае соответствует формату ffExponent.
Например, если значения вводимых из Edit1 и Edit2 переменны x и у имеют целый и действительный типы, соответственно, то следует записать:
х = StrToInt(Edit1–>Text);
y = StrToFloat(Edit2–>Text);
Внимание! При записи числовых значений в окошках Edit* не должно быть пробелов, а разделителем целой и дробной частей обычно является «запятая»!
Как и для работы с компонентой Label, смотрите тему 1, и для компоненты Edit можно в инспекторе объектов с помощью свойства Font устанавливать стиль, отражаемого в строке Edit* текста.
Компонента Memo(Standard) многострочный ввод/вывод текстовой информации
Для вывода результатов работы программы обычно используется окно многострочного редактора текста, представленое компонентой Memo, для чего выбирается пиктограмма Memo, помещается на форму, регулируется ее размер и местоположение. После установки с помощью инспектора свойства ScrollBars – SSBoth в окне появятся вертикальная и горизонтальная полосы прокрутки.
При установки данной компонеты в Unit1.h прописывается переменная Memo1 типа ТMemo. Информация, выводимая построчно в окне Memo1, находится в массиве строк Memo1–>Lines, каждая из которых имеет тип String.
Для очистки окна используется метод Memo1–>Clear( ).
Для добавления новой строки используется метод Memo1–>Lines–>Add( ).
Если нужно вывести числовое значение, то его надо преобразовать к типу AnsiString (см. прил. 4) и добавить в массив Memo1–>Lines, например, вывести
int u = 100;
double w = –256.38666;
в результате записей
Memo1–>Lines–>Add (“ Значение x = ”+IntToStr(u));
Memo1–>Lines–>Add (“ Значение y = ”+FloatToStrF(w,ffFixed,8,2));
появятся строки
Значение u = 100
Значение w = –256.39
При этом под все число отводится восемь позиций, из которых две позиции занимает его дробная часть.
Если выводимая информация превышает размер окна Memo1, то для просмотра используются полосы прокрутки.
Компонента Button (Standard) функция обработчик нажатия кнопки
Выбрав в меню Standard пиктограмму Button, помещаем на форму компоненту Button1 (2,3,…). С помощью инспектора объектов изменяем заголовок (Caption) на текст, «Вычислить» на 1 кнопке и «Выход» на второй, и регулируем положение и размер кнопки. Двойным щелчком кнопкой мыши по компоненте Button 1 в текст программы вставляем заготовку ее функции-обработчика … Button1Click (…) { }. Между фигурными скобками набираем соответствующий код. Аналогично и Button2Click (…) { }3.4.Обработка событий в среде C++ Builder FormCreateПри запуске программы возникает событие «создание формы» (OnCreate). Оформим функцию-обработчик этого события, которая обычно используется для инициализации начальных установок, таких, как, например, занести начальные значения исходных данных в соответствующие окна Edit*, очистить окно Memo.
Для этого делаем двойной щелчок кнопкой мыши на любом свободном месте формы, после чего в листинг программы (Unit1.cpp) автоматически вносится заготовка для создания функции:ее заголовок … FormCreate (…) и фигурные скобки.
Между символами { }, которые обозначают начало и конец функции, соответственно, вставляем нужный текст программы.
3.5. Введения кода программы

Рис. 2.5. Интерфейс для решения задач по линейным алгоритмам.
Как, видим из окна Object TreeView Рис.1., наш интерфейс состоит из следующих компонентов: Button1, Button2, Label1, Label2, Edit1, Edit1 и Memo1. Соответственно это информация отображается в файле заголовка.
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm{
__published:// IDE-managed Components
TLabel *Label1;//метка для вывода a=
TEdit *Edit1;/откуда берем /значение переменной a
TLabel *Label2;//метка для вывода b=
TEdit *Edit2;//откуда берем значение переменной b
TMemo *Memo1;//
TButton *Button1;//
TButton *Button2;//
private:// User declarations
/* Здесь можно объявить функции, переменные, к которым получаем доступ только в данном модуле, поэтому их называют закрытыми переменными и функциями*/
public:// User declarations
/* Здесь можно объявить функции, переменные, к которым получаем доступ, как в данном модуле, так и в других модулях, если осуществляем ссылку на объект, поэтому их называют открытыми переменными и функциями */
__fastcall TForm1(TComponent* Owner);
void __fastcall TForm1::FormCreate(TObject *Sender);
void __fastcall TForm1::Button1Click(TObject *Sender);
void __fastcall TForm1::Button2Click(TObject *Sender):
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
/* Объявления функций, типов, переменных, которые не включаются в данный класс */
//---------------------------------------------------------------------------
#endifФайл проекта имеет следующую структуру:
// Директивы препроцессора
#include <vcl.h>
#pragma hdrstop #include "Linpr.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm" // Подключение файлов форм и файлов ресурсов
TForm1 *Form1;
//---------------------------------------------------------------------------
// Вызов конструктора формы
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->Clear();
Memo1->Lines->Add(" Лабораторная работа № 2");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double x, y, a, b;
x = StrToFloat(Edit1->Text);
y = StrToFloat(Edit2->Text);
a = sqrt(x+y)/cos(y)*(1+exp(x+y));
b = x*pow(a,2)+y*a;
Memo1->Lines->Add(" При X = "+Edit1->Text);
Memo1->Lines->Add(" при Y = "+Edit2->Text);
Memo1->Lines->Add(" Результат A = "+FloatToStr(a));
Memo1->Lines->Add(" Результат B = "+FloatToStr(b));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
Контрольное задание
Для вводимых с клавиатуры действительных чисел a, и b используя математические выражения для своего варианта в таблице вычислить x и y.
Результаты записать в компонент Memo1.

Примечание: для ввода a, b подбирать учитывая конфликтные ситуация в математических функциях, т.е. исследовав область определения и область допустимых значений функций.
Варианты заданий
№ Задания № Задания
1 =;. 2 ;.
3 ;. 4 ; .
5 ; . 6 ; .
7 ; . 8 ; .
9 ;. 10 ; .
13 ;. 14 ;
15 16
17 ; 18
19 ;. 20 ; .
21 ; 22 ;
23 24 .
25 ; 26 ;.
27 ; . 28 ; .
29 ; . 30 .

Приложенные файлы


Добавить комментарий