
Текст программы может иметь следующий вид:
//---------------------------------------------------------------------------
#include <vcl. h>
#include <stdio. h>
#include <conio. h>
#include <math. h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
double x, y, z, a, b, c, rez;
puts("\n\tx, y,z = ");
scanf("%lf%lf%lf", &x, &y, &z);
a = pow(tan(x+y),2);
b = exp(y-z);
c = sqrt(cos(x*x)+sin(z*z));
rez = a-b*c;
printf("\n x = %7.3lf\n y = %7.3lf\n z = %7.3lf\nRezult = %lf\n", x, y, z, rez);
puts("Press any key... ");
getch();
return 0;
}
Для исходных данных x = 3,4; y = 7,4×10-2; z = 1,943×102, результат выполнения программы выглядит следующим образом:

1.5. Индивидуальные задания
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
1. | При x = 14.26, y = –1.22, z = 3.5´10-2 : 0.564846. |
2. | При x = –4.5, y = 0.75´10-4, z = 0.845´102 : –55.6848. |
3. | При x = 3.74´10-2, y = –0.825, z = 0.16´102 : 1.0553. |
4. | При x = 0.4´104, y = –0.875, z = –0.475´10-3 : 1.9873. |
5. | При x = –15.246, y = 4.642´10-2, z = 20.001´102 : –182.036. |
6. | При x = 16.55´10-3, y = –2.75, z = 0.15 : 40.630694. |
7. | При x = 0.1722, y = 6.33, z = 3.25´10-4 : –205.305571. |
8. | При x = –2.235´10-2, y = 2.23, z = 15.221 : 39.374. |
9. | При x = 1.825´102, y = 18.225, z = –3.298´10-2 : 1.2131. |
10. | При x = 3.981´10-2, y = –1.625 ´ ´103, z = 0.512 : 1.26185. |
11. | При x = 6.251, y = 0.827, z = 25.001 : 0.7121. |
12. | При x = 3.251, y = 0.325, z = 0.466´10-4 : 4.251433. |
13. | При x = 17.421, y = 10.365´10-3, z = 0.828´105 : 0.33056. |
14. | При x = 12.3´10-1, y = 15.4, z = 0.252´103 : 82.825623. |
15. | При x = 2.444, y = 0.869´10-2, z = –0.13´103 : –0.49871. |
16. | При x = –2.235´10-2, y = 2.23, z = 15.221 : 39.374. |
Лабораторная работа №2. Реализация разветвляющихся алгоритмов
Цель работы: изучить операции сравнения, логические операции, операторы передачи управления if, switch, break, научиться пользоваться простейшими компонентами организации переключений (СheckBox, RadioGroup). Написать и отладить программу с разветвлениями.
2.1. Общие теоретические сведения
Оператор условной передачи управления if
Для выбора одной из ветвей вычислений применяется оператор условного перехода:
if (выражение) оператор 1;
else оператор 2;
вычисляется выражение, и если его значение не равно 0 (истинно), то выполняется оператор 1, иначе – оператор 2, например:
if(x>y) max = x;
else max = y;
Если операторы 1, 2 содержат более одного оператора, то они заключаются в фигурные скобки { }, т. е. применяется блок.
Конструкция else… может отсутствовать и такую форму называют сокращенной, тогда в случае ложности условия управление передается на следующий за if оператор.
Если операторы 1, 2 в свою очередь являются операторами if, то такой оператор называют вложенным, при этом ключевое слово else принадлежит ближайшему предшествующему if.
Например, найти наибольшее значение из трех чисел x, y, z:
if (x>y)
if (x>z) max=x;
else max=z;
else if(y>z) max=y;
else max=z;
Операции сравнения: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), != (не равно), = = (равно). Пары символов разделять нельзя.
Операции сравнения бинарные, их общий вид:
Операнд 1 знак операции Операнд 2
Операндами операций сравнения могут быть данные любых базовых типов, значения которых перед сравнением преобразуются к одному типу.
Логические операции используются в качестве условий при составлении более сложных выражений. Приведем их перечень в порядке убывания приоритета:
! (отрицание или логическое НЕ – унарная операция), && (конъюнкция или логическое И), || (дизъюнкция или логическое ИЛИ).
Например: (0<x)&&(x<=100)
((!x)&&(y>0)||((z==1)&&(k>0))
Выражения вычисляются слева направо, причем их вычисление прекращается, как только результат становится известен.
Тернарная (условная) операция ?:
Ее общая форма:
Операнд 1 ? Операнд 2 : Операнд 3
Если значение операнда 1 истинно (не равно 0), то результатом операции является операнд 2, иначе – операнд 3.
Например, найти наибольшее из двух чисел: max = a>b? a : b;
Оператор выбора switch
Общая форма оператора выбора (переключателя):
switch(выражение) {
case const_1: операторы; break;
…
case const_N: операторы; break;
default: операторы;
}
Вычисляется выражение и проверяется, совпадает ли его результат со значением одной из констант. При совпадении выполняются операторы этого case. Значениями const_1,…, const_N могут быть только целые или символьные константы. Конструкция default выполняется, если результат выражения не совпал ни с одной из констант, и может отсутствовать. Оператор break выполняет досрочный выход из switch (после выполнения ветви case все остальные будут опущены). Если оператор break в case не записан, то будут выполняться операторы следующих ветвей case до появления оператора break, либо до завершения оператора switch.
Например:
switсh(i) {
case 1: f=pow(x,2); break;
case 2: f=fabs(x); break;
case 3: f=sqrt(x); break;
default: printf(“Ошибка!”); exit(1);
}
f=f+5;
2.2. Создание оконного приложения
При создании оконного приложения для организации разветвлений используются компоненты в виде кнопок-переключателей. Состояние такой кнопки (включено/выключено) визуально отражается на форме. На форме (рис. 2.1) представлены кнопки-переключатели двух типов TCheckBox и TRadioGroup.
Компонента CheckBox создает кнопку независимого переключателя, с помощью которой Пользователь может указать свое решение типа да/нет. В программе состояние кнопки связано со значением булевой переменной, которая проверяется с помощью оператора if.
Компонента Radiogroup создает группу кнопок – зависимых переключателей. При нажатии одной из кнопок группы все остальные кнопки отключаются. В программу передается номер включенной кнопки (0,1,2,…), который анализируется с помощью оператора switсh.
В языке C++ используются переменные типа bool, которые могут принимать только два значения – true и false (истина – 1, ложь – 0).
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |


.
.
.
.

.

.
.
.
