
- •Общие сведения о программирование. Этапы решения задач.
- •Жизненный цикл программы.
- •Критерии качества программы.
- •Понятие алгоритма и его свойства.
- •Способы записи алгоритма.
- •Классификация языков программирования. Языки программирования высокого уровня.
- •Лексические основы языка c#. Общая структура программы.
- •Стандартные типы данных языка c#.
- •Лексические основы языка c#.Знаки операций.
- •Лексические основы языка c#.Идентификаторы, константы и переменные.
- •Консольный ввод – вывод в языке c#.
- •Разветвляющиеся алгоритмы. Условный оператор в языке c#. Оператор if
- •Разветвляющиеся алгоритмы. Оператор переключатель. Оператор switch
- •Оператор goto
- •Оператор break
- •Оператор continue
Способы записи алгоритма.
К основным способам описания алгоритмов можно отнести следующие:
o словесный (на естественном языке); недостаток – отсутствие строгой формализации и наглядности представления вычислительного процесса.
o формульно-словесный – основан на задании инструкций о выполнении конкретных действий с использованием математических символов и выражений в сочетании со словесными пояснениями;
o табличный – предполагает представление алгоритма в виде таблицы решений и обычно носит вспомогательный характер;
o графический – использует элементы блок-схем.
Блок-схемой называется графическое изображение структуры алгоритма, в котором каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых при этом операций.
При блок-схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий.
Классификация языков программирования. Языки программирования высокого уровня.
Современное состояние языков программирования можно представить в виде следующей классификации.
Процедурные языки предназначены для однозначного описания алгоритмов. При решении задачи такие языки требуют в той или иной форме явно записать порядок (процедуру) этого решения. Процедурное или императивное (от лат. imperativus - повелительный) программирование есть отражение фон Неймановской архитектуры компьютера.
Первым шагом в развитии процедурных языков программирования было появление проблемно-ориентированных языков. В этом названии нашел отражение тот факт, что при их разработке идут не «от машины», а «от задачи». При этом стремятся максимально полно учесть специфику класса задач, для решения которых данный язык предполагается использовать. Например, для многих научно-технических задач характерны объемные расчеты по сложным формулам; поэтому в ориентированных на такие задачи языках вводят удобные средства их записи. Использование понятий, терминов, символов, привычных для специалистов соответствующей области знаний, облегчает им изучение языка, упрощает процесс составления и отладки программы.
Разнообразие классов задач, решаемых на ЭВМ, привело к тому, что на сегодняшний день разработано уже несколько сотен алгоритмических языков. Правда, широкое распространение и международное признание получили лишь 10—15 из них. В первую очередь следует отметить
Fortran (FORmula TRANslation) - первый язык, созданный в начале 50-х гг. в США фирмой IBM и Algol (ALGOrithmic Language), разработанный группой зарубежных специалистов в 1960 г.,— компилируемые языки, предназначенные для решения научно-технических задач;
Cobol (COmmon Business Oriented Language — общепринятый деловой язык) — компилируемый язык для решения экономических задач. Разработан в США в 1958—1960 гг. На этом языке создано много приложений, некоторые из них активно эксплуатируются и сейчас. Достаточно сказать, что одной из высокооплачиваемых категорией граждан в США являются программисты на Коболе.
Basic (Beginners All-purpose Symbolic Instruction Code - универсальный символический код для начинающих) — для решения небольших вычислительных задач в диалоговом режиме. В 1964 г. сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых английских слов. Он получил самое широкое распространение. Популярность Бейсика объясняется как простотой его освоения, так и наличием достаточно мощных универсальных средств, пригодных для решения научных, технических и экономических задач, а также задач бытового характера, игровых и т.д. Согласно концепциям, заложенным в Бейсике, в нем широко распространены различные правила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа. Возникло множество версий языка, зачастую мало совместимых друг с другом. Однако, зная одну из версий, можно без особого труда освоить любую другую. Бейсик активно поглощает многие концепции и новинки из других языков. Первоначально интерактивный режим осуществлялся с использованием интерпретатора, в настоящее время для этого языка имеются также и компиляторы.
В принципе каждый из этих языков можно использовать для решения задач не «своего» класса, но, как правило, это оказывается не слишком удобным.
С середины 60-х годов начали разрабатывать алгоритмические языки более широкой ориентации - так называемые универсальные языки. Обычно они строились по принципу объединения возможностей проблемно-ориентированных языков. Среди них наиболее известны
PL/1 (Programming Language One) - первый многоцелевой универсальный язык, разработан в США фирмой IBM в 1963—1966 гг.
Pascal. Созданный как учебный язык программирования в 1968—1971 гг. Никлаусом Виртом в Высшей технической школе (ЕТН) в Цюрихе (Швейцария), он был назван в честь французского математика и философа Блеза Паскаля (1623—1662). Лингвистическая концепция Паскаля пропагандирует системный подход, выражающийся, в частности, в расчленении крупных задач на меньшие по сложности и размеру, легко поддающиеся решению.
Ada - предназначен для создания и длительного сопровождения больших программных систем, управления процессами в реальном масштабе времени. Язык АДА сложен для изучения. Разработан в мае 1979 г. группой ученых во главе с Жаном Ихбиа. Язык назвали в честь Ады Лавлейс, дочери великого поэта Байрона. Она в юности была увлечена идеями Чарльза Бэббиджа и помогала ему составлять описание машины, а в начале 40-х гг. XIX в. разработала первую в мире программу для вычислительной машины. Язык АДА - прямой наследник Паскаля.
С - был разработан в лаборатории Bell для реализации операционной системы UNIX в начале 70-х гг. и не рассматривался как массовый. Язык С приобрел большую популярность среди системных и прикладных программистов.
С+,
Modula.
Как и любое универсальное средство, во многих конкретных случаях эти языки оказываются менее эффективными.
Декларативные языки построены на описании данных и искомого результата (определяют что надо вычислить, а не как это сделать, в отличие от процедурных). Это языки, в которых операторы представляют собой объявления или высказывания в символьной логике.
В функциональном (аппликативном) программировании программа представляет собой последовательность описаний функций и выражения, которые необходимо вычислить (основаны на теории рекурсивных функций).
Первым таким языком стал Лисп (LISP, LISt Processing — обработка списков), созданный в 1959 г. Джоном Маккарти. Этот язык ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.
Создание языка искусственного интеллекта Пролог (PROLOG, PROgramming in LOGic — программирование в терминах логики) в 1973 г. французским ученым Аланом Кольмероэ открыло новую область — логическое или реляционное программирование (ещё языки -Mercury, KLO). Основано на символической логике.
В этих языках указывается, что дано и что требуется получить, а поиск решения возлагается непосредственно на ЭВМ. Это свидетельствует о декларативности языка логического программирования.
Логические программы имеют небольшое быстродействие, так как вычисления осуществляются методом проб и ошибок, поиском с возвратами к предыдущим шагам.
Объектно-ориентированные языки базируются на одной общей идее; она состоит в стремлении связать данные и процедуры их обработки в единое целое — объект. Его сущность выражается формулой «объект = данные + процедуры (методы)». С этой целью вводятся следующие основные понятия:
Объект - это совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств).
Свойство характеризует объект и его параметры. Все объекты наделены определенными свойствами, которые в совокупности и выделяют (определяют) его.
Методом называют набор допустимых действий над объектом или его свойствами.
Событие — это характеристика изменений состояния объекта.
Классом называют совокупность объектов, характеризующихся общностью свойств и применяемых к ним методов обработки. Любой созданный объект становится экземпляром класса.
Существуют различные объектно-ориентированные технологии, которые обеспечивают выполнение важнейших принципов объектного подхода: инкапсуляция и наследование.
Инкапсуляция – объединение данных и свойственных им процедур (методов) обработки в одном объекте.
Наследование предусматривает создание новых классов на базе существующих, что дает возможность классу-потомку иметь (наследовать) все свойства класса-родителя.
В процессе работы с объектами допускается полиморфизм - возможность использования методов с одинаковыми именами для обработки данных разных типов.
К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.
C++ - компактная компилирующая система, в основе которой лежит язык С, была разработана в начале 80-х гг. в лаборатории Bell корпорации AT&T.
Java – язык интерпретирующего типа, был создан компанией Sun в начале 90-х годов на основе Си++. С января 1995 г. Java получает распространение в Internet. Сегодня Java по популярности занимает второе место в мире после Бейсика.
Идеи ООП проникли во многие процедурные языки. Например, в состав интегрированной системы программирования Паскаль (корпорации Borland International), начиная с версии 5.5, входит специальная библиотека ООП Turbo Vision.
С середины 90-х гг. многие объектно-ориентированные языки реализуются как системы визуального программирования. Такие системы имеют интерфейс, позволяющий при составлении текста программы видеть те графические объекты, для которых она пишется. Отличительной особенностью этих систем является наличие в них среды разработки программ из готовых «строительных блоков», позволяющих создавать интерфейсную часть программного продукта в диалоговом режиме, практически без написания программных операций. Система берет на себя значительную часть работы по управлению компьютером, что делает возможным в простых случаях обходиться без особых знаний о деталях ее работы. Она сама пишет значительную часть текста программы: описания объектов, заголовки процедур и многое другое. Программисту остается только вписать необходимые строчки, определяющие индивидуальное поведение программы, которые система не в состоянии предвидеть. Но даже в этих случаях система сама указывает место для размещения таких строк. К объектно-ориентированным системам визуального проектирования относятся: Visual Basic, Delphi, C++ Builder, Visual C++. Это системы программирования самого высокого уровня.
VBA (Visual Basic for Application) является общей языковой платформой для приложений Microsoft Office (Excel, Word, Power Point и др.). VBA соблюдает основной синтаксис и правила программирования языков Бейсик-диалектов. VBA помогает довольно сильно расширить возможности приложений за счет написания макросов — программ, предназначенных для автоматизации выполнения многих операций. Языки программирования баз данных
Языки программирования баз данных
Эти языки отличаются от алгоритмических прежде всего своим функциональным назначением. При работе с базами данных (БД) наиболее часто выполняются следующие операции: создание, преобразование, удаление таблиц в БД; поиск, отбор, сортировка по запросам пользователя; добавление новых записей или модификация существующих; удаление записей и др. Для обработки больших массивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL (Structured Query Language). Он был впервые создан фирмой IBM в начале 70-х гг. и затем стал стандартом языка работы с реляционными базами данных.
Практически в каждой СУБД имеется свой универсальный язык, ориентированный на ее особенности. Сегодня в мире ведущие производители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Их продукты предназначены для совместной параллельной работы тысяч пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких серверах. В Oracle имеется встроенный язык PL/SQL, в Informix — INFORMIX 4GL, в Adabas - Natural и т.д.
Языки программирования для компьютерных сетей
Появление и активное развитие компьютерных сетей стало причиной создания многочисленных версий популярных языков программирования, адаптированных для использования в сети. Отличительные особенности, присущие сетевым языкам: они являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы — в исходных текстах. Такие языки получили название скрипт-языков.
HTML (Hyper Text Markup Language) — универсальный язык разметки гипертекста, используемый для подготовки Web-документов для сети Internet.
Был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1991—1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). В соответствии с командами HTML броузер отображает содержимое документа, команды языка не отображаются. В основе языка HTML лежит механизм гипертекстовых ссылок, обеспечивающий связь одного документа с другим. Все Web-страницы написаны на HTML или используют его расширение.
Perl. В 80-х гг. Ларри Уолл разработал язык Perl, который предназначался для эффективной обработки больших текстовых файлов, создания текстовых отчетов и управления задачами. В его состав входят многочисленные функции работы со строками, массивами, всевозможные средства преобразования данных, управления Процессами, работы с системной информацией и др.
Tcl/Tk. В конце 80-х гг. Джон Аустираут придумал скрипт-язык Tel и библиотеку Tk. Tel — это попытка создания идеального скрипт-языка. Он ориентирован на автоматизацию рутинных операций и состоит из мощных команд, выполняющих обработку нетипизирован-ных объектов.
VRML. Язык моделирования виртуальной реальности. В 1994 г. был создан язык VRML для организации виртуальных трехмерных интерфейсов в Интернете. Он ориентирован на описание разнообразных трехмерных образов, цвето-теневого освещения в текстовом виде и позволяет создавать различные сценарии миров, путешествовать по ним, «облетать» с разных сторон, вращаться в любых направлениях, масштабировать, управлять освещенностью и многое другое. Сейчас VRML вытесняется форматом X3D.
Языки моделирования
При моделировании систем применяются формальные способы их описания — формальные нотации, с помощью которых можно представить объекты и взаимосвязи между ними в системе. Такие системы называют CASE-системами.