Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по основам программирования. Скалярные типы. Управляющие операторы. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
2
2
cos , (0,2),
1 sin , (0, 2).
xx
xx
 

{ x4 = x2; if (y1 == y2) y4 = y3; else y4 = y1; } else { x4 = x1; if (y1 == y3) y4 = y2; else y4 = y3; } printf("\nx4 = %d, y4 = %d", x4, y4);
д) Для заданного х найти значение следующей функции:
float x, y; scanf("%f ", &x); if (x < 0) y = 0; else if (x <= 2) y = x * x; else y = sgrt(x); printf("y = %f\n", y);
f (х) =
31
ПРАКТИЧЕСКОЕ ЗАДАНИЕ «ВЕТВЛЕНИЯ»
Тема
Программирование ветвящихся вычислительных процессов. Про­стые скалярные типы данных.
Цели
Сформировать практические навыки программирования простей­ших задач, в основе решения которых лежат фундаментальные дейст­вия структурного программирования, такие как последовательность и ветвления. Сформировать практические навыки использования про­стых типов данных.
Содержание работы
1. Изучить управляющие структуры последовательность и ветвле-
ние (операторы присваивания и условные операторы языка C).
2. Изучить основные характеристики простых скалярных типов
данных.
3. Спроектировать и отладить программу решения поставленной
задачи.
Варианты заданий
1 Даны три различных целых числа. Найти два таких числа среди
них, чтобы модуль разности между ними был:
а) максимален; б) минимален.
2 Даны четыре вещественных числа. Определить, можно ли постро-
ить четырехугольник с такими длинами сторон.
3 Если сумма трех попарно различных действительных чисел x, y, z
меньше единицы, то наименьшее из них заменить полусуммой двух
других; в противном случае заменить меньшее из x и y полусуммой
двух оставшихся.
4 Даны три произвольных числа. Если нельзя построить треугольник
с такими длинами сторон, то напечатать 0, иначе напечатать 3, 2
32
1 1 1 2 2 2
, , , , ,a b c a b c
1 1 1
a x b y c
2 2 2
a x b y c
2
0ax bx c  
42
0ax bx c  
ch x
1 x
2
1xx
2
2 1, 0,
()
1, 0.
1
x
ax a a
fx
e
a
a
 

