Главная страница
Навигация по странице:

  • Программы с ошибками

  • Лабораторная работа оператор присваивания. Оператор


    Скачать 0.67 Mb.
    НазваниеЛабораторная работа оператор присваивания. Оператор
    Дата23.03.2023
    Размер0.67 Mb.
    Формат файлаpdf
    Имя файлаLR02.pdf
    ТипЛабораторная работа
    #1011174
    страница4 из 4
    1   2   3   4
    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 main()
    { 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 main()
    { int x; printf("Введите число x: "); scanf("%d",&x); if (x%2==0) printf("Число x является нечётным."); else printf("Число x не является нечётным."); return 0;
    }
    (3) #include int main()
    { 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 main()
    { 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 main()
    { int a,b,c; printf("Введите числа a,b,c: "); scanf("%d %d %d",&a,&b,&c); if ((a}
    (6) #include int main()
    { 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 main()
    { 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 main()
    { 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 main()
    { 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 main()
    { 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 main()
    { 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 main()
    { 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 main()
    { 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 main()
    { 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 main()
    { 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 int main()
    { 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();
    }
    1   2   3   4


    написать администратору сайта