По таблице можно определить, что температура в первый день месяца была 5 градусов, во второй – 7, в десятый – 3, а в двадцать девятый - 0.

Если обозначим последовательность температур за весь месяц, например, буквой t, тогда можно обозначить через t(l) температуру первого дня месяца, t(2) - второго, ..., t(31) -последнего. Тогда каждый из этих элементов обладает именем и значением, т. е. является переменной с индексом.

Таким образом, под массивом можно понимать набор однотипных данных, объединенных одним именем и отличающихся индексами.

В нашем примере имя массива t, а индекс может принимать любые целочисленные значения от 1 до 31. Обращение к элементу массива производится по его имени, состоящему из имени массива и его индекса, например, t(7), при этом каждый элемент массива имеет свое значение. Если индекс массива имеет значение i, то обращение к элементу массива можно осуществить как t(i).

Этот пример является определением одномерного массива – одномерной таблицы, а если данные можно представить в виде двумерной таблицы, то и массив можно определить как двумерный.

Массивы могут быть различных типов: числовые, строковые и т. д.

Объявление одномерных массивов

Массив перед первым использованием необходимо объявить с помощью оператора Dim. Объявление массива отличается от объявления переменных тем, что после имени массива в скобках указывается диапазон значения индекса – минимальное и максимальное его значения или только максимальное.

Объявить массив температур, рассмотренный в п. 9.1, можно одним из следующих способов:

НЕ нашли? Не то? Что вы ищете?

Dim t(31) As IntegerУказывается максимальное значение индекса

Dim t(1 To 31) As IntegerУказывается диапазон значений индекса с использованием ключевого слова To

На самом деле в первом случае объявления массива мы указали на один элемент больше. Дело в том, что в VB нумерация элементов массивов по умолчанию начинается с 0 (нуля).

Заполнение одномерного массива

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

Заполнение с помощью функции Inputbox

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

Dim t(1 To 31) As Integer, I As Integer

For I=1 To 31

T(I)= Val(InputBox(“Введите значение дневной температуры _

в ”+Str(I)+” день”

Next I

 

Заполнение с помощью датчика случайных чисел

Заполним числовой массив, состоящий из 11 элементов, случайными целыми числами в интервале от 1 до 10, используя функцию случайных чисел Rnd и функцию выделения целой части Int.

Dim A(10) As Byte, I As Integer

Randomize

For I = 1 To 10

A(I) = Int(Rnd*10) + 1

Next I

 

Вывод элементов одномерного массива

Как правило, элементы одномерного массива выводятся на форму. Для вывода чаще используется цикл со счетчиком, где счетчиком является индекс массива. Рассмотрим вывод элементов одномерного массива на форму, код такой процедуры может быть таким:

Dim A(10) As Byte, I As Integer

For I = 1 To 10

print “A(“;I;”)=”,A(I)

Next I

 

Поиск в одномерных массивах

Данные в массивах обрабатываются с помощью каких – либо алгоритмов. Например, можно отсортировать фамилии, расположенные в массиве, по алфавиту, найти среднее значение температуры воздуха в месяце, определить самого высокого человека в группе и т. д.

Рассмотрим некоторые из алгоритмов, решая такую задачу:

Задача 14. Составить проект программы для нахождения в одномерном массиве, состоящем из 20 действительных чисел, количества элементов, больших 5, среднего значения элементов массива, произведения элементов массива, попавших в интервал (2;4) и минимального элемента массива.

Для решения задачи определим такие переменные:

Areal(20) – массив действительных чисел;

Countt - количество элементов массива, больших 5;

Sum – сумма всех элементов массива;

Aver - среднеe значение элементов массива;

Mult - произведение элементов массива, попавших в интервал (2;4);

Min - минимальный элемент массива.

Массив заполним датчиком случайных чисел числами в диапазоне от 1 до 10, вывод результатов работы программы осуществим на форму с помощью оператора Print. Следовательно, для работы программы на форму достаточно поместить только один объект управления - командную кнопку.

Dim Areal(20) As Single, Countt As Integer, Sum As Single, _

Aver As Single, Mult As Double, Min As Single, i As Integer

Private Sub Command1_Click()

For i = 1 To 20

Areal(i) = 1+ Rnd * 10

Print Areal(i)

Next i

Sum = 0: Mult = 1 ‘подготовка переменных для нахождения суммы, произведения,

Min = Areal(1): Countt = 0 ‘минимального элемента и количества

For i = 1 To 20

Sum = Sum + Areal(i)

If Areal(i) > 2 And Areal(i) < 4 Then Mult = Mult * Areal(i)

If Areal(i) < Min Then Min = Areal(i)

If Areal(i) > 5 Then Countt = Countt + 1

Next i

Aver = Sum / 20

Print " Количество элементов массива, больших 5="; Countt

Print " Среднеe значение элементов массива ="; Aver

Print " Произведение элементов массива, попавших в интервал (2;4) ="; Mult

Print " Минимальный элемент массива ="; Min

End Sub

 
Программный код решения этой задачи будет выглядеть так:

Блок – схема задачи 14 представлена на рисунке ниже.


Задача 15. Задан одномерный массив X1, X2, …XN. Что определяет фрагмент алгоритма, приведенный ниже?

Задача 16.Наиболее точным определением понятия "массив" является...

i.)  самый простой оператор языка программирования

j.)  набор переменных, начинающихся с одной буквы