2
max ( , , ) 2 min( , , )
max( , , )min( , , )
x
x y z x y z
u
x y z x y z
или 1 в зависимости от того, равносторонний, равнобедренный или
иной этот треугольник.
5 Даны произвольные числа
. Найти координаты
точки пересечения прямых, описываемых уравнениями
и
, либо сообщить, что эти прямые сов-
падают, не пересекаются или вовсе не существуют.
6 Даны произвольные числа a, b, c. Найти вещественные корни урав-
нения
либо сообщить, что таких корней нет.
7 Даны произвольные числа a, b, c (a  0). Найти вещественные кор-
ни уравнения
либо сообщить, что таких корней
нет.
8 Дано число x. Напечатать в порядке возрастания числа
,
.
9 Дано произвольное число a. Найти корень уравнения f(x) = 0, где
10 Даны произвольные числа x, y, z. Вычислить величину
и
11 Даны два произвольных числа. Если оба числа отрицательны, то
каждое значение заменить его модулем; если отрицательно только
одно из них, то оба числа увеличить на 1; если оба числа неотрица-
тельны и ни одно из них не принадлежит отрезку [0.5, 2], то оба
числа уменьшить в 2 раза; в остальных случаях оставить их без из-
менения. 12 Даны произвольные числа a, b, c, d. Если a ⩽ b ⩽ c ⩽ d, то каждое
число заменить наибольшим из них; если a > b > c > d, то числа
33
1 2 3 1 2 3
, , , , ,x x x y y y
1 1 2 2 3 3
( , ), ( , ), ( , )x y x y x y
2
0, 0,
( ) , 0 2,
, 2.
если x
f x x если x
x если x
 
 
оставить без изменения; в противном случае все числа заменить их
квадратами. 13 Даны произвольные положительные числа a, b, c, d. Выяснить,
можно ли прямоугольник со сторонами a, b уместить внутри пря-
моугольника со сторонами c, d так, чтобы каждая из сторон одного
прямоугольника была параллельна или перпендикулярна каждой
стороне второго прямоугольника.
14 Даны произвольные числа
.
Принадлежит ли начало координат треугольнику с вершинами
?
15 Даны координаты трех попарно различных точек плоскости. Найти
ту из них, которая расположена:
а) ближе других к началу координат; б) дальше других от начала координат.
16 Даны произвольные отрезки a, b, c и d. Проверьте, возможно, ли
построить из этих отрезков какую- либо геометрическую фигуру и
если возможно, то сообщите название построенной фигуры, либо
сообщите о невозможности построения фигуры для заданных от-
резков. 17 Даны три числа, одно из которых отлично от двух других, равных
между собой. Определите порядковый номер числа, отличного от
остальных. 18 Даны целочисленные координаты трѐх вершин прямоугольника,
стороны которого параллельны координатным осям. Найти коор-
динаты его четвѐртой вершины. 19 Для заданного х найти значение следующей функции:
34
2
0ax bx c  
( 0)xy
[0, 2]
sinyx
Задачи для самостоятельной работы
1 Даны три произвольных числа. Определить, можно ли построить
треугольник с такими длинами сторон.
2 Определить, есть ли среди цифр заданного трехзначного числа
одинаковые.
3 Определить, равен ли квадрат заданного трехзначного числа кубу
суммы цифр этого числа.
4 Определить, есть ли среди первых трех цифр из дробной части за-
данного положительного вещественного числа цифра 0.
5 Определить, равна ли сумма двух первых цифр заданного четырех-
значного числа сумме двух его последних цифр.
6 Для произвольных вещественных чисел a, b, c определить, имеет
ли уравнение
хотя бы одно вещественное решение.
7 Даны координаты (как целые от 1 до 8) двух полей шахматной дос-
ки. Определить, может ли конь за один ход перейти с одного из
этих полей на другое.
8 Перераспределить значения переменных x и y так, чтобы в x оказа-
лось большее из этих значений, а в y – меньшее.
9 Вычислить номер четверти плоскости, в которой находится точка с
координатами x и y
.
10 Известно, что из четырех целых чисел одно отлично от трех дру-
гих, равных между собой. Вычислить номер этого числа (нумеро-
вать числа от единицы). 11 Считая, что стандартные функции sin и cos применимы только к
аргументам из отрезка
, вычислить
для произволь-
ного числа x. 12 Значения переменных a, b, c поменять местами так, чтобы оказа-
лось a b c.
35
13 Дано целое k от1 до180. Определить, какая цифра находится в k-й
позиции последовательности 1011121214…9899, в которой выпи-
саны подряд все двухзначные числа. 14 Дано натуральное k. Определить k-ю цифру в последовательности
110100100010000100000…, в которой выписаны подряд степени 10. 15 Даны две переменные вещественного типа: A, B. Перераспределить
значения данных переменных так, чтобы в A оказалось меньшее из
значений, а в B – большее. Вывести новые значения переменных A
и B. 16 Даны три числа. Найти среднее из них (т. е. число, расположенное
между наименьшим и наибольшим). 17 Даны три переменные вещественного типа: A, B, C. Если их значе-
ния упорядочены по возрастанию, то удвоить их; в противном слу-
чае заменить значение каждой переменной на противоположное.
Вывести новые значения переменных A, B, C. 18 Даны четыре целых числа, одно из которых отлично от трех дру-
гих, равных между собой. Определить порядковый номер числа,
отличного от остальных. 19 На числовой оси расположены три точки: A, B, C. Определить, ка-
кая из двух последних точек (B или C) расположена ближе к A, и
вывести эту точку и ее расстояние от точки A. 20 Даны целочисленные координаты точки на плоскости. Если точка
совпадает с началом координат, то вывести 0. Если точка не совпа-
дает с началом координат, но лежит на оси OX или OY, то вывести
соответственно 1 или 2. Если точка не лежит на координатных
осях, то вывести 3. 21 Даны целочисленные координаты трех вершин прямоугольника,
стороны которого параллельны координатным осям. Найти коор-
динаты его четвертой вершины.
22 Для данного вещественного x найти значение следующей функции
f, принимающей значения целого типа:
36
0, 0,
( ) 1, [0,1),[2, 3), ,
1, [1, 2),[3, 4), .
если x
fx если x
если x
 

 

