Лабораторная работа оператор присваивания. Оператор
![]()
|
18. Составьте программу, Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 5">которая определяет, принадлежит ли точка 𝑀(𝑥, 𝑦) кругу с центром в точке (7.33, −21.1) и радиусом равным 23.5, если x и y - заданные действительные числа. 19. Составьте программу, которая определяет, принадлежит ли точка 𝑁(𝑥, 𝑦, 𝑧) шару с центром в точке (1.5,200, −4.12) и радиусом равным 72.8, если x, y и z - заданные действительные числа. 20. Составьте программу, которая определяет, принадлежит ли точка 𝑀(𝑥, 𝑦) окружности с центром в точке (−1.2,0.1) и радиусом равным 7, если x и y - заданные действительные числа. 21. Составьте программу, которая определяет, принадлежит ли точка 𝑁(𝑥, 𝑦, 𝑧) сфере с центром в точке (−0.5,1, −1.99) и радиусом 91.19, если x, y и z - заданные действительные числа. 22. Определите, какая из двух фигур (круг или квадрат) имеет большую площадь. Известно, что сторона квадрата равна а, радиус круга r. Выведите на экран название и величину площади большей фигуры. 23. Заданы площадь круга и квадрата. Определите, поместится ли квадрат в круг. 24. Напишите программу, которая по номеру месяца выводит его название. Например, 3 - март. 25. Напишите программу, которая по знаку арифметической операции выводит её название. Например, "+" - сложение. 26. Напишите программу, которая определяет по заданному числу месяца и по дню недели первого числа этого месяца, день недели для заданного числа. (Пример: первое число - пятница, тогда 6 – вторник (задали число 6)). 27. Напишите программу, которая по номеру дня недели выводит его название. 28. Напишите программу, которая переводит школьные отметки в оценки. 29. Единицы длины пронумерованы следующим образом: 1 — километр, 2 — метр, 3 — дециметр, 4 — сантиметр, 5 — миллиметр. С клавиатуры вводим номер единицы длины (целое число в диапазоне 1–5) и длину отрезка в этих единицах (вещественное число). Напишите программу, которая находит длину отрезка в метрах. 30. Единицы массы пронумерованы следующим образом: 1 — тонна, 2 — центнер, 3 — килограмм, 4 — грамм, 5 — миллиграмм. С клавиатуры вводим номер единицы массы (целое число в диапазоне 1–5) и массу тела в этих единицах (вещественное число). Напишите программу, которая вычисляет массу тела в килограммах. 31. Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Напишите программу, которая выводит строку-описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год». 32. Дано целое число в диапазоне 10–40, определяющее количество учебных заданий по некоторой теме. Напишите программу, которая возвращает строку-описание указанного количества заданий, обеспечив правильное согласование числа со словами «учебное задание», например: 18 — «восемнадцать учебных заданий», 23 — «двадцать три учебных задания», 31 — «тридцать одно учебное задание». 33. В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Напишите программу, которая по номеру года определяет его название и расположение в календаре. Например, если задан 1984 год — начало цикла: «год зеленой крысы». 34. Две прямые заданы уравнениями 𝑦 1 = 𝑎 ∗ 𝑥 + 𝑏 и 𝑦 2 = 𝑘 ∗ 𝑥 + 𝑚. Для заданных целых чисел a, b, k, m определите, перпендикулярны ли эти прямые. Ответ выведите на экран, а если они перпендикулярны, то найдите их точку пересечения. 35. Составьте программу для вычисления значения функции: (1) 𝑦(𝑥) = { 𝑥 2 + 2, 𝑥 < −2 𝑥 − 1, 𝑥 ≥ −2 (2) 𝑦(𝑥) = { 𝑥, 𝑥 < 3 𝑥 3 − 𝑥, 3 ≤ 𝑥 ≤ 11 1 𝑥 , 𝑥 > 11 (3) 𝑦(𝑥) = { 0, 𝑥 > 4.5 |𝑥|, 𝑥 ≤ 4.5 (4) 𝑦(𝑥) = { 1, 𝑥 ≤ 0 𝑥, 𝑥 > 0 ∧ 𝑥 ≤ 1 𝑥 + 1, 1 < 𝑥 ≤ 2 𝑥 + 2, 2 < 𝑥 ≤ 3 𝑥 + 3, 3 < 𝑥 (5) 𝑦(𝑥) = { 5𝑎 − 𝑎 2 𝑥 (где 𝑎 = 𝑥 − 1), 𝑥 ≤ 0 7𝑘𝑏𝑥 − 20 − 𝑘 𝑥 (где 𝑘 = 𝑏 + 2𝑥, 𝑏 = 𝑥 + 1), 𝑥 > 0 36. Определите, какие задачи решают приведённые ниже программы: (1) #include { int a,b,x; printf("Введите число a: "); scanf("%d",&a); b=a-(x=a/10)*10; printf("%d: %d\n",a,b); return 0; } (2) #include { int x; printf("Введите число x: "); scanf("%d",&x); if (x%2==0) printf("Число x является нечётным."); else printf("Число x не является нечётным."); return 0; } (3) #include { int x,y,z; printf("Введите число x: "); scanf("%d",&x); printf("Введите число y: "); scanf("%d",&y); if (x>y) z=x-y; else z=y-x+1; printf("z=%d\n",z); return 0; } (4) #include { int x,y,z; printf("Введите числа x,y,z: "); scanf("%d %d %d",&x,&y,&z); if (x>y) if (x>z) printf("%d",x); else printf("%d",z); else if (y>z) printf("%d",y); else printf("%d",z); return 0; } (5) #include { int a,b,c; printf("Введите числа a,b,c: "); scanf("%d %d %d",&a,&b,&c); if ((a} (6) #include { int a,b,c,s; printf("Введите число a: "); scanf("%d",&a); printf("Введите число b: "); scanf("%d",&b); printf("Введите число c: "); scanf("%d",&c); s=0; if (a>1&&a<13) { s=1; printf("a принадлежит интервалу"); } if (b>1&&b<13) { s=1; printf("\nb принадлежит интервалу"); } if (c>1&&c<13) { s=1; printf("\nc принадлежит интервалу"); } if (s==0) printf("Ни a, ни b, ни c не принадлежат интервалу"); return 0; } (7) #include { int x,y,z; printf("Введите число x: "); scanf("%d",&x); printf("Введите число y: "); scanf("%d",&y); printf("Введите число z: "); scanf("%d",&z); if (x+y>z&&x+z>y&&y+z>x) printf("Существует"); else printf("Не существует"); return 0; } (8) #include { int n,p,z,b; printf("Введите число n (n>99): "); scanf("%d",&n); p=n/100; if (p>10) { b=p-(z=p/10)*10; printf("b=%d",b); } else printf("p=%d",p); return 0; } (9) #include { int a,b,m; printf("Введите число a: "); scanf("%d",&a); m=a-(b=a/10)*10; if (b>m) printf("b=%d",b); else printf("m=%d",m); return 0; } (10) #include { int x,z; printf("Введите число x: "); scanf("%d",&x); if (x<10) z=x; else if (x<100) z=x/10; else if (x<1000) z=x/100; else if (x<10000) z=x/1000; else z=x/10000; printf("%d: %d",x,z); return 0; } 37. (По [Кашаев,2010,с.110-112]) Определите, какие задачи решают приведённые ниже программы: (1) при условии, что a=7 и b=5 #include #include { int a,b,c; printf("Введите значения переменных a и b: "); scanf("%d%d",&a,&b); c=a/3; c=c+b%10; a=c%b; if (c<3) printf("%d\n",c*c); else printf("%d\n",c+a); getch(); return 0; } (2) при условии, что a=5 #include #include { int a,b; printf("Введите значения переменной a: "); scanf("%d",&a); a-=2; b=a%4; b-=7; a=b%5; if (a/3>1) if (b/5<3) printf("%d\n",b); getch(); return 0; } (3) #include #include { int a=17,b=21; if (a%7>8||b%5<3) printf("%d\n",a); else printf("%d\n",b); getch(); return 0; } (4) #include #include { int a=8; if (a%3>=2&&a/3==2) printf("%d\n",a*a); else printf("%d\n",a*a*a); getch(); return 0; } (5) #include #include { int a=5; if (a%3>2&&a/3==2) printf("%d\n",a); else printf("%d\n",a*a); getch(); return 0; } 38. Даны две целые переменные a, b. Составьте фрагмент программы, после исполнения которого значения переменных поменялись бы местами ("новое" значение a равно "старому" значению b и наоборот). Указание. Введём дополнительную целую переменную t. Далее: 𝑡: = 𝑎; 𝑎: = 𝑏; 𝑏: = 𝑡; 39. Решите предыдущую задачу, не используя дополнительных переменных (и предполагая, что значениями целых переменных могут быть произвольные целые числа). Указание. Начальные значения a и b обозначим 𝑎 0 и 𝑏 0 a: = a + b; {𝑎 = 𝑎 0 + 𝑏 0 , 𝑏 = 𝑏 0 } b: = a − b; {𝑎 = 𝑎 0 + 𝑏 0 , 𝑏 = 𝑎 0 } a: = a − b; {𝑎 = 𝑏 0 , 𝑏 = 𝑎 0 } 40. Найдите большее (меньшее) из двух целых чисел без использования оператора условного перехода. Указание. 𝑚: = (𝑎 + 𝑏 + 𝐴𝑏𝑠(𝑎 − 𝑏))/2, 𝑛: = (𝑎 + 𝑏 − 𝐴𝑏𝑠(𝑎 − 𝑏))/2. Программы с ошибками 1. (По [Уэллин,2004,с.56-57]) Найдите ошибку в приведённой ниже программе. // Всем известно, что // // 1+1=2, 1+1+1=3, 1/3+1/3+1/3=3/3=1. // // Следующая программа должна доказывать этот факт, // но почему-то она не работает. Почему? // ------------------------------------- #include { float third=1.0/3.0; float one=1.0; if (third+third+third==one) cout << "1=1/3+1/3+1/3\n"; else cout << "Не верно, что 1=1/3+1/3+1/3.\n"; return 0; } 2. (По [Уэллин,2004,с.64]) Найдите ошибку в приведённой ниже программе. // Переменные a, b, c расположены по убыванию. // А что по этому поводу "думает" программа? // ----------------------------------------- #include #include // -------------- int main() { int a,b,c; a=7; b=5; c=3; if (a>b>c) cout << "Переменные расположены по убыванию.\n"; else cout << "Не верно, что переменные упорядочены.\n"; // ---------------------------------------------------- a=7; b=5; c=0; if (a>b>c) cout << "Переменные расположены по убыванию.\n\n"; else cout << "Не верно, что переменные упорядочены.\n\n"; getch(); return 0; } 3. Найдите ошибки в приведённой ниже программе. #include #include #include // -------------- void main() { double A,B,C,D; cout << "A, B, C: "; cin >> A >> B >> C; D=B*B-4*A*C; if (D>=0) cout << "X1=" << (-B+sqrt(D))/2/A << "\n" \ << "X2=" << (-B-sqrt(D))/2/A; else cout << "Корней нет.\n"; getch(); } |