Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Имя £ конец



нет

Рис. 35. Управляющая конструкция:

цикл с параметром

Общий вид управляющей структурированной конструкции “цикл с параметром” приводится на рис.35.    

Рассмотрим использование цикла с предусловием при решении
задачи 4, в которой требуется вывести все значения x >1, причем каждое последующее значение x получается делением предыдущего пополам.

1 начало   ввод x     да 3 нет x >1   4 6 вывод конец x 5 x = x / 2       да нет условие     операторы тела цикла
Рис. 36 Блок-схема алгоритма решения задачи 4 с использованием цикла с предусловием. Рис. 37 Управляющая конструк-ция: цикл с предусловием.

Схема решения этой задачи приведена на рис.36. На этой схеме можно выделить условие, остающееся истинным при выполнении цикла
(блок 3). Такое условие называется инвариантом цикла. Блоки 4 и 5 представляют тело цикла. Управляющая конструкция “цикл с предусловием” приведена на рис. 37.

Цикл с предусловием является циклом “пока” и в ряде случаев может быть не выполнен ни разу, что должно соответствовать задуманному алгоритму. Так например, если при решении задачи 5 (см. рис.36) в качестве начального значения x мы введем значение 0.9, то тело цикла (4 и 5 блоки) не выполнится ни разу.

Рассмотрим использование цикла с постусловием при решении предыдущей задачи 5.

Схема решения этой задачи приведена на рис.38. На этой схеме можно выделить условие, остающееся истинным при выполнении цикла (блок 5), инвариант цикла. Блоки 3 и 4 представляют тело цикла. Управляющая конструкция “цикл с постусловием” приведена на рис. 39.

Цикл с постусловием является циклом “до” и отличается от рассмотренных ранее видов циклов тем, что должен выполниться хотя бы один раз.

Так например, если при решении задачи 4 (см. рис.38) в качестве начального значения x мы введем значение 0.9, то тело цикла (3 и 4 блоки) выполнится один раз обязательно.

1 начало   ввод x   вывод x     x = x / 2   да 5 x > 1   нет конец     операторы тела цикла   да условие     нет
Рис. 38. Блок-схема алгоритма решения задачи 5 с использованием цикла с постусловием Рис. 39. Управляющая конструкция: цикла с постусловием

Алгоритмизация задач обработки массивов.

Массивом называется совокупность элементов с одинаковыми свойствами. Любой массив характеризуется:

· именем;

· размерностью;

· типом элементов.

Каждый элемент массива имеет определенное значение, координаты своего местоположения в массиве и обозначается при помощи переменной с индексами. Количество индексов зависит от размерности массива.

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

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

Основными видами задач обработки массивов являются:

· определение суммы значений элементов, произведения значений элементов и среднего арифметического для всех элементов массива;

· определение суммы значений, произведения значений, количества элементов и среднего арифметического для элементов массива, удовлетворяющих определенным условиям;

· определение максимального (минимального) по значению элемента и его местоположения в массиве;

· упорядочение значений элементов в массиве.

Одномерный массив носит название вектора. Элементы одномерного массива имеют по одному индексу. Этот индекс соответствует номеру элемента в векторе.

Рассмотрим вектор A, состоящий из 7 элементов значениями: 30, 25, 18, 20, 7, 11, 9. Любой элемент этого вектора обозначается A(i), где i -индекс, 1 <= i <= 7.

При i=1 A(i) = 30 или A(1)= 30;

при i= 5 A (i) = 7 или A (5) = 7.

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

Задача 5. Определить и вывести сумму значений элементов в массиве A, содержащем 7 элементов.

Блок-схема алгоритма решения данной задачи представлена на рис.40.

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

Блоки 2, 3, 4 и 5 описывают циклический процесс ввода элементов одномерного массива в память. Блоки 7, 8, 9, 10 предназначены для организации цикла накопления суммы элементов массива “нарастающим итогом”. При решении задач подсчета суммы значений элементов массива определяется “чистая“ область памяти, в которой должна накапливаться сумма (блок 6).

Задача 6. Определить количество и сумму значений отрицательных элементов в векторе.

Как видно, постановка задачи дана в общем виде. Блок-схема алго­ритма решения такой задачи приведена на рис.41. В блоке 2 осуществляется ввод количества элементов массива (в переменную n). Блоки 3, 4, 5, 6 описывают ввод в цикле n элементов массива с произвольно заданным именем V. В блоке 7 подготавливается область памяти для подсчета произведения значе­ний элементов (p = 1), а в блоке 8 - для подсчета количества элементов(k=0).

Блоки 9 - 14 организуют циклический процесс подсчета количества и произведения значений отрицательных элементов.

1 начало   i=1   ввод A (i)   i = i + 1     i £ 7     S = 0   i = 1 S = S + A (i)   i = i + 1   10 i £ 7     вывод S   конец         нет   да начало ввод n   i = 1 ввод V (i)   i = i + 1   i £ n   нет P = 1   n = 0   i = 1   V (i) < 0         i = i + 1   i £ n вывод P, k   конец     да   P=P* V(i)   K = K+1

Рис. 40 Блок-схема алгоритма Рис. 41 Блок-схема алгоритма решения задачи 5.

решения задачи 6

. Двухмерный массив носит название матрицы. Рассмотрим числовую матрицу B, состоящую из 4 строк и 3 столбцов (см. рис. 42).

3 2 8

1 6 9

1<= i<=4 10 4 7

5 2 1

       
   


1<=j<=3

Рис. 42. Пример числовой матрицы, состоящей из 4 строк и 3 столбцов.

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

Если номер строки обозначить буквой i, а номер столбца - буквой j, то для рассматриваемой нами матрицы B (см. рис. 42) будут справедливы следующие утверждения:

при i = 1 и j = 2 B(i,j)= 2; при i = 3 и j = 1 B(i,j)= 10 и т.д.

Рассмотрим типовые задачи обработки двухмерных массивов.

Задача 7. Определить и вывести среднее арифметическое для элементов матрицы B, состоящей из 4 строк и 3 столбцов.

Среднее арифметическое представляет собой отношение суммы значений элементов к количеству этих элементов. Количество в данной задаче определять не нужно, т.к. оно известно (4 * 3), поэтому основная обработка сводится к определению суммы значений элементов.

Блок - схема алгоритма решения этой задачи приведена на рис.43.

На схеме хорошо видны два последовательно расположенных циклических участка: один - для организации ввода данных (блоки 2- 8), другой - для организации вычисления суммы значений элементов матрицы (блоки 10 -16).

Каждый из этих циклических участков представляет собой вложенные циклы.

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

Так на схеме (рис. 43) можно различить заголовок внешнего цикла c параметром i (блоки 2,7,8), тело внешнего цикла (блоки 3, 4, 5, 6), которое представляет собой внутренний цикл с параметром j со своим заголовком (блоки 3, 5, 6) и телом цикла (блок 4).

1 начало   i=1   j = 1   ввод B (i, j)   j = j + 1   да 6 j £ 3   i = i + 1   ДА i £ 4   9 нет S = 0     i = 1   j = 1   S = S + B (i,j)   j = j + 1     да 14 j £ 3 нет i = i + 1   да 16 i £ 4 нет S = S/12   вывод S   конец  

Рис.43. Блок-схема алгоритма решения задачи 7.


1 начало   ввод n, k   i = 1   j = 1   ввод A (i, j)   j = j + 1   да i £ k   8 нет i = i + 1     9 i £ n     M = A (1,1)     T = 1     L = 1   i = 1     j = 1     нет 15 да A (i, j) < M   M = A (i, j)     T = i   L = j     j = j + 1  
       
   


A B C

  A B C да 20 j £ k   21 нет i = i + 1     да i £ n   нет вывод M, T, L   конец     Рис. 44. Блок-схема алгоритма решения задачи 8.  

Задача 8. В произвольной матрице определить значение минимального элемента и его координаты (номер строки и номер столбца).

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

Блок - схема алгоритма решения этой задачи показана
на рис. 44.

Контрольные вопросы

1) Какие существуют этапы подготовки задач к решению на компьютере?

2) Что представляет собой этап постановки задачи?

3) Что представляет собой этап алгоритмизации?

4) Что представляет собой этап программирования?

5) Что представляет собой этап отладки программы?

6) Что такое алгоритм?

7) Откуда произошло слово «алгоритм»?

8) Какие основные свойства алгоритмов?

9) Какие способы изображения алгоритмов вам известны?

10) Что называется блок-схемой алгоритма?

11) Какие виды вычислительных процессов вам известны?

12) Какой вычислительный процесс называется линейным?

13) Какой вычислительный процесс называется ветвящимся?

14) Какой вычислительный процесс называется циклическим?

15) Какие виды циклов вам известны?

Тема 3.2. Основные понятия объектно-ориентированного программирования.

Особенности использования объектов. Свойства и методы. Коллекции. Обработка ошибок. Компьютерный практикум.

Основные понятия языка Visual Basic: Языки программирования высокого уровня. Основные понятия, обзор. Обзор возможностей Visual Basic. Интерактивная среда разработки. Структура приложений и технология их создания.

Структура программы. Операторы и комментарии. Данные: переменные и константы. Стандартные типы и объекты. Объявление переменных. Управляющие конструкции. Средства разработки пользовательского интерфейса. Процедуры SUB и FUNCTION. Встроенные функции.

Тема 3.2 Основные понятия языка Visual Basic.

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

Почти все, с чем производится работа в VISAUL BASIC, является объектами. Например, объектами являются: Форма, Командная кнопка, Текстовое поле и т. д.

Каждый объект характеризуется:

· свойствами;

· методами;

· событиями.

Свойство -это имеющий имя атрибут объекта. Свойства определяют характеристики объекта (цвет, положение на экране, состояние объекта).

Методы - это действия или задачи, которые выполняет объект (то, что можно делать с объектами).

Классом объектов в объектно-ориентированных языках программирования называется общее описание таких объектов, для которых характерно наличие множества общих свойств и общих действий, которые способны выполнять эти объекты

Например, класс «Командная кнопка» содержит общее описание кнопок в окнах приложений.

В VISAUL BASIC программный код почти всегда привязывается к какому-либо событию, которое является сигналом к началу работы программы.

Примеры событий:

· щелчок мыши по какому-либо объекту экранной формы;

· загрузка новой экранной формы;

· перемещение указателя мыши вдоль полосы прокрутки;

· нажатие какой-либо клавиши на клавиатуре.

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

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

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

Этапы создания WINDOWS-приложения

Создание любого WINDOWS-приложения состоит из следующих этапов:

1. Постановка задачи. Описание принципа работы будущего приложения, видов экранных форм (окон) этого приложения.

2. Разработка интерфейса. Создание экранных форм приложения со всеми находящимися на этих формах объектами и свойствами этих объектов.

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

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

5. Сохранение проекта и при желании - компиляции (превращение проекта в исполняемое приложение, способное работать самостоятельно за пределами среды проектирования).

Существует два режима работы приложения:

· интерпретации

· компиляции

В режиме интерпретации все инструкции на языке БЭЙСИК, из которых состоит программа, будут выполняться системой VISAUL BASIC непосредственно в процессе их чтения компьютером строка за строкой в среде разработки.

В режиме компиляции сначала производится отладка программы с помощью интерпретатора, затем она полностью транслируется (переводится) с языка высокого уровня (БЕЙСИКа) на язык низкого уровня (язык машинных команд компьютера), то есть компилируется.

Скомпилированная программа помещается в файл с расширением exe. Этот файл может быть запущен на исполнение самостоятельно, без поддержки среды VISAUL BASIC.

Правила записи текста программы на VISAUL BASIC

Каждая строка текста на VISAUL BASIC может содержать операторы и комментарий. Оператор VISAUL BASIC может иметь любую требуемую длину. Для размещения одного оператора на нескольких строках в месте разбиения оператора вставляются символы «пробел» и «_».

При размещении нескольких операторов в одной строке они разделяются «:».

Комментарий может занимать всю строку, либо размещаться после всех операторов. Индикатором комментария является символ «’».

Типы данных. Переменные, константы и массивы.

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

В языке VISAUL BASIC могут храниться и обрабатываться данные следующих типов:

Byte Целое неотрицательное число. Принимает значения от 0 до 255, занимает 1 байт.

Boolean Логическая величина. Принимает одно из двух значений True и False, занимает 2 байта.

Currency Десятичное протяженное число. Используется для проведения денежных вычислений с фиксированным количеством знаков после десятичной запятой, занимает 8 байт. (До 15 знаков слева от десятичной точки и до 4 знаков справа от десятичной точки).

Date Дата. Используется для хранения дат/времени, занимает 8 байт.

Double Десятичное число двойной точности, занимает 8 байт.

Integer Короткое целое числовое значение, занимает 2 байта. Используется для представления целых чисел в диапазоне от –32768 до 32767.

Long Длинное целое число, занимает 4 байта. Используется для представления целых чисел в диапазоне от –2147483648 до 2147483647.

Single Десятичное число обычной точности, занимает 4 байта. Используются для представления отрицательных чисел в диапазоне от –3.402823E 38 до –1.401298E-45 и для представления положительных чисел в диапазоне от 1.401298E-45 до 3.402823E 38.

String Строка переменной длины. Занимаемая память линейно зависит от числа символов в строке.

String * длина Строка постоянной длины.

Variant Произвольное значение. Используется для хранения данных любых типов. Занимает 16 байтов плюс по одному байту на каждый символ, если значением является строка.

Object Объект. Используется только для хранения ссылок на объекты, занимает 4 байта.

Одним из самых важных понятий в языке программирования является понятие переменной.

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

Т.о., для доступа к содержимому этой области памяти достаточно знать имя переменной.

Имя переменной ( идентификатор ) -это строка символов, которая отличает эту переменную от других объектов программы (идентифицирует переменную в программе).

Правила задания имен переменных:

1. Первым символом имени должна быть буква.

2. Остальные символы - буквы и цифры. (Прописные и строчные буквы различаются). Может использоваться символ "_"

3. Нельзя использовать символ "."

4. Число символов не должно превышать 255.

5. Имя переменной не должно совпадать с зарезервированными (служебными) словами языка.

В VISAUL BASIC существуют следующие возможности объявления типа переменной (все объявления переменных должны находиться в начале программного кода):

1) переменная может вообще не объявляться. В этом случае по умолчанию будет установлентип Variant. Однако это может привести к медленной неэффективной работе программы и нерациональному использованию памяти.

2) переменная может объявляться явно с помощью оператора определения переменной:

Dim имяПеременной [ As типПеременной]

Например:

Dim My_name As String

Dim Число_ворон As Integer, Пи As Double

Dim Яблоко

Dim НомерТелефона AsString *12

Чтобы переменные всегда объявлялись явно, нужно использовать опцию Option Explicit в секции (General) (Declarations) существующих форм, модулей или классов (см. рис. 2.1).

После установки этой опции VISAUL BASIC требует явного описания переменных и при использовании в коде необъявленной переменной выдаст сообщение об ошибке.

Рис. 45. Модуль с опцией Option Explicit вокне редактора кода.

3) переменная может объявляться неявно:

a)с помощью оператора объявления типа:

Def Тип Начальная буква [ - Конечная буква]

Вместо Тип в Def Тип указывается одно из следующих ключевых слов:

- DefInt (для типа Integer);

- DefLng (для типа Long);

- DefSng (для типа Single);

- DefStr (для типа String), и так далее.

Например:

' (General) (Declaration)

DefInt A - Z

Dim A, B As Byte

Dim С, D As Long

Здесь во второй строке определяется, что все переменные, не объявленные явно и начинающиеся с любой буквы в диапазоне от A до Z, будут по умолчанию иметь тип Integer. Т.о. в примере переменная B имеет тип Byte, переменная D имеет тип Long, а переменные A и C - тип Integer.

b) с помощью суффикса:

О типе переменной можно судить (правда не всегда) по суффиксу, приписываемому к имени переменной. Суффиксы могут быть только у шести типов переменных:

Суффикс % & ! # $ @
Тип Integer Long Single Double String Currency

Например:

My_name$ - переменная типа String

Пи# - переменная типа Double

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

Константы - величины, значения которых не могут меняться.

Как и переменные, константы объявляются в начале текста программного кода оператором:

Const ИмяКонстанты [As Тип] = Значение

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

Например:

Const Pi = 3.1415926535

Const mName As Sring = "Maria"

Массив - это набор элементов определенного типа, каждый из которых имеет свой порядковый номер, называемый индексом.

Определение массива в операторе:

Dim ИмяПеременной ([НижнийПредел To] ВерхнийПредел) [ As тип]

VISAUL BASIC индексирует всегда, начиная с нуля, т.е. индекс 0 обозначает первый элемент массива, индекс 1 - второй и так далее.

Например:

‘объявляется массив из 15 элементов (0-14)

Dim CN(14) As Integer

‘Объявляется массив из 15 элементов

Dim CM(1 To 15) As Integer

Оператор Option Base позволяет задать индексацию массива с единицы. Этот оператор должен находиться в секции (General) (Declarations):

' (General) (Declarations)

Option Base 1

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

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

В VISAUL BASIC весь программный код находится внутри процедур (подпрограмм). Общая структура описания подпрограммы VISAUL BASIC:

Sub имя_подпрограммы[(аргументы)]

операторы VISAUL BASIC





Дата публикования: 2014-11-18; Прочитано: 355 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.049 с)...