23 Дан номер года (положительное целое число). Определить количе-
ство дней в этом году, учитывая, что обычный год насчитывает 365
дней, а високосный — 366 дней. Високосным считается год, деля-
щийся на 4, за исключением тех годов, которые делятся на 100 и не
делятся на 400 (например, годы 300, 1300 и 1900 не являются висо-
косными, а 1200 и 2000 — являются). 24 Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-
описание вида «четное двузначное число», «нечетное трехзначное
число» и т. д. 25 Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2
— февраль и т. д.). Определить количество дней в этом месяце для
невисокосного года. 26 Арифметические действия над числами пронумерованы следую-
щим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 —
деление. Дан номер действия N (целое число в диапазоне 1–4) и
вещественные числа A и B (B не равно 0). Выполнить над числами
указанное действие и вывести результат. 27 Даны два целых числа: D (день) и M (месяц), определяющие пра-
вильную дату невисокосного года. Вывести значения D и M для да-
ты, следующей за указанной. 28 Робот может перемещаться в четырех направлениях («С» — север,
«З» — запад, «Ю» — юг, «В» — восток) и принимать три цифро-
вые команды: 0 — продолжать движение, 1 — поворот налево, −1
— поворот направо. Дан символ C — исходное направление робота
и целое число N — посланная ему команда. Вывести направление
робота после выполнения полученной команды. 29 Локатор ориентирован на одну из сторон света («С» — север, «З»
— запад, «Ю» — юг, «В» — восток) и может принимать три циф-
ровые команды поворота: 1 — поворот налево, −1 — поворот на-
37
max( , ), 0, min( , ), 0.
x y x
z
x y x
право, 2 — поворот на 180°. Дан символ C — исходная ориентация
локатора и целые числа N1 и N2 — две посланные команды. Вывес-
ти ориентацию локатора после выполнения этих команд.
30 Мастям игральных карт присвоены порядковые номера: 1 пики,
2 трефы, 3 бубны, 4 червы. Достоинству карт, старших де-
сятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14
— туз. Даны два целых числа: N — достоинство (6 N 14) и M
— масть карты (1 M 4). Вывести название соответствующей
карты вида «шестерка бубен», «дама червей», «туз треф» и т. п. 31 В восточном календаре принят 60-летний цикл, состоящий из 12-
летних подциклов, обозначаемых названиями цвета: зеленый,
красный, желтый, белый и черный. В каждом подцикле годы носят
названия животных: крысы, коровы, тигра, зайца, дракона, змеи,
лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года
определить его название, если 1984 год – начало цикла: «год зеле-
ной крысы». 32 Даны два целых числа: D (день) и M (месяц), определяющие пра-
вильную дату. Вывести знак Зодиака, соответствующий этой дате:
«Водолей» (20.118.2), «Рыбы» (19.220.3), «Овен» (21.319.4),
«Телец» (20.420.5), «Близнецы» (21.521.6), «Рак» (22.622.7),
«Лев» (23.722.8), «Дева» (23.822.9), «Весы» (23.922.10), «Скор-
пион» (23.1022.11), «Стрелец» (23.1121.12), «Козерог» (22.12
19.1).
33 Записать указанное действие в виде одного условного оператора:
а)
б) переменной x присвоить корень уравнения arcsin(1 + ln x) = a,
если корень существует;
в) перераспределить значения переменных x и y так, чтобы в x ока-
залось меньшее из этих значений, а в y – большее;
38
г) переменной k присвоить номер четверти плоскости, в которой
находится точка с координатами x и y (xy ≠ 0);
д) если можно построить треугольник с длинами сторон a, b, c (a, b,
c – произвольные числа), то переменной p присвоить периметр
этого треугольника; е) d = max (a, b, c) ; ж) t = min (x, y, z); з) если значение переменной w не равно 0 и при этом котангенс от
w меньше 0.5, тогда поменять знак у w, а если значение w равно
0, тогда присвоить w значение 1.
Контрольные вопросы
1. Понятие типа данных.
2. Базовые типы в C.
3. Характеристики простых скалярных типов данных.
4. Понятие выражения. Правила вычисления выражения.
5. Структура программы на языке C.
6. Управляющие структуры следования.
7. Управляющие структуры ветвления.
8. Программирование ветвлений.
39
ГЛАВА 3 ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
Понятие циклического вычислительного процесса
Вычислительный процесс, в котором для получения результата ре-
шения задачи приходится многократно повторять вычисления практи­чески по одним и тем же формулам, называется циклическим (или просто циклом). В основе реализации цикла лежит обобщенное пред­ставление (обобщенная запись) многократно повторяющихся дейст­вий.
Например, требуется вычислить значение многочлена:
a5 x5+ a4 x4 + ... a1 x + a0.
Для сокращения вычислений приведем этот полином к скобочной
записи, называемой схемой Горнера:
((((a5 x + a4) · x + a3) · x + a2) · x + a1) · x + a0 .
Здесь повторяющейся совокупностью действий является умноже-
ние на x и сложение с очередным коэффициентом полинома. Для вы­числения полинома нужно выполнить следующую последовательность действий:
p = a5; p = p * x + a4; p = p * x + a3; p = p* x + a2; p = p * x + a1; p = p * x + a0.
С увеличением порядка полинома длина такой последовательности
действий может быть очень большой (или даже заранее неизвестной, если порядок полинома задается переменной величиной). Выходом из этой ситуации является такая запись повторяющихся действий (назы­ваемая обобщенной записью, т. е. независимой от номера повторного выполнения), которая позволяет, описав эти действия один раз и орга­низовав их повторение столько раз, сколько необходимо, вычислить требуемое значение. В данной задаче обобщенная запись может иметь
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]