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

Информатика

..pdf
Скачиваний:
9
Добавлен:
15.11.2022
Размер:
1.24 Mб
Скачать

Рис. 2. Блок-схема алгоритма, реализуемого оператором case

Если по какой-либо ветви требуется записать не один, а несколько операторов, они заключаются в блок с помощью ключевых слов begin и end.

Рассмотрим примеры:

Пример 5. case i of

1 : x:=y*10;

2 : y:=x/3;

3 : x:=x+y;

4 : y:=y-x;

end;

Подразумевается, что в данном примере переменная i типа

integer.

Если переменная i принимает значение 1, то выполняется оператор

x:=y*10;

Если переменная i принимает значение 2, то выполняется оператор

y:=x/3;

91

Если переменная i принимает значение 3, то выполняется оператор

x:=x+y;

Если переменная i принимает значение 4, то выполняется оператор

y:=y-x;

Если i принимает какое-либо другое значение (например, 5), т.е. совпадения не произошло, то управление передается оператору, следующему за case, так как ключевое слово else отсутствует.

Пример 6. case i+j of

1 : x:=y+3;

2,3 : y:=x/2; 4..7: x:=x-y; 8,9: begin

y:=sqr(2*x);

x:=sqrt(y/5);

end; else x:=y;

end;

В данном примере выражение i+j представляет собой сумму переменных i и j типа integer.

Если выражение i+j принимает значение 1, то выполняется оператор

x:=y+3;

Если выражение принимает значение 2 либо 3, то выполняется оператор

y:=x/2;

Если выражение принимает значение из диапазона 47 (например, значение 6), то выполняется оператор

x:=x-y;

Если выражение принимает значение 8 или 9, то выполняется составной оператор

92

begin y:=sqr(2*x); x:=sqrt(y/5);

end;

Если выражение принимает какое-либо другое значение (например, 11), т.е. совпадения не произошло, то выполняется оператор, расположенный после слова else:

x:=y;

2.5. Стиль программирования17

Работая над программой, программист, особенно начинающий, должен хорошо представлять, что программа, которую он разрабатывает, предназначена, с одной стороны, для пользователя, с другой – для самого программиста. Текст программы нужен прежде всего самому программисту, а также другим людям, с которыми он совместно работает над проектом. Исходя из этого, для того чтобы работа была эффективной, программа должна быть легко читаемой, ее структура должна соответствовать структуре и алгоритму решаемой задачи. Как этого добиться? Надо следовать правилам хорошего стиля программирования. Стиль программирования – это набор правил, которым следует программист (осознано или потому, что «так делают другие») в процессе своей работы. Очевидно, что хороший программист должен следовать правилам хорошего стиля.

Хороший стиль программирования предполагает:

1)использование комментариев (особенно, если текст программы достаточно большой);

2)использование несущих смысловую нагрузку имен переменных;

3)использование отступов;

4)использование пустых строк (особенно, если текст программы достаточно большой).

17 Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-

Петербург, 2003. – 608 с.

93

Следование правилам хорошего стиля программирования значительно уменьшает вероятность появления ошибок на этапе набора текста, делает программу легко читаемой, что, в свою очередь, облегчает процессы отладки и внесения изменений.

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

Сводить понятие стиля программирования только к правилам записи текста программы было бы неверно. Стиль, которого придерживается программист, проявляется и во время работы программы. Хорошая программа должна быть прежде всего надежной и «дружественной» по отношению к пользователю.

Надежность подразумевает, что программа, не полагаясь на «разумное» поведение пользователя, контролирует исходные данные, проверяет результат выполнения операций, которые по какой-либо причине могут быть не выполнены, например деление на ноль.

Дружественность предполагает хорошо спроектированный диалог с пользователем (например, подсказки на русском языке о том, какие именно данные нужно ввести пользователю), разумное и предсказуемое, с точки зрения пользователя, поведение программы.

Приводимые в методических пособиях программы могут служить примером следования правилам хорошего стиля программирования.

3. Задания к работе

Задания № 1–3 выполняются на компьютере.

Задание № 1. Написать на языке Турбо-Паскаль программу для вычисления значения функции, используя условный оператор if.

 

 

x2 3x + 9, если x 3;

 

 

1

 

1) F (x) =

 

в противномслучае;

 

 

 

 

 

3

+ 6

x

 

 

94

 

 

 

 

x2 + 3x + 9, если x 3;

2) F (x) =

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

6

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9, если x ≤ −3;

3) F (x) =

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

2

 

+ 1

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0, если x 1;

4) F (x) =

 

 

1

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

+

6

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x + 9, если x 7;

5) F (x) =

 

 

1

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

7

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x 9, если x 7;

6) F (x) =

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

4

 

x

 

 

 

 

 

 

 

 

7) F (x) =

 

 

 

 

 

x2 , если 0 x 3;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 + 4x + 5, если x 2;

8) F (x) =

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

x2 + 4x + 5

9) F (x) =

 

 

 

 

 

 

 

 

 

x2 x, если 0 x 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 sin πx2 в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 + x 9, если x 8;

10) F (x) =

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

6

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

4x2 + 2x 19, если x ≥ −3,5;

11) F (x) =

 

 

 

 

 

 

2x

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4x + 1

 

 

 

 

 

 

 

95

 

 

 

 

x2 + 3x + 9, если x 3;

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

