Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гос_экзамен.doc
Скачиваний:
1
Добавлен:
22.09.2019
Размер:
241.15 Кб
Скачать

1

Языки программирования - языки для записи программ для компьютеров. Это совокупность средств и правил представления алгоритма в виде, приемлемом для компьютера

Оператор - выражение обозначающее и описывающее какую-либо операцию

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

Метод разработки сложных алгоритмов сверху вниз, с последующим уточнением, называется МЕТОДОМ ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. При этом способе алгоритмы записываются в виде множества вспомогательных алгоритмов, решающих вспомогательные подзадачи. При составлении новых алгоритмов могут использоваться алгоритмы, составленные раньше. Алгоритмы, целиком используемые в составе других алгоритмов, называют вспомогательными.

Вспомогательный алгоритм реализуется в виде:

  1. Подпрограмм;

  2. Стандартных функций;

3) Функций пользователя.

Порядок составления диалоговых алгоритмов:

задача -> сценарий ->алгоритм -> программа.

Сценарий диалога - это блок-схема из картинок, текстов и сообщений на экране ЭВМ с указанием стрелками порядка их появления.

Виды языков программирования:

1. Машинно-ориентированные языки (языки ассемблера).

2. Языки высокого уровня.

3. Командные языки баз данных.

Примеры языков программирования высокого уровня: Фортран, Алгол,

Бейсик (Basic), Паскаль (Pascal), Си++, Пролог, Лисп, Форт и др.

2

АЛГОРИТМ - это последовательность команд, ведущих к какой-либо цели.

Алгоритм и его свойства

В основе решения любой задачи лежит понятие алгоритма.

Под алгоритмом принято понимать точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату (ГОСТ 19.781-74).

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

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

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

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

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

Алгоритмизация - техника составления алгоритмов и программ для решения задач на ЭВМ.

Алгоритмы бывают линейными, с ветвлением, содержащими циклы и с подпрограммами, а также смешанные (т.е. содержащие и циклы, и ветвление).

ВЕТВЛЕНИЕ - это команда алгоритма, в которой делается выбор: выполнять или не выполнять какую-нибудь группу команд в зависимости от условия.

ЦИКЛЫ - это команды алгоритма, которые позволяют несколько раз повторить одну и ту же группу команд.

Метод разработки сложных алгоритмов сверху вниз, с последующим уточнением, называется МЕТОДОМ ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. При этом способе алгоритмы записываются в виде множества вспомогательных алгоритмов, решающих вспомогательные подзадачи. При составлении новых алгоритмов могут использоваться алгоритмы, составленные раньше. Алгоритмы, целиком используемые в составе других алгоритмов, называют вспомогательными.

Вспомогательный алгоритм реализуется в виде:

  1. Подпрограмм;

  2. Стандартных функций;

3) Функций пользователя.

Порядок составления диалоговых алгоритмов:

задача -> сценарий ->алгоритм -> программа.

Сценарий диалога - это блок-схема из картинок, текстов и сообщений на экране ЭВМ с указанием стрелками порядка их появления.

Исполнители алгоритмов

Главная особенность любого алгоритма - формальное исполнение, позволяющее выполнять заданные действия (команды) не только человеку, но и техническим устройствам (исполнителям). Таким образом, исполнителями алгоритмов могут быть, например, человек, компьютер, принтер, робот-манипулятор, станок с числовым программным управлением, живая клетка, дрессированное животное, компьютерная программа, компьютерный вирус и т.д. Исполнитель алгоритма - это устройство управления, соединенное с набором инструментов. Устройство управления понимает алгоритмы и организует их выполнение, командуя соответствующими инструментами. А инструменты производят действия, выполняя команды управляющего устройства. Прежде чем составлять алгоритм решения задачи, надо узнать, какие действия предполагаемый исполнитель может выполнить. Эти действия называются допустимыми действиями исполнителя. Только их и можно использовать. Исполнитель вычислительных алгоритмов называется вы числителем. Вычислитель может иметь дело с числами и переменными, обозначающими числа. Таким образом, алгоритм - это организованная последовательность действий, допустимых для некоторого исполнителя. Один и тот же исполнитель может быть симитирован на ЭВМ многими способами.

Линейные вычислительные алгоритмы

Основным элементарным действием в вычислительных алгоритмах

является присваивание значения переменной величине. Если значение

константы определено видом ее записи, то переменная величина

получает конкретное значение только в результате присваивания.

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

