
- •Глава 5. Программирование линейных вычислительных процессов
- •5.1. Оператор присваивания
- •5.2. Простейший ввод и вывод данных
- •5.2.1. Ввод числовых данных с клавиатуры
- •5.2.2. Вывод данных на экран монитора
- •5.3. Составление программы
- •5.4. Вопросы для самоконтроля
- •If l then оператор1 else оператор2 ,
- •6.1.2. Краткая форма условного оператора if
- •6.2. Оператор перехода goto
- •Пример 6.7
- •6.3. Оператор варианта case
- •Пример 6.10
- •Пример 6.12
- •6.4. Вопросы для самоконтроля
5.3. Составление программы
Рассмотрим пример программирования линейных вычислительных процессов.
Пример 5.9
Дан шар радиуса R. Вычислить площадь боковой поверхности S и объём шарового сегмента высотой h.
Схема алгоритма
Ввод исходных данных
Вычисление радиуса основания сегмента
Радиус основания
сегмента
Вычисление боковой поверхности сегмента
Вычисление объема сегмента
Вывод результатов счета
Комментарии к каждому символу алгоритма не являются обязательными и используются по усмотрению программиста.
Разработку программы начнем с заголовка, присвоив ей какое-нибудь имя, например, segment:
program segment;
Объектами,
с которыми будет работать программа,
являются: константа ,
переменные
R,
h
(исходные данные) и
переменные
S
и V
(результаты счёта). Величина
является стандартной системной константой
с именем pi,
а переменные R,
h, S
и V
необходимо описать в разделе описаний
как вещественные:
var
R, a, h, S, V : real;
Таким образом, раздел описаний нашей программы сформирован.
Раздел описания операторов начнем со служебного слова begin. В этом разделе прежде всего необходимо предусмотреть ввод исходных данных, используя процедуру ввода.
begin
readln(r,h);
Далее, согласно алгоритма задачи, должны быть вычислены величины a, S и V, для чего в программе необходимо использовать три оператора присваивания:
a:= sqrt (h * (2 * r - h));
s:= pi * (sqr ( a ) + sqr ( h ));
v:= pi * (3 * sqr ( a )+sqr ( h )) / 6;
Завершить раздел операторов следует процедурой вывода, снабдив при желании выводимые данные поясняющим текстом
writeln ('результаты счета:',s:10:2,v:10:2)
В целом, программа, дополненная комментариями, будет выглядеть так:
program segment;
var
r, a, h, s, v : real;
begin
write ('введите радиус шара ');
write ('и высоту сегмента ');
readln (r,h);
{ радиус основания сегмента }
a := sqrt (h * ( 2 * r – h ));
{ площадь боковой поверхности }
s := pi * (sqr ( a ) + sqr ( h ));
{ объём сегмента }
v := 1 / 6 * pi * h * (3 * sqr ( a ) + sqr ( h ));
write (' S =', s:10:2, ' V =', v:10:2)
end.
Комментарии в программу можно не включать, если программист не считает их необходимыми.
5.4. Вопросы для самоконтроля
Приведите общую структуру программы, написанной на языке TurboPascal?
Как строится заголовок программы?
Какие объекты должны быть описаны в разделе описаний программы?
Что представляет собой раздел операторов программы и как он оформляется?
Что такое комментарий, для чего он служит и как оформляется?
Что представляет собой оператор; какие функции выполняют операторы в программе?
Какова структура оператора присваивания, как он выполняется, в чем его отличие от математического равенства?
Как осуществляются операции ввода и вывода данных?
Что представляет собой линейный вычислительный процесс, каковы его особенности?
Глава 6. Программирование ветвящихся
вычислительных процессов
К ветвящимся относятся вычислительные процессы, алгоритм которых содержит хотя бы одну типовую ветвящуюся структуру.
Для организации ветвлений в программах используют операторы передачи управления (операторы перехода), которые делятся на условные и безусловные.
6.1. Условный оператор if
Допускается запись условного оператора в двух формах - полной и краткой.
6.1.1. Полная форма условного оператора if
Предназначена для программирования разветвлений и имеет вид: