Оглавление
1. Введение
2. Современные языки программирования
2.1 Паскаль
2.2 Ассемблер
2.3 Си
2.4 Бейсик
2.5 Лого
2.6 Форт
2.7 Пролог
2.8 Рефал
2.9 Лекс
3 Понятие, назначение и составные элементы систем программирования
3.1 Машинно-ориентированные системы программирования
3.1.1 Машинный язык
3.1.2 Системы символического кодирования
3.1.3 Автокоды
3.1.4 Макрос
3.2 Машинно-независимые системы программирования
3.2.1 Процедурно-ориентированные системы
3.2.2 Проблемно-ориентированные системы
3.2.3 Диалоговые языки
3.2.4 Непроцедурные языки
4 Выводы
5 Практическая часть
6 Список литературы
1. Введение
Связь между языком, на котором мы думаем, программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств. Сегодня практически все программы создаются с помощью языков программирования.
Неотъемлемая часть современных ЭВМ – системы программного обеспечения, являющиеся логическим продолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Основное назначение программного обеспечения – повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ.
В своей работе мне хотелось бы разобрать несколько основных современных языков, таких как Паскаль, Ассемблер, С++, Бейсик, Лого, Форт, Пролог, Рефал и Лекс, а также системы программирования и их составляющие (машинный язык, системы символического кодирования, автокоды, макросы, процедурно-ориентированные системы, проблемно-ориентированные системы, диалоговые языки, непроцедурные языки).
Если проследить историю используемых сегодня языков программирования, таких как Си и Паскаль (а равно и менее популярных Бэйсик, Фортран или Ада), то окажется, что все они были созданы на рубеже 60-х и 70-х годов. Иными словами, возраст современных языков программирования (за исключением Явы, о которой разговор особый), перевалил за третий десяток, что для компьютерной индустрии является сроком экстремальным. Современные языки программирования старше Интернета, Windows и персонального компьютера минимум на десятилетие. При этом новые языки не переставали регулярно появляться, однако ни один из них не задержался в практике программирования, хотя приносимые ими новые идеи дополняли уже известные языки (как это произошло с объектно-ориентированным программированием).
Другой важной особенностью языкотворчества последних десятилетий можно считать прекращение попыток создания "универсального" языка программирования, призванного объединить в себе все последние достижения в области разработки языков (из попыток 60-х _ 70-х годов можно вспомнить Алгол, PL/1 или Аду). Крупные "языковые" проекты безвозвратно ушли в прошлое вместе с порожденными ими языками.
Наконец, появление персонального компьютера и ОС с графическим интерфейсом (прежде всего MacOS и Windows) переместило внимание разработчиков программного обеспечения из сферы языков программирования в другие области средств разработки ПО, такие, как визуальное или объектно-ориентированное программирование, сетевые протоколы или модели баз данных. Программист сегодня использует в качестве инструмента не столько язык, сколько конкретную систему программирования (например, Delphi), а какой язык является для нее базовым, не так уж важно.
Итак, интерес к языкам программирования снизился, а круг используемых языков стабилизировался. В некотором смысле можно считать, что в области языков программирования "все сказано", и развитие средств разработки ПО пойдет дальше другими путями. Наступил удачный момент для анализа современных языков программирования и выяснения достигнутых практических результатов.
2. Современные языки программирования
Первые несколько поколений ЭВМ строились на классических принципах, сформулированных американским математиком Джоном фон Нейманом в 1946 г., когда начались разработки цифровых ЭВМ с программным управлением. Одним из основных принципов Д. фон Неймана является принцип хранимой программы. Под программой вычислительной машины понимается описание алгоритма решения задачи, заданное на языке вычислительной машины. Таким образом, языки программирования – это формальные языки общения человека с ЭВМ, предназначенные для описания совокупности инструкций, выполнение которых обеспечивает правильное решение требуемой задачи, т.е. для описания подлежащих обработке данных (информации) и алгоритмов (программ). Основная роль языков программирования заключается в планировании действий по обработке информации. Любой язык программирования основан на системе понятий, на основе которой человек может выражать свои соображения.
Теоретическую основу языков программирования составляют алгоритмические языки. В настоящее время для ЭВМ разработано значительное количество языков программирования. Они отличаются друг от друга различными свойствами, а значит, и областью применения. Примерная классификация языков программирования приведена на рисунке 1.
Рис.1. Классификация языков программирования
2.1 Паскаль[1]
В 1968 году Никлас Вирт (Niklaus Wirth) написал первый компилятор языка Pascal (Паскаль). Этот язык получил название в честь выдающегося французского математика Блеза Паскаля (Blaise Pascal). Язык Pascal — удачный язык общего применения, подходящий для программирования как научных задач, так и задач, связанных с коммерческой деятельностью. Средства ввода/вывода этого языка несколько слабее, чем у таких коммерческих языков, как COBOL, поэтому он никогда не претендовал на его замещение. Тем не менее после первого опубликования Pascal был довольно основательным языком, который успешно справлялся со своей работой.
Популярность языка Pascal резко подскочила в 1970-х. Самое большое преимущество этого языка — поддержка концепции структурного программирования, позволяющей делать программы более удобными для изменения. Идеология структурного программирования интегрирована в язык, поэтому программы на языке Pascal проще в обслуживании, чем программы, написанные на других языках того времени.
В течение 1970-х годов Pascal был «единственным языком программирования, который всех устраивал». Компания IBM с помощью языка PL/I делала попытку создать что-то подобное. Так же как и PL/I, Pascal не достиг наивысшей цели. Популярность языка Pascal упала так же быстро, как и выросла. В 1970-х наблюдался огромный рост применения языка Pascal, а в 1980-х — резкий спад интереса к нему.
Несмотря на потерю занимаемого положения, Pascal открыл для других языков дорогу к поддержке структурных концепций, обслуживаемости программ и бесплатному использованию программ.
2.2 Ассемблер[2]
Язык Ассемблера - это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах. Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ассемблеру. В принципе, язык Ассемблер является машинным языком. И программист, реализующий какую-либо задачу на язык высокого уровня, с помощью Ассемблера может определить осмысленно ли решение данной задачи, с точки зрения использования ЭВМ. Ассемблер имеет одну особенность, которая отпугивает многих начинающих языков программистов,- ассемблер является машинно-зависимым языком. Это означает, что пишущий на ассемблере работает непосредственно с ресурсами компьютера, что требует хорошего знания его архитектуры, логики работы операционной системы, а также большой аккуратности при написании программы.
Несмотря на то, что ассемблер является машинно-ориентированным языком, то есть языком низкого уровня, программист может применять его для работы, как на высоком, так и на среднем уровне. Низкий уровень программирования на ассемблере подразумевает прямое обращение к каналам ввода-вывода устройств, называемых портами ввода-вывода, и прямой доступ в оперативную память.
TurboAssembler, помимо полной поддержки транслятора фирмы Microsoft имеет дополнительные возможности, объединённые в режиме, названном разработчиками Ideal. Использование этого режима даёт возможность начинающему программисту применять более наглядный и простой стиль разработки программ. Более опытные программисты, пишущие на ассемблере, могут использовать такие возможности режима Ideal, как вложенные структуры, объединения.
Важной особенностью режима Ideal является применение проверки типов данных, подобно языкам высокого уровня, что позволяет выявить многие ошибки ещё на этапе трансляции.
Ассемблер предоставляет программисту полую свободу действий при разработке программы, что является и его достоинством, и недостатком, так как требует от разработчика знания системы команд данного компьютера и его операционной системы. Кроме того, несмотря на минимальный размер выполняемого файла при максимальной скорости работы, время, необходимое для создания программы, резко возрастает с увеличением объёма разрабатываемого проекта. Поэтому ассемблер был и остаётся языком программирования для профессионалов.
2.3 Си++[3]
Наследник C язык C++ быстро завоевал поддержку, являясь обновленной версией языка C. C++ был разработан шведским программистом по имени Бьярн Страуструп (Bjarne Stroustrup) в начале 1980-х. C++ имеет на вооружении несколько дополнительных команд и операторов, но основное отличие заключается в подходе к программированию.
Главная причина, по которой и сейчас C++ остается популярным, — он поддерживает объектно-ориентированное программирование (ООП). ООП — это иной способ написания программ, помогающий программисту писать программы быстрее и с наименьшим числом ошибок. ООП также позволяет повысить скорость обслуживания.
Так как Си++ восходит, главным образом, к Си. Поэтому сделанного в Си акцента на средствах низкого уровня достаточно, чтобы справляться с самыми насущными задачами системного программирования. Си, в свою очередь, многим обязан своему предшественнику BCPL.
Си++ - это машинно-ориентированный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьёзного программиста. За исключением второстепенных деталей Си++ является надмножеством языка программирования Си.
Позднее была проведена проверка определения Си++, чтобы удостовериться в том, что любая конструкция, допустимая и в Си, и в Си++, действительно означает в обоих языках одно и то же. В Си++ нет типов данных высокого уровня и нет первичных операций высокого уровня. В нём нет, например, матричного типа с операций обращения.
Если пользователю понадобится подобный тип, его можно определить в самом языке. По сути дела, основным, чем занимается программирование на Си++ - это определение универсальных и специально-прикладных типов.
Популярность объектно-ориентированного языка C++ дала начало множеству новых языков для современного Интернета. Причиной успешного развития языка Java (Джава) (и его производных, таких как JavaScript) является широкомасштабное использование в нем языка C++, и хотя C++ не поддерживает достаточной безопасности программирования web-сайтов, его объектно-ориентированная природа делает Java хорошим кандидатом для программирования объектов Интернета. Компания Sun Microsystems изменила язык C++, добавив в него элементы обеспечения достаточной безопасности и убрав ряд сомнительных возможностей C++. (Примером является множественность наследования, которая позволяет генерацию одного объекта программирования, такого как окно, из набора нескольких родительских окон с различными характеристиками. Подобная концепция сбивает с толку даже при формулировании ее на высоком уровне.)
2.4 Бейсик
BASIC был разработан в колледже города Дартмут (Dartmouth) и предназначался для обучения начинающих. Язык FORTRAN был сложным для студентов нематематических отделений. Джон Кимини (John Kemeny) и Томас Курц (Thomas Kurtz), учившиеся в Дартмуте, при разработке языка BASIC в качестве основы использовали FORTRAN. BASIC — сокращение от Beginner’s All-purpose Symbolic Instruction Code (универсальный код символических инструкций для начинающих) — имя, которое говорит само за себя. BASIC, как правило, используется с интерпретатором, хотя современные версии BASIC являются компилирующими. Это позволяет новичкам сосредоточиться на языке программирования и не вникать в особенности компиляции. Как и все интерпретируемые языки, BASIC-программы выполняются медленнее, чем откомпилированные программы, поэтому программы на языке BASIC не используются в коммерческих приложениях.
Этот язык стал одним из самых распространённых. Бейсик был первоначально задуман как очень простой язык, который можно было бы очень быстро освоить. В язык были включены примитивные средства редактирования, с тем, чтобы избавить пользователя от необходимости разбираться во всех сложностях базовой операционной системы. Вначале Бейсик использовался только для обработки числовых величин, но позднее был расширен средствами обработки строковых переменных и снабжен набором процедур простого манипулирования символьными цепочками, который фактически стал стандартом. Простота Бейсика сделала его наиболее подходящим языком программирования для первых микроЭВМ. В настоящее время он является основным языком программирования персональных ЭВМ. К сожалению, почти каждая машина имеет свой собственный диалект Бейсика, поэтому мобильность программ на Бейсике обеспечить довольно трудно. В настоящее время во многие диалекты Бейсика включаются современные управляющие структуры типа: REPEAT…UNTIL, что вселяет определённый оптимизм.
2.5 Лого
Язык Лого был создан с целью обучения школьников основам алгоритмического мышления и программирования. Лого - диалоговый процедурный язык, реализованный на основе интерпретатора с возможностью работы со списками и на их основе с текстами, оснащенный развитыми графическими средствами, которые доступны для детского восприятия. Этот язык реализован для большинства ПЭВМ, применяемых в школах. Хотя язык был разработан задолго до того, как началось массовое распространение персональных компьютеров, именно с их появлением этот язык привлёк внимание и приобрёл популярность.
2.6 Форт
Язык Форт относится к числу своеобразных языков. Он весьма популярен среди пользователей микроЭВМ. Основной чертой языка Форт является его открытость, которая позволяет строить новые определения функций на базе ранее определённых. Программист может легко добавить новые операции, типы данных или определения основного языка. Форт позволяет поддерживать многозадачный режим работы, широко используя принцип реентерабельности (одновременного доступа) программ. Структура языка позволяет создавать очень компактные трансляторы (переводчики). Программирование на этом языке требует специальных навыков, поэтому Форт находит применение при решении сложных задач имитационного моделирования, в графических системах, в системах искусственного интеллекта как средство построения баз знаний, в промышленных разработках.
2.7 Пролог
Пролог является языком логического программирования. Главное назначение языка - разработка интеллектуальных программ и систем. Пролог-это язык программирования, созданный специально для работы с базами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В языке реализован механизм возврата для выполнения обратной цепочки рассуждений, при котором предполагается, что некоторые выводы или заключения истинны, а затем эти предположения проверяются в базе знаний, содержащей факты и правила логического вывода. Если предположение не подтверждается, выполняется возврат и выдвигается новое предположение. Пролог принят в качестве основного языка в японских ЭВМ пятого поколения.
2.8 Рефал
Несомненно надо рассказать и о некоторых языках программирования созданных у нас на родине. Один из таких языков является Рефал, разработанный у нас в России (СССР), в 1966г. ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами.
Рефал широко применяется при разработке трансляторов с алгоритмических языков как универсальных и проблемно – ориентированных, так и автокодов. Кроме использования в задачах трансляции, Рефал имеет такие важные сферы применения, как машинное выполнение громоздких аналитических выкладок в теоретической физике и прикладной математике; проектирование «умных» информационных систем, осуществляющих нетривиальную логическую обработку информации; машинное доказательство теорем; моделирование целенаправленного поведения; разработка диалоговых обучающих систем; исследования в области искусственного интеллекта и т.п.
Программирование на Рефале имеет специфику, связанную, прежде всего, с тем, что Рефал является языком функционального типа в отличие от обычных операторных языков типа Алгол, Фортран и т.д.. Если программа на операторных языках – ни что иное, как совокупность приказов-операторов, то программа на Рефале представляет собой по существу описание связей и отношений между определенными понятиями.
Вследствие того, что в Рефале программист сам определяет структуру обрабатываемой информации, эффективность программы существенно зависит от удачного или неудачного выбора этой структуры. Для задания структур в Рефале используются скобки, а специфика всех реализаций языка такова, что использование скобок резко повышает эффективность выполнения программы. Это достигается с помощью адресного соединения скобок.
Определенной спецификой обладают и переменные типа «выражения» имеется в виду их способность удлиняться при отождествлении. Правильное использование переменных этого типа также позволяет значительно повысить эффективность Рефал – программы.
2.9 Лекс
Лекс – генератор программ лексического анализа. Лексический анализ это распознавание лексем во входном потоке символов. Предположим, что задано некоторое конечное множество слов (лексем) в некотором языке и некоторое входное слово. Необходимо установить, какой элемент множества (если он существует) совпадает с данным входным словом. Обычно лексический анализ выполняется так называемым лексическим анализатором. Лексический анализатор – это программа. Лексический анализ применяется во многих случаях, например, для построения пакетного редактора или в качестве распознавателя директив в диалоговой программе и т.д. Однако, наиболее важное применение лексического анализатора – это использование его в компиляторе. Здесь лексический анализатор выполняет функцию программы ввода данных.
Лексический анализатор выполняет первую стадию компиляции – читает строки компилируемой программы, выделяет лексемы и передает их на дальнейшие стадии компиляции (грамматический разбор, кодогенерацию и т.д.).
Лексический анализатор распознает тип каждой лексемы и соответствующим образом помечает ее. Например, при компиляции Си-программы могут быть выделены следующие типы лексем: число, идентификатор, оператор, ограничитель и т.д.
Лексический анализатор должен не только выделить лексему, но и выполнить некоторые преобразования. Например, если лексема – число, то его необходимо перевести во внутреннюю (двоичную) форму записи как число с плавающей или фиксированной запятой. А если лексема – идентификатор, то его необходимо разместить в таблице, чтобы в дальнейшем обращаться к нему не по имени, а по адресу в таблице.
Хотя лексический анализ по своей идее прост, тем не менее, эта фаза работы компилятора часто занимает больше времени, чем любая другая. Частично это происходит из-за необходимости просматривать и анализировать исходный текст символ за символом. Иногда даже бывает необходимо вернуть прочитанный символ во входной поток с тем, чтобы повторить просмотр и анализ.
3 Понятие, назначение и составные элементы систем программирования
Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает пользователя или программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд, и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы – трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.
Язык – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций.
Реализация языка – это системная программа, которая переводит (преобразует) записи на языке
По набору входных языков различают системы программирования одно- и многоязыковые. Отличительная черта многоязыковых систем состоит в том, что отдельные части программы можно составлять на разных языках и с помощью специальных обрабатывающих программ объединять их в готовую для исполнения на ЭВМ программу.
По структуре, уровню формализации входного языка и целевому назначению различают системы программирования машинно-ориентированные и машинно-независимые.
3.1 Машинно-ориентированные системы программирования[4]
Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства, которые существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные системы позволяют использовать все возможности и особенности машинно-зависимых языков:
· высокое качество создаваемых программ;
· возможность использования конкретных аппаратных ресурсов;
· предсказуемость объектного кода и заказов памяти;
· низкая скорость программирования;
· невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
3.1.1 Машинный язык[5]
В таких системах программирования отдельный компьютер имеет свой определённый машинный язык. Некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый машинный язык для ЭВМ разной мощности. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно-аппаратным путём. Машинный язык является внутренним языком ЭВМ и представляет собой систему инструкций и данных, которые не требуют трансляции и могут непосредственно интерпретироваться и исполняться аппаратными средствами ЭВМ.
3.1.2 Системы символического кодирования[6]
В данных системах используются языки символического кодирования, которые так же, как и машинные языки, являются командными. Однако, коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в языках символического кодирования заменены символами (идентификаторами), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ. Использование символических адресов – первый шаг к созданию языков символического кодирования. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста.
3.1.3 Автокоды
Существуют системы программирования, использующие языки, которые включают в себя все возможности языков символического кодирования, посредством расширенного введения макрокоманд – они называются Автокоды. В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определённым процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя пу-тями – расстановкой и генерированием. Развитые автокоды получили название Ассемблеры.
3.1.4 Макрос
В таких системах язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму – называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макросопределяющий и исходный текст. Реакция макропроцессора на вызов – выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными.
3.2 Машинно-независимые системы программирования[7]
Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ. Операторы языка описывают действия, которые должна выполнять система после трансляции программы на машинном языке. Таким образом, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
3.2.1 Процедурно-ориентированные системы [8]
Входные языки программирования в таких системах служат для записи алгоритмов (процедур) обработки информации, характерных для решения задач определённого класса. Эти языки, должны обеспечить программиста средствами, позволяющими коротко и чётко формулировать задачу получать результаты в требуемой форме. Процедурных языков очень много, например; Фортран, Алгол – языки созданные для решения математических задач;
Simula, Слэнг – для моделирования; Лисп, СНОБОЛ – для работы со списочными структурами.
3.2.2 Проблемно-ориентированные системы[9]
Проблемно-ориентированные системы в качестве входного языка используют язык программирования с проблемной ориентацией. С расширением областей применения вычислительной техники возникла необходимость формализовать представления постановки и решения новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач. Программы, составленные на основе этих языков программирования, записаны в терминах решаемой задачи и реализуются выполнением соответствующих процедур.
3.2.3 Диалоговые языки[10]
Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками. Разрабатывались языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.
3.2.4 Непроцедурные языки[11]
Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчётов), и языков связи с операционными системами. Позволяя чётко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны выполняться, прежде чем переходить к какому-либо действию. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
4 Выводы
Новые языки легче в использовании. Большинство современных языков имеет интегрированную среду разработки и поддерживает структурное программирование. Для графических операционных систем, например Windows, требуются более сложные средства программирования, но с помощью простых в обращении языков, таких как Visual Basic, процесс облегчается настолько, что даже начинающие программисты могут работать с графической средой.
· Современные языки программирования обеспечивают огромные преимущества по сравнению с предшествующими языками. Они более структурированы и предоставляют интегрированную среду разработки.
· В 1970-х самым популярным языком общего применения был Pascal, но в 1980-х его применение резко сократилось.
· Язык C, разработанный компанией Bell Laboratories, является очень эффективным, но низкоуровневым языком программирования. Язык C — это основа современных языков.
· Самым большим преимуществом языка C++ над его предшественником является поддержка объектно-ориентированного программирования.
· Visual Basic, наследник языка BASIC, обеспечивает наилучшую базу программирования для начинающих.
· Выбор используемого языка определяется многими факторами.
Большинство языков имеют специализацию и подходят для написания определенного типа программ. Выбор языка определяется исходя из направленности разрабатываемой программы. Кроме того, программист должен отдавать себе отчет в том, насколько этот язык распространен, на тот случай, если кому-то в будущем придется заниматься обслуживанием его программы.
5 Практическая часть
1. Используя ППП на ПК, необходимо построить таблицы по приведённым ниже формам (рис. 2, 3).
Определить средний бал экзаменационной сессии по курсам и по факультету.
Результаты округлить до одного десятичного знака после запятой, используя функцию ОКРУГЛ. Определить рейтинг (место по уровню успеваемости) каждого курса.
Ввести текущее значение даты между таблицей и её названием.
По данным таблицы на рис.3 (графы 1 и 2) построить круговую диаграмму с заголовком, подписями данных и легендой.
1 курс | 2 курс | 3 курс | 4 курс | 5 курс | |||||
Балл | Кол-во оценок | Балл | Кол-во оценок | Балл | Кол-во оценок | Балл | Кол-во оценок | Балл | Кол-во оценок |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
5 | 23 | 5 | 27 | 5 | 32 | 5 | 28 | 5 | 34 |
4 | 57 | 4 | 60 | 4 | 58 | 4 | 63 | 4 | 62 |
3 | 18 | 3 | 14 | 3 | 10 | 3 | 9 | 3 | 6 |
2 | 7 | 2 | 9 | 2 | 4 | 2 | 1 | 2 |
Рис.2. Сведения о результатах экзаменационной сессии
Курс | Средний балл | Рейтинг |
1 | 2 | 3 |
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
По факультету |
Рис.3 Средний балл по курсам и факультету
2. Используя MicrosoftExcel, строим таблицы, приведённые на рис.2,3.
Для определения среднего бала экзаменационной сессии по курсам используем формулу для поиска среднего арифметического значения. Полученные значения заносятся в соответствующие ячейки таблицы 2. Для определения среднего бала экзаменационной сессии по факультетам действуем аналогично.
Чтобы округлить результат до одного десятичного знака после запятой, используем функцию ОКРУГЛ. Формат команды: ОКРУГЛ(А;В), где А – десятичное число; В – до какого знака необходимо округлить.
Используя округлённые значения среднего бала, определяем рейтинг каждого курса.
Вводим текущее значение даты между таблицей и её названием.
С помощью функции “мастер диаграмм” строим круговую диаграмму по данным таблицы (рис.3) называем её “ Средний балл по курсам”.
Далее приведено неформализованное решение задачи и инфологическая модель решения задачи.
Рис.4. Неформализованное решение задачи
Рис.5 Инфологическая модель решения задачи
3. Для выполнения практической работы выбираем программу MicrosoftExcel, так как она полностью удовлетворяет всем потребностям. В MicrosoftExcelорганизована работа с диаграммами, а также имеются необходимые встроенные функции.
Таблица 1.
Таблица с исходными данными
1 курс | 2 курс | 3 курс | 4 курс | 5 курс | |||||
балл | Кол-во оценок | балл | Кол-во оценок | балл | Кол-во оценок | балл | Кол-во оценок | балл | Кол-во оценок |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
5 | 23 | 5 | 27 | 5 | 32 | 5 | 28 | 5 | 34 |
4 | 57 | 4 | 60 | 4 | 58 | 4 | 63 | 4 | 62 |
3 | 18 | 3 | 14 | 3 | 10 | 3 | 9 | 3 | 6 |
2 | 7 | 2 | 9 | 2 | 4 | 2 | 1 | 2 | |
курс | средний балл | рейтинг | Средний балл | Округл. | |||||
1 | 2 | 3 | 3,85981 | 3,9 | |||||
1 | 3,9 | 5 | 3,92105 | 3,9 | |||||
2 | 3,9 | 4 | 4,18182 | 4,2 | |||||
3 | 4,2 | 3 | 4,37615 | 4,4 | |||||
4 | 4,4 | 2 | 4,69643 | 4,7 | |||||
5 | 4,7 | 1 | Рис.3.Вспомогательная таблица. | ||||||
по факультету | 4,2 | ||||||||
рис.2. Средний балл по курсам и факультету. |
Средний бал по курсам
1—Средний балл по 1-му курсу.
2—Средний балл по 2-му курсу.
3-- Средний балл по 3-му курсу.
4-- Средний балл по 4-му курсу.
5-- Средний балл по 5-му курсу.
Курс | Средний балл | Рейтинг |
1 | 2 | 3 |
1 | =ОКРУГЛ((A3*B3+A4*B4+A5*B5+A6*B6+A7*B7)/B8;1) | ЕСЛИ(E12=НАИБОЛЬШИЙ(E12:E16;1);1;ЕСЛИ(E12=НАИБОЛЬШИЙ (E12:E16;2);2;ЕСЛИ(E12=НАИБОЛЬШИЙ(E12:E16;3);3; ЕСЛИ(E12=НАИБОЛЬШИЙ(E12:E16;4);4;5)))) |
2 | =ОКРУГЛ((C3*D3+C4*D4+C5*D5+C6*D6+C7*D7)/114;1) | ЕСЛИ(E13=НАИБОЛЬШИЙ(E12:E16;1);1;ЕСЛИ(E13=НАИБОЛЬШИЙ (E12:E16;2);2;ЕСЛИ(E13=НАИБОЛЬШИЙ(E12:E16;3);3; ЕСЛИ(E13=НАИБОЛЬШИЙ(E12:E16;4);4;5)))) |
3 | =ОКРУГЛ((E3*F3+E4*F4+E5*F5+E6*F6+E7*F7)/110;1) | =ЕСЛИ(E14=НАИБОЛЬШИЙ(E12:E16;1);1;ЕСЛИ(E14=НАИБОЛЬШИЙ(E12:E16;2);2;ЕСЛИ(E14=НАИБОЛЬШИЙ(E12:E16;3);3;ЕСЛИ(E14=НАИБОЛЬШИЙ(E12:E16;4);4;5)))) |
4 | =ОКРУГЛ((G3*H3+G4*H4+G5*H5+G6*H6+G7*H7)/109;1) | =ЕСЛИ(E15=НАИБОЛЬШИЙ(E12:E16;1);1;ЕСЛИ(E15=НАИБОЛЬШИЙ(E12:E16;2);2;ЕСЛИ(E15=НАИБОЛЬШИЙ(E12:E16;3);3;ЕСЛИ(E15=НАИБОЛЬШИЙ(E12:E16;4);4;5)))) |
5 | =ОКРУГЛ((I3*J3+I4*J4+I5*J5+I6*J6+I7*J7)/112;1) | =ЕСЛИ(E16=НАИБОЛЬШИЙ(E12:E16;1);1;ЕСЛИ(E16=НАИБОЛЬШИЙ(E12:E16;2);2;ЕСЛИ(E16=НАИБОЛЬШИЙ(E12:E16;3);3;ЕСЛИ(E16=НАИБОЛЬШИЙ(E12:E16;4);4;5)))) |
По факультету | =(B12+B13+B14+B15+B16)/5 |
Курс | Средний балл | Рейтинг |
1 | 2 | 3 |
1 | (1*2+5*23+4*57+3*18+2*7)/(2+23+57+18+7)=3,859813 | 5 |
2 | (3*4+5*27+4*60+3*14+2*9)/(4+27+60+14+9)=3,92105 | 4 |
3 | (5*6+5*32+4*58+3*10+2*4)/(6+32+58+10+4)=4,18182 | 3 |
4 | (7*8+5*28+4*63+3*9+2*1)/(8+28+63+9+1)=4,37615 | 2 |
5 | (9*10+5*34+4*62+3*6+2)/(10+34+62+6)=4,69643 | 1 |
По факультету | 3,85981+3,92105+4,18182+4,37615+4,69643 = =4,207052 |
В практической части с использованием процессора MSExcelя рассчитала и представила в табличном виде согласно заданным формам результаты экзаменационной сессии с определением среднего балла по курсам и факультету и рейтинг успеваемости каждого курса.
6 Список литературы
1. В.Ю. Демьяненко. “Программные средства создания и ведения баз данных”. – М.: Финансы и статистика, 1984.
2. В.А. Мясников, С.А. Майоров, Г.И. Новиков. ЭВМ для всех. - М.: Знание, 1985.
3. А.Г. Гейн. “Основы информатики и вычислительной техники”. - М.: Просвещение, 1997.
4. В.Ф. Ляхович. “Основы информатики”.- Ростов-на-Дону: Феникс,1996.
5. “Вычислительная техника и программирование”/Под ред. А.В. Петрова-М.: Высш. Шк.,1990.
6. “Информационные технологии управления”: Инфоматика-М.Ф. Меняев: Омега-л, 2003.
7. “Компьютерные системы и сети”/Под ред. В.П. Косарёва и Л.В. Ерёмина-М.: Финансы и статистика,1999.
8. “Экономическая информатика”: Под ред. В.П. Косарёва и Л.В. Ерёмина-М.: Финансы статистика, 2001.
9. “Информатика”: Под ред. Н.В. Макаровой: Фис., 1997
10. “Информатика”, базовый курс , 2-е издание./ Под ред. С.В. Симоновича-СПб. Питер, 2004.
11. Леонтьев: “ Новейшая энциклопедия программного компьютера”: Пресс,2003.
12. Савинков В.М.”Толковый словарь по информатике”- 2-е издание,-М.: Финансы и статистика, 1995.
13. “Вычислительные машины, системы и сети”/ Под ред. А.П. Пятибратова.-М.: Финансы и статистика, 1991.
14. Якубайтис Э.А. “ Информационные сети и системы”. Справочная книга. - М.: Финансы и статистика, 1996.
15. “Экономическая информатика и вычислительная техника”: Г.А. Титоренко, Н.Г. Черняк и др.; Под ред. В.П.Косарёва, А.Ю.Королёва.- 2-е издание, перераб. и доп.-М.: Финансы и статистика, 1996.
16. Якубайтис Э.А.” Информатика – Электроника – Сети”. - М.: Финансы и статистика, 1984.
17. “Персональный компьютер для всех”/ Под ред.А.Я. Савельева. - М.: Высшая школа,1991.
18. “Информатика”. Энциклопедический словарь для начинающих. - М.: Пресс, 1994.
19. Острейковский В.А.” Информатика”. - М.: Высшая школа,2000.
20. Малютин Э.А., Малютина Л.В. Языки программирования, 1982 г
21. Ваулин А.С. Языки программирования.— кн.5, 1993 г.;
[1]
Самоучитель программирования.
[2]
Леонтьев. Новейшая энциклопедия программного компьютера. — Пресс,2003.
[3]
Острейковский В.А. Информатика. — М.: Высшая школа,2000
[4]
М.Ф. Меняев. Информационные технологии управления.— Омега-л, 2003
[5]
Вычислительные машины, системы и сети — Под ред. А.П. Пятибратова.-М.: Финансы и статистика, 1991).
[6]
Якубайтис Э.А. Информационные сети и системы. Справочная книга.— М.: Финансы и статистика, 1996
[7]
Савинков В.М. Толковый словарь по информатике.— 2-е издание,-М.: Финансы и статистика, 1995
[8]
Информатика, базовый курс , 2-е издание./ Под ред. С.В. Симоновича-СПб. Питер, 2004
[9]
Экономическая информатика.— Под ред. В.П. Косарёва и Л.В. Ерёмина-М.: Финансы статистика, 2001
[10]
Персональный компьютер для всех.— Под ред.А.Я. Савельева. - М.: Высшая школа,1991
[11]
В.Ф. Ляхович. Основы информатики.— Ростов-на-Дону: Феникс,1996