- •Содержание
- •1 Программирование линейных алгоритмов 4
- •2 Программирование ветвящихся алгоритмов 10
- •3 Программирование циклических алгоритмов 22
- •4 Работа с массивами 34
- •1 Программирование линейных алгоритмов
- •2.1.2 Словесно формульное описание задачи
- •2.1.3 Блок схема алгоритма
- •2.1.4 Реализация алгоритма на языке Pascal
- •2.1.5 Тестирование алгоритма задачи
- •2.2 Задача 4 (2.9)
- •2.2.1 Математическое описание задачи
- •2.2.2 Словесно формульное описание задачи
- •2.2.3 Блок схема алгоритма
- •2.3.2 Словесно формульное описание задачи
- •2.3.3 Блок схема алгоритма
- •2.3.4 Реализация алгоритма на языке Pascal
- •2.3.5Тестирование алгоритма задачи
- •2.4 Выводы по ветвящимся алгоритмам
- •3 Программирование циклических алгоритмов
- •3.2.3 Блок схема алгоритма
- •3.4.3 Блок схема алгоритма
- •3.4.4 Реализация алгоритма на языке Pascal
- •3.4.5 Тестирование алгоритма задачи
- •2.4 Выводы по циклическим алгоритмам
- •4 Работа с массивами
- •4.1 Задача 10 (4.2)
- •4.1.1 Математическое описание задачи
- •4.1.2 Словесно формульное описание задачи
- •4.1.3 Блок схемаалгоритма
- •4.3.3 Блок схемаалгоритма
- •4.3.4Реализация алгоритманаязыке Pascal
- •4.3.5Тестирование алгоритма задачи
- •4.4 Выводы по работе с массивами
- •Список используемой литературы
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:
a,b,c
b, a, c
b, c, a
c, b, a
a, c, b
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.