Тригонометрические функции

В Pascal определены только три тригонометрические функции: sin, cos, arctg (табл. 1). Для вычисления остальных тригонометрических функций необходимо использовать известные соотношения:

;

;

;

;

;

 

Приступая к решению задач, следует вспомнить, что:

4. инструкция if используется для выбора одного из двух направлений дальнейшего хода программы (последовательности инструкций, которые должны быть выполнены);

5. выбор последовательности инструкций осуществляется во время выполнения программы в зависимости от выполнения условия',

6. условие — это выражение логического типа, которое может принимать одно из двух значений: true (истина — условие выполняется) или false (ложь — условие не выполняется);

7. при помощи логических операций And (логическое "И") и or (логическое "Или") из простых условий можно строить сложные.

Условный оператор

Оператор (инструкцию) if можно записать двумя способами:

q Вариант 1.

if Условие

Then

Begin

{ Эти инструкции выполняются, }

{ если Условие истинно }

End

Else

Begin

{ Эти инструкции выполняются, }

{ если Условие ложно }

end;

q Вариант 2.

ifУсловие

Then

Begin

{ Эти инструкции выполняются, }

{ если Условие истинно }

end;

В последнем случае говорят о сокращенной форме условного оператора (алгоритмическая конструкция обход).

Ключевые слова if, then, else обозначают "если", "то", "иначе" соответственно. Выполнение условного оператора начинается с вычисления условия. Если оно истинно (true, "да", 1), то выполняется оператор, стоящий после служебного слова then. Если условие ложно (false, "нет", 0), то выполняется оператор, стоящий после служебного слова else, в сокращенной форме условного оператора — выполняется следующая по порядку за оператором условия инструкция.

 

Оператор выбора Case

 

Приступая к решению задач, следует помнить, что:

· инструкция case используется для выбора одного из нескольких направлений дальнейшего хода программы (последовательности инструкций, которые должны быть выполнены);

· выбор последовательности инструкций осуществляется во время выполнения программы в зависимости от равенства значения переменной-селектора константе, указанной перед группой инструкций;

· в качестве переменной-селектора можно использовать переменную целого (integer) или символьного (char) типа.

 

Инструкция case имеет вид:

caseВыражение-селектор of

СписокКонстант1: begin

{ Инструкции 1 }

end;

СписокКонстант2: begin

{ Инструкции 2 }

end;

СписокКонстантN: begin

{ Инструкции N }

End

Else

Begin

{ Инструкции }

end;

end;

 

Выполнение оператора case начинается с вычисления выражения-селектора. Инструкции между begin и end выполняются в том случае, если значение выражения после слова case совпадает с константой из соответствующего списка. Если это не так, то выполняются инструкции, следующие после else, расположенные между begin и end. Если else отсутствует, выполняется оператор программы, следующий за case.

Обратите внимание — в конце оператора case стоит ключевое слово end, для которого нет парного слова begin. End располагают строго под case.

Например:

q селектор целочисленного типа:

case i of

1: z:=i+10;

2: z:=i+100;

3: z:=i+1000;

end;

q селектор интервального типа:

case i of

1..10: writeln('Число ', i:4,' в диапазоне 1 — 10');

11..20: writeln('Число ', i:4,' в диапазоне 11 — 20');

21..30: writeln('Число ', i:4,' в диапазоне 21 — 30')

else('Число вне диапазона')

end;

 

 

Примеры

Пример

 

Два числа X и Y задаются при помощи оператора ввода. Вычислить сумму их квадратов, модуль разности и произведение. Текст программы на языке Паскаль приведен ниже. Здесь переменная SUM используется для обозначения суммы квадратов, переменная М - для обозначения модуля разности, переменная P -для обозначения произведения.

 

Работа программы

Вводятся исходные числа Х и Y с клавиатуры.

 

Назначение переменных

Назначение переменных, используемых в задаче, приведено в таблице 2

Таблица 2 – Назначение переменных

Переменная Тип Назначение
x, y real Вещественные числа, вводимые с клавиатура
Sum real Сумма квадратов исходных вещественных чисел
M real Модуль разности исходных вещественных чисел
p real Произведение исходных вещественных чисел

 

5.3. Блок – схема алгоритма программы

Рис. 2 Блок схема алгоритма программы

Текст программы

 

program prim_1;

{вычисления по формулам}

var x,y:real;

sum,m,p:real;

begin

write('введите x=');readln(x);

write('введите y=');readln(y);

sum:=x*x+y*y;

m:=abs(x-y);

p:=x*y;

writeln('сумма квадратов=',sum:6:3);

writeln('модуль разности=',m:6:3);

writeln('произведение=',p:6:3);

readln;

end.

 

Тестирование

Вводим два числа, проверяя корректность работы программы: (1) при двух положительных числах, где Х больше Y; (2) при двух отрицательных числах, где Y больше X. Программа ведёт себя корректно.

1:

Введите Х = 3

Введите Y = 2

Ссума квадратов sum = 13.000

Модуль разности m = 1.000

