Пройти Антиплагиат ©



Главная » Информатика. Учебник. Часть 2. » 15.3. Алгоритмическое (модульное) программирование



15.3. Алгоритмическое (модульное) программирование

Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная. Найти рефераты и курсовые по данной теме Уникализировать текст 



 
Алгоритм — это формальное описание способа решения задачи путем разбиения ее на конечную по времени последовательность действий (элементарных операций). Под словом «формальное» подразумевается, что описание должно быть абсолютно полным и учитывать все возможные ситуации, которые могут встретиться по ходу решения. Под элементарной операцией понимается действие, которое по заранее определенным критериям (например, очевидности) не имеет смысла детализировать.
Основная идея алгоритмического программирования — разбиение программы на последовательность модулей, каждый из которых выполняет одно или несколько действий. Единственное требование к модулю — чтобы его выполнение всегда начиналось с первой команды и всегда заканчивалось на самой последней (то есть, чтобы нельзя было попасть на команды модуля извне и передать управление из модуля на другие команды в обход заключительной).
Алгоритм на выбранном языке программирования записывается с помощью команд описания данных, вычисления значений и управления последовательностью выполнения программы.
 
Переменные и константы
Реальные данные, с которыми работает программа, — это числа, строки и логические величины (аналоги 1 и 0, «да» и «нет», «истина» и «ложь»). Эти типы данных называют базовыми.
Каждая единица информации хранится в ячейках памяти компьютера, имеющих свои адреса. На практике заранее неизвестно, в каких конкретно ячейках памяти во время работы программы будут записаны ее данные, поэтому в языках программирования введено понятие переменной, позволяющее отвлечься от конкретных адресов и обращаться к содержимому памяти с помощью идентификатора или имени — как правило, последовательности, содержащей английские буквы, цифры, символы подчеркивания и начинающейся не с цифры. Например:
Hello
_SumOfReal
xl
H8_G7_F6
Это имя будет указывать на значение, о реальном адресе и способе хранения которого можно забыть. В процессе работы программы содержимое соответствующих ячеек можно менять, обращаясь к переменной по имени. Лучше выбирать такие названия, которые отражают назначение данной переменной.
Кроме имени и значения, переменная обычно имеет тип, определяющий, какая информация хранится в данной переменной (число, строка и т. д.). В зависимости от объема памяти, отведенного для хранения значения переменной, оно должно укладываться в допустимый диапазон. Например, значение типа «байт» имеет диапазон от 0 до 255.
Переменные с указанием их типа можно вводить в программу с помощью специальных команд описания {объявления, декларации). Это позволяет компилятору организовать эффективное хранение и обработку данных и повышает ясность исходных тестов. Каждый тип описывается своим ключевым словом.
Значения переменных разных типов допускается преобразовывать друг в друга в соответствии с соглашениями языка программирования. Такой процесс называется приведением типов.
Переменные могут существовать на всем протяжении работы программы — тогда они называются статическими, а могут создаваться и уничтожаться на разных этапах ее функционирования — такие переменные называются динамическими.
Все остальные данные в программе, значение которых не меняется на протяжении ее работы, называются константами или постоянными. Константы, как и переменные, обычно имеют тип. Данные можно указывать явно:
123
2.87
"это строка"
или для удобства обозначать их идентификаторами. Например, число я, равное 3,1416, можно обозначить как pi и везде вместо числа применять идентификатор. Только изменять значение pi нельзя, так как это не переменная, а константа.
 
Числовые данные
Числа обычно бывают двух видов: целые и дробные. Если число отрицательное, перед ним ставится знак «-», если положительное, то знак «+» можно ставить, а можно и опускать. Вычисления над целыми числами выполняются точно, вычисления над дробными числами — приближенно. При записи дробных чисел в качестве десятичного разделителя используется точка:
1.28
3.333321
Очень большие или очень маленькие числа записываются специальным образом. Для них дополнительно указывается мантисса — число со знаком, являющееся степенью числа 10. Мантисса записывается справа от числа через букву е (или Е). Пробелы в такой записи не допускаются.
Например, число 100 (единица, умноженная на 10 во второй степени) запишется так:
1е+2
число 0,003 (тройка, умноженная на 10 в минус третьей степени) так:
Зе-3
число со 120 нулями — так:
1Е+120
Допускается дробная запись числа с мантиссой:
31.4е-1
 
