Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВМ 1-3 лабы.rtf
Скачиваний:
32
Добавлен:
01.04.2015
Размер:
2.67 Mб
Скачать

Алгоритмы с ветвлением

1. Задания для решения на компьютере

A. Дано действительное число x. Вычислить f(x), если

B. Даны действительные числа x, y. Определить, принадлежит ли точка с координатами (x,y)заштрихованной части плоскости

Если принадлежит – напечатать “YES”, в противном случае – “NO”.

C. Даны целые числа x, y, z. Вычислить max(x+y+z,xyz,-x-y-z).

D. Оператор switch. Написать программу, которая бы по введенному длине отрезка L в метрах (целое число) и номеру единицы измерения (1 – дециметр, 2 – сантиметр, 3 – миллиметр) в которую надо преобразовать, выдавала бы соответствующее значение длины отрезка L.

Пример ввода : 2 1

Пример вывода: 2м=20дм

E. Оператор switch. Написать программу моделирующую простейший калькулятор. Пользователь вводит выражение типа ’32+5’ или ’94*14’ (число, знак операции, число) и получает результат. Возможные знаки операций: {+,-,*,/}. Использовать оператор switch.

F. Прямая на плоскости может быть задана уравнением ax+by+c=0, где a и b одновременно не равны 0. Пусть даны коэффициенты двух прямых: a1, b1, c1, a2, b2, c2. Определить точку пересечения этих прямых. Если прямые параллельны напечатать 0, а если совпадают, то напечатать 1.

Указание. Необходимо решить систему уравнений (см. 4.3, пример 8).

G. На шахматной доске стоят черный король и белый ферзь. Проверить, есть ли угроза королю. Если есть угроза, выдать сообщение “YES”, иначе “NO”.

Указание. Для решения данной задачи ознакомьтесь с примером 9 пункта 4.3.

2. _____________________________________________________________________________________________________________________________Задания для самостоятельной работы

1.1. Определить, имеется ли среди чисел a, b, c хотя бы одна пара взаимно противоположных чисел. Если да, напечатать любую из этих пар, иначе “NO”.

1.2. Найти координаты точек пересечения прямой y=kx+b и окружности радиуса R с центром в начале координат. Если точек пересечения нет, то выдать сообщение “NO”. Если имеет одну точку пересечения, то в первой строке напечатать “1”, во второй – координаты точки пересечения. Если имеет две точки пересечения, то в первой строке напечатать “2”, во второй – координаты первой точки пересечения, в третьей – координаты второй точки пересечения.

2.1. Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до A минут в месяц оплачиваются B рублей, а разговоры сверх установленной нормы оплачиваются из расчета C рублей в минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени (в минутах) разговоров за месяц.

2.2. Дана точка A(x,y). Определить, принадлежит ли она треугольнику с вершинами в точках (x1,y1), (x2,y2), (x3,y3). Если точка A принадлежит заданному треугольнику, то выдать сообщение «YES”, иначе “NO”.

3.1. Определить, является ли целое число N четным двузначным числом. При положительном ответе выдать сообщение «YES”, иначе “NO”.

3.2. Заданы координаты вершин прямоугольника: (x1,y1)- левый верхний угол, (x2,y2)- правый нижний угол. Стороны параллельны осям координат. Определить площадь части прямоугольника, расположенной в 1-й координатной четверти.

4.1. Определить, равен ли квадрат первой цифры заданного трехзначного числа N числу образованного из двух последних цифр этого числа. Если да, выдать сообщение «YES”, иначе “NO”.

4.2. Заданы три точки A(x1,y1), B(x2,y2), C(x3,y3). Определить, какая из точек B и C расположена ближе к A. Варианты ответов: “B”, “C”, “BA=CA”.

5.1. Даны целые числа m, n. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то заменить числа нулями.

5.2. Заданы размеры A, B прямоугольного отверстия и размеры X, Y, Z кирпича. Определить, пройдет ли кирпич через отверстие. При положительном ответе выдать сообщение «YES”, иначе “NO”.

6.1. Найти max{min(a,b), min(c,d)}.

6.2. Написать программу, определяющую, будут ли прямые A1x+B1y+C1=0 и A2x+B2y+C2=0 перпендикулярны. При положительном ответе выдать сообщение «YES”, иначе “NO”.

Указание. Две прямые перпендикулярны, если скалярное произведение направляющих векторов l1=(A1,B1) и l2=(A2,B2) заданных прямых равно нулю, т.е. l1l2=A1*A2+B1*B2=0.

7.1. Даны три числа a, b, c. Если ни одно не из них равно d, то найти max(d-a,d-b,d-c), иначе min(a-d,b-d,c-d).

7.2. Дан круг радиуса R. Определить, поместится ли правильный треугольник со стороной a в этом круге. Если да, выдать сообщение «YES”, иначе “NO”.

8.1. Даны действительные числа а, b, с. Удвоить эти числа, если а<b<с, и заменить их абсолютными значениями, если это не так.

8.2. Составить программу определения типа треугольника (равносторонний, равнобедренный, разносторонний) по заданным координатам его вершин (x1,y1), (x2,y2) и (x3,y3) на плоскости. Напечатать 1, если треугольник равносторонний, 2 – равнобедренный и 3 – разносторонний.

9.1. Написать программу нахождения суммы большего и меньшего из трех заданных чисел a, b, c.

9.2. Даны три точки A(x1,y1), B(x2,y2) и C(x3,y3). Определить, будут ли они расположены на одной прямой. Если да напечатать 0, а если нет – вычислить SABC.

Указание. Найти уравнение прямой проходящей через две точки (см. п.4.3, пример 7) и подставить в это уравнение координаты третьей точки. Если значение будет равно нулю, то все три точки расположены на одной прямой.

10.1. Грузовой автомобиль выехал из одного города в другой со скоростью v1 км/ч. Через t часов в этом же направлении выехал легковой автомобиль со скоростью v2 км/ч. Определить время, через которое легковой автомобиль догонит грузовой. Если не догонит, напечатать 0.

10.2. Даны четыре различные точки A(x1,y1), B(x2,y2), C(x3,y3), D(x4,y4) в порядке обхода. Определить, будут ли они вершинами параллелограмма. Если да, выдать сообщение «YES”, иначе “NO”.

Указание. Рассмотрим четыре вектора l1=(x2-x1,y2-y1), l2=(x3-x2,y3-y2), l3=(x3-x4,y3-y4), l4=(x4-x1,y4-y1). Если вектор l1 параллелен вектору l3, а вектор l2 параллелен вектору l4, то заданные точки будут вершинами параллелограмма. Два вектора параллельны, если их векторное произведение равно нулю, т.е. a×b=a1*b2-a2*b1=0.

11.1. Даны действительные числа x и y, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее – их удвоенным произведением.

11.2. На плоскости XOY задана своими координатами (x,y) точка A. Указать, где она расположена: на какой оси или в какой координатной четверти. Варианты ответов: “Ox”, “Oy”, “O”, “I”, “II”, “III”, “IV” (“O” –

начало координат).

12.1. Для действительных значений a и b составить программу решения линейного уравнения ax=b. Если нет решения, напечатать “NO”, а если бесконечно много – “inf”.

12.2. Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным. Варианты ответов: “NO”, “YES”, “Yes, rectangular”.

13.1. Даны числа x, y, z. Найти значение выражения:

13.2. Даны две точки A(x1,y1) и B(x2,y2). Составить алгоритм, определяющий, которая из точек находится ближе к началу координат. Варианты ответов: “A”, “B”, “OA=OB”.

14.1. Написать программу, которая по заданным трем числам a, b, c определяет, является ли сумма каких-либо двух из них положительной. Напечатать один из возможных вариантов. Варианты ответов: “a+b”, “a+c”, “b+c”, “NO”.

14.2. Даны стороны двух треугольников a1, b1, c1, a2, b2, c2. Найти площадь большего треугольника.

15.1. Известно, что из четырех чисел a1, a2, a3 и a4 одно отлично от трех других, равных между собой. Найти номер этого числа.

15.2. Пусть даны координаты вершин четырехугольника в порядке обхода по часовой стрелке. Составьте программу, которая определяла бы, является ли этот четырехугольник прямоугольником (см. задачи 6.2 и 10.2).

16.1. Составить программу определения количества дней в заданном месяце m заданного года g (см. п.4.3, пример 5).

16.2. Пусть даны стороны треугольника a, b, c. Вычислите длины его высот и напечатайте их в порядке убывания.

17.1. Может ли ладья, расположенная на поле xn, за один ход переместиться на поле ym. Здесь x и y принимают значения из множества a,b,c,d,e,f,g,h, а n и m – из множества 1,2,3,4,5,6,7,8. Если да, выдать сообщение «YES”, иначе “NO”.

17.2. Числа a и b выражают длины катетов одного прямоугольного треугольника, а c и d – другого. Составить программу определения, являются ли эти треугольники подобными. Если да, выдать сообщение «YES”, иначе “NO”.

18.1. На шахматной доске стоят черный король и белые ладья и слон. Проверить, есть ли угроза королю. Учесть, что ладья не бьет через слона и слон не бьет через ладью. Если да, выдать сообщение «YES”, иначе “NO”.

18.2. Даны две точки A(x1,y1)и B(x2,y2). Напечатайте координаты точки, лежащей ближе к одному из осей координат. Если равноудалены, напечатайте 0.

19.1. Дано натуральное число N>4. Если оно делится на 4, вывести на экран ответ N=4*k (где k – соответствующее частное); если остаток от деления на 4 равен 1, N = 4*k + 1; если остаток от деления на 4 равен 2, N = 4*k + 2; если остаток от деления на 4 равен 3, N = 4*k + 3.

Примеры:

N=12

12 = 4*3

N=22

22 = 4*5 + 2

19.2. Даны две точки A(x1,y1)и B(x2,y2). Найти минимальный радиус окружности с центром в начале координат, содержащий заданные точки.

20.1. Если сумма трех попарно различных действительных чисел X, Y, Z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из X, Y полусуммой двух оставшихся значений.

20.2. Введите три числа. Если могут быть длинами сторон треугольника, вычислите площадь полученного треугольника, иначе выведите их в порядке возрастания.

21.1. Написать программу решения уравнения ax3+bx=0 для произвольных a, b. Если бесконечно много решений напечатать – “inf”.

21.2. Введите три числа. Если могут быть длинами сторон треугольника, вычислите периметр полученного треугольника, иначе выведите их в порядке убывания.

22.1. Составить программу, которая запрашивает дату (число, месяц, год) и проверяет корректность введенных пользователем данных. Если да, выдать сообщение «YES”, иначе “NO”.

22.2. Даны площадь круга и площадь правильного n-угольника. Составить программу определения, может ли поместиться одна фигура в другой при совмещении центра их симметрии. Если да, выдать сообщение «YES”, иначе “NO”.

23.1. Дано двузначное число. Напишите программу определения, входит ли в него цифра 5. Если да, выдать сообщение «YES”, иначе “NO”.

23.2. Составить программу, которая проверяет, можно ли из отрезков a, b, c, d построить четырехугольник. Если да, выдать сообщение «YES”, иначе “NO”.

24.1. Дано трехзначное число. Напишите программу определения, входит ли в него цифры 5 и 7. Если да, выдать сообщение «YES”, иначе “NO”.

24.2. Пусть даны координаты трех точек на плоскости. Если они могут быть вершинами равнобедренного треугольника, вычислите периметр треугольника, иначе площадь.

25.1. По заданным значениям x, y, z вычислите значение

u=max(x+y-z,min(x+yz,x)).

25.2. Даны два конверта прямоугольной формы с длинами сторон a, b и c, d. Определите, можно ли один из конвертов вложить в другой? Если да, выдать сообщение «YES”, иначе “NO”.

26.1. Определить, есть ли среди цифр заданного трехзначного числа одинаковые. Если да, выдать сообщение «YES”, иначе “NO”.

26.2. Даны координаты трех точек. Найти максимальное расстояние между заданными точками.

27.1. Определить, делителем каких целых чисел a, b, c является целое число k. Варианты ответов: “a“, “b“, “c”, “a,b”, “a,c”, “b,c”, “a,b,c”, “0”.

27.2. Даны номера двух квартир n и m девяти этажного дома. На каждой площадке по четыре квартиры. Какая из квартир находится выше. Варианты ответов: ”1”, ”2”, ”1=2”.

28.1. Даны числа x, y, z. Найти значение выражения:

28.2. Даны координаты левого верхнего угла (x1,y1) и правого нижнего угла (x2,y2) прямоугольника, а также координаты точки A(x1,y1). Составить программу, определяющую, принадлежит ли заданная точка A заданному прямоугольнику. Если да, выдать сообщение «YES”, иначе “NO”.

29.1. Дата рождения студента d, m, g. Напишите программу определения, исполнилось ли студенту полных 18 лет первого сентября 2011 года.

29.2. Даны две точки A(x1,y1) и B(x3,y3). Определить, какая из точек A и B расположена ближе к прямой y=x. Варианты ответов: ”A”, ”B”, ”dA=dB”.

30.1. Даны числа x, y, z. Найти значение выражения:

30.2. Для заданных a и b решить неравенство ax>b, a≠0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]