Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие_Алгоритмизация

.pdf
Скачиваний:
55
Добавлен:
23.02.2015
Размер:
1.26 Mб
Скачать

Операторы ввода-вывода

Для ввода информации применяются операторы read(х1, x2 , … , xn) и readln(х1, x2 , … , xn). При использовании оператора readln данные для следующего оператора readln будут считываться с начала новой строки.

Для вывода информации на экран служат операторы write(х1, x2 , … , xn)

и writeln(х1, x2 , … , xn). Если используется оператор writeln, то после вывода информации курсор перемещается на новую строку.

В операторах write и writeln можно указать константы целочисленного типа, определяющие ширину поля вывода и количество позиций, необходимых для дробной части числа. Она указывается через двоеточие после имени выводимой переменной, например:

writeln('а=', а:6:2).

ПРИМЕР 10. Напишите программу вычисления площади

треугольника, если известна длина основания и высота (рис. 24).

Начало

Ввод а, h

S=0,5 a h

Вывод S

Конец

Рис. 24. Блок-схема к примеру 10

Листинг программы: program treugolnik ;

var a, h, s: real ;

40

begin

writeln ('Введите длину основания треугольника в сантиметрах') ; readln (a) ;

writeln ('Введите высоту треугольника в сантиметрах') ; readln (h) ;

s:=0.5*a*h ;

writeln ('Площадь треугольника равна', s:8:2, 'см. кв.') ;

end.

Составной оператор

Группа операторов, заключенная между служебными словами begin и end, называется составным оператором.

begin

<оператор 1>; <оператор 2>;

………………..; <оператор n>

end;

Среди операторов, входящих в состав составного оператора, могут быть и другие составные операторы:

begin

………………..

begin

…………..

begin

………..

………...

end;

…………..

end;

…………………….

end;

41

Задания для самостоятельной работы

1.Разработать алгоритм для вычисления объема шара (V 43 R3 ).

2.Разработать алгоритм для вычисления объема конуса (V 13 R 2 H ).

3. Разработать алгоритм для вычисления объема усеченного конуса

V13 H (R2 Rr r 2 ) .

4.Разработать линейный алгоритм пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах.

При составлении программы воспользоваться операциями div (вычисляет целое от деления) и mod (вычисляет остаток от деления).

5.

Разработать алгоритм решения линейного уравнения вида kx b 0 .

6.

Разработать

алгоритм

для

вычисления

значения

функции

y(x) | arcsin( x 5) | .

 

 

 

 

 

7.

Разработать

алгоритм

для

вычисления

значения

функции

y(x) | tg x x2 | .

 

 

 

 

 

8.

Разработать

алгоритм

для

вычисления

значения

функции

y(x) | tg x x2 | .

 

 

 

 

 

9.

Разработать алгоритм для вычисления значения функции y(x) e|cos x| .

10.

Разработать

алгоритм

для

вычисления

значения

функции

y(x) | ex arctg x | .

42

Структурные операторы языка Паскаль

Условный оператор

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.

Структура условного оператора имеет вид

if <условие> then <оператор 1> else <оператор 2>, где if, then, else –

зарезервированные слова (если, то, иначе).

В Турбо Паскале else соответствует ближайшему оператору if.

При неполном ветвлении условный оператор принимает вид if <условие> then <оператор>;

ПРИМЕР 11. Напишите программу, которая сравнивает два целых

числа, введенные с клавиатуры. Программа должна указать, какое число больше, или, если числа равны, вывести соответствующее сообщение.

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод

 

 

 

 

a, b

 

 

 

Да

a = b

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Да

a < b

Нет

 

Вывод

 

 

 

 

 

 

 

 

 

a равно b

 

 

 

 

 

 

Вывод

 

 

Вывод

 

a < b

 

 

a > b

Конец

Рис. 25. Блок-схема к примеру 11

43

Листинг программы: program sravnenie ; var a, b: integer ;

begin

writeln ('Введите два целых числа') ; readln (a, b) ;

if a = b

then writeln ('Числа равны')

