Программирование в среде Visual Basic

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Министерство образования и науки Российской Федерации Южно-Уральский государственный университет Кафедра систем управления

681. 3.06(07) Д64

В.И. Долбенков, А.А. Долбенкова

ПРОГРАММИРОВАНИЕ В СРЕДЕ VISUAL BASIC Учебное пособие для лабораторных работ

Челябинск Издательство ЮУрГУ 2004

УДК 681.3.066(076.5) Долбенков В.И., Долбенкова А.А. Программирование в среде Visual Basic: Учебное пособие для лабораторных работ. – Челябинск: Изд. ЮУрГУ, 2004.–49 с. Учебное пособие содержит описание девяти лабораторных работ, в которых последовательно рассматриваются основные элементы среды Visual Basic. Пособие предназначено в первую очередь для студентов заочной формы обучения специальностей 210200, 210500, а также может быть полезно студентам других специальностей, изучающим языки программирования. Ил. 8, табл. 8, список лит. – 6 назв.

Одобрено учебно-методической комиссией приборостроительного факультета. Рецензенты: Садов В.Б., Богатенков С.А.

С

2

Издательство ЮУрГУ, 2004.

ВВЕДЕНИЕ Microsoft Visual Basic 6.0 – это мощная система программирования, позволяющая быстро и эффективно создавать приложения для Microsoft Windows и Microsoft Windows NT. Для того чтобы квалифицированно писать программы на Visual Basic нужно знать разнообразные возможности Visual Basic. Среди них: доскональное знание и способность на практике применять стандартные средства управления панели инструментов; умение правильно устанавливать и манипулировать свойствами , функциями и событиями объекта; способность писать ясный и четкий программный код с возможностью повторного использования некоторых сегментов программы в дальнейшем; умение создавать наглядный и эффективный интерфейс пользователя. Особенностью Visual Basic является использование специфического траслятора, сочетающего в себе свойства как интерпретатора, так и компилятора. Visual Basic – не просто интерпретатор, так как это означало бы , что приложения выполняются только в среде Visual Basic. Visual Basic предоставляет возможность создавать и исполняемые EXE-файлы, поэтому его можно отнести и к компиляторам. Visual Basic нельзя назвать чистым компилятором, так как в отличие, например, от Visual C++, Visual Basic не создает исполняемый файл сразу же при запуске из среды разработки. Для создания такого файла необходимо сделать это явно (команда File\Make ***.EXE). Начиная с пятой версии, Visual Basic располагает так называемым "Native Compiler", т.е. компилятором, который может создавать машинный код. Таким образом, Visual Basic объединяет в себе возможности как как интерпретатора, так и компилятора. И это имеет больше преимуществ, чем недостатков. Учебное пособие, ставящее своей целью дать студентам первоначальные навыки в освоении приемов программирования и разработки проектов в среде Visual Basic, содержит девять лабораторных работ, первые из которых посвящены простым задачам разработки форм и использования стандартных операторов. В последних работах предлагается провести разработку проектов, имеющих в своем составе общие процедуры и функции. Описание каждой лабораторной работы состоит из цели работы, содержания проекта, порядка выполнения работы, содержания отчета и контрольных вопросов. В пособие включен раздел, содержащий задачи для самостоятельной работы, а также приложения и список рекомендуемой литературы. Выполнение лабораторных работ предполагает наличие у студентов достаточных теоретических знаний по дисциплине, а также соответствующих навыков работы на персональном компьютере в операционной среде Windows.

3

