Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
С помощью алгоритмов линейной структуры могут быть решены только самые простые задачи. Рассмотрим несколько задач.
Задача 6.1. Составить программу для вычисления периметра и площади прямоугольного треугольника по длинам двух его катетов.
Для решения задачи воспользуемся формулами вычисления гипотенузы прямоугольного треугольника по теореме Пифагора и формулами вычисления периметра и площади прямоугольного треугольника, известными из математики. Схема алгоритма задачи 6.1. представлена на рис. 6.2.
Решение задачи 6.1. на языке Turbo Pascal:
Program Treugol;
Var
A, B {катеты }
С, {гипотенуза }
Р, {периметр }
S: Real; {площадь }
BEGIN
Write('Введите катеты: '); ReadLn(A, B);
C:= sqrt (A*A + B*B);
P:= A + B + C;
S:= A * B /2;
WriteLn('Периметр = ', Р: 5: 2);
{Здесь 5 - общее количество позиций, занимаемых переменной Р при выводе, а 2 - количество позиций в дробной части значения Р}
WriteLn('Площадь = ', S: 5: 2);
ReadLn
END.
Рис.6.2. Схема алгоритма задачи 6.1.
Пояснения к программе:
1). Программа на языке Pascal начинается со служебного слова Program, за которым следует имя программы - Treugol;
2). После служебного слова Var следует определение переменных, необходимых для хранения исходных данных, результатов и промежуточных величин. В программе объявлены пять вещественных переменных: тип Real.
3). Операторы программы заключены в операторные скобки:
BEGIN …. END.
Последний символ в программе точка.
4). В фигурных скобках даны комментарии к программе, которые поясняют программу и не влияют на ее выполнение.
5). Поясним операторы программы:
Write('Введите катеты: '); {Вывод приглашения}
ReadLn(A, B); {Ввод данных}
{Операторы присваивания результатов вычисления выражений:}
C:= sqrt (A*A + B*B);
P:= A + B + C;
S:= A * B /2;
{Вывод результатов:}
WriteLn('Периметр = ', Р: 5: 2); WriteLn('Площадь = ', S: 5: 2);
{Задержка - ожидание нажатия клавиши, позволяет просмотреть результаты работы программы:}
ReadLn
6). Все операторы завершаются символом ‘;’ (точка с запятой). Исключение: точку с запятой можно не ставить перед оператором End.
7) Для вычисления квадратного корня используется стандартная функция sqrt.
Решение задачи 6.1. на языке QBasic:
CLS ‘ очистка экрана
INPUT “Введите катеты: “, A, B
C = sqr (A*A + B*B)
P = A + B + C
S = A * B /2
PRINT “Периметр = “;P
PRINT “Площадь = “; S
END ‘ завершение программы
После символа апостроф (‘) даны комментарии к программе
Задача 6.2. Составить программу для нахождения суммы цифр заданного целого трехзначного числа.
Решение задачи 6.2. на языке Turbo Pascal:
Program Summa_cifr;
Var
N { заданное число }
a, { первая цифра числа }
b, { вторая цифра числа }
c, { третья цифра числа }
S: Integer; {сумма цифр }
BEGIN
Write('Введите целое трехзначное число: '); ReadLn(N);
N:= abs(N);
a:= N div 100;
b:= N div 10 mod 10;
c:= N mod 10;
S:= a + b + c;
WriteLn('Задано число=', N);
WriteLn('Сумма цифр = ', S);
ReadLn
END.
Пояснения к программе:
1) Для вычисления модуля числа (абсолютной величины числа) используется стандартная функция abs.
2) В языке Pascal, в отличие от алгоритмического языка и некоторых других языков, целочисленное деление реализовано как операции, а не как стандартные функции. В программе используются операции целочисленного деления: div – частное целочисленного деления, и mod – остаток целочисленного деления. Например, 17 div 5 равно 3, а 17 mod 5 равно 2 (эти значения можно получить при делении столбиком).
Выполним тестирование программы вручную с помощью трассировочной таблицы.
Тест. Вход: N =-347
Выход:
Задано число = -347
Сумма цифр = 14
Трассировочная таблица:
Номер шага= | ||||||
N= | -347 | |||||
a= | 347 div 100=3 | |||||
b= | 347 div 10 mod 10= 34 mod 10= 4; | |||||
c= | 347 mod 10=7 | |||||
S= |
Ответ S=14.
Решение задачи 6.2. на языке QBasic:
CLS
INPUT "Введите трехзначное число: ", N
N = ABS(N)
a = FIX(N / 100)
b = FIX(N / 10) MOD 10
c = N MOD 10
S = a + b + c
PRINT: PRINT "О т в е т: сумма цифр равна "; S
END
Пояснения к программе:
1) Для вычисления модуля числа (абсолютной величины числа) используется стандартная функция ABS.
2) Стандартная функция FIX используется для получения целой части аргумента функции, а операция MOD – остатка целочисленного деления.
Дата публикования: 2015-01-14; Прочитано: 910 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!