Произведение р = 6.000

2:

Введите Х = -5

Введите Y = -2

Ссума квадратов sum = 29.000

Модуль разности m = 3.000

Произведение р = 10.000

 

Пример 2: Значения переменных А и В задаются оператором ввода. Программа должна отпечатать А > B, A < B или A = B в зависимости от значений А и В.

 
 

Рис.2. Блок-схема для условного оператора

 

Блок-схема приведена на рис.2. Алгоритм заключается в сравнении вводимых величин А и В и выводе на экран соответствующих сообщений.

 

program prim_2;

{использование условного оператора}

var a,b:real;

Begin

write('введите а=');readln(a);

write('введите b=');readln(b);

if a>b then writeln('А больше В')

else if a<b then writeln('А меньше В')

else writeln('А равно В');

end.

 

Пример 3: Сравнить возраст брата и сестры и выводит соответствующее сообщение.

Вариант 1:

var age1,age2: integer;

Begin

write('Введите возраст брата: '); readln(age1);

write('Введите возраст сестры: ');readln(age2);

if age1>age2 then writeln('Брат старше.')

else if age1<age2 then writeln('Сестра старше.')

else writeln('Они близнецы.');

end.

 

Вариант 2:

var age1,age2: integer;

Begin

write('Введите возраст брата: '); readln(age1);

write('Введите возраст сестры: ');readln(age2);

if age1>age2 then writeln('Брат старше.');

if age1<age2 then writeln('Сестра старше.');

if age1=age2 then writeln('Они близнецы.');

end.

 

Пример 4: Определить день недели известной даты.

var d,m,y: integer; n: longint;

Begin

writeln('Введите день, месяц, год даты (например: 3 12 1964)');

readln(d,m,y);

if(m>=2)then m:=m+1

else

Begin

m:=m+13; y:=y-1;

end;

n:=trunc(365.25*y)+trunc(30.6*m)+d-621050; n:=n-trunc(n/7)*7+1;

case n of

1: write('понедельник');

2: write('вторник');

3: write('среда');

4: write('четверг');

5: write('пятница');

6: write('суббота');

7: write('воскресенье');

end; writeln;

end.

 

Практическая часть

Практическая часть выполняется каждым студентом индивидуально, согласно своему варианту. Вариант задания выдается преподавателем.

Задание 1 Составить программу для вычисления по формулам. Предусмотреть задание исходных данных при помощи оператора ввода.

1. Треугольник задан длинами сторон a и b, и величиной угла С. Найти сторону с и площадь S данного треугольника.

; , где

Предусмотреть ввод угла a в градусах и перевод его в радианы:

2. Треугольник задан длинами сторон. Найти длины высот :

; ;

3. Треугольник задан длинами сторон. Найти длины медиан:

; ;

4. Треугольник задан длинами сторон. Найти длины биссектрис:

; ;

5. Треугольник задан длинами сторон. Найти углы треугольника:

; ;

6.Даны два угла треугольника A, B и высота ha . Вычислить площадь треугольника и две стороны по формулам:

; ; ;

7. Даны два угла треугольника B,С и высота ha . Вычислить длины всех сторон по формулам:

; ;

8. В треугольнике заданы сторона a и углы В и С. Найти площадь S и стороны b и c:

; ; ;

9. В треугольнике заданы сторона a, высота ha и угол С. Найти стороны b,с и площадь S.

; ;

10. Треугольник задан координатами своих вершин. Найти площадь треугольника:

;

Замечание: расстояние между точками A(x1, y1) и B(x2, y2), расположенными на плоскости рассчитывается:

11. Треугольник задан координатами своих вершин. Найти периметр и площадь треугольника.

12. Вокруг треугольника со сторонами a, b, c описана окружность. Определить ее радиус R, угол треугольника A и площадь, ограниченную стороной a и радиусами, проведенными в вершины B, C.

; ;

13. В окружность радиуса R вписан правильный треугольник. Определить длину его стороны a, площадь S и площадь круга S0 , вписанного в треугольник:

; ;

14. Вычислить значения Z1 и Z2 по формулам:

;

15. Опредлить дальность полета тела, запущенного с начальной скоростью V0 с высоты h под углом к горизонту a,пренебрегая сопротивлением воздуха. Траектория движения тела описывается уравнениями:

; , где , V0x, V0y - компоненты скорости V0 вдоль осей X и Y. Замечание: в момент падения тела Y=0.

Задание 2. Составить программу для вычисления. Предусмотреть задание исходных данных при помощи оператора ввода.

 

1. Написать программу вычисления объема параллелепипеда. Значения вводятся с клавиатуры

2. Написать программу вычисления объема и площади поверхности шара.

3. Написать программу вычисления объема цилиндра.

4. Написать программу вычисления стоимости покупки некоторого количества (по весу) помидоров, огурцов и яблок.

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

6. Вычислить расстояние между двумя точками с координатами х1, у1 и х2, у2.

7. Треугольник задан длинами сторон. Найти: длины высот и медиан.

8. Вычислить период колебания маятника длины l.

9. Определить силу притяжения F между телами массы m1 и m2, находящимися на расстоянии r друг от друга.

10. Даны гипотенуза и катет прямоугольного треугольника. Найти второй катет и радиус вписанной окружности.

11. Даны два действительных числа a и b. Получить их сумму, разность и произведение.

12. Даны действительные числа x и y. Получить

13. Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.

14. Даны два действительных числа. Найти среднее арифметическое и среднее геометрическое их модулей.

15. Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.

 

Задание 3: Составить программу с использованием условного оператора. Предусмотреть задание исходных данных при помощи оператора ввода.

  1. Написать программу, которая вычисляет частное от деления двух чисел. Программа должна проверять правильность введенных пользователем данных и, если они неверные (делитель равен нулю), выдавать сообщение об ошибке.
  2. Написать программу вычисления площади кольца. Программа должна проверять правильность исходных данных.
  3. Написать программу вычисления сопротивления электрической цепи, состоящей из двух сопротивлений. Сопротивления могут быть соединены последовательно или параллельно.
  4. Написать программу решения квадратного уравнения. Программа должна проверять правильность исходных данных и в случае, когда коэффициент при второй степени неизвестного равен нулю, выводить соответствующее сообщение.
  5. Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 10% предоставляется, если сумма покупки больше 1000 руб.
  6. Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется в том случае, если сумма покупки больше 500 руб., в 5% — если сумма больше 1000 руб.
  7. Написать программу проверки знания даты основания Санкт-Петербурга. В случае неверного ответа пользователя программа должна выводить правильный ответ.
  8. Написать программу проверки знания даты начала второй мировой войны. В случае неверного ответа пользователя программа должна выводить правильный ответ.
  9. Написать программу проверки знания истории архитектуры. Программа должна вывести вопрос и три варианта ответа. Пользователь должен выбрать правильный ответ и ввести его номер.
  10. Написать программу проверки знания истории архитектуры. Программа должна вывести вопрос и три варианта ответа, а пользователь — выбрать правильный ответ и ввести его номер.
  11. Даны действительные положительные числа x, y z. Выяснить существует ли треугольник с длинами сторон x, y z. Если треугольник существует, то ответить – является ли он остроугольным.
  12. Даны действительные числа a1, b1, c1, a2, b2, c2. Выяснить, верно ли, что , и если верно, то найти решение системы линейных уравнений

(при выполнении неравенства система заведомо совместна и имеет единственное решение).

  1. Вывести на экран большее из двух целых чисел
  2. Даны целые числа a, b, c. Если a £ b £ c, то все числа заменить их квадратами, если a > b > c, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа.
  3. Вычислить значение функции:

 

Задание 4: Составить программу на использование оператора выбора Case

  1. Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. В случае, если пользователь укажет недопустимое число, программа должна вывести сообщение "Ошибка ввода данных".
  2. Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день", "Суббота" или "Воскресенье".
  3. Написать программу, вычисляющую стоимость междугороднего телефонного разговора (цена одной минуты определяется расстоянием до города, в котором находится абонент). Исходными данными для программы являются код города и продолжительность разговора.
  4. Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 999), обозначающего денежную единицу, дописывает слово "рубль" в правильной форме. Например, 12 рублей, 21 рубль и т. д.
  5. Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 99), обозначающего денежную единицу, дописывает слово "копейка" в правильной форме. Например, 5 копеек, 41 копейка и т. д.
  6. Написать программу, которая вычисляет дату следующего дня.
  7. Написать программу, которая по номеру месяца выдает время года.
  8. Написать программу преобразования цифр в слова.
  9. Написать программу, классифицирующую треугольники (остроугольные, прямоугольные, тупоугольные), если даны углы.
  10. Написать программу, которая в зависимости от того введена ли открытая скобка или закрытая, напечатать "открытая круглая скобка" или "закрытая фигурная скобка". (Учитывать круглые, квадратные, фигурные скобки).
  11. Написать программу, которая в зависимости от введённого символа L, S, V программа должна вычислять длину окружности; площадь круга; объём цилиндра.
  12. Напишите программу, которая по введенному числу из промежутка 0..24, определяет время суток.
  13. Определить, является ли введенная буква русского алфавита гласной.
  14. Написать программу, которая в зависимости от значения переменной А на экран выводится наименование оценки. Предусмотреть вывод сообщения об ошибке в случае, когда введено число вне интервала 2..5.
  15. Написать программу, которая если переменная Ch будет буквой ('A'..'Z', 'a'..'z'), цифрой ('0'..'9') или оператором ('+', '-', '*', '/'), будет соответственно выдавать одно из сообщений 'Буква', 'Цифра', 'Оператор'. В противном случае программа напечатает сообщение 'Специальный символ'.

 



A'..'Z', 'a'..'z'), цифрой ('0'..'9') или оператором ('+', '-', '*', '/'), будет соответственно выдавать одно из сообщений 'Буква', 'Цифра', 'Оператор'. В противном случае программа напечатает сообщение 'Специальный символ'.