Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа (Багаутдинов Р.М.).doc
Скачиваний:
22
Добавлен:
18.03.2015
Размер:
2.55 Mб
Скачать

2.2.3 Блок схема алгоритма

2.2.4 Реализация алгоритма на языке Pascal

Program Zadacha4;

uses crt;

var N:integer;

Begin

write('Введите число N = ');

readln(N);

if (N mod 2 = 0) then writeln('Число является четным') else writeln('Число является нечетным');

if (N div 10>=1) and (N div 10<=9)

then writeln('Число является двузначным') else writeln('Число не является двузначным');

readln;

End.

2.2.5Тестирование алгоритма задачи

2.3 Задача 5 (2.36)

Дано число x. Напечатать в порядке возрастания числаsinx,cosx,lnx. Если при каком-либо х некоторые из выражений не имеют смысла, вывести соответствующее сообщение об этом и сравнивать значения только тех, которые имеют смысл.

2.3.1 Математическое описание задачи

Из курса тригонометрии известно, что область определения функции sin(x) иcos(x) являются все действительные числа (рисунок 2.3 и 2.4).

Рисунок 2.3

Рисунок 2.4

Если рассматривать натуральный логарифм как вещественную функцию действительной переменной, то она является обратной функцией к экспоненциальной функции, и область ее определения являются все числа больше нуля (рисунок 2.5). Таким образом функцияln(x) не будет иметь смысла, еслиx<0.

Рисунок 2.5

Чтобы напечатать в порядке возрастания 3 числа, необходимо их сравнить. Пусть a,b,c– числа для сравнения. Комбинаций чисел, стоящих в порядке возрастания может быть 6:

  1. a,b,c

  2. b, a, c

  3. b, c, a

  4. c, b, a

  5. a, c, b

  6. c, a, b

Выведем алгоритм расстановки 3 чисел по возрастанию.

Если число a>bи если числоa>cто числоaбудет максимальным из трех. Далее сравним числаbиc. Если числоb>c, то число с является минимальным и вывод будет – с,b,a; если жеb<c, то вывод будет –b, с,a.

Если число a>b, но числоa<c, то вывод будет –b,a,c.

Если число a<bи если числоb>cто числоbбудет максимальным из трех.Cравним числаaи с. Приa>cвывод будет –c,a,b; иначе вывод будет –a,c,b.

Если число a<b, но числоb<cвывод будет –a,b,c.

Пусть a=sin(x); b=cos(x); c=ln(x). Еслиx<0 то функцияln(x) не будет иметь смысл, и будут сравниваться только два числаaиb, в противном случае будет работать алгоритм сравнения трех чисел, представленный выше.

2.3.2 Словесно формульное описание задачи

1. Считать ввод числа с клавиатуры числа в переменную x, перейти к п. 2.

2. Если x<0, вывести на экран сообщение “ Функцияln(x) при данномxне имеет смысла ”, перейти к пункту 3, в противном случае перейти к пункту 5.

3. Вычислить значения a=sin(x);b=cos(x), перейти к пункту 4.

4. Если a>b, вывести на экран “b;a” в противном случае вывести на экран “a;b” и перейти к пункту 5.

5. Вычислить значения a=sin(x);b=cos(x),c=ln(x), перейти к пункту 6.

6. Если a>bперейти к пункту 7, в противном случае перейти к пункту 9.

7. Если a>с перейти к пункту 8, в противном случае вывести на экран “b;a;c”.

8. Если b>с вывести на экран “ с;b;a”, в противном случае вывести на экран “b;c;a”, перейти к пункту 11.

9. Если b>с перейти к пункту 10, в противном случае вывести на экран “a;b;c”.

10. Если a>с вывести на экран “ с;a;b”, в противном случае вывести на экран “a;c;b”, перейти к пункту 11.

11. Конец программы.

2.3.3 Блок схема алгоритма

2.3.4 Реализация алгоритма на языке Pascal

Program Zadacha5;

uses crt;

var x,a,b,c:real;

Begin

write('Введите число x= ');

readln(x);

if (x>0) then begin

a:=sin(pi/180*x); b:=cos(pi/180*x); c:=ln(x);

if (a>b) then

begin

if (a>c) then begin

if (b>c) then writeln('ln(x)= ',c:5:3,' cos(x)= ',b:5:3,' sin(x)= ',a:5:3)

else writeln('cos(x)= ',b:5:3,' ln(x)= ',c:5:3,' sin(x)= ',a:5:3)

end

else writeln ('cos(x)= ',b:5:3,' sin(x)= ',a:5:3,' ln(x)= ',c:5:3)

end

else

if (b>c) then

begin

if (a>c) then writeln('ln(x)= ',c:5:3,' sin(x)= ',a:5:3,' cos(x)= ',b:5:3)

else writeln('sin(x) = ',a:5:3,' ln(x)= ',c:5:3,' cos(x)= ',b:5:3)

end

else writeln('sin(x)= ',a:5:3,' cos(x)= ',b:5:3,' ln(x)= ',c:5:3);

end

else begin

writeln('Функция ln(x) не имеет смысла');

a:=sin(pi/180*x); b:=cos(pi/180*x);

if (a>b) then writeln('cos(x)= ',b:5:3,' sin(x)= ',a:5:3)

else writeln('sin(x)= ',a:5:3,' cos(x)= ',b:5:3);

end;

readln;

End.