Лабораторная работа №1 НАЧАЛЬНЫЙ ЭТАП РАЗРАБОТКИ ПРОЕКТА В VISUAL BASIC 6.0 Цель работы: • освоение основных приемов создания объектов формы; • назначение свойств объектов; • сохранения файлов формы и проекта; • подготовка отчета о лабораторной работе. Содержание проекта Разработанный в лабораторной работе проект формы должен содержать: • командную кнопку с именем «Пуск»; • метку1 (Label1), в которой содержится «инструкция» по работе программы в виде текста «Для начала работы нажмите на кнопку «Пуск»; • метку2 (Label2), в которую следует ввести текст, указанный на рис.1.1; • текст метки, выведенный в форму с помощью оператора вывода Print; Порядок выполнения работы 1. Открыть программу Visual Basic 6.0 (VB6.0). В случае, если пиктограмма VB6.0 находится на рабочем столе, достаточно дважды щелкнуть ее левой клавишей мышки. В противном случае, в меню Windows Пуск нужно открыть подменю Программы, в нем выбрать группу программ Micrisoft Visual Basic 6.0, а в ней – пункт Micrisoft Visual Basic 6.0. В открывшемся диалоговом окне Новый проект выбрать тип проекта Standart EXE, дважды щелкнув по пиктограмме левой клавишей мышки. 2. Для размещения на экранной форме двух объектов: Командной кнопки и Меток необходимо отметить их на Панели инструментов, после чего на экране появляется перекрестие, а затем, удерживая нажатой левую клавишу мышки, нарисовать прямоугольный контур этих элементов на экранной форме. Размеры и положение этих прямоугольников можно подкорректировать. Делается это следующим образом: • «ухватив» какой-либо из восьми маркеров, находящихся на границе прямоугольников, можно изменить размеры объекта; • установив курсор внутри прямоугольника, с помощью мыши можно переместить объект в пределах экранной формы, не меняя его размеров. Аналогичным образом можно изменять размеры и самой экранной формы.

4

3. Для назначения имени командной кнопки и надписи на ее изображении в форме необходимо выделить (щелкнув по ней) командную кнопку, а затем таким же образом открыть окно свойств командной кнопки, в котором в свойстве Имени (Name) стереть старую запись Command1 и ввести новую – Пуск. Аналогично следует определить и свойство Надпись (Caption).

Рис.1.1. Изображение формы с результатом работы программы

4. Свойство Надпись в объектах Метка1 и Метка2 определяются аналогичным образом в соответствии с рис.1.1. Текст в метках можно выравнивать. В данном случае проведено выравнивание по центру. Для этого в окне свойства Выравнивание (Alignment) следует щелкнуть по кнопке открытия окна и выбрать параметр Center (по центру). Выравнивание надписи для командной кнопки производится аналогичным образом. 5. Аналогичным образом можно изменить цвет фона метки. Для этого используется свойство BackColor. Это свойство определено как ToolTip. 6. Шрифт текста метки выбирается с использованием свойства Шрифт (Font). 7. Определить свойства формы Name и Caption в виде «Лабораторная работа №1». Следует обратить внимание на то, что в свойстве Name слова должны быть напечатаны без пробелов. 8. Щелкнув дважды по свободному месту формы открыть окно программного кода и ввести текст программы в соответствии с рис.1.2. Здесь нужно быть внимательным – программу следует вводить для объекта Командная кнопка Пуск.

5

Private Sub Пуск_Click() Print "Лабораторная работа №1" Print "Начальный этап разработки проекта в VB6.0" Print "Автор проекта - студент гр.ПС-113 Иванов Сергей" End Sub Рис.1.2. Программный код

9. Для сохранения проекта следует выполнить команду Файл – Сохранить проект как... и в появившемся окне выбрать диск, папку на нем, в поле имя файла формы ввести свое имя файла вместо принятого по умолчанию Form1 (например, FРабота 1) и щелкнуть по кнопке Сохранить. После этого аналогичным образом следует cохранить весь проект, например, под именем PПроект1 1. Следует заметить, что сохранение файлов формы и проекта можно было осуществить на более ранних стадиях разработки и в дальнейшем сохранять изменения путем щелчка по кнопке быстрого сохранения в виде изображения дискеты в Панели инструментов главного меню. 10. Запустить программу на исполнение. Для этого щелкнуть по кнопке Старт в Панели инструментов. В появившемся окне формы щелкнуть по кнопке Пуск, после чего форма должна принять вид, показанный на рис.1.1. Если в программном коде имеются ошибки, то выполнение программы будет остановлено. В этом случае необходимо вернуться в окно программного кода и исправить ошибки. 11. Для печати результатов разработки проекта следует выполнить команду Файл – Установка Печати... и установить нужные параметры, а затем выполнить команду Файл –Печать, установить флажки в полях Изображение формы, Код, Форма как Текст. Щелчок по кнопке ОК приводит к началу печати. Содержание отчета Отчет должен содержать: 1. Изображение формы, программный код, форму как текст в соответствии с п. 11 порядка выполнения работы. 2. Ответы на контрольные вопросы. Контрольные вопросы 1. Опишите основные свойства формы, командной кнопки, текстового окна. 2. Как нужно изменить программный код для того чтобы текст, выведенный в форму, был напечатан в одну строку?

6

Лабораторная работа №2 ТИПЫ ДАННЫХ, СТАНДАРТНЫЕ ФУНКЦИИ, ВЫРАЖЕНИЯ В VISUAL BASIC 6.0 Цель работы: • изучение свойств различных типов данных; • запись выражений с использованием встроенных функций и арифметических операторов; • использование элемента управления типа Text для ввода и вывода данных. Содержание проекта Разработанный в лабораторной работе проект формы должен содержать: • командную кнопку; • двенадцать элементов управления типа Метка(Label); • восемь элементов управления типа Текст(Text) (см. рис.2.1). Программа должна обеспечивать ввод исходных данных в виде двух чисел типа Single (x и y) с последующим вычислением и выводом значений: • A=x/y (A – переменная типа Single); • B=x/y (B – переменная типа Integer); • w=f(x) – функция одной переменной (тип Single); • D=Fix(x/y), E=Int(x/y) – встроенные функции; • F=xMody – результат (остаток) целого деления двух чисел. Порядок выполнения работы 1. Открыть программу Visual Basic 6.0. В открывшемся диалоговом окне Новый проект выбрать тип проекта Standart EXE. 2. Разместить на экранной форме объекты, указанные в содержании проекта. 3. Ввести в надписи меток соответствующий текст. Выбрать шрифт, выравнивание, цвет фона. 4. Стереть в текстовых окнах надписи, указанные по умолчанию. 5. Ввести надпись для заголовка формы – “Лабораторная работа №2”. 6. Ввести программный код. Функцию w=f(x) записать в соответствии с таблицей вариантов.

7

Рис.2.1.Изображение формы с результатами вычислений

Private Sub Command1_Click() Dim x, y, A, w As Single Dim B As Integer 'Ввод данных в текстовые окна x = Val(Text1.Text) y = Val(Text2.Text) 'Вычисления A = x / y: B = x / y: w = 5 * (Log(x)) ^ 2 D = Fix(x / y): E = Int(x / y): F = x Mod y 'Вывод результатов в текстовые окна Text3.Text = Str(A): Text4.Text = Str(B): Text5.Text = Str(w) Text6.Text = Str(D): Text7.Text = Str(E): Text8.Text = Str(F) End Sub Рис.2.2. Программный код

8

Таблица 1 Вариант

1

2 3

4 5 6

Функция f(x)

π

x −5

x + e−x 5 x 2 + 6x + 7 ln x ln(x+7 x ) sh3x+6chx πx 2 + ex + ln x 5 + 6x

x2 + 1 7

e(1 + 2 x 2 )e x

8 9

π cos πx + π2 sin πx + π3 tgx 7 + 3x

10

e x + cos 2 x 5 ln x + 3 x

2

11

arctg 2 x sin 3 3x + 2x 3x

12

ln 2 2 x + x 2 x +1

13

sin x ⋅ e x + 5 x 2

14

x ⋅ arctgx − ln 1 + x 2 ln πx 1 1+ ln πx

15

2

7. Сохранить разработанные файлы формы и проекта. 8. Запустить программу на исполнение. В открывшемся окне формы ввести данные в текстовые окна для переменных x и y и нажать на кнопку Command1. 9. Вывести на печать форму с результатами вычислений и текст программы. В отличие первой лабораторной работы это лучше сделать в текстовом редакторе WinWord. Его использование позволяет обеспечить более качественную печать и, кроме этого, дает возможность вывести результаты вычислений. Для этого следует проделать следующие действия: • загрузить изображение формы в буфер обмена (Clipboard) путем одновременного нажатия клавишей Alt и PrintScreen (Alt+ PrintScreen); • свернуть программу Visual Basic 6.0 щелкнув по соответствующей кнопке; 9

