Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решения по С++(Слабженников).doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
336 Кб
Скачать
☆

Пример работы программы (результаты вывода на экран)

Input argument:45 In square 45=2025 In square 9.65=93.1225

15.*Т6.3

#include <iostream> #include <cmath> using namespace std; void main() { double radius,length; cout<<"Enter radius: "; cin>>radius; length=2*3.1415*radius; cout<<"radius="<<radius<<endl; cout<<"length="<<length<<endl; cin.get(); } Используя функцию pow() из файла cmath, добавьте в код программы вычисление площади окружности.

#include <iostream> #include <cmath> using namespace std; void main() { double radius,length, square; cout<<"Enter radius: "; cin>>radius; length=2*3.1415*radius; // S = pi*R^2 square = 3.1415*pow(radius, 2); cout<<"radius="<<radius<<endl; cout<<"length="<<length<<endl; cout<<"square="<<square<<endl; cin.get(); }

16.*Т6.4

#include <iostream> #include <cmath> using namespace std; void length1(int r); float length2(int); void main() { int radius; radius=5; length1(radius); cout<<"length2(): radius="<<radius<<" length="<<length2(radius)<<endl; cin.get(); } void length1(int r) { cout<<"length1(): radius="<<r<<" length="<<2*3.1415*r<<endl; } float length2(int r) { return 2*3.1415*r; } Замените инструкцию return 2*3.1415*r; на код:

float y;

y=2*3.1415*r;

return y;

#include <iostream> #include <cmath> using namespace std; void length1(int r); float length2(int); void main() { int radius; radius=5; length1(radius); cout<<"length2(): radius="<<radius<<" length="<<length2(radius)<<endl; cin.get(); } void length1(int r) { cout<<"length1(): radius="<<r<<" length="<<2*3.1415*r<<endl; } float length2(int r) { float y; y=2*3.1415*r; return y; }

17.Т8

Void ts(void);

Void main (void)

{

for(int i=1;i<3;i++) {cout<<"ts(): "<<i<<endl; ts();}

}

Void ts(void)

{

int auto_l=1;

static int stat_l=1;

cout<<"auto_l="<< auto_l++<<" stat_l="<<stat_l++<<endl;

}

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

18.*Т9

Напишите программу, в которой функция main() вызывает другую функцию, принимающую в качестве аргумента значение температуры в градусах по Цельсию и возвращающую значение в градусах по Фаренгейту. По запросу программы, температуру в градусах Цельсия вводит пользователь. Затем программа отображает результат, например, в виде:

Enter a Celsius value: 20

20 Degrees Celsius is 68 degrees Fahrenheit.

Для справки: Fahrenheit = 1.8 * Celsius + 32.

#include <iostream> #include <cmath> using namespace std; // преобразует температуру по Цельсию в температуру по Фаренгейту float PoFahrenheit(float Celsius) { return 1.8 * Celsius + 32; } void main() { float Celsius; cout<<"Enter a Celsius value:"; cin>>Celsius; cout<<"\n"<<Celsius<<" degrees Celsius is "<<PoFahrenheit(Celsius)<<" degrees Fahrenheit"; cin.get(); }

19.Т10.1(a)

int a=5, b=10, t, f;

t=(a<b);

f=(a>b);

cout.setf(ios_base::boolalpha);

cout<<"t="<<t<<endl;

cout<<"f="<<f<<endl;

cout<<"t="<<(a<b)<<endl;

cout<<"f="<<(a>b)<<endl;

Переменные а, b, t и f объявите как int. Переменной а присвойте значение равное 5, переменной b присвойте значение равное 10. Определите назначение флага ios_base::boolalpha. Какие значения возвращают логические выражения? Какие значения хранятся в переменных t и f, и почему?

20.*T10.1(b)

int x=5, y=4, z; bool b; z=x+3>y-2; b=x+3>y-2; Какие значения принимают переменные z и b, и почему?

int x=5, y=4, z; bool b; // z = 1, так как: "В логической переменной хранится либо 0, либо 1", а 8>2

// неэффективность использования int для bool – для двух значений

// используется 16 битов/разрядов, в то время как достаточно одного (0/1)

z=x+3>y-2;

// b = 1, так как 8>2

b=x+3>y-2;

21.*T10.1(с)

5==5||5==9; 5>3||5>10; 5==5&&4==4; 5>3&&5>10; !(2>5); !10>5; x>30&&x<45||y>300; x!=0&&1.0/x>100.0; (проверить при x=0).

Вычислите условные выражения. Объясните результаты.

5==5||5==9; // true, так как приоритет == выше || и 5 равно 5 5>3||5>10; // true, 5 больше 3 5==5&&4==4; // true, так как приоритет == выше && и 5 равно 5, а 4 равно 4 5>3&&5>10; // false, так как 5<10, а операция && предполагает истинность обоих условий !(2>5); // true, так как отрицание (!) false (2 не больше 5) есть true !10>5; // false, так как отрицание true есть false

x>30&&x<45||y>300;

// так как приоритет && выше ||, условное выражение можно переписать в виде:

(x>30&&x<45)||y>300;

// полагая x = 0, получим (0>30&&0<45)=false. При y>300 значение общего условного выражения будет равно true, при y<=300 – false.

x!=0&&1.0/x>100.0;

// так как приоритет / выше приоритетов && и >, то условное выражение можно переписать в виде:

x!=0&&(1.0/x)>100.0;

// так как приоритет > выше &&, то условное выражение можно переписать в виде:

x!=0&&((1.0/x)>100.0);

// полагать x = 0 нельзя, так как тогда будет деление на 0 (1.0/0), поэтому полагаем, что x <> 0.

Условие x!=0 будет true при всех x<>0.

((1.0/x)>100.0), только если x < 0.01

Получается, что выражение x!=0&&(1.0/x)>100.0 истинно при x < 0.01, и ложно при x[0.01, 0)(0, +]

22.**T10.3

Напишите программу, которая запрашивает переменные a, b, c целого типа и выполняет алгоритм: