Урок № 2. Что может Visual Basic?
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Вводный курс в Visual Basic

2 Введение. …………………………………………………... 3

2 Урок № 1. Что такое Visual Basic? ……………………...... 3

2 Урок № 2. Что может Visual Basic? ……………………..... 3

2 Урок № 3. Установка и настройка VB. ………………...… 3

2 Урок № 4. Для тех, кто никогда не ... …………………...... 3

2 Урок № 5. Этапы разработки приложения. …………........ 4

2 Урок № 6. Структура проекта VB. …………….................. 4

2 Урок № 7. Среда разработки VB. ……………………....… 4

2 Урок № 8. Лёгкость работы с кодом. ………………….…. 6

2 Урок № 9. Из чего состоит код? Переменные. ………….. 6

2 Урок № 10. Массивы, записи, перечисления. ………..….. 7

2 Урок № 11. Выражения. …………………………………... 8

2 Урок № 12. Операторы. …………………………………… 9

2 Урок № 13. Управляющие структуры. ………………..….. 9

2 Урок № 14. Процедуры и функции. ………………….….. 11

2 Урок № 15. Сводим всё вместе. ……………………..….... 12

2 Урок № 16. Отладка программы. ……………………...… 14

2 Урок № 17. Доводим до ума. …………………………..… 16

2 Урок № 18. Компиляция. ………………………………..... 17

2 Заключение. ……………………………………………...... 18

2 Литература ………………………………………………… 18

 

Приложения

 

N Модель «Решение квадратного уравнения» .…...…………. 19

N Модель «Графики тригонометрических функций» ………. 20



Вводный курс в Visual Basic

 

Введение.

Итак, вы решили изучить язык программирования высокого уровня - Visual Basic. Я попытаюсь помочь вам в этом. Наберитесь немного терпения, желания и вперёд, в просторы VB! Ведь Visual Basic - это Крепкий Орешек!

Данный курс предназначен для тех, кто

1. никогда не программировал, но хочет научиться

2. программировал на другом языке (Turbo Pascal, QBASIC)

3. программировал на другом языке высокого уровня (C++, Delphi)

От вас требуется только небольшой опыт работы с Windows. И всё.

Этот курс конечно не претендует на полноценный учебник по Visual Basic. Он является введением в VB. Я попыталась разобрать основные моменты и приёмы программирования на Visual Basic, зная которые, вы без особого труда сможете пополнять ваши знания.

То, что не вошло в данный материал, вы сможете прочитать на сайте http://vb.hut.ru. Удачи! И Вперёд!

 

Урок № 1. Что такое Visual Basic?

Перед начинающими программистами всегда встаёт один и тот же вопрос, а именно, какой язык программирования выбрать? На чём программировать? Могу сказать, что лучше начинать с лёгкого и в то же время мощного языка - Visual Basic. Изучив приёмы программирования на VB, вы сможете без особых усилий изучить другие языки, такие как Pascal, C++ и др.

Слово "БЕЙСИК" (BASIC) - "базовый, основной" - образовано из начальных букв английского выражения "Универсальный язык символического кодирования для начинающих". Это "для начинающих" долго вызывало пренебрежение программистов, причём подобное пренебрежение не исчезло до сих пор, несмотря на наличие префессиональных изданий VB.

Идём дальше. Что же может Visual Basic?

 

Урок № 10. Массивы, записи и перечисления

На предыдущем уроке мы рассмотрели с вами такую важную вещь, как переменные. А переменные - это ведь кусочки памяти, где хранятся данные. Значит, если эффективно использовать переменные - мы эффективно используем память. А если мы эффективно используем память - то памяти для приложения нужно меньше и приложение работает быстрее. Так вот для того, чтобы эти данные использовать с максимальной эффективностью, и в то же время с лёгкостью, были придуманы "массивы" (Arrays), "записи" (Types) и "перечисления" (Enums).

Массивы

Их ещё называют списками. Итак, что же такое массивы? Массив - это набор однотипных переменных, объединенных одним именем и доступных через это имя и порядковый номер переменной в наборе. Количество элементов массива теоретически может быть бесконечным; ограничения накладываются конкретным языком программирования и операционной системой. Элементы массива обладают непрерывной нумерацией определённого диапазона. В программировании массивы используются довольно часто.

