Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика ответы.docx
Скачиваний:
6
Добавлен:
21.09.2019
Размер:
242.82 Кб
Скачать

Разветвляющая алгоритмическая структура. Основные операторы циклов. Типовые примеры

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

Пример разветвляющегося алгоритма – алгоритм решения квадратного уравнения. Появление условия при решении этой задачи связано с отсутствием корней при отрицательном дискриминанте. Рассмотрим блок-схему этого алгоритма:

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

Для описания разветвляющегося алгоритма существуют операторы:

1.                условный

блочной структуры:

IF условие THEN

блок действий 1

ELSE

блок действий 2

ENDIF

линейной структуры:

IF условие THEN блок 1 ELSE блок 2

Обе структуры могут быть использованы как в полной форме так и в усеченной – без блока ELSE.

При работе условного оператора сначала проверяется выполнение условия. Если условие выполняется (истинное), то реализуется блок 1, в противном случае – блок 2. Условие – это логическое выражение, использующее операции сравнения (=, <, > <=, >=, <>) и логические операции (AND, OR).

Программа решения квадратного уравнения с использованием условного оператора имеет вид:

CLS : INPUT A,B,C : D=B^2-4*A*C

IF D>0 THEN

X1=(-b+SQR(d))/(2*a) : X2=(-b-SQR(d))/(2*a) : PRINT  X1,X2

ELSE

PRINT ”Решенией нет”

ENDIF

2.                выбора (выражением может быть список через запятую 1,3,4 диапазон значений 1 TO 9; операция сравнения IS >=).

SELECT CASE  выражение

CASE условие 1

блок операторов 1

CASE условие 2

блок операторов 2

CASE ELSE

блок операторов n

END SELECT

CLS : INPUT A,B,C : D=B^4*A*C

SELECT CASE  D

CASE IS >0

X1=(-b+SQR(d))/(2*a)

X2=(-b-SQR(d))/(2*a) : PRINT  X1,X2

CASE ELSE

PRINT ”Решенией нет”

END SELECT

END

Циклические алгоритмические структуры. Основные операторы ветвления. Типовые примеры

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

Циклы бывают с определённым количеством, неопределённым числом вычислений.

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

FOR  I = IН TO  IK STEP h

тело цикла

NEXT I

Оператор цикла с предусловием:

DO WHILE условие продолжения вычислений  (UNTIL условие прекращения вычислений)

тело цикла

LOOP

Оператор цикла с постусловием:

DO

тело цикла

LOOP WHILE условие продолжения вычислений  (UNTIL условие прекращения вычислений)

4 Вопрос. Информатика. Понятие языка программирования. Классификация языков программирования.

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

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

Как показала в дальнейшем практика общения с компьютером, такой язык громоздок и неудобен. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.

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

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

  • библиотеки стандартных подпрограмм,

  • отладчик

  • компоновщик

  • и другие сервисные средства.

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

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

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

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

Процедурные

Функциональные

Логические

Объектно-ориентированные

Ведущими разработчиками систем программирования в настоящее время являются фирмы Microsoft и Borland International.

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

Функциональные языки программирования. Программа на таком языке представляет  собой совокупность описаний функций и выражения, которые необходимо вычислить. Оно вычисляется посредством редукции (т. е. серии упрощений). Функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объекта программы, что полностью соответствует понятию переменной в математике. Наличие стройной математической основы обеспечивает возможность использования алгебраических методов создания структуры, преобразования и исследования программ. Это в какой-то мере приближает их к описанию структуры мышления человека. Примером функционального языка является язык LISP (List Processing-обработка списков) Разработан и реализован в Массачусетском технологическом институте в 1959 г. Рассматривается специалистами как основной язык программирования систем искусственного интеллекта.

Логическое программирование Логика и программирование долгое время были непересекающимися областями исследований. Только в 1973 впервые было опубликовано описание языка PROLOG (PROgramming in LOGic- программирование в терминах логики) Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами и цели. В логическом программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Логические программы отличаются принципиально низким быстродействием. Так как вычисления осуществляются методом проб и ошибок (посредством поиска с возвратами). В настоящее время для ПК существует около двух десятков реализации PROLOG’а, некоторые из которых оформлены в виде интегрированных сред.

Объектно-ориентированное программирование. Корни объектно - ориентирования уходят в одну из ветвей логики, в которой первичной является не отношение, а объект. Прототипом объектно-ориентированного программирования явился язык SIMULA-67. Но оформилось оно в самостоятельный стиль программ ирония с появлением языка (SMALLTALK-1972 г.), первоначально предназначенного для реализаций функций машинной графики. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Именно модульность упрощает разработку сложных программных продуктов. Как пример объектно-ориентированного языка можно назвать Visual Basic  и Delfi.

10

Алфавит и лексемы языка VBA.

Как и любой другой язык Visual Basic имеет свой алфавит. В него входят:

  • прописные и строчные буквы латинского алфавита;

  • прописные и строчные буквы кириллицы;

  • цифры от  0 до 9;

  • Символ подчеркивания “_”.

Из этих символов конструируются имена переменных, констант, процедур, функций, меток переходов, а также имена типов.  Кроме этих символов в состав алфавита также входят:

  • не изображаемые символы, используемые для отделения лексем друг от друга (пробел, табуляция, переход на новую строку);

  • специальные символы, участвующие в построении конструкций языка:

  • составные символы, воспринимаемые как один символ:  <=   >=    <>   .

Разделители в составных символах недопустимы.

Программный код Visual Basic представляет собой последовательность лексических единиц (лексем), записанных в соответствии с принятыми синтаксическими правилами, которая реализует некоторую семантическую конструкцию. Для обеспечения читаемости и понятности  в тексте программы помещаются комментарии. В Visual Basic определен однострочный комментарий. Комментарий представляет собой последовательность любых символов, размещаемых на одной строке исходного текста программы, которая начинается  со знака ‘ (апостроф) или с ключевого слова Rem:

‘  Это комментарий

Rem  Это тоже комментарий

 Лексема – это единица текста программы, которая имеет определенный смысл для компилятора и которая не может быть разбита в дальнейшем. В Visual Basic различают шесть классов лексем: 

  1. свободно выбираемые и используемые идентификаторы;

  2. служебные (зарезервированные) слова;

  3. константы;

  4. строки (строковые константы);

  5. операции (знаки операций);  

  6. разделители (знаки пунктуации).

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

  • имя должно начинаться с буквы;

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

  • имя должно быть уникальным, оно не должно совпадать с зарезервированными словами Visual Basic или с другими именами;

  • длина имени может включать до 255 символов, но следует иметь в виду, что Visual Basic учитывает только первые 31 символов от начала имени.

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

 Зарезервированные слова Visual Basic           Таблица 7.1.

All

Else

Friend

Len

Null

Property

String

As

Empty

Get

Let

ON

Public

TABLE

ASC

Error

IN

Lock

On

Resume

Then

Binary

False

INDEX

Me

Option

Seek

Time

BY

Date

Input

Mid

Optional

SELECT

To

ByRef

DESC

INTO

New

ParamArray

Set

WITH

ByVal

DROP

Is

Next

Print

Static

WithEvents

CREATE

For

JOIN

Nothing

Private

Step

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

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

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

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

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