Тип числа Бейсик Паскаль Си++
целое INTEGER integer int
дробное DOUBLE real float
       
 
Арифметические операции
Для записи арифметических действий используются арифметические операторы. В некоторых языках программирования они считаются не операторами, а операциями, предназначенными для вычисления значения выражения, но не влияющими на другие значения и не сказывающимися на ходе выполнения программы.
К основным арифметическим операциям относятся:
+(сложение)
-(вычитание)
*(умножение)


/(деление)
Такая форма записи отвечает общепринятым соглашениям и принята в большинстве языков программирования.
Каждая арифметическая операция имеет свой приоритет. Операции с более высоким приоритетом (умножение и деление) будут выполняться раньше, чем операции с более низким приоритетом (сложение и вычитание). Изменить порядок вычисления выражения можно с помощью круглых скобок.
b*2 + с/3
b* (2 + с) - 3
Скобки допускается вкладывать друг в друга произвольное число раз. При этом использование квадратных или фигурных скобок, как правило, не допускается.
( (у+2)*3 + 1) / 2
 
Арифметические выражения
С помощью арифметических операций формируются арифметические выражения, которые состоят из операций и операндов (переменных и констант).
Выражение
i1 + 2
состоит из одной операции «+» и двух операндов — переменной И и числовой константы 2.
Каждое выражение имеет значение, которое определяется в момент выполнения оператора, содержащего это выражение. Если на момент вычисления выражения i1+2 в переменной i1 хранится число 3, то значение этого выражения будет равно 5 (3+2).
 
Логические выражения
При создании программ не обойтись без логических выражений. Они отличаются тем, что результат их вычислений может принимать только одно из двух допустимых значений — true (истина, да, включено) и false (ложь, нет, выключено). Чаще всего значение false ассоциируется с нулем, а значение true — с числом 1 или просто ненулевым значением.
При записи логических выражений используются операции сравнения и логические операции. Операции сравнения сличают значения правого и левого операндов. Результатом сравнения является true, если оно удачно, и false в противном случае.
В таблице даны примеры записи операций сравнения для разных языков.
 
Операция Варианты написания
Бейсик, Паскаль Си++
Равно = ==
Не равно <> !=
Меньше < <
Меньше или равно <= <=
Больше > >
Больше или равно >= >=
     
 
Pi == 3.14
х > 0 al <> b1
В одном выражении может потребоваться проверка нескольких подобных условий. Например, надо определить, больше ли значение переменной X чем 0 и меньше ли чем 10. Условия могут быть связаны с помощью логических операций, наиболее активно используемые из которых — это И и ИЛИ. В компьютерной графике также часто применяется так называемое исключающее ИЛИ и операция отрицания НЕ. Для нее требуется только один операнд, указывающийся справа от знака операции. Эта операция просто меняет значение своего операнда на противоположное.
 
Приоритеты всех логических операций ниже, чем приоритеты операций сравнения, поэтому сравнения всегда выполняются первыми. А логические операции вычисляются в следующем порядке: сначала НЕ, потом И, потом ИЛИ. При необходимости этот порядок может быть изменен с помощью скобок.
Примеры логических выражений:
 
x1 >= 1 && x1 <= 10
(R > 3.14) and (R < 3.149)
(Value < Oldvalue) OR (Value <> 0)
 
Логический тип
Бейсик Паскаль Си++
Базового типа нет. Используется числовой тип INTEGER boolean bool
     
 
Строчные выражения
Строки в языках программирования всегда заключаются в кавычки. В Си++ и Бейсике для этого используются двойные кавычки, в Паскале — одинарные.
"это строка Бейсика или Си++"
'это строка Паскаля'
Строка может быть пустой — не содержать ни одного символа. Например:
Как правило, строки можно сравнивать друг с другом на эквивалентность (равно и не равно). В некоторых языках программирования допускаются также сравнения типа «больше» или «меньше» — при этом происходит последовательное сравнение значений символов (каждый символ представляется в компьютере конкретным числом).
Кроме того, часто допускается также операция сцепления строк, записываемая с помощью символа «+». Например:
"123" + "4567" -получится "1234567"
"абв " + "abc " + " эюя" —получится "абв abc эюя"
 
Тип «строка»
Бейсик Паскаль Си++
STRING string Базового типа «строка» нет
     
 
Указатели
Некоторые языки программирования допускают в явном виде работу с указателями — адресами физической памяти. При этом в них имеется специальная операция получения адреса конкретной переменной, что позволяет работать с памятью напрямую, примерно так, как это происходит в языках ассемблера. Такая возможность позволяет добиваться высокой эффективности работы программы, но часто приводит к ошибкам, если указатель вдруг получает неверное значение и при его использовании начинает портиться область памяти, предназначенная совсем для других целей.
 
Сложные данные
Структуры. До сих пор рассматривались базовые типы данных: числа, строки, логические величины — и операции над базовыми данными. Однако для повышения производительности труда программистов и повышения качества их работы необходимо, чтобы язык программирования имел средства, позволяющие описывать данные в виде, максимально приближенном к их реальным аналогам. Например, чтобы организовать обработку данных по студентам, в программе удобно не просто описать десяток различных переменных, а объединить их в структуру (или запись) «студент», состоящую из полей разного типа «имя», «пол», «год рождения», «группа» и т. д.
Современные языки программирования позволяют применять такие сложные типы данных, составляющиеся из базовых и определенных ранее сложных типов. В результате удается организовывать структуры данных произвольной сложности: списки, деревья и т. п. При этом структура объединяет группу разных данных под одним названием.
Получить доступ к отдельным составляющим (полям) этой структуры можно по их именам. В рассматриваемых языках программирования такой доступ осуществляется указанием имени структуры и имени поля через точку. Если подобным способом происходит обращение к полю, которое само является структурой, то выделение нужного поля продолжается приписыванием справа имени вложенного поля через точку.
Синтаксис описания структуры
 
Бейсик Паскаль Си++
TYPE имя-структуры поле AS тип
END TYPE
record поле: тип;
end;
struct имя
{
тип поле;
};
     
 
Вот примеры описания структур.
Бейсик:
TYPE Student
Name AS STRING
Sex AS INTEGER
BirthYear AS INTEGER
END TYPE
 
Паскаль:
record
Name: string;
Sex: boolean;
BirthYear: integer;
end;
 
Си++:
struct Student {
bool Sex; int BirthYear; };
 
Доступ к содержимому структуры: Student.BirthYear = 1980;
Массивы. Доступ к элементам структуры осуществляется по имени ее составляющих. В одних случаях это значительно повышает наглядность исходных текстов и упрощает процесс программирования, но имеется немало ситуаций, когда надо организовать обработку больших объемов данных одного типа, при этом создавать структуры с сотнями и тысячами полей неразумно. Поэтому в дополнение к структурам в языки программирования введено понятие массива, сложного типа данных, доступ к элементам которого происходит по их положению, по номеру или индексу. Например, можно описать массив, состоящий из тысячи элементов численного типа, и затем обратиться к десятому или сотому элементу по его номеру.
При описании массива обычно указывается ею размер (число элементов) или верхняя и нижняя границы — диапазон, в рамках которого можно обращаться к элементам массива.
Массивы, границы которых явно заданы в команде описания, называются статическими. Их размер известен заранее и не меняется на всем протяжении работы программы.
В последних версиях компилируемых языков программирования реализуются так называемые динамические массивы, размер которых может меняться во время выполнения программы. В ряде случаев это весьма удобно, так как позволяет экономно расходовать память, захватывая ее по мере необходимости. Недостаток динамических массивов в том, что организовать эффективную работу с ними, используя компиляторы, сложно. Приходится выполнять множество проверок, связанных с расходованием памяти компьютера, что понижает общую эффективность приложения. Динамические массивы в Паскале начали поддерживаться совсем недавно, с активным распространением новых мощных ПК, а в интерпретируемых языках типа Бейсика это было сделано довольно давно.
Во многих языках программирования строки рассматриваются как массивы символов. Их допускается индексировать как обычные массивы.
 
 



Лекция, реферат. 15.3. Алгоритмическое (модульное) программирование - понятие и виды. Классификация, сущность и особенности. 2018-2019.

Оглавление книги открыть закрыть

Глава 4 Функции операционных систем персональных компьютеров
4.1. Обеспечение интерфейса пользователя
4.2. Обеспечение автоматического запуска
4.3. Организация файловой системы
4.4. Обслуживание файловой структуры
4.5. Управление установкой, исполнением и удалением приложений
4.6. Обеспечение взаимодействия с аппаратным обеспечением
4.7. Обслуживание компьютера
4.8. Прочие функции операционных систем
Глава 5 Основы работы операционной системы WINDOWS
5.1. Основные объекты и приемы управления Windows
5.2. Файлы и папки Windows
5.3. Операции с файловой структурой
5.4. Использование Главного меню
5.5. Установка и удаление приложений Windows
5.6. Установка оборудования
Глава 6 Интернет.
6.1. Основные понятия
6.2. Подключение к Интернету
6.3. Вопросы компьютерной безопасности
Методы защиты от компьютерных вирусов
Средства антивирусной защиты
Защита информации в Интернете
Понятие о несимметричном шифровании информации
Принцип достаточности защиты
Глава 7 Получение информации из Интернета
7.1. Основные понятия World Wide Web
7.2. Работа с программой Internet Explorer
7.3. Поиск информации в World Wide Web
7.4. Отправка и получение сообщений
Глава 8 Создание простых текстовых документов
8.1. Общие сведения о текстовом процессоре Microsoft Word
8.2 Основные принципы практической работы с текстовым процессором Microsoft Word
8.3. Приемы работы с текстами в процессоре Microsoft Word
8.4. Приемы и средства автоматизации разработки документов
Глава 9 Обработка данных средствами электронных таблиц
9.1. Создание электронных таблиц Microsoft Excel
9.2. Применение электронных таблиц для расчетов
Глава 10 Работа с базами данных
10.1. Основные понятия баз данных
10.2. Проектирование баз данных
10.3. Работа с СУБД Microsoft Access 2000
Глава 11 Приемы и методы работы со сжатыми жанными
11.1. Теоретические основы сжатия данных
11.2. Программные средства сжатия данных
Глава 12 Введение в компьютерн графику
12.1. Основы представления графических данных
12.2. Представление графических данных
Глава 13 Автоматизация обработк документов
13.1. Преобразование документов в электронную форму
13.2. Автоматизированный перевод документов
Глава 14 Средства автоматизации научно-исследовательских работ
14.1. Компьютер как инструмент научной работы
14.2. Приемы работы с системой MathCad
Глава 15 Основы программирования
15.1. Языки программирования
15.2. Системы программирования
15.3. Алгоритмическое (модульное) программирование
15.4. Структурное программирование
15.5. Объектно-ориентированное программирование
15.6. Проектирование программ




« назад Оглавление вперед »
15.2. Системы программирования « | » 15.4. Структурное программирование






 

Похожие работы:

Воспользоваться поиском

 

Учебники по данной дисциплине

Информатика. Учебник. Часть 1.
Основы информационного менеджмента
Документальные информационно поисковые системы (ДИПС)
Информационные технологии. Курс лекций
Основы внедрения информационных систем
Теория управления. Лекции
Основы борьбы с киберпреступностью
Стандартизация и сертификация программного обеспечения