помощью команды присваивания и с помощью команды ввода.

Структуры управления (control structures) позволяют управлять последовательностью выполнения программы.

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

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

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

Конструкции принятия решения (ветвления)

Конструкция IfThen

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

Ветвления и циклы в вычислительных алгоритмах

Циклы

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

3

Структура языка

Программа в Паскале имеет вид:

I. Заголовок Program <имя программы>;

II. Раздел объявлений (описаний) Const <имя>=<значение>;

Var <имя>,<имя>:<тип1>;

<имя>,<имя>:<тип2>;

процедуры;

функции;

III. Тело программы begin

<операторы>

end.

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

В разделе объявлений должны быть указаны все объекты, с которыми будет работать программа: константы, переменные, процедуры и функции. В разделе Const приводятся значения КОНСТАНТ - величин, которые не изменяются при выполнении программы. В разделе Var перечисляются типы всех ПЕРЕМЕННЫХ - величин, которые могут изменять значения при выполнении программы. Основные типы переменных:

Integer - целые, Real - вещественные, Boolean - логические, Char - символьные.

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

4

Арифметическое выражение задает порядок выполнения действий

над числовыми величинами. Арифметические выражения содержат

арифметические операции, функции, операнды, круглые скобки.

Одна константа или одна переменная — простейшая форма

арифметического выражения.

вещественная

величина.

Арифметический оператор присваивания имеет структуру

<Ариф оператор присваивания>• <Переменная> • <Арифм выражение>

типы переменной и выражения должны быть одинаковыми.

Логическое выражение содержит сравнение.

В Паскале логические значения обозначаются служебными словами

f a l s e (ложь) и t r u e (истина), а идентификатор логического

типа — boolean.

Логические операции выполняются над операндами булева типа.

Имеются четыре логические операции: Not — отрицание; And —

логическое умножение (конъюнкция); Or — логическое сложение

(дизъюнкция).

5

Ввод данных — это передача информации от внешних устройств

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

данные решаемой задачи. Вывод — обратный процесс, когда данные

передаются из оперативной памяти на внешние носители

(принтер, дисплей, магнитные устройства и т.д.). Результаты решения

всякой задачи должны быть выведены на один из этих

носителей.

Основными устройствами ввода-вывода у персонального компьютера

являются клавиатура и дисплей (экран монитора). Именно

через эти устройства главным образом осуществляется диалог

между человеком и ПК.

Процедура ввода с клавиатуры имеет следующий формат:

Read(<cnMCOK ввода>)

где <список ввода> — это последовательность имен переменных,

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

(Точнее говоря, Read — это оператор обращения к стандартной

процедуре ввода.)

Например,

Read(a,b,c,d)

При выполнении этого оператора происходит прерывание работы

компьютера, после чего пользователь должен набрать на

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

друга пробелами. При этом вводимые значения высвечиваются на

экране. В конце нажимают клавишу Enter. Значения должны вводиться

в строгом соответствии с синтаксисом Паскаля.

Другой вариант оператора ввода с клавиатуры имеет вид:

ReadLn(<список ввода>)

Здесь слово ReadLn означает read line — читать строку. Этот

оператор отличается от Read только тем, что после считывания

последнего в списке значения для одного оператора ReadLn данные

для следующего оператора будут считываться с начала новой

строки.

Оператор вывода на экран (обращение к стандартной процедуре

вывода) имеет следующий формат:

Write(<список вывода>)

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

типов (в частности, константы и переменные).

будет начинаться с этой позиции курсора.

Второй вариант процедуры вывода на экран:

WriteLn(<список вывода>)

Оператор WriteLn, записанный без параметров,

вызывает перевод строки.

Форматы вывода. В списке вывода могут присутствовать указатели

форматов вывода (форматы). Формат определяет представление

выводимого значения на экране. Он отделяется от соответствующего

ему элемента двоеточием. Если указатель формата отсутствует,

то машина выводит значение по определенному правилу,

предусмотренному по умолчанию.

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

бесформатного и форматированного вывода величин различных

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

следующие обозначения:

I, P, Q — целочисленные выражения;

R — выражение вещественного типа;

В — выражение булевского типа;

Ch — символьная величина;

S — строковое выражение;

# — цифра;

* — знак «+» или «—»;

_ — пробел.

Форматы процедуры Write

/ — выводится десятичное представление величины /, начиная

с позиции расположения курсора:

