Языки программирования
В подписке
Основная коллекция
Тематика:
Проектирование, отладка и тестирование ПО. Вспомогательные средства проектирования. CASE-технологии
Издательство:
Издательство ФОРУМ
Год издания: 2010
Кол-во страниц: 400
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее профессиональное образование
ISBN: 978-5-91134-442-9
Артикул: 088400.02.01
Тематика:
ББК:
УДК:
ОКСО:
- Среднее профессиональное образование
- 09.02.03: Программирование в компьютерных системах
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
0. Л. Голицына, Т. Л. Партыка, И. И. Попов языки ПРОГРАММИРОВАНИЯ 2-е издание,переработанное и дополненное Допущено Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов образовательных учреждений среднего профессионального образования МОСКВА 2010
УДК 004.2(075.32) ББК 32.973-02я723 П57 Рецензенты: доктор технических наук, профессор, заведующий кафедрой информационных систем в экономике и менеджменте РЭА им. Г. В. Плеханова В. П. Романов; председатель цикловой (предметной) комиссии математического колледжа, преподаватель В. П. Агальцов Голицына О. Л., Партыка Т. Л., Попов И. И. П57 Языки программирования : учебное пособие / О. Л. Голицына, Т. Л. Партыка, И. И. Попов. — 2-е изд., перераб. и доп. — М. : ФОРУМ, 2010. — 400 с. : ил. — (Профессиональное образование). ISBN 978-5-91134-442-9 Рассмотрены кодирование и представление информации в ЭВМ, структуры алгоритмов, эволюция и классификация языков, основные понятия, связанные с разработкой программ. Дается описание конкретных языков и систем программирования — Basic, Pascal, Delphi, FoxPro. Для учащихся и студентов, специализирующихся в области вычислительных устройств, машин и общей информатики. УДК 004.2(075.32) ББК 32.973-02я723 ISBN 978-5-91134-442-9 © Голицына О. Л., Партыка Т. Л., Попов И. И., 2008, 2010 © Издательство «ФОРУМ», 2008, 2010
Введение Впёоть до XVII в. деятельность общества в целом и каждого человека в отдельности была направлена на овладение веществом, т. е. познание свойств вещества и изготовление сначала примитивных, а потом все более сложных орудий труда, вплоть до механизмов и машин, позволяющих изготовлять потребительские ценности. Затем в процессе становления индустриального общества на первый план вышла проблема овладения энергией — сначала тепловой, затем электрической, наконец, атомной. Овладение энергией позволило освоить массовое производство потребительских ценностей и, как следствие, повысить уровень жизни людей и изменить характер их труда. В то же время человечеству свойственна потребность выразить и запомнить информацию об окружающем мире — так появились письменность, книгопечатание, живопись, фотография, радио, телевидение. В истории развития цивилизации можно выделить несколько информационных революций — преобразование общественных отношений из-за кардинальных изменений в сфере обработки информации, информационных технологий. Следствием подобных преобразований являлось приобретение человеческим обществом нового качества. В конце XX в. человечество вступило в новую стадию развития — стадию построения информационного общества. Информация стала важнейшим фактором экономического роста, а уровень развития информационной деятельности и степень вовлеченности и влияния ее на глобальную информационную инфраструктуру превратились в важнейшее условие конкурентоспособности страны в мировой экономике. Понимание неизбежности прихода этого общества наступило значительно раньше. Австралийский экономист К. Кларк еще в 40-е гг. говорил о
Введение наступлении общества информации и услуг, общества с новыми технологическими и экономическими возможностями. Американский экономист Ф. Махлуп выдвинул предположение о наступлении информационной экономики и превращении информации в важнейший товар в конце 50-х гг. В конце 60-х гг. Д. Белл фиксировал превращение индустриального общества в информационное. Что касается стран, ранее входивших в СССР, то процессы информатизации в них развивались замедленными темпами. Информатизация изменяет всю систему общественного производства и взаимодействия культур. С приходом информационного общества начинается новый этап развития. Меняется вся система информационных коммуникаций. Разрушение старых информационных связей между отраслями экономики, направлениями научной деятельности, регионами, странами усилило экономический кризис конца века в странах, которые уделяли развитию информатизации недостаточное внимание. Важнейшая задача общества — восстановить каналы коммуникации в новых экономических и технологических условиях для обеспечения четкого взаимодействия всех направлений экономического, научного и социального развития как отдельных стран, так и в глобальном масштабе. В качестве средства для хранения, переработки и передачи информации научно-технический прогресс предложил обществу компьютер (электронно-вычислительную машину — ЭВМ). Но вычислительная техника не сразу достигла необходимого уровня. В ее развитии отмечают предысторию и четыре поколения ЭВМ. Предыстория начинается в глубокой древности с различных приспособлений для счета (абак, счеты), а первая счетная машина появилась лишь в 1642 г. Ее изобрел французский математик Б. Паскаль. Построенная на основе зубчатых колес, она могла суммировать десятичные числа. Все четыре арифметических действия выполняла машина, созданная в 1673 г. немецким математиком Г. Лейбницем. Она стала прототипом арифмометров, использовавшихся вплоть до 1960-х гг. Впервые идея программно управляемой счетной машины, имеющей арифметическое устройство, устройства управления, ввода и печати (хотя и использующей десятичную систему счисления), была выдвинута в 1822 г. английским математиком Ч. Бэббиджем.
Введение 5 Программные средства ЭВМ являются одним из важнейших факторов информатизации, наряду с такими, как аппаратное обеспечение (технические средства обработки, передачи, ввода-вывода и хранения данных), информационное обеспечение (файлы, базы данных и информационные ресурсы) и человеческий фактор (пользователи средств информатизации, включая администраторов, операторов и рядовых пользователей). Программные средства в свою очередь подразделяются на: • операционную систему (ОС), которая обеспечивает функционирование и взаимосвязь всех компонентов компьютера и предоставляет пользователю доступ к его аппаратным возможностям; • прикладное программное обеспечение (ППО), которое также можно далее разделить на две группы программ — средства разработки и приложения. Средства разработки — это инструменты программиста. Традиционными средствами разработки являются системы (среды) программирования (СП), использующие алгоритмические (процедурные) языки программирования (ЯП). Основой систем программирования являются трансляторы, т. е. программы, обеспечивающие перевод исходного текста программы на машинный язык (объектный код), которые подразделяются на интерпретаторы и компиляторы. Приложения (программные оболочки, средства пользователя) представляют собой программные продукты или пакеты прикладных программ (ППП), ориентированные в основном на непрограммирующего пользователя и реализующие определенную группу функций или информационных технологий — работу с документами, мультимедийными материалами, осуществление коммуникации и пр. В настоящем учебном пособии речь идет о средствах разработки программных продуктов — различного рода системах программирования более или менее широкой ориентации, базирующихся на различных ЯП. В 1-й главе рассмотрены информационные основы и представление информации в ЭВМ, кодирование символьной, цифровой информации; логические и алгоритмические основы программного обеспечения — алгоритмы, структуры алгоритмов. Описывается программирование в машинных адресах и ассемб
Введение леры, рассмотрена эволюция и классификация языков и систем программирования, а также основные понятия, связанные с разработкой и развитием программного обеспечения. Во 2-й главе дается описание языка программирования Basic, в том числе примеры программ на ЯП Basic. Рассматриваются переменные и типы данных, операции и операторы языка. В г л а в е 3 рассматривается ЯП Pascal, в том числе примеры простых программ на ЯП Pascal, форматы языка программирования Pascal, переменные и константы, типы данных. Далее рассматриваются выражения и операции, операторы языка, структурированные типы данных, динамические данные, процедуры и функции. Рассматриваются компоненты структуры программы, методы организации ввода-вывода данных и работы с файлами. В г л а в е 4 речь идет об основных принципах объектно-ориентированного программирования, в основном на примере интегрированной среды разработки приложений Delphi (объектно-ориентированное расширение ЯП Pascal). Рассматриваются интерфейс среды Delphi, характеристика проекта Delphi, компиляция и выполнение проекта, разработки приложения. Описываются средства управления параметрами интегрированной среды разработки, связь между ЯП Pascal и визуальной средой разработки приложений Delphi. В качестве стандартного примера рассматривается разработка приложения Калькулятор в средах Delphi и Visual Basic. В5-й главе рассматривается система FoxPro, являющаяся «пограничным продуктом» между СУБД и системами программирования. Описываются типы данных, команды и операторы языка, создание и модификация базы данных, создание и модификация форматов представления данных. Настоящее учебное пособие базируется на материалах, которые авторы накопили в процессе практической, исследовательской, а также преподавательской (МИФИ, МИСИ, РГГУ, РЭА им. Г. В. Плеханова, МФПА) деятельности. Авторы выражают благодарность коллегам, принявшим участие в обсуждении материала, рецензентам, а также студентам РГГУ и РЭА им. Г. В. Плеханова за предоставленные иллюстративные материалы.
Глава 1 ОСНОВНЫЕ ПРИНЦИПЫ ПРОГРАММИРОВАНИЯ Безусловно, наряду с любой другой целесообразной человеческой деятельностью, программирование может рассматриваться как средство самовыражения личности или способ приятного времяпрепровождения в компании единомышленников. Соглашаясь с этим «где-то в глубине души», авторы однако, предполагают относиться к программированию, как к компоненту колоссальной информационной индустрии, в которой вращаются миллиарды долларов и заняты миллионы человек. В настоящей главе планируется рассмотреть основные составляющие программирования, связанные с ними понятия, принципы функционирования, а также место программного обеспечения (ПО) в общей совокупности инструментария информатики. Они включают: информационные основы, логические основы, алгоритмические основы и методы разработки программных продуктов. 1.1. Информационные основы программирования. Представление информации в ЭВМ Понятие «информация» является таким же фундаментальным как понятия «материя», «энергия» и другие философские категории. Это атрибут, свойство сложных систем, связанное с их развитием и самоорганизацией [16]. Известно большое количество различных определений информации, отличия информации от данных, знаний и пр. Мы здесь ограничимся только рассмотрением некоторых практически важных понятий и определений.
Глава 1. Основные принципы программирования Классификация информации С точки зрения обработки информации на компьютерах информация может классифицироваться, например, по признакам, отражающим структуру данных и форму представления информации (табл. 1.1). Таблица 1.1. Некоторые классы информации (по структуре и форме) Основание Информация для классификации По уровням Сигнал Сообщение, Информацион- Информаци- сложности документ ный массив онный ресурс По типу сигнала Аналоговая (непре- Цифровая рывная) (дискретная) По уровням доступа Данные в регистро- Данные в опера- Файлы данных Базы данных и организации вой памяти ЭВМ тивной памяти на внешних ЭВМ устройствах По способам кодиро- Цифровая (вычис- Символьная Графическая вания и представле- лительные данные, (алфавитно-циф- ния (данные, файлы двоичные) ровая, строчная) и базы данных --- БД) По организации дан- Табличная Текстовая Графическая ных (файлы и БД) Измерение количества информации Термин «информация» имеет корень «form» (форма), что разумно трактовать как «информирование — придание формы, вывод из состояния неопределенности, бесформенности», поэтому следует подходить к определению понятия «количество информации», исходя из того, что информацию, содержащуюся в сообщении, можно трактовать в смысле ее воздействия на объект, или, иначе, уменьшения неопределенности знаний «приемника информации» об объекте. В свое время К. Шенноном в качестве единицы информации было предложено принять один бит (от англ. BIT — Binary digiT — двоичная цифра). Сегодня в вычислительной технике битом считается минимальная порция памяти компьютера, необходимая для хранения одного из двух знаков — «0» и «1», используемых для представления данных и команд.
1.1. Информационные основы программирования... 9 Поскольку бит — слишком малая единица, на практике обычно применяется байт, равный восьми битам. В частности, восемь бит требуется для того, чтобы закодировать любой из 256 символов основного компьютерного кода ASCII (256 = 2⁸). Используются также более крупные производные единицы информации: • килобайт (Кбайт, KB) = 1024 байт = 2¹⁰ байт; • мегабайт (Мбайт, MB) = 1024 Кбайт = 2²⁰ байт « 10⁶ байт; • гигабайт (Гбайт, GB) = 1024 Мбайт = 2³⁰ байт « 10⁹ байт. С увеличением объемов обрабатываемой информации входят в употребление такие производные единицы, как: • терабайт (Тбайт, TB) = 1024 Гбайт = 2⁴⁰ байт « 10¹² байт; • петабайт (Пбайт, PB) = 1024 Тбайт = 2⁵⁰ байт « 10¹⁵ байт; • экзобайт = 10¹⁸ байт и пр. Это так называемые «десятичные» единицы. В качестве альтернативной IEC (Международная электротехническая комиссия) предложила в 1998 г. «двоичные» единицы: • KiB (KibiByte) — 2¹⁰ = 1024 байт; • MiB (MibiByte) = 1024 KiB; • GiB (GibiByte) = 1024 MiB (MibiByte) и т. д. Кодирование символьной информации Код (code) — совокупность знаков, символов и правил представления информации. Рассмотрим методы дискретного представления информации, или кодирования (которые, надо сказать, появились задолго до вычислительных машин). Первым широко известным примером является азбука Морзе (АМ), в которой буквы латиницы (или кириллицы) и цифры кодируются сочетаниями из «точек» и «тире» (табл. 1.2). Воспользуемся данным кодом для иллюстрации основных понятий, связанных с кодированием (не вдаваясь в теорию кодирования). Кодируемые (обозначаемые) элементы входного алфавита обычно называют символами. Символом (служит условным знаком какого-нибудь понятия, явления), как правило, является цифра, буква или иероглиф естественного языка, знак препинания, знак пробела, специальный
Глава 1. Основные принципы программирования Таблица 1.2. Фрагменты кода Морзе Символ входного алфавита Мнемоническое обозначение по МСС Кодовая (знаковая) комбинация A alfa .- B bravo "... C charlie -.-. D delta ".. E echo . ■ ■< ■■■ ... Y yankee ".--- Z zulu ---.. 1 one --- ■■■ ■ ■< ... 9 nine --- * Международный Свод Сигналов. знак, символ операции. Кроме этого, учитываются управляющие («непечатаемые») символы. Кодирующие (обозначающие) элементы выходного алфавита называются знаками; количество различных знаков в выходном алфавите назовем значностъю (-арностью, -ично-стъю, например «бинарный» или «двоичный» код); количество знаков в кодирующей последовательности для одного символа — разрядностью кода. Пространственно-времениое расположение знаков кода приводит к понятиям параллельных или последовательных кодов. При последовательном коде каждый временной такт предназначен для отображения одного разряда слова. Здесь все разряды слова фиксируются по очереди одним и тем же элементом и проходят через одну и ту же линию передачи (например, радио- или оптические сигналы либо передача данных по двум проводам, двухжильному кабелю). При параллельном коде все знаки символа представляются в одном временном такте, каждый знак проходит через отдельную линию (например, по четырем проводам, четырехжильному кабелю), образуя символ (т. е. символ передается в один прием, в один момент времени). Для последовательного кода характерно времени о е разделение каналов при передаче информации, для параллельного — пространственное. В зависимости от применяемого