12) F (x) =

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

+

1

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3x 9, если x > 3;

 

 

 

 

x3

 

 

 

 

 

 

 

 

 

 

13) F (x) =

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

+

8

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3 + 9, если x 13;

14)

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

F (x) =

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

x + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

45x2 + 5, если x > 3,6;

 

 

 

 

 

5x

 

 

 

 

 

 

 

 

15) F (x) =

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

+

1

 

10x

 

 

 

 

 

 

 

 

 

 

 

 

x4 + 9, если x < −3,2;

 

 

54x4

 

 

 

 

 

 

 

16) F (x) =

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5x

2

 

+

7

 

 

 

 

 

 

 

 

 

 

 

 

1,2x2 3x 9, если x > 3;

17)

 

 

12,1

 

 

 

 

 

 

 

F (x) =

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2x

2

 

+

1

 

 

 

 

 

 

 

 

 

 

 

 

x2 + 3x + 9, если x 3;

18)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F (x) = sin x

в противномслучае;

 

 

 

 

9

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos 2x + 9, если x > −4;

19)

 

 

 

cos x

 

 

 

 

 

F (x) =

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln x + 9, если x > 0;

20)

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

F (x) =

 

 

 

 

 

 

 

 

 

 

 

 

в противномслучае;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

 

7

 

 

 

 

 

 

 

 

96

Пример выполнения задания № 1:

Используя условный оператор if, необходимо написать на языке Турбо-Паскаль программу для вычисления значения функции

9 x, если x > −1,1;

F (x) = sin3x в противномслучае.

x4 + 1

Ниже представлен пример выполнения данного задания в системе Турбо-Паскаль:

Рассмотрим особенности данной программы.

Переменные, соответствующие аргументу и значению функции (x и f соответственно), объявлены в разделе описания переменных var.

Исполняемые операторы программы располагаются между служебными словами begin и end.

C помощью процедур write выводится подсказка пользователю о том, что необходимо ввести значения аргумента x.

C помощью процедуры readln пользователю предлагается ввести значения аргумента x.

Далее выполняется вычисление значения функции с помощью условного оператора if. Если значение аргумента x больше, чем –1,1, то переменной f, соответствующей значению функции, присваивается значение выражения 9 x . Иначе пе-

ременной f присваивается значение выражения sin3x4 + x1 .

97

Для вывода значения функции используется стандартная процедура writeln.

С помощью стандартной процедуры readln пользователю предлагается завершить выполнение программы, нажав клавишу

Enter.

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

Пусть пользователь ввел значение аргумента x = 5. Поскольку логическое выражение 5>-1,1 принимает значение true, то выполняется оператор присваивания, расположенный после ключевого слова then, т.е. значением функции становится значение выражения 9 x :

Пусть пользователь ввел значение аргумента x = –1,5. Поскольку логическое выражение –1,5>-1,1 принимает значение false, то выполняется оператор присваивания, расположенный после ключевого слова else, т.е. значением функции

становится значение выражения sin3x4 + x1 :

Задание № 2. Написать на языке Турбо-Паскаль программу, используя условный оператор if.

1.Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень – отрицательные.

2.Даны две точки A(x1,y1) и B(x2,y2). Определить, какая из них находится ближе к началу координат.

98

3.Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным.

4.Даны действительные числа x и y, не равные друг другу. Меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением.

5.Подсчитать количество отрицательных чисел среди чисел m, n, p.

6.Определить, делителем каких из чисел m, n, p является число a.

7.Написать программу нахождения суммы большего и меньшего из трех чисел.

8.Дан круг радиусом R. Определить, поместится ли правильный треугольник со стороной a в этом круге.

9.Даны три положительных числа a, b, c. Проверить, будут ли они сторонами треугольника. Если да, то вычислить площадь этого треугольника.

10.Подсчитать количество положительных чисел среди чисел m, n, p.

11.Определить правильность даты, введенной с клавиатуры (число – от 1 до 31, месяц – от 1 до 12). Если введены некорректные данные, то сообщить об этом.

12.Составить программу, определяющую, пройдет ли гра-

фик функции y = ax2 + bx + c через заданную точку с координа-

тами (m, n).

Пример выполнения задания № 2:

Услуги телефонной связи оплачиваются по следующему правилу: за разговоры до A мин/мес. оплачивается B руб., а разговоры сверх установленной нормы оплачиваются из расчета C руб./мин. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.

Обозначим плату за пользование телефоном за месяц как S, а время(мин), фактически потраченноенаразговорызамесяц, какT.

99

Вслучае, если за месяц на разговоры по телефону было потрачено меньше A мин, плата за пользование телефоном вычисляется по формуле

S = B .

Вслучае, если за месяц на разговоры по телефону было потрачено больше A мин, плата за пользование телефоном вычисляется по формуле:

S = B + (T A)C .

Таким образом, в данном случае помимо B руб., потраченных за A мин разговоров, необходимо оплатить сумму за разговоры сверх установленной нормы A, равную разности фактически потраченного времени T и времени A, умноженную на стоимость минуты сверх нормы C.

Ниже приведен пример выполнения данного задания в системе Турбо-Паскаль:

Рассмотрим особенности данной программы.

Все переменные объявлены в разделе описания переменных var.

Исполняемые операторы программы располагаются между служебными словами begin и end.

100