Основы алгоритмизации

Автор: Пользователь скрыл имя, 23 Марта 2012 в 21:24, курс лекций

Краткое описание

Этапы решения задач на ЭВМ. Алгоритм и его свойства. Способы записи алгоритма: словесный способ; структурно-стилизованный способ; блочно-схематический способ; структурограммы Насси-Шнейдермана; программный способ.

Файлы: 1 файл

ЛЕКЦИИ ПО ИНФОРМАТИКЕ.doc

— 4.37 Мб (Скачать)

А=1

А=А+1

переменная А примет значение 2.

3.      Математически выражение А+9–В=Х вполне обосновано и может означать, что при подстановке некоторых числовых значений вместо А и В в левую часть выражения получим значение Х.

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

Операторы ввода данных

Данные в программу можно ввести 3-я способами.

1.      Ввод данных с помощью оператора присваивания.

NUM1=10

NUM2=12

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

2.      Ввод данных с использованием клавиатуры.

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

INPUT X

где Х – имя переменной, для которой требуется ввод значения.

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

1.        на экране появляется знак вопроса;

2.        программа приостанавливает работу и ждет, когда вы наберете какое-либо значение на клавиатуре. Нажатие клавиши ввода ENTER сообщает программе, что ввод окончен;

3.        введенное значение присваивается переменной;

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

3.      Ввод данных при помощи оператора DATA/READ.

Оператор DATA объявляет и хранит числовые или текстовые значения в списке данных. Оператор DATA должен всегда сопровождаться оператором READ. Этот оператор, в отличие от DATA выполняемый. Синтаксис оператора:
DATA значения

READ имена

где значения – список значений (числовых или текстовых), разделенных запятыми;

имена – список имен переменных, разделенных запятыми.

Оператор DATA может содержать одно или несколько значений любого типа:

DATA 5, -30, Мадина, -1.7Е10, 2.5

Числовые значения могут быть любого типа – целые, действительные и т.д. Однако в качестве числовых значений нельзя использовать арифметические выражения, такие как 5+3 или 3*16+23, т.к. DATA является невыполнимым оператором (DATA декларирующий оператор). По этой причине его местоположение в программе  не столь важно, он может размещаться как до, так и после оператора READ. Но лучше операторы DATA группировать в начале или конце программы. Беспорядочное размещение данных операторов в тексте делает отладку программы более сложной.

Программа может содержать произвольное число операторов DATA и любое число значений в каждом таком операторе. В любом случае значения будут считываться последовательно – первое значение из первого оператора DATA будет присваиваться первой переменной первого оператора READ и так далее.

DATA 1, 2

DATA 3, 4

DATA 5

READ A%, B%, C%, D%, E%

PRINT A%; B%; C%; D%; E%

Результат:

1 2 3 4 5

Press any key to continue

Можно использовать любое количество операторов READ. Главное – чтобы количество переменных соответствовало количеству значений в операторе DATA. Если значений в операторе DATA больше, чем переменных в операторе READ, то это не трагедия, поскольку эта потеря не влияет на ход выполнения программы. Однако, если присваивается переменным больше значений, чем их объявлено в операторе DATA, программа тут же сообщит об ошибке (Out of DATA – нет данных в DATA). Например,

DATA 1, 2

READ A%, B%, C%

Оператор вывода данных

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

Формат оператора:

PRINT список вывода

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

Элементы списка разделяются запятыми или точкой с запятой.

PRINT ″Сумма элементов вектора =″; S

PRINT A, B, C

PRINT ″Корень уравнения =″; (X0-X1)/2

PRINT ″Адрес″; A$; ″Телефон″; T$

Если переменные разделены точкой с запятой (;), то данные разделяются одним пробелом – данные выводятся в компактном формате. Если переменные разделены запятой (,), то осуществляется зонный формат вывода. При зонном формате вывода строка разделяется на 5 зон по 14 позиций в каждой. Каждое выводимое значение размещается  в своей зоне.

Отсутствие запятой или точки с запятой в конце списка вывода вызывает переход на новую строку. Например, при выполнении операторов

PRINT X, Y,

PRINT W

Все три значения выводятся в одной строке и каждое из них в своей зоне.

При выполнении операторов

PRINT X, Y

PRINT W

выводятся два значения X, Y в одной строке, а значение W – в следующей.

Оператор PRINT может попутно выполнять арифметические действия. Например,

PRINT 5+4

9

Press any key to continue

 

Операторы конца

QBasic (QB) имеет три оператора, которые прерывают выполнение программы – END, STOP, SYSTEM.