Значение / Оператор Результат

134 Write(I) 134

287 Write(1,1,1) 287287287

1:Р — выводится десятичное представление величины / в крайние

правые позиции поля шириной Р:

Значение / Оператор Результат

134 Write (1:6) 134

312 Write ( (I + I) :7) 624

R — в поле шириной 18 символов выводится десятичное представление

величины R в формате с плавающей точкой. Если R > 0,0,

используется формат _#.##########Е*##. Если R < 0,0, то формат

имеет вид _-#.##########Е*##:

Значение R Оператор Результат

715.432 Write(R) _7.1543200000Е+02

-1.919Е+01 Write(R) _-1.9190000000Е+01

R.P — в крайние правые позиции поля шириной Р символов

выводится десятичное представление значения R в нормализованном

формате с плавающей точкой. Минимальная длина поля

вывода для положительных чисел составляет 7 символов, для отрицательных

— 8 символов. После точки выводится по крайней

мере одна цифра:

Значение R Оператор Результат

511.04 Write(R:15) 5.110400000Е+02

46.78 Write(-R:12) -4.67800Е+01

R: Р: Q — в крайние правые позиции поля шириной Р символов

выводится десятичное представление значения R в формате

с фиксированной точкой, причем после десятичной точки выводится

Q цифр (0 < Q < 24), представляющих дробную часть числа.

Если Q— 0, то ни дробная часть, ни десятичная точка не выводятся.

Если Q > 24, то при выводе используется формат с плавающей

точкой:

51

Значение R Оператор Результат

511.04 Write(R:8:4) 511.0400

- 4 6 . 7 8 Write(R:7:2) _-46.78

Ch:P — в крайнюю правую позицию поля шириной Р выводится

значение СИ:

Значение СИ Оператор Результат

'X' Write (Ch:3) X

' ! ' Write(Ch:2,Ch:4) _! !

S — начиная с позиции курсора выводится значение S:

Значение S Оператор Результат

'Day N' Write(S) Day N

'RRDD' Write(S,S) RRDDRRDD

S:P— значение Sвыводится в крайние правые позиции поля

шириной Р символов:

Значение S Оператор Результат

'Day N' Write (S: 10) . Day N

'RRDD' Write(S:5,S:5) _RRDD_RRDD

В — выводится результат выражения В: true или false, начиная

с текущей позиции курсора:

Значение В Оператор Результат

True Write(В) True

False Write (В,Not B) FalseTrue

B:P — в крайние правые позиции поля шириной Р символов

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

Значение В Оператор Результат

True Write(В:6) —True

False Write (В: 6,Not В: 7) _False True

Управление символьным выводом на экран

Использование для вывода на экран только процедур Write и

WriteLn дает программисту очень слабые возможности для управления

расположением на экране выводимого текста. Печать

текста может производиться только сверху вниз, слева направо.

Невозможны возврат к предыдущим строкам, стирание напечатанного

текста, изменение цвета символов и т.д.

Дополнительные возможности управления выводом на экран

дают процедуры и функции модуля CRT.

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

перед разделами описаний должна быть поставлена строка

Uses CRT

Для работы с модулем CRT необходимо познакомиться со следующими

понятиями: режимы экрана, координаты на экране,

текстовое окно, цвет фона и цвет символа.

Режимы экрана. Вывод на экран может происходить в текстовом

или графическом виде (на графических дисплеях).

6

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

Таблица наиболее часто употребляемых функций.

Функция

Тип аргумента

Тип результата

Комментарии

Abs(X) модуль Х

целый

дробный

целый

дробный

Тип аргумента совпадает с типом результата

Sqr(X) квадрат Х

целый

дробный

целый

дробный

Sqrt(X) корень из Х

целый

дробный

дробный

X >= 0

Round(X)

Округление до целых

дробный

целый

Round(2.8) -> 3

Round(2.3) -> 2

Trunc(X)

Целая часть от Х

дробный

целый

Trunc(2.8) -> 2

Trunc(2.3) -> 2

Int(X)

Целая часть от Х

дробный

дробный

Int(2.8) =>

=> 2.0000000000E+00

Frac (X)

Дробная часть от Х

дробный

дробный

Frac(2.1358)=> 0.1358 =>

=> 1.3580000000Е-01

Sin(X) - sin X

целый

дробный

дробный

Аргумент записывается

в радианах:

1 рад - это примерно 57°,

 рад = 180°

Cos(X) - cos X

целый

дробный

дробный

Pi-число

Нет

дробный

Pi = 3.14...

Функции, связывающие различные типы данных

приводится список стандартных функций, обеспечивающих

связь между различными типами данных.

Обращение

Тип

аргумента

Тип

результата

Действие

ord(х)

любой

Порядковый номер

значения х в его типе

pred(х)

порядковый

Предыдущее

относительно х значение

в его типе

succ(х)

любой

Следующее

относительно х значение в его типе

chr(x)

порядковый

Символ с порядковым

номером х

odd(x)

7

Условный оператор IF

При решении задач мы могли напечатать ответ на вопрос задачи в виде "true" или "false". Такой вид ответа далеко не всегда подходит, хочется в случае "true" выдавать одно сообщение, а в случае "false" – другое. Или выполнять разные действия в зависимости от результата проверки какого-либо условия. Для этого служит оператор if. Он позволяет реализовать алгоритм ветвления. Общий вид полного оператора:

if <условие> then <оператор 1> else <оператор 2>;

Здесь:

  • <условие> – это переменная типа boolean или логическое выражение, которое может быть простым или сложным:

  • <оператор 1> и <оператор 2> – любой оператор (Writeln, Readln, оператор присваивания, if и т.д.) или несколько операторов, заключенных в "операторные скобки".

  • Ветвь "else" может отсутствовать, тогда оператор называется неполным.

Оператор выбора Case

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

Общий вид:

Case <выражение> of

<знач 1>: <оператор1>;

<знач 2>: <оператор2>;

. . .

<знач n>: <оператор n>

else <оператор>

end;

Внимание! Перед else нет ";"

Внимание! End без begin!

Комментарии:

1) <выражение> между CASE и OF называется селектором и должно иметь значение дискретного типа, например, integer или char;

2) <значение> константы и называются метками случаев. Должны быть одного типа, что и селектор. Не должно появляться более одного раза в операторе CASE. Может записываться разными способами:

а) единичное, например 'а': <оператор>;

или 1234: <оператор>;

б) список, например 'a', 'A', 'я', 'Я': <оператор>;

или 3, 45, 127: <оператор>;

в) интервал, границы которого разделяются "..", например 'a'..'я': <оператор>;

или 15..23: <оператор>;

3) <оператор> – может быть простым или составным;

4) ветвь "else" может отсутствовать.

Примечание! Если <значение> объявлены как число или текст (описаны как константы), то кавычки не ставятся. Если не объявлены, то у букв кавычки ставятся, а у цифр нет.

8

Оператор цикла FOR

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

Общий вид:

FOR<управляющая переменная>:=A TO B DO <оператор>;

FOR<управляющая переменная>:=A DOWNTO B DO <оператор>;

А и В – начальное и конечное значение управляющей переменной.

Правило!

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

  2. А и В должны быть одного типа.

  3. Если А>В, то оператор после DO не будет выполнен ни разу.

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

  5. TO увеличивает на единицу значение А (соответственно уменьшает В).

  6. DOWNTO уменьшает на единицу значение А (соответственно увеличивает В).

Оператор FOR применяют, когда известно число повторений одного и того же действия

Управляющая переменная после выполнения оператора имеет неопределенное значение.

Оператор цикла WHILE

Общий вид оператора:

While <логическое выражение> do<оператор>;

Оператор While служит для реализации циклического алгоритма с предусловием, т.е. проверяется условие: если оно истинно, то выполняется оператор тела цикла. Если ложно, то происходит выход из цикла.

Особенность!

  1. Число проходов цикла заранее неизвестно, минимальное количество – 0.

  2. Выход из цикла, если условие ложно.

  3. Условие может быть простым или сложным.

  4. Тело цикла состоит из одного оператора. Если по логике решения задачи в цикле нужно выполнить несколько операторов, то они заключаются в операторные скобки

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

Оператор цикла REPEAT

Оператор Repeat служит для реализации циклического алгоритма с постусловием. Общий вид: Repeat

<оператор>;

<оператор>;

. . .

<оператор>

Until <условие>;

Операторы в теле цикла записываются через «;» Перед «Until» точка с запятой не ставится.

Особенность!

  1. Число проходов цикла заранее неизвестно, минимальное количество = 1.

  2. Выход из цикла, если условие истинно.

  3. Условие может быть простым или сложным.

  4. Тело цикла может состоять из нескольких операторов.

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

9

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

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

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