k.)  последовательность фиксированного числа однотипных переменных, имеющих общее имя

l.)  ограниченная апострофами последовательность любых символов

m.) законченное минимальное смысловое выражение на языке программирования

Обработка строковых выражений

Строка – это либо упорядоченная последовательность символов (знак, для которого установлен определенный код – число от 0 до 255), либо пустая строка. Для обозначения строки используются кавычки:

“” – обозначение пустой строки;

“студент” – пример непустой строки.

Количество символов в строке называют длиной строки.

Каждый символ в строке имеет свою позицию – порядковый номер при счете слева направо. Например, символ “д” в строке “студент” имеет 4-ю позицию.

При программировании часто приходится иметь дело не со всей строкой, а с частью строки и ее называют подстрокой (следует заметить, что это не определение, а понятие). Например, “ход” – это часть строки “пароход”.

Строки можно складывать, и эта операция называется конкатенацией. Конкатенация обозначается знаком “+” или “&”.

Следующий программный код демонстрирует единственную операцию над строками:

Dim S1 As String, S2 As String, S As String

S1=”Сам” : S2 = “лет”

S=S1+”о”+S2

 

Значением переменной S будет строка “Самолет”.

Для работы со строками в VB существует ряд функций. Перечень наиболее часто использующихся функций приведен ниже.

Строковые функции. Строковые функции либо возвращают строковые значения, либо их аргументами являются строковые величины. К строковым функциям отнесем: функцию определения длины строки, функции выделения подстроки и функцию поиска подстроки, а также функции преобразования. Для указания аргументов в функциях будем использовать суффиксы.

Функция

Возвращаемое значение

Len(S$)

Функция определения длины строки S$

Mid(S$,P,[K])

Функции выделения подстроки с позиции P длиной K

Left(S$,K)

Функция выделения подстроки слева длиной K

Right(S$,K)

Функция выделения подстроки справа длиной K

InStr(S$,T$)

Функция поиска подстроки T$ в строке S$

Val(S$)

Функция преобразования строки S$ в число

Str(F)

Функция преобразования числа F в строку символов

Например,

left(«Василий»,3) дает результат «Вас»,

right(«Василий»,3) дает результат «лий»

mid(«Василий»,2,3) дает результат «аси».

Применение некоторых из них приведено в программном коде при решении следующей задачи:

Задача 17. Ввести слово и определить совпадают ли в нем вторая буква от начала слова и третья буква от конца слова (в слове больше 3-х букв).

Пусть S – слово, S2 – вторая буква от начала слова, а S3 – третья буква от конца слова, L-длина слова. Для ввода слова S используем функцию InputBox, а для вывода букв S1 и S3 оператор Print.

Это простейшая программа, блок-схему для нее составлять не будем.

Программа:

Private Sub Command1_Click()

Dim S As String, S2 As String, S3 As String

Dim L As Integer

S = InputBox("Введите слово")

L = Len(S)

S2 = Mid(S, 2, 1)

S3 = Mid(S, L - 2, 1)

If S2 = S3 Then Print "буквы совпадают" Else Print "буквы не совпадают"

End Sub

Задача 18. Ввести слово и образовать новое слово из всех четных букв.

Пусть S – слово, S2 – очередная четная буква, Sn – новое слово, L-длина слова, I – счетчик цикла. Для ввода слова S используем функцию InputBox, а для вывода очередной четной буквы - оператор Print.


Блок-схема:

Программа:

Private Sub Command1_Click()

Dim S As String, S2 As String, Sn As String

Dim L As Integer, I As Integer

S = InputBox("Введите слово")

L = Len(S)

Sn = ""

For I = 2 To L Step 2

S2 = Mid(S, I, 1)

Sn = Sn + S2

Next I

Print "Новое слово-", Sn

End Sub

Раздел: Эволюция языков программирования

Алгоритм и программа

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

Программа – это логически упорядоченная последовательность команд необходимая для управления компьютером.

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

Языки программирования

Языки программирования - это искусственные языки. Они отличаются от естественных ограниченным, достаточно малым числом слов, значение которых понятно компьютеру (транслятору), и очень строгими правилами записи команд (операторов). Совокупность требований для записи команд образуют синтаксис языка, а смысл каждой команды – семантику языка.

Нарушение формы записи программы приводят к синтаксической ошибке, а правильно написанная программа, но не отвечающая алгоритму, приводит к семантической ошибке (по другому – логической, или ошибке времени выполнения программы).

Процесс поиска ошибок в программе называют тестированием, процесс устранения ошибок – отладкой программы.

Уровни языков программирования

Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. “Низкий уровень” –это значит, что операторы близки к машинному коду и ориентированы на конкретный тип процессора. Языком самого низкого уровня является язык Ассемблера, который представляет каждую машинную команду в виде символьных условных обозначений, называемых символьными мнемониками. Перевод программы на языке Ассемблера в машинный язык называется транслитерацией. Программа, написанная на языке низкого уровня, может быть использована только в такой среде, в которой она была создана. С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора.

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

Поколения языков программирования.

Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу « одна инструкция – одна строка».

Расцвет второго поколения языков программирования пришелся на конец 50-х – начало 60-х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ.

Появление третьего поколения языков программирования принято относить к 60-м годам. В это время родились универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Такие качества новых языков, как относительная простота, независимость от конкретного компьютера и возможность использования мощных синтаксических конструкций, позволили резко повысить производительность труда программистов. Подавляющее большинство языков этого поколения успешно применяется и сегодня.

С начала 70-х годов по настоящее время продолжается период языков четвертого поколения. Эти языки предназначены для реализации крупных проектов, повышения их надежности и скорости создания. Они обычно ориентированы на специализированные области применения, где хороших результатов можно добиться, используя не универсальные, а проблемно-ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Как правило, в эти языки встраиваются мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой в языках младших поколений потребовались бы тысячи строк исходного кода.

Рождение языков пятого поколения произошло в середине 90-х годов. К ним относятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Главная идея, которая закладываемая в эти языки,- возможность автоматического формирования результирующего текста на универсальных языках программирования (который потом требуется откомпилировать). Инструкции же вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием.

Классификация и обзор языков программирования


Деление языков программирования на классы можно представить на схеме таким образом:

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

Различают такие языки процедурного программирования:

ü  Язык Фортран создан в начале 50-х годов 20-го века для программирования научно-технических задач;

ü  Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;

ü  Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»;

ü  В середине 60-х годов 20-го века был создан специализированный язык программирования для начинающих – BASIC. Характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых.

Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ.

ü  В гг был создан многоцелевой универсальный язык PL-1. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения.

ü  Язык Паскаль (PASCAL) (гг)- язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему). К основным принципам, которыми обладает Паскаль, можно отнести: а) Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных; б) Программирование «сверху-вниз», когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз.

ü  К языкам процедурного программирования можно отнести язык АДА (1979 г) Язык назван в честь первой программистки Ады Лавлейс - дочери Байрона. Его отличает модульность конструкций.

ü  Язык СИ (начало 70-х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования. Кроме того, в языке СИ отсутствует понятие процедуры, а использование подпрограмм основано на понятии функции, которая может сочетать в себе возможности процедуры. С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным узлам компьютера, а это означает, что его можно использовать как операционный язык.

Объектно-ориентированное программирование (ООП)

Объектно-ориентированное программирование (ООП) — это метод программирования, при использовании которого главными элементами программ являются объекты. В языках программирования понятие объекта реализовано как совокупность свойств (структур данных, характерных для данного объекта), методов их обработки (подпрограмм изменения их свойств) и событий, на которые данный объект может реагировать и, которые приводят, как правило, к изменению свойств объекта.

Объединение данных и свойственных им процедур обработки в одном объекте, называется инкапсуляцией и является одним из важнейших принципов ООП.

Другим фундаментальным понятием является класс. Класс это шаблон, на основе которого может быть создан конкретный программный объект, он описывает свойства и методы, определяющие поведение объектов этого класса. Каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.

Следующими важнейшими принципами ООП являются наследование и полиморфизм.

Наследование предусматривает создание новых классов на базе существующих и позволяет классу потомку иметь (наследовать) все свойства класса – родителя.

Полиморфизм означает, что рожденные объекты обладают информацией о том, какие методы они должны использовать в зависимости от того, в каком месте цепочки они находятся.

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

Наиболее современными языками программирования являются С++ и Java. С середины
90-х годов многие объектно–ориентированные языки реализуются как системы визуального проектирования, в которых интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов. К объектно – ориентированным системам визуального проектирования относятся Visual Basic, Delphi, C++ Builder, Visual C++.

Язык VBA (Visual Basic for Application) – язык приложений Microsoft Office (Excel, Word, Power Point и др). VBA соблюдает основной синтаксис языка и правила программирования языков Basic – диалектов, позволяет создавать макросы для автоматизации выполнения некоторых операций и графический интерфейс пользователя, интеграцию между различными программными продуктами.

Декларативные языки программирования

К ним относятся функциональные и логические языки программирования.

Функциональное программирование- это способ составления программ, в которых единственным действием является вызов функции. В функциональном программировании не используется память, как место для хранения данных, а, следовательно, не используются промежуточные переменные, операторы присваивания и циклы. Ключевым понятием в функциональных языках является выражение. Программа, написанная на функциональном языке, представляет собой последовательность описания функций и выражений. Выражение вычисляется сведением сложного к простому. Все выражения записываются в виде списков. Первым языком стал язык Лисп (LISP, LIST Processing - обработка списков) создан в 1959г. Этот язык позволяет обрабатывать большие объемы текстовой информации.

Логическое программирование- это программирование в терминах логики.

В 1973 году был создан язык искусственного интеллекта Пролог (PROLOG) (Programming in Logic). Программа на языке Пролог строится из последовательности фактов и правил, затем формулируется утверждение, которое Пролог пытается доказать с помощью правил. Язык сам ищет решение с помощью методов поиска и сопоставления, которые в нем заложены. Логические программы не отличаются высоким быстродействием, так как процесс их выполнения сводится к построению прямых и обратных цепочек рассуждений разнообразными методами поиска.

Языки программирования баз данных.

Языки программирования баз данных отличаются от алгоритмических языков прежде всего своим функциональным назначением. При работе с базами данных выполняются следующие операции:

ü  создание, преобразование и удаление таблиц в БД;

ü  поиск, отбор, сортировка по запросам пользователя;

ü  добавление новых записей и модификация существующих, удаление записей и др.

Для обработки больших массивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL (Structured Query Language). Язык SQL – это стандартный язык работы с реляционными базами данных.

Сегодня в мире ведущие производители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Практически в каждой СУБД имеется свой встроенный язык работы с БД. Так, например, в Oracle имеется встроенный язык PL/SQL, в Informix – INFORMIX 4GL, в Adabas – Natural и т. д.

Языки программирования для компьютерных сетей

Языки программирования для компьютерных сетей являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки называются скрипт – языками.

Язык HTML (Hyper Text Markup Language) – универсальный язык разметки гипертекста, используемый для подготовки Web документов для Internet. Язык позволяет форматировать текст, добавлять графические образы, работать с таблицами и организовывать связь одного документа с другим с помощью механизма гиперссылок.

Язык Perl (80 г) содержит многочисленные функции работы со строками, массивами, всевозможные средства преобразования данных.

Язык PHP (гг) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире.

Язык Tcl/Tk (конец 80-х годов) состоит из мощных команд, предназначенных для работы с абстрактными нетипизированными объектами и позволяет создавать программы с графическим интерфейсом.

Язык VRML (1994г) создан для организации виртуальных трехмерных интерфейсов в Интернете.

Язык XML. С 1996г идет работа над созданием универсального языка структуры документов. Может стать заменой языка HTML.

Вопросы к разделу: Эволюция языков программирования

1.  Какие из перечисленных языков подходят для программирования (ответ – все):

n.)  PHP

o.)  Ассемблер

p.)  C, C++

q.)  Java

1.  К какому типу языков относится язык Lisp:

a.)  язык системного программирования

b.)  язык структурного программирования

c.)  язык функционального программирования

d.)  язык логического программирования

2.  Не является принципом объектно-ориентированного программирования...

a.)  инкапсуляция

b.)  наследование

c.)  полиморфизм

d.)  использование функций

2.  Декларативный (с точки зрения парадигмы) язык рассматривает программу как:

a.)  совокупность определений функций, которые обмениваются между собой данными без использования промежуточных переменных и присваиваний.

b.)  совокупность

описания входных данных и описания искомого результата

c.)  описание задачи в терминах фактов и логических формул, а решение задачи выполняет система с помощью механизмов логического ввода

d.)  совокупность описаний процедур

3.  Какие из перечисленных языков являются скриптовыми языками:

a.)  PHP

b.)  C++

c.)  Tcl

d.)  Java

1.  Методика анализа, проектирования и написания приложений с помощью структуры классов, каждый из которых является целостным фрагментом кода и обладает свойствами и методами, называется___________ программированием.

a.)  модульным

b.)  формальным

c.)  структурным

d.)  объектно-ориентированным

2.  Какие из перечисленных языков подходят для программирования:

a.)  PHP

b.)  Ассемблер

c.)  C, C++

d.)  Java

3.  К какому типу языков относится язык Lisp:

a.)  язык системного программирования

b.)  язык структурного программирования

c.)  язык функционального программирования

d.)  язык логического программирования

4.  В языке Prolog при решении задач используются:

a.)  прямая цепочка логического вывода

b.)  конструктор основного класса программы

c.)  обратная цепочка логического вывода

d.)  основная функция программы

5.  В объектно-ориентированном программировании каждый объект по отношению к своему классу является...

a.)  кодом

b.)  экземпляры

c.)  функцией

d.)  фрагментам

6.  Что делает операция модификация над объектом?

a.)  дает доступ к состоянию, но не изменяет его

b.)  доступ к содержанию объекта по частям, в строго определенном порядке

c.)  разрушает объект и освобождает, занимаемую им память

d.)  изменяет состояние объекта

7.  Языки программирования 2-го поколения характеризует:

a.)  система машинных команд конкретного компьютера

b.)  система обозначений для абстрактного описания вычислений

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

d.)  система мнемоник для обозначения машинных команд конкретного семейства компьютеров

8.  Какие виды программ не присущи языку программирования С:

a.)  процедуры

b.)  функции

c.)  модули

d.)  методы

9.  Что делает операция итератор над объектом?

a.)  дает доступ к состоянию, но не изменяет его

b.)  изменяет состояние объекта

c.)  разрушает объект и освобождает занимаемую им память

d.)  доступ к содержанию объекта по частям, в строго определенном порядке

10.  Какие языки являются языками декларативного программирования:

a.)  языки структурного программирования

b.)  языки сценариев

c.)  языки запросов к базам данных

d.)  логические языки

11.  Стиль программирования JAVA требует, чтобы имена данных класса записывались:

a.)  начиная с заглавной буквы

b.)  как угодно

c.)  начиная с префикса "m_"

d.)  начиная с прописной буквы

e.)   

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3