• открыть программу WinWord и исполнить команду Вставить; • свернуть программу WinWord и открыть программу Visual Basic 6.0; • открыть окно программного кода, выделить текст программы. Для этого, установив указатель мыши на начало программы, нажать левую клавишу мыши и, удерживая ее в нажатом состоянии , «закрасить» текст. После этого щелкнуть по пиктограмме Копировать; • свернуть программу Visual Basic 6.0; • открыть программу WinWord и исполнить команду Вставить, предварительно установив курсор в нужное место экрана; • вывести подготовленное изображение формы и программного кода на печать. 10. Повторить решение задачи с различными значениями исходных данных, в том числе с нулевыми и отрицательными. Проанализировать получающиеся результаты. Содержание отчета

Отчет должен содержать: 1. Изображение формы с результатами вычислений и программный код. 2. Анализ результатов по п.10 порядка выполнения работы. 3. Ответы на контрольные вопросы. Контрольные вопросы 1. Опишите основные типы данных Visual Basic 6.0. 2. Чем отличается функция Fix от функции Int ? 2. Назначение функций Val и Str.

ЛАБОРАТОРНАЯ

РАБОТА

№3

ПРОГРАММИРОВАНИЕ ВЕТВЯЩИХСЯ ПРОЦЕССОВ Цель работы: • программирование ветвящихся процессов с использованием элементов управления: окон сообщения (MsgBox), переключателей (OptionBox) и флажков (CheckBox).

10

Содержание проекта

Программа проекта должна обеспечить выбор из четырех возможных вариантов ответов, определяемых состоянием двух любых указанных выше элементов управления. При этом первым в программе должен стоять элемент, стоящий первым в таблице используемых элементов управления. Например, восьмой вариант задания содержит окно сообщения (MsgBox) и переключатель ( OptionBox). Необходимо вычислить функции синуса и косинуса угла и двойного угла. Появляющееся после запуска программы окно сообщения предлагает два варианта вычислений – “вычислять синус или косинус?”. После выбора пользователем варианта ответа программа переходит к анализу состояния переключателя (варианты: угол или двойной угол), после чего выводит вычисленное значение. На рис.3.1 приведен фрагмент программы, реализующий вышеуказанную логику. ww = MsgBox(" Sin? - Да! Cos? - Нет", vbYesNo + vbQuestion, "Что вычисляем?") If ww = vbNo Then GoTo m1 ‘Анализ ответа в окне сообщения MsgBox " Вычисляем Sin" If Option1.Value = True Then ‘Анализ состояния переключателя y = Sin(2 * x) Print "2x="; 2 * xgrad; "град"; " y=Sin(2x)="; y Else y = Sin(x) Print "x="; xgrad; "град"; " y=Sin (x) = "; y End If m1: Рис. 3.1. Фрагмент программы

Отметим, что в случае использования флажка (CheckBox) его состояние по аналогии с переключателем анализируется с помощью логического оператора If в виде If Check1.Value = 1 Then или If Check1.Value = 0 Then. На рис.3.2 приведен один из возможных вариантов формы, разработанный применительно к восьмому варианту лабораторной работы. 11

• • • •

Форма содержит: командную кнопку; четыре элемента управления типа Метка; один элемент типа Текст; два переключателя.

Рис.3.2. Изображение формы с результатами работы программы

Порядок выполнения работы

1. Разработать блок-схему и текст программы в соответствии с вариантом, приведенным в таблице 1. 2. Открыть программу Visual Basic 6.0. В открывшемся диалоговом окне Новый проект выбрать тип проекта Standart EXE. 3. Разместить на экранной форме необходимые объекты. 4. Ввести в программное окно разработанную программу. 5. Сохранить на диске разработанные файлы формы и проекта. 6. Запустить программу на исполнение. 7. Напечатать форму с результатами вычислений и разработанную программу в текстовом редакторе WinWord.

12

Вариант

1 1

2 3 4 5

6

7

8

9

Используемые элементы управления

Вычислить

Таблица 1 Параметры

2

3 4 1.Полином первой Аргумент x задастепени – полином ется в тексте провторой степени. граммы. MsgBox, CheckBox 2.Корень квадратный – корень кубический. Аргумент x задаCheckBox, MsgBox 1.ln(x) – ln(2x) ется в текстовом x 2x 2.e – e окне. 1.sh(x) – sh(2x) Аргумент x задаетCheckBox, MsgBox 2.ch(x) – ch(2x) ся в тексте программы 1.Парабола – кубичеx=5 ская парабола. MsgBox, CheckBox x 2x 2. e – e . 1.Парабола – кубичеx=4 CheckBox, OptionButton ская парабола. x 2x 2. e – e . 1.Полином первой Аргумент x задаетстепени – полином ся в тексте программы. OptionButton, CheckBox второй степени. 2. Корень квадратный – корень кубический. CheckBox, OptionButton

MsgBox, OptionButton

OptionButton, MsgBox

1.sh(x) – sh(2x) 2.ch(x) – ch(2x)

1. Sin(x) – Sin(2x)

2. Cos(x) – Cos(2x)

Аргумент x задается в тексте программы. Аргумент x задается в текстовом окне.

1.Парабола – кубиче- Аргумент x задаетская парабола. ся в текстовом окне. x 2x 2. e – e .

13

1

10

2

3

CheckBox, OptionButton

1. Sin(x) – Sin(2x)

2. Cos(x) – Cos(2x) 1. Sin(x) – Sin(2x)

11 12

13

14

15

OptionButton, MsgBox MsgBox, OptionButton

CheckBox, OptionButton

Продолжение таблицы 1 4

Аргумент x задается в текстовом окне.

2. tg(x) – tg(2x)

x = π/6

x -3 x 2. x2 – x3

x=4

1.

1.ln(x) – ln(2x) 2. ex – e2x

1. Полином второй степени с отрицательными коэффициентами – полином второй степени с поOptionButton, MsgBox ложительными коэффициентами. 2.Корень кубический из отрицательного аргумента – корень кубический из положительного аргумента. 2. Полином второй степени с отрицательными коэффициентами – полином второй степени с поOptionButton, CheckBox ложительными коэффициентами. 2.Корень кубический из отрицательного аргумента – корень кубический из положительного аргумента. 14

Аргумент x задается в текстовом окне.

Аргумент x задается в текстовом окне.

Аргумент x задается в тексте программы.

Содержание отчета

Отчет должен содержать: 3. Блок-схему программы. 4. Изображение формы с результатами вычислений и текст программы. 5. Ответы на контрольные вопросы. Контрольные вопросы 1. Назначение и основные свойства используемых элементов управления. 2. Возможные варианты вывода результатов в форму.

Лабораторная работа №4 ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ ПРОЦЕССОВ Цель работы: • программирование циклических процессов вычисления суммы ряда и определенных интегралов с использованием оператора цикла со счетчиком For ... Next. Содержание проекта

Программа проекта должна обеспечивать вычисление суммы ряда при задании определенного числа слагаемых N в сумме ряда. В таблице вариантов 1 приведено точное значение суммы при бесконечном числе слагаемых. Это значение следует использовать для контроля получаемых результатов. Форма для решения этой задачи содержит (рис.4.1): • командную кнопку; • пять окон типа Метка; • два окна типа Текст, в первое из которых вводится число N, во второе – вычисленная сумма ряда. Для вычисления определенного интеграла b

∫ f ( x )dx

a

можно использовать метод прямоугольников, который сводится к вычислению суммы N −1

S= h

∑ f (a + h ⋅ i ),

i =0

15

в которой

h=

b −a – шаг интегрирования, N – число разбиений интервала инN

тегрирования. Исходные данные для вычисления определенного интеграла содержатся в таблице 2. Форма для вычисления определенного интеграла содержит (рис.4.2): • командную кнопку; • шесть окон типа Метка; • четыре окна типа Текст, в которые вводятся числа a, b, N и вычисленная величина интеграла.

Рис.4.1. Изображение формы для вычисления суммы ряда

16

Рис.4.2. Изображение формы для вычисления определенного интеграла

Таблица 1 Вариант

Ряд и точное значение его суммы

1+

1 2 3 4 5 6 7

1 1 1 1 + + + ... + ... = e 1! 2! 3! n!

