Описание операторов, используемых в программе
ВВЕДЕНИЕ
Существуют различные классификации языков программирования.
По наиболее распространённой классификации все языки программирования в соответствии с тем, в каких терминах необходимо описать задачу, делят на языки низкого и высокого уровня. Если язык близок к естественному языку программирования, то он называется языком высокого уровня, если ближе к машинным командам, – языком низкого уровня.
В группу языков низкого уровня входят машинные языки и языки символического кодирования: Автокод, Ассемблер. Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определённый тип компьютера, т. е. являются машинно-зависимыми.
Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).
К языкам программирования высокого уровня относят:
Фортран – переводчик формул, был разработан в середине 50–х годов программистами фирмы IBM, используется для программ, выполняющих естественно-научные и математические расчёты;
- Алгол;
- Кобол – коммерческий язык, используется для программирования экономических задач;
- Паскаль;
- Бейсик – разработан профессорами Дармутского колледжа Джоном Кемени и Томасом Курцом;
- Си – разработан Деннисом Ритчем в 1972 г.;
- Пролог – в основе языка лежит аппарат математической логики.
Эти языки машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определённого класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.
Программу, написанную на языке программирования высокого уровня, ЭВМ не понимает, поскольку ей доступен только машинный язык. Поэтому для перевода программы с языка программирования на язык машинных кодов используют специальные программы – трансляторы. Существует три вида трансляторов:
- интерпретатор – транслятор, который производит пооператорную обработку и выполнение исходного кода программы;
- компилятор – транслятор, который преобразует всю программу в модуль на машинном языке, после чего программа записывается в память компьютера и только потом исполняется;
- ассемблер транслятор, который переводит программу, записанную на языке ассемблера, в программу на машинном языке.
Языки программирования также можно разделять на поколения:
- языки первого поколения – машинно-ориентированные с ручным управлением памяти на компьютерах первого поколения;
- языки второго поколения – с мнемоническим представлением команд, так называемые автокоды;
- языки третьего поколения – общего назначения, используемые для создания прикладных программ любого типа, например, Бейсик, Кобол, Си, Паскаль;
- языки четвёртого поколения – усовершенствованные, разработанные для создания специальных прикладных программ и для управления базами данных;
- языки программирования пятого поколения – декларативные, объектно-ориентированные и визуальные, например, Пролог, ЛИСП, Си++, Visual Basic, Delphi.
Языки программирования также можно классифицировать на процедурные и непроцедурные.
В процедурных языках программа явно описывает выполняемые действия, а результат задаётся только способом его получения при помощи некоторой процедуры, представляющей собой определённую последовательность действий.
Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада. Среди операционных известны Фортран, Бейсик, Фокал.
Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века. К непроцедурному программированию относятся функциональные и логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задаётся как композиция других, более простых, те в свою очередь делятся на ещё более простые задачи и т.д. Один из основных элементов функциональных языков – рекурсия. Оператора присваивания и циклов в классических функциональных языках нет.
В логических языках программа вообще не описывает действий. Она задаёт данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задаётся самим языком. Классическим языком логического программирования считается Пролог. Программа на Прологе содержит, набор предикатов-утверждений, которые образуют проблемно-ориентированную базу данных и правила, имеющие вид условий.
Можно выделить ещё один класс языков программирования – объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме.
Первый объектно-ориентированный язык программирования Simula был создан в 1960-х годах Кристеном Нигаардом и Оле-Йоханом Далом.
Ява – язык для программирования Internet, позволяющий создавать безопасные, переносимые, надёжные, объектно-ориентированные интерактивные программы. Язык Ява жёстко связан с Internet, потому что первой серьёзной программой, написанной на этом языке, был браузер Всемирной паутины.
В последнее время, говоря о программировании в Internet, часто имеют в виду создание публикаций с использованием языка разметки гипертекстовых документов HTML. Применение специальных средств (HTML–редакторов) позволяет не только создавать отдельные динамически изменяющиеся интерактивные HTML-документы, используя при этом данные мультимедиа, но и редактировать целые сайты.
С появлением системы Windows фирма Microsoft разработала графический вариант языка Basic – Visual Basic. Он предназначался для создания программ, работающих в режиме диалога с пользователем, т. е. в визуальном режиме. По мере развития компьютерной технологии VB постепенно превращался из простого языка для начинающих в мощный инструмент для разработки приложений.
Visual Basic – это среда программирования, предназначенная для написания программ, работающих под управлением операционной системы Windows. Используя VB, можно разрабатывать очень сложные приложения практически для любой области современных компьютерных технологий: бизнес-приложения, игры, мультимедиа, базы данных.
ПОСТАНОВКА ЗАДАЧИ
Составить алгоритм и программу для вычисления и вывода на печать в общепринятом виде элементов матрицы Zij по формуле:
,
где i=1, 2, …, 11; j=1, 2, …, 11; а=3.
После вычисления элементов матрицы определить среднее арифметическое значений отрицательных элементов в каждой строке этой матрицы.
БЛОК-СХЕМА
ОПИСАНИЕ БЛОК-СХЕМЫ
Блок 1 – ввод значений заданных элементов массивов Xi, Yj.
Блок 2 – ввод значения а.
Блок 3-6 – сложный цикл для вычисления элементов матрицы.
Блок 3 – начало внешнего цикла: вычисление матрицы по строкам.
Блок 4 – начало внутреннего цикла: вычисление элементов матрицы в текущей строке.
Блок 5 – вычисление элемента матрицы.
Блок 6 – печать вычисленных элементов матрицы.
Блок 7-12 – сложный цикл для вычисления среднего арифметического отрицательных значений матрицы по строкам.
Блок 7 – задание начального количества отрицательных значений матрицы.
Блок 8 – начало внешнего цикла: вычисление среднего арифметического отрицательных значений матрицы по строкам.
Блок 9 – начало внутреннего цикла: вычисление среднего арифметического отрицательных значений матрицы в текущей строке.
Блок 10 – проверка условия, является ли текущий элемент матрицы отрицательным.
Блок 11 – вычисление суммы отрицательных значений матрицы в текущей строке.
Блок 12 – вычисление количества отрицательных значений матрицы в текущей строке.
Блок 13 – проверка условия деления на 0.
Блок 14 – вычисление среднего арифметического отрицательных значений матрицы в текущей строке.
Блок 15 – печать вычисленных значений среднего арифметического отрицательных значений матрицы в текущей строке.
ПРОГРАММНЫЙ КОД
Private Sub Command1_Click()
' Описание массивов и переменных
Dim x(11) As Single, y(11) As Single, z(11, 11) As Single, E(11) As Single
Dim a As Single
Dim i As Byte, j As Byte, n As Single
' Ввод
Print "Значение массива X"
For i = 1 To 11
x(i) = Val(InputBox("Введите x(i)", "Массив X"))
Print x(i);
Next i
Print "Значение массива Y"
For j = 1 To 11
y(j) = Val(InputBox("Введите y(j)", "Массив Y"))
Print y(j);
Next j
a = Val(InputBox("Введите a", "Значение a"))
Print "a ="; a
'Вычисление и вывод
Print "Элементы матрицы"
For i = 1 To 11
For j = 1 To 11
z(i, j) = (Sin(x(i)) ^ 2 + 2 * a * y(j)) / (Sin((x(i) * y(j)) ^ 3) + (a + 2) ^ (1 / 3))
Print z(i, j);
Next j
Next i
' Вычисление варианта 92
Print ("Среднее арифметическое отрицательных элементов по строкам")
For i = 1 To 11
n = 0
For j = 1 To 11
If z(i, j) < 0 Then 'Проверка условия
E(i) = E(i) + z(i, j)
n = n + 1
End If
Next j
If n > 0 Then
E(i) = E(i) / n
End If
Print E(i)
Next i
End Sub
ОПИСАНИЕ ОПЕРАТОРОВ, ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ
Private Sub … End Sub – операторы начала и окончания процедуры соответственно.
DIM – оператор описывает тип используемых одномерных массивов Xi и Yj, двумерного массива Zij, среднего арифметического Ei и простых переменных i и j.
Single – тип переменной; вещественная переменная одинарной точности с плавающей десятичной точкой.
Byte – тип переменной; положительное целое число.
Val – тип переменной; указывает, что данные являются числом, а не текстом.
Print – оператор вывода на экранную форму проекта.
InputBox – системная функция получения данных от пользователя.
For … Next – операторы начала и окончания цикла соответственно.
If … Then – операторы условия.
‘ – оператор-комментарий, используется для пояснения отдельных фрагментов программного кода, непосредственного участия в работе программы не принимает.