else if a < b then writeln (а, 'меньше' , b) else writeln (а, 'больше' , b);

readln;

end.

Оператор выбора

Оператор выбора позволяет в зависимости от значений какой-либо переменной выполнить те или иные операторы.

Структура оператора выбора имеет следующий вид: case <управляющая переменная> of

<список значений 1>:<оператор 1>;

………

<список значений n>:<оператор n>

else

<оператор k> end.

В качестве управляющей переменной можно использовать переменную целого или символьного типа.

ПРИМЕР 12. Напишите программу, которая запрашивает у

пользователя номер месяца и выводит соответствующее название времени

года.

Листинг программы:

44

program vremena_goda ; var x: integer ;

uses crt ;

begin

clrscr;

writeln ('Введите номер месяца') ; readln (х) ;

case х of

1, 2, 12: writeln ('Зима') ; 3..5: writeln ('Весна') ; 6..8: writeln ('Лето') ; 9..11: writeln ('Осень')

else writeln ('Ошибка ввода данных, число должно быть от 1 до 12'); end;

readln;

end.

Оператор цикла с параметром

Оператор цикла с параметром имеет следующую структуру:

for i:=<начальное значение> to <конечное значение> do <оператор>;

В данном случае шаг изменения параметра цикла i постоянен и равен +1.

Существует еще одна форма записи цикла с параметром, при которой значение шага равно -1:

for i:=< конечное значение> downto < начальное значение> do

<оператор>;

ПРИМЕР 13. Напишите программу, которая вычисляет сумму

первых n членов ряда 1 + 1/2 + 1/3 + 1/4 +…

Листинг программы:

program summa ;

var

45

n, i: integer ; s: real ;

uses crt ;

begin

clrscr;

writeln ('Введите количество членов ряда') ; readln (n) ;

s:=0;

for i:=1 to n do

s:=s+1/i;

writeln ('Сумма первых ', n, 'членов ряда равна ', s:6:2) ;

readln;

end.

Начало

Ввод

N

S = 0

i= 1, N, 1

S = S + 1/i

Вывод S

Конец

Рис. 26. Блок-схема к примеру 13

46

Оператор цикла с предусловием

Оператор цикла с предусловием имеет следующую структуру: while <условие> do <оператор>.

Оператор while … do переводится как «пока … делать».

В данном операторе условие проверяется до выполнения оператора.

ПРИМЕР 14. Напишите программу, которая вычисляет наибольший общий делитель двух целых чисел.

Листинг программы: program delitel ;

var

n, m: integer ; uses crt ;

begin

clrscr;

writeln ('Введите два числа') ; readln (n, m) ;

while m < > n do

begin

if m > n then m:=m-n else n:=n-m;

end;

writeln ('Наибольший общий делитель равен ', m) ;

readln;

end.

47

Начало

Ввод m, n

m n

m > n

n = n - m

 

 

 

 

 

 

m = m - n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод m

Конец

Рис. 27. Блок-схема к примеру 14

Оператор цикла с постусловием

Цикл с постусловием имеет следующий вид: repeat <тело цикла> until <условие>

Repeat и until – это зарезервированные слова, которые переводятся как

«повторять», «пока не …». Цикл с постусловием всегда выполняется хотя бы один раз. Рассмотрим оператор repeat … until на примере.

ПРИМЕР 15. Напишите программу, которая вычисляет значение y,

соответствующее каждому значению х (хn x xk), по формуле

48

x 2 5 x, x 0, y

ln(x), x 0.

program sistema ;

var

x, xn, xk, dx, y: real ; uses crt ;

begin

clrscr;

writeln ('Введите начальное, конечное значение х и шаг') ; readln (xn, xk,dx) ;

x:=xn;

repeat

if x > 0 then y:=ln(x) else y:=sqr(x)+5*x;

writeln ('x=', x:6:2, 'y=',y) ;

x:=x+dx; {Наращивание переменной х}

until x > xk; {Пока условие ложно, выполнять тело цикла}

readln;

end.

49