В Visual Basic массивы определяются следующим образом:

Dim myArray (10) As Long

Записи

Запись - это новый, опеределяемый программистом тип данных, который состоит из одной и более переменных внутри. Давайте рассмотрим это на примере. Например, необходимо в программе хранить массив студентов. Причём каждый студент имеет свои характеристики: ФИО, Возраст, Ниличие Грамот. Конечно, для хранения таких данных можно использовать, например, массив, имеющий две размерности. Но это не лучший вариант. Лучше всего здесь подходят Записи! Затем из записи можно будет сделать массив! Чтобы определить запись в программе нужно использовать зарезервированное слово Type. Заканчивается запись словами End Type:

Private Type Student ' вместо Private могло быть и Public
FIO As String
Age As Byte
HasGramot As Boolean
End Type





Перечисления

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

Enum Ocenka
Neud = 3
Horosho = 4
Otlichno = 5
End Enum

Присваивать значения константам внутри Enum не обязательно. Если этого не сделать, то константы будут принимать значения 0,1,2... и т.д.

Теперь можно объявить переменную типа Ocenka:

Dim oc1 As Ocenka





Урок № 11. Выражения

В любом языке программирования выражения являются основными кирпичиками, из которых строится программа. Согласно самому точному определению, "выражение" - это "что-то, что содержит значение". За примером далеко ходить не нужно, возьмём пример из предыдущего урока:

       b = 234

Здесь мы присваиваем переменной b значение 234. Другими словами "234" - это выражение со значением 234. А теперь, к примеру, рассмотрим строчку:

       c = b

Здесь переменной c присваивается выражение b. Значение этого выражения - b = 234. Т.е. другими словами b - выражение, со значением 234. Рассмотрим более сложный пример выражения - функцию. Объявим функцию MyFunc, возвращающую байт 234:

А теперь запишем строку:

       c = MyFunc()

Как вы уже, наверное, догадались, выражение здесь - MyFunc(), со значением 234. Т.е. после присвоения переменной c выражения MyFunc(), она будет содержать значение 234. А вот ещё пример:

       c = 5 + 5 * 2

Здесь выражение это 5 + 5 * 2. Значение этого выражения не трудно посчитать, оно равно 15. Можно было бы написать и так:

       c = MyFunc() - 219

Здесь значение выражение такое же, как и в предыдущем случае, но вот сами выражения разные. Это важно понимать.

Также необходимо отметить значение скобок в выражениях. В Visual Basic скобки выполняют ту же функцию, что и в школе, а именно - задают приоритет операции. К примеру, модифицируем выражение 5 + 5 * 2 на:

       c = (5 + 5) * 2

Теперь значение этого выражения не 15, а 20!

Урок № 12. Операторы

В Visual Basic операторы бывают следующих типов:

· Арифметические:

o ^ оператор возведения в степень.

o * оператор умножения.

o / оператор деления

o \ оператор целочисленного деления

o Mod оператор вычисления остатка от деления

o + оператор сложения

o - оператор вычитания

· Сравнения:

o < меньше

o > больше

o <= меньше или равно

o >= больше или равно

o = равно

o <> не равно

· Конкатенации:

o + оператор конкатенации

o & оператор конкатенации

· Логические:

o And оператор логического умножения

o Eqv оператор логической эквивалентности

o Imp оператор логической импликации

o Not оператор логического отрицания

o Or оператор логического сложения

o Xor оператор логического исключающего сложения

Процедуры и функции

В Visual Basic, как и во многих других языках программирования, большинство программ создается из блоков - процедур и функций. Весь программный код находится как бы внутри этих процедур. Если возникает необходимость в решении какой-либо задачи в любом месте программы, то вызывается процедура. В Visual Basic нельзя ввести код между процедурами. Код всегда должен находиться внутри процедуры.

Давайте разберёмся с понятиями, и определим, что будет называться процедурой, а что функцией.

Процедуры:

Процедура - это некий блок кода, который будет выполняться всякий раз при вызове этой процедуры. Каждая процедура начинается зарезервированным словом Sub и заканчивается End. Вот общий синтаксис процедуры:

[Private | Public | Friend] [Static] Sub name [(arglist)]
[здесь некий код]
[Exit Sub]
[здесь тоже может быть некий код]
End Sub

arglist имеет следующий вид:

[Optional] [ByVal | ByRef] [ParamArray] varname[( )]
[As type] [= defaultvalue]

Функции:

Функция - это некий блок кода, который будет возвращать значение. Этим, и только этим функции отличаются от процедур. Общий синтаксис функции:

[Public | Private | Friend] [Static] Function имяфункции _
[(arglist)] [As type]
[здесь некий код]
[имяфункции = выражение]
[Exit Function]
[здесь тоже может быть некий код]
[имяфункции = выражение]
End Function

Что значит "будет возвращать значение"? Рассмотрим функцию из урока 8:

Public Function MyFunc() As Byte
MyFunc = 234
End Function

c = MyFunc()

Когда мы говорили о выражениях, мы говорили, что MyFunc - это выражение, со значением 234. Т.е. здесь, функция MyFunc возвращает значение 234 (байт). Чтобы задать это значение, необходимо присвоить имени функции выражение. В нашем случае в качестве выражения выступает число 234.

Давайте рассмотрим более практичный пример. Напишем функцию для вычисления квадрата числа. У функции будет 1 параметр типа Integer - число для возведения в квадрат. Функция будет возвращать значение квадрата параметра. Тип возвращаемого значения - Long:

Public Function Square(number As Long) As Long
Square = number * number
End Function

Вызвать функцию можно так:

b = Square (5)

А можно так, используя нашу процедуру для вывода сообщения на экран:

ShowMessage Square (5)

А можно и так:

Square 5

















Продумывание программы.

Что должна делать наша программа? - решать квадратные уравнения. Вспомним, как решаются квадратные уравнения.

       a*x*x + b*x + c = 0

Чтобы решить такое уравнение, нужно найти его дискриминант и затем корни. Дискрименант:

       D = b*b - 4*a*c

Корни:

       если дискриминант > 0, то X1 = (-b + (корень из D)) / 2*a, X2 = (-b - (корень из D)) / 2*a

       если дискриминант = 0, то X1 = X2 = -b / 2*a

       если дискриминант < 0, то корней не существует.

Итак, что вышло:

Входные данные в программу - коэффициенты a,b,c. Данные будем вводить в текстовые поля для ввода (TextBox).

Выходные данные - корни (если они есть) и дискриминант. Данные будем выводить в элемент метку (Label). Запускать решение будем нажатием на кнопку (Command Button).

Проектирование интерфейса.

Запустите Visual Basic. Выберите тип Standart EXE. Поместите на форму элементы управления, как показано на рисунке:

           

Давайте переименуем элементы управления. Для этого измените свойство Name каждого элемента управления согласно таблице:

Назначение элемента управления Имя (свойство Name)
A: - параметр A txtParamA
B: - параметр B txtParamB
C: - параметр C txtParamC
Кнопка для запуска решения cmdCalculate
Label, с вычисленным дискриминантом lblD
Label, с корнем X1 lblX1
Label, с корнем X2 lblX2
Форма, содержащая все эти элементы frmMain

Остальные элементы переименовывать не обязательно, т.к. мы к ним не будем обращаться в коде программы. Но, если хотите, можете переименовать. Приучайтесь к этому.

Обработка других ошибок

Независимо от того, насколько качественно написано приложение, никогда нельзя полностью исключать возможность возникновения ошибки в программе. Вы видели такое окошко Windows: "Программа выполнила недопустимую операцию и будет закрыта...". Т.е. возникла исключительная ситуация, и Windows, не зная как можно обойти ошибку, выдаёт "общее" окно для всех таких ошибок. Так вот и в ваших программах тоже может возникнуть такая исключительная ситуация. Причин для этого ооочень много. Например, у пользователя программой сбои с жёстким диском, или глючит операционная система, или вирус удалил нужный вам файл и т.д. и т.п. В общем, в таких ситуациях желательно сообщить пользователю о том, что возникла ошибка и спокойно выйти/продолжить программу.. В данном случае используется объект Err.

Visual Basic располагает оператором, с помощью которого можно контролировать ход программы при возникновении ошибок. Это оператор On Error. Он имеет несколько видов:

On Error GoTo МЕТКА
On Error Resume Next
On Error GoTo 0

Первый оператор позволяет указать Visual Basic метку (номер строки) на которую передастся управление программы при возникновении ошибки. Рассмотрим пример использования этого оператора:

Private Sub Command1_Click()
Dim myString As String
On Error GoTo ERRH
myString = "ERROR HANDLING WITH VB IS COOL"
MsgBox Mid(myString, 0, 1) '<--- здесь ошибка (#)
Exit Sub '<--- досрочно выходим, если нет ошибок
ERRH: '<--- метка
MsgBox Error(Err.Number) '<--- выводим свою ошибку
End Sub











Урок № 17. Доводим до ума

На этом уроке мы научимся оформлять программу в виде функций и процедур. Это очень важно. Принцип модульного программирования очень облегчает программирование и отладку. Модульное программирование - означает разделение кода программы на отдельные куски, каждый из которых выполняет чётко определённую задачу. Это особенно важно для сложных программ.

Доведём до ума нашу программу, для вычисления корней квадратного уравнения. Давайте оформим некоторые части кода в виде процедур и функций. Например, напишем функцию для вычиления дискриминанта. И напишем процедуру, которая будет выводить полученные значения в метки. Почему именно процедуру? Потому что процедуры пишутся для выполнения некоторой последовательности действий, где не требуется возвращать какое-либо значение. Давайте ещё раз посмотрим на ту часть кода, где происходит проверка значения дискриминанта и вычисление корней уравнения:

If D > 0 Then
x1 = (paramB + Sqr(D)) / (2 * paramA)
x2 = (paramB - Sqr(D)) / (2 * paramA)
lblD.Caption = "Дискременант: " & D
lblX1.Caption = "Корень №1: " & x1 ' <- здесь
lblX2.Caption = "Корень №2: " & x2
ElseIf D = 0 Then
x1 = paramB / (2 * paramA)
x2 = x1
lblD.Caption = "Дискременант: " & D
lblX1.Caption = "Корень №1: " & x1 ' <- и здесь
lblX2.Caption = "Корень №2 = Корню №1"
ElseIf D < 0 Then
lblD.Caption = "Дискременант: " & D
lblX1.Caption = "Корней нет!" ' <- и здесь, тоже
lblX2.Caption = ""
MsgBox "Дискременант меньше нуля! Корней нет!", vbCritical
End If

Заметьте, что в каждом из ветвей оператора If наблюдается присвоения свойству Caption 3-х меток (lblD, lblX1, lblX2). Поэтому логично этот участок оформить в виде процедуры, параметрами которой будут значения для меток.


















Урок № 18. Компиляция

Теперь наша программа отлажена и готова к употреблению. Теперь настало время узнать, как же откомпилировать программу в exe файл?

Напомню, что Visual Basic предлагает 2 компилятора. Компиляция в P-код, и компиляция в Native-код. P-код - это старый компилятор и пользоваться им я не рекомендую. Всегда компилируйте приложение в Native-код. Выбор вида компиляции находится на вкладке Compile в меню Project->Project Properties. Там же можно указать несколько доступных видов оптимизации (о них ниже).

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

1. В меню File выбрать Make имя_проекта.exe

2. Ввести имя выходного exe файла

3. Если необходимо, то выбрать некоторые опции, нажав на кнопку Options. (К этим опциям также можно добраться через меню Project->Project Properties).

4. Нажать ОК. И, если Visual Basic не найдёт никаких ошибок в программе, то откомпилирует её и сохранит в указанно вами каталоге под указанным вами именем.

Заключение

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

Успехов вам в программировании!

 

Литература:

1. Сайт http://vb.hut.ru

2. А. Волков - Электронный учебник «Visual Basic – крепкий орешек!».

3. Н. Угринович - Информатика и информационные технологии. 10-11 кл. М. БИНОМ, 2006.


 

Модель «Решение квадратного уравнения»

 

 

Private Sub cmdCalculate_Click()

'объявляем переменные

Dim paramA As Double

Dim paramB As Double

Dim paramC As Double

Dim R As Integer

Dim D As Double

Dim x1 As Double

Dim x2 As Double

   

'присваиваим им значения из текстовых полей

paramA = Val(txtParamA.Text)

paramB = Val(txtParamB.Text)

paramC = Val(txtParamC.Text)

   

'проверка на а=0

If paramA = 0 Then

MsgBox "А=0 не допускается!", vbCritical

Exit Sub

End If

 

'вычисляем дискреминант

D = paramB * paramB - 4 * paramA * paramC

'решаем уравнение и выводим результат в метки Label

If D > 0 Then

   x1 = (-paramB + Sqr(D)) / (2 * paramA)

   x2 = (-paramB - Sqr(D)) / (2 * paramA)

   lblD.Caption = "Дискреминант D=" & D

   lblX1.Caption = "x1 = " & x1

   lblX2.Caption = "x2 = " & x2

ElseIf D = 0 Then

   x1 = -paramB / (2 * paramA)

   lblD.Caption = "Дискреминант D=" & D

   lblX1.Caption = "x=" & x1

   lblX2.Caption = ""

Else

   lblD.Caption = "Дискреминант D=" & D

   lblX1.Caption = "Нет решений"

   lblX2.Caption = ""

       

   'можно добавить выводное поле с предупреждающей информацией

   R = MsgBox("Дискреминант меньше нуля! Корней нет!", 48, "Внимание!")  

End If

End Sub


 

Модель «Графики тригонометрических функций»

 

 

Программа (программный код):

 

Dim I As Integer

Dim X As Double

Dim Y As Double

Private Sub cmdCK_Click()

picGrap.Scale (-10, 5)-(10, -5)

picGrap.Line (-10, 0)-(10, 0)

For I = -10 To 10

picGrap.PSet (I, 0)

picGrap.Print I

Next I

picGrap.Line (0, -5)-(0, 5)

For I = -5 To 5

picGrap.PSet (0, I)

picGrap.Print I

Next I

End Sub

Private Sub cmdCLS_Click()

picGrap.Cls

End Sub

Private Sub cmdSin_Click()

For X = -10 To 10 Step 0.03

Y = Sin(X)

picGrap.PSet (X, Y)

Next X

End Sub

Private Sub cmdCos_Click()

For X = -10 To 10 Step 0.03

Y = Cos(X)

picGrap.PSet (X, Y)

Next X

End Sub

Private Sub cmdTg_Click()

For X = -10 To 10 Step 0.03

Y = Tan(X)

picGrap.PSet (X, Y)

Next X

End Sub

Private Sub cmdCtg_Click()

For X = -10 To 10 Step 0.03

Y = 1 / Tan(X)

picGrap.PSet (X, Y)

Next X

End Sub

 

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



Вводный курс в Visual Basic

2 Введение. …………………………………………………... 3

2 Урок № 1. Что такое Visual Basic? ……………………...... 3

2 Урок № 2. Что может Visual Basic? ……………………..... 3

2 Урок № 3. Установка и настройка VB. ………………...… 3

2 Урок № 4. Для тех, кто никогда не ... …………………...... 3

2 Урок № 5. Этапы разработки приложения. …………........ 4

2 Урок № 6. Структура проекта VB. …………….................. 4

2 Урок № 7. Среда разработки VB. ……………………....… 4

2 Урок № 8. Лёгкость работы с кодом. ………………….…. 6

2 Урок № 9. Из чего состоит код? Переменные. ………….. 6

2 Урок № 10. Массивы, записи, перечисления. ………..….. 7

2 Урок № 11. Выражения. …………………………………... 8

2 Урок № 12. Операторы. …………………………………… 9

2 Урок № 13. Управляющие структуры. ………………..….. 9

2 Урок № 14. Процедуры и функции. ………………….….. 11

2 Урок № 15. Сводим всё вместе. ……………………..….... 12

2 Урок № 16. Отладка программы. ……………………...… 14

2 Урок № 17. Доводим до ума. …………………………..… 16

2 Урок № 18. Компиляция. ………………………………..... 17

2 Заключение. ……………………………………………...... 18

2 Литература ………………………………………………… 18

 

Приложения

 

N Модель «Решение квадратного уравнения» .…...…………. 19

N Модель «Графики тригонометрических функций» ………. 20



Вводный курс в Visual Basic

 

Введение.

Итак, вы решили изучить язык программирования высокого уровня - Visual Basic. Я попытаюсь помочь вам в этом. Наберитесь немного терпения, желания и вперёд, в просторы VB! Ведь Visual Basic - это Крепкий Орешек!

Данный курс предназначен для тех, кто

1. никогда не программировал, но хочет научиться

2. программировал на другом языке (Turbo Pascal, QBASIC)

3. программировал на другом языке высокого уровня (C++, Delphi)

От вас требуется только небольшой опыт работы с Windows. И всё.

Этот курс конечно не претендует на полноценный учебник по Visual Basic. Он является введением в VB. Я попыталась разобрать основные моменты и приёмы программирования на Visual Basic, зная которые, вы без особого труда сможете пополнять ваши знания.

То, что не вошло в данный материал, вы сможете прочитать на сайте http://vb.hut.ru. Удачи! И Вперёд!

 

Урок № 1. Что такое Visual Basic?

Перед начинающими программистами всегда встаёт один и тот же вопрос, а именно, какой язык программирования выбрать? На чём программировать? Могу сказать, что лучше начинать с лёгкого и в то же время мощного языка - Visual Basic. Изучив приёмы программирования на VB, вы сможете без особых усилий изучить другие языки, такие как Pascal, C++ и др.

Слово "БЕЙСИК" (BASIC) - "базовый, основной" - образовано из начальных букв английского выражения "Универсальный язык символического кодирования для начинающих". Это "для начинающих" долго вызывало пренебрежение программистов, причём подобное пренебрежение не исчезло до сих пор, несмотря на наличие префессиональных изданий VB.

Идём дальше. Что же может Visual Basic?

 

Урок № 2. Что может Visual Basic?

В принципе, возможности Visual Basic ничем не ограничены. Вы можете расширять возможности VB посредством использования дополнительных функций.

На VB можно написать любую программу, от обслуживающих рутинные операции ввода данных, до сложных информационных и коммуникационных систем. В США 60% программных продуктов написаны на VB. Так что просторы VB очень велики!

Теперь можно приступать к установке и настройке VB!

 

Урок № 3. Установка и настройка VB (рекомендации)

Установка Visual Basic не отличается особой сложностью, всё стандартно. В процессе инсталляции вас попросят указать компоненты, которые будут установлены на ваш компьютер. Если на жёстком диске есть место, то лучше выбрать все компоненты, чтобы потом их не пришлось добавлять. Здесь следует отметить то, что версия VB 5.0 поставляется с файлами помощи (примерно 15Мб), а помощь для VB 6.0 идёт в комплекте с MSDN, который поставляется на трёх дисках. Поэтому если у вас шестая версия, записанная на одном диске, то будьте уверены, помощи там не будет. Но вполне можно взять помощь от пятой версии и использовать её для VB 6.0. После установки VB перезагрузите компьютер.

Перед работой с VB его необходимо настроить. Для этого запустите VB (Пуск->Программы->Microsoft Visual Basic 6.0->Visual Basic 6). Зайдите в меню Инструменты->Параметры. Поставьте галочку "Require Variable Declaration". Это избавит вас от лишних ошибок при автоматическом определении переменных. Далее на вкладке Editor Format, в списке Font укажите Courier New Cyr. Если этого не сделать, то VB не будет корректно отображать кириллицу. Также рекомендую установить цвет зарезервированных слов в ярко-синий. Для этого выберите в списке Code Colors Keyword Text и в поле Foreground укажите ярко-синий цвет (седьмой снизу). Вот и всё! Visual Basic готов к работе!

 

Урок № 4. Для тех, кто никогда не ...

Закон программирования гласит: "Ни одна, даже самая простая программа, не работает сразу после написания". Любую программу необходимо отлаживать (обезжучивать - debug (bug-жук)). На этот счёт имеется ещё закон: легче написать свою собственную программу, чем разбирать и исправлять чужую. Отладка программы состоит в следующем:

1. Запустить программу.

2. В случае сбоя или неправильной работы найти причину ошибки.

3. Устранить ошибку.

4. Продолжать до тех пор, пока не будут устранены все ошибки.

 

Дата: 2019-12-10, просмотров: 290.