1 1 1 1 1 + − + − ... ± ± ...) = π 3 5 7 9 2n − 1 1 1 1 1 1 1 − + − + ... ± ± ... = 1! 2! 3! n! e 1 1 1 1 1 − + − + ... ± ± ... = ln 2 2 3 4 n 1 1 1 1 1 + + + + ... + n + ... = 2 2 4 8 2 1 1 1 1 2 1 − + − + ... ± n ± ... = 2 4 8 3 2 1 1 1 1 1 4(1 − + − + − ... ± ± ...) = π 3 5 7 9 2n − 1 4(1 −

17

Вариант

8

f(x)

a

1 + sin( x ) 1 − cos( x ) cos(x)

Таблица 2 b

0,5

1,0

0

1,0

1,0

2

9

4 − 4sin(x) + sin 2 (x)

10

xe − x

11

3x 4 + 3x 2 + 1

0

1,0

12

x2 + 1 e x sin( x ) 1

1,0

2,0

-0,4

0,4

ln2

ln4

1,0

e

13

2

1 − 4x 2 14 15

ex e2x −1 ln( x ) x(ln 2 ( x ) − 1)

Порядок выполнения работы

1. Разработать блок-схему и текст программы в соответствии с заданным вариантом. 2. Открыть программу Visual Basic 6.0. В открывшемся диалоговом окне Новый проект выбрать тип проекта Standart EXE. 3. Разместить на экранной форме необходимые объекты. 4. Ввести в программное окно разработанную программу. 5. Сохранить на диске разработанные файлы формы и проекта. 6. Запустить программу на исполнение. Путем многократного запуска программы оценить влияние параметра N на получаемые результаты. 7. Напечатать форму с результатами вычислений и разработанную программу в текстовом редакторе WinWord.

18

Содержание отчета

Отчет должен содержать: 1. Блок-схему программы. 2. Изображение формы с результатами вычислений и текст программы. 3. Таблицу с результатами выполнения п.6. 4. Ответы на контрольные вопросы. Контрольные вопросы 1. Каким образом можно изменять параметры цикла ? 2. Возможные способы уменьшения числа знаков после запятой при выводе результатов в текстовое окно.

Лабораторная работа №5 ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ ФУНКЦИИ Цель работы: • вычисление значений функции с постоянным шагом при различных выражениях, определяющих функцию на интервалах внутри заданного отрезка; • программирование циклического процесса с использованием оператора цикла For ... Next, условного оператора If ...Then и оператора выбора Select Case; • анализ работы программы с помощью отладчика. Содержание проекта

Проект должен содержать программу для вычисления значений функции, заданной в таблице вариантов. Вывод результатов следует производить в два окна списка (ListBox), в первое из которых выводятся результаты, полученные с использованием оператора If ... Then, во второе – с использованием оператора Select Case. Один из возможных вариантов формы приведен на рис.5.1. Форма содержит: • командную кнопку; • семь элементов управления типа Метка; • два элемента управления типа Окно списка.

19

Рис.5.1. Изображение формы

Порядок выполнения работы

1. Разработать блок-схему и текст программы в соответствии с заданным вариантом. 2. Открыть программу Visual Basic 6.0. В открывшемся диалоговом окне Новый проект выбрать тип проекта Standart EXE. 3. Разместить на экранной форме необходимые объекты. 4. Ввести в программное окно разработанную программу. 5. Сохранить на диске разработанные файлы формы и проекта. 6. Запустить программу на исполнение с использованием отладчика. Для этого последовательно исполнить команды Вид, Панель инструментов, Отладка, в результате чего на экране появится окно отладчика. Нажать на функциональную клавишу F8. После щелчка по командной кнопке формы, находящейся в режиме исполнения программы, в окне программного кода по-явится желтая полоска, указывающая на исполняемую строку. Перемещение по программе осуществляется путем последовательных щелчков по кнопке Войти отладчика.

20

Вариант

Функция

1 1

2 3

4

5

6 7

8

9

Условие

Таблица 1 Диапазон и шаг изменения аргумента

2

3

4

0,5 x 2  y = 1  3 2 x sin 3x y= cos 3x π sin 3x + 2 π cos 3x  y = sin 2 x cos x 

x 2 x≤2 x >2 x ≤1 1< x ≤ 2 x >2

sin x ⋅ e x + 5 x 2  y = x ⋅ arctgx   x + 5 5 + x  2 x + x y= 2 3 2 x + 4 x + 6x  2 3 4 x + x + x + x tgx + arctgx y= shx + chx

x ≤1 1< x ≤ 2 x >2 x ≤1 1< x ≤ 2 2 1,5 x ≤2 20 0 ≤ x