Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Алгоритмы линейной и разветвляющейся структуры



С помощью алгоритмов линейной структуры могут быть решены только самые простые задачи. Рассмотрим несколько задач.

Задача 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; Прочитано: 907 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...