Когда QB встречает команды или SYSTEM, он закрывает все файлы и прекращает выполнение программы. Команда STOP отличается тем, что оставляет текущие файлы открытыми, временно приостанавливает выполнение и возвращает на экран текст программы. При следующем запуске выполнение программы начнется с оператора, следующего за оператором STOP.

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

PRINT ″Это моя программа″                            PRINT ″Это моя программа″

PRINT ″Я ее создал сам″                                          END

END                                                                                     PRINT ″Я ее создал сам″

Результат:                                                                      Результат:

Это моя программа

Я ее создал сам

 

Press any key to continue

 

 

 

 

 

Это моя программа

 

 

Press any key to continue

 

 

Оператор-комментарий

Комментарии используются для пояснения текстов программы. Комментарии должны быть краткими  и простыми. При выполнении программы QB игнорирует все комментарии. Для включения в текст комментария можно использовать либо оператор REM, либо апостроф.

Формат оператора:

REM текст

Например:

REM Данная программа считает сумму элементов

или

‘ Данная программа считает сумму элементов

Программирование алгоритмов линейной структуры

Задача 13.1. Вычислить значение функции .



                

REM Программа

INPUT X

Z=X+1

F=Z^2+3*Z

PRINT

PRINT ″F= ″;F

END



Задача 13.2. Рассчитать значение S по формуле , где .

 



 

REM Программа 13.2

INPUT X, Y

T=LOG(X^2+Y^2)+COS(Y^3)^2

S=SQR(T^2+1)

PRINT″Результат S=″;S

END

 



Задача 13.3. Рассчитать U по формуле , где ,

 



 

 

 

 

 

REM Программа 13.3

INPUT X, Y

W=SQR(EXP(X))+2*Y+3*TAN(X)

V=(3*X+LOG(2*Y)^2+3)/(EXP(X/2)+COS(Y^2))

U=V^2+W

PRINT ″U= ″;U

END

 



Тема 14. Программирование алгоритмов разветвляющейся
                структу­ры

Условный и безусловный операторы. Оператор варианта

Условный и безусловный операторы

Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить то или иное действие. С помощью этого оператора программируются алгоритмы разветвляющейся структуры.

Простейшая форма условного оператора (неполная форма):

IF условие THEN операторы

где условие – выражение, которое может иметь только одно из двух значений «истина» или «ложь»;

операторы – один или более операторов, которые выполняются, если условие истинно; операторы разделяются двоеточием и должны обязательно размещаться в одной строке. Команды, выполняющиеся в случае ложности условия, записываются непосредственно под командой IF.

Например:

IF A%<B% THEN C%=B%–A% : PRINT ″C%=″;C%

D%=A%+B%

PRINT″D%=″; D%

Полная форма условного оператора в линейном виде:

IF условие THEN операторы1 ELSE операторы2

Полная форма условного оператора в блочном виде:

IF условие THEN

операторы1

ELSE

операторы2

END IF

где условие – логическое выражение;

операторы1 – один или более операторов, которые выполняются, если условие истинно;

операторы2 – один или более операторов, которые выполняются, если условие ложно;

IF A%<B% THEN

C%=B%–A%

PRINT ″C%=″;C%

ELSE

D%=A%+B%

PRINT″D%=″; D%

END IF

Оператор безусловного перехода записывается в форме:

GOTO строка

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

Оператор GOTO называется оператором безусловного перехода, поскольку он передает управление без всяких условий.

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

Оператор GOTO должен быть либо единственным оператором строки, либо последним оператором многооператорной строки.

Например,

S=0: X=0.01: N=N+1: GOTO 120

Оператор варианта

Условный оператор (оператор варианта) SELECT CASE обладает большими возможностями и может заменить оператор IF…THEN.

Оператор SELECT CASE проверяет логические условия (как и в операторе IF, они могут иметь значение «истина» или «ложь») и определяет оператор, который будет выполняться следующим. Общая форма этого оператора:

SELECT CASE выражение

CASE условие

              {операторы}

CASE условие

              {операторы}

CASE ELSE

              {операторы}

END SELECT

где – выражение, любое числовое или текстовое выражение;

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

{операторы} – блок, который содержит любое число операторов.

Блок SELECT CASE… END SELECT является логически законченной и практически независимой частью программы. Число CASE-блоков зависит от решаемой задачи. И, кроме того, можно использовать блок CASE ELSE, который получает управление, если ни одно из условий не выполняется.

Существуют различные способы записи условных выражений в блоках CASE.

1.      CASE значение1 TO значение2

В этом формате проверяется, принадлежит ли значение выражения области [значение1 – значение2].

Информация о работе Основы алгоритмизации