Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Понятие переменной в программировании. Виды и типы переменных (КРАТКИЙ ОБЗОР И КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ)

Содержание:

ВВЕДЕНИЕ

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

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

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

Любая программа, как правило, оперирует с данными – массивами, переменными и константами, структурами, которые разработаны программистом самостоятельно, при этом важное значение имеет выбор типа переменной, от которого зависит получемые результат и объём памяти, который выделяется под конкретную переменную, хотя в настоящее время не стоит проблемы нехватки памяти, хорошим стилем программирования является продуманное расходование ресурсов.

Исходя из вышесказанного, тема курсовой работы может считатся актуально.

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

Для достижения поставленной цели необходимо решить следующие задачи:

  1. Рассмотреть историю развития языков программирования;
  2. На примере нескольких современных языков показать способы описания переменных и на кнкретных примерах показать важность выбора правильного типа данных
  3. Сделать выводы по полученным результатам.

1. КРАТКИЙ ОБЗОР И КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1.1 Классификация языков рпограммирования

Язык программирования представляет собой совокупность основных символов (алфавит) и правил составления из них смысловых конструкций. Он должен обеспечивать взаимодействие человека с машиной и быть удобен и понятен им обоим. В соответствии с представлениями об уровне абстракции, на котором формируется задача и процессы обработки данных в реальном устройстве (процессоре), говорят об уровне языков програм¬мирования. Можно выделить языки низкого и высокого уровня.

К языкам низкого уровня относят [2]:

• машинные языки — языки кодов ЭВМ;

• машинно-ориентированные языки: — ассемблеры, мнемо-коды.

Языки реально функционирующих процессов называются языками низкого уровня (например, язык для функционирования процессора). Написание программ на языках низкого уровня требует более высокой квалификации программиста. Первые языки программирования представляли собой машинные коды. Они были эффективными и удобными для работы ЭВМ, но сложными для восприятия человеком – требовали длительного изу­чения и специальных навыков использования. Программист должен был писать действительные адреса ячеек памяти, в которых размешены данные, участвующие в операциях, результаты, а также адреса команд.

Язык ассемблера представляет собой машинно-ориентированный язык, использующий символическое представление машинного языка. Операции машинного языка записываются в форме с применением мнемонических команд. Имеется возможность объединения нескольких машинных команд в мак­рокоманды. Программы, написанные на ассемблере, имеют большую длину, их написание сложно, но для задач, управления аппаратной частью ЭВМ, они являются самыми эффективными, поэтому для решения задач управления аппаратурой, вставки на ассемблере используют языках более высокого уровня. Использование машинных языков так же сохраняется в системах управления технологическими процессами и производствами.

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

  • проблемно-ориентированные языки, имеющие средства организации структур данных и описания алгоритмов и ориентированные на решение задач определенного класса: Фортран, Алгол, Кобол, Ада и др.;
  • универсальные: Алгол-68, PL/1, Паскаль, QBasic, Си-н-, Си# и др.;
  • языки проектирования программ (системы программирования) — в настоящее время имеют самый высокий уровень абстракции. Они расширяются не как языки описания процесса обработки данных, а как средства описания задач:
  • языки гипертекстовой разметки, например HTML — набор колов, который вводится в документ для обозначения связей между его частями Команды НТМL обеспечивают объединение сайтов и страниц Всемирной паутины с использованием гиперссылок и указывают web браузеру способ расположении данных;
  • языки описания сценариев представляют собой макросы, в которых объединены отдельные команды, управляющие средой – например – пакетом Microsoft Office);

• языки моделирования систем — например. GPSS, позволяющий автоматизировать проиесс программирования моделей. Язык построен в предположении. Что моделью сложной системы является описание ее эле-ментов и логических правил их взаимодействия.

При решении типовых задач обработки данных в автоматизированных системах применяются языки высокого уровня и системы программирования. В настоящее время большую популярность приобретает автоматическое программирование позволяющее выполнить перевод с входного языка на машинный язык для работы по подготовке и програм-мирован ию задач на ЭВМ

Проблемно-ориентированные языки предназначены для решения определенного класса задач и не зависят от конкретного типа ЭВМ. Они содержат перечень типовых операций, используемых при решении данного класса задач, и их условные наименования в терминах, привычных для специалистов в данной области. Например, Фортран и Алгол созданы для решения математических задач, Кобол — для решения экономических задач и др. Эти языки появились в конце 1950-х годов и положили начало эпохе развития языков программирования высокого уровня [1].

Кроме универсальных выделяют группы специальных языков:

• баз данных ;

создания сетевых приложений;

• создания систем искусственною интеллекта)

• пользовательские.

История развития языков программирования. Впервые c потребностью в написании программ для вычислительной машины Чарльза Бэббиджа столкнулась математик Ада Лавлей, которая создала первую программу — для Вычисления чисел Бернулли, так же ей принаджежит введение циклов, условных переходов и некоторых других команд. Она считается первым программистом, в ее честь назван язык Ада (1979). Для первых ЭВМ, в 1949 г. под руководством Джона Мочли язык Short Code. Для первого в мире большого цифрового компьютера «Марк I» группа Мочли, стали писать подпрограммы – многократно используемые последовательностикоманд, построенные таким образом, чтобы кажду из них можно было многократно использовать внутри программы.

В 1950-е годы появившаяся программа-компоновщик А-0, поставлявшаяся вместе с компьютером «Юнивак», использовалась для создания других программ. По условному коду компоновщик выбирал нужную подпрограмму из библиотеки. Извлекая подпрограмм, можно было сформировать новую программу.

С развитием электронно-вычислительной техники в 1950-е годы появляются языки программирования высокого уровня. В фирме IBM группа инженеров под руководством Джона Бэкуса был разработан язык программирования Фортран – переводчик формул, предназначенный для решения математических и инженерных задач. Язык был прост в освоении, а потери эффективности незначительными. Первая версия языка Алгол была принята на совещании в Цюрихе, в котором участвовали ведущие специалисты в области программирования. Язык был предназначен для записи алгоритмов вычислительных задач и представлял собой первый язык блочной структуры.

В 1959 г. для решения коммерческих задач группой производителей и пользователей компьютеров был создан язык Кобол – универсальный язык для бизнеса. Язык является хорошо структурированным – программа включает четыре самостоятельных, расположенных в строго определенном порядке разделов: идентификаций, оборудования, данных и операторов.

В 1960 г. на конференции в Париже представители США, ФРГ, Великобритании, Франции, Дании, Голландии и Швейцарии утвердили улучшенную версию языка — Алгол-60, — получившую широкое распространение, на основе которого был разработан — первый объектно-ориентированный язык Simula-67, Алгол-68 [2].

В 1961 — 1965 гг. Джоном Маккарти в Массачусетском техно-логическом институте был создан язык функционального про-граммирования (программа описывает вычисление некоторой функции), который ориентирован на решение задач нечислен-ного характера. Лисп — символьный язык для обработки списков. Понятие «список» пони¬мается широко и включает представление алгебраических выражений, графов, элементов конечных групп, множеств, правил вывода и многое другое. Основные типы данных в языке называются «атом» и «точечная пара». Лисп создавался как язык для исследований по проблеме искусственного интеллекта. Основой этого языка служит математическая теория алгоритмов и рекур¬сивных функций, т. е. вычисление значения функции через значе¬ния этой же функции от других элементов. Присваивания и циклов в функциональном языке нет. Лисп — универсальный язык, так как любой алгоритм может быть описан с помощью некоторого набора рекурсивных функций, что позволяет моде¬лировать на ЭВМ сложные алгоритмы обработки данных, в том числе алгоритмы моделирования интеллектуальной деятельности людей. В 1984 г. вышел Common Lisp, а затем система Common Lisp Object System (CLOS). В дальнейшем были разработаны программные продукты, основанные на Лиспе: Common Lisp, Mac Lisp, Inter Lisp, Standard Lisp, Common Loops — система для обработки знаний и программирования, New Flavors — система посылки сообщений, используемая в коммерческих целях, и др.

В 1965 г. в Институте кибернетики Академии наук Украин¬ской ССР под руководством академика В. М. Глушкова для ЭЦВМ «Мир» был разработан язык высокого уровня Алмир (ал¬горитмический язык для машины «Мир»), транслятор с которого был постоянно встроен в машину. Язык был разработан на базе длгола, но использовал символику русского языка и стал одним из первых (возможно, первым) национальным языком программирования.

В 1966 г. в Институте прикладной математики АН СССР В Турчиным был создан функциональный язык РЕФАЛ (алго¬ритмический язык рекурсивных функций). Построенный на ал¬горитмах Маркова, он удобен для обработки текстов. Язык ак¬тивно использует мощные средства преобразования списков на основе концепции распознавания по образу.

В 1970-х годах появилось непроцедурное (декларативное) программирование — программирование на функциональных и логических языках, — начавшее быстро развиваться в 1980—1990-х годах в связи с разработкой в Японии проекта создания ЭВМ пятого поколения — поколения интеллектуальных машин.

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

Классическим языком логического программирования считает¬ся Пролог (Prolog — Programming in Logic) — язык для создания систем искусственного интеллекта, разработанный в 1971— 1972 гг. сотрудником университета в Лумини (Франция) Аланом Колмари. Пролог (Пролог++) — символьно-логическая система программирования, вначале предназначенная для решения теорем, сейчас используемая для поиска решений, связанных с искусственным интеллектом. Язык позволяет в формальном виде описывать различные утверждения, правила рассуждений, заставляет ЭВМ рассуждать и давать ответы на заданные вопросы. Программа состоит из некоторого множества отношений, а ее выполнение сводится к выводу нового отношения на основе за данных. Понятия и принципы языка основаны на математической логики и аппарата автоматического доказательства теорем, созданного в ходе исследований по искусственн теллекту.

В 1965 г. на основе Фортрана профессора Дартмутского колледжа (США) Джон Кемени и Томас Куртц для обучения студентов разработали язык Бейсик — универсальный символьный программный код для начинающих). Язык прост и в то же время имеет широкие возможности для обработки символьной и графической информации. Характерные черты языка: диалоговый режим работы, нумерация строк, вещественный и символьный типы данных, управляющие конструкции, все переменные являются глобальными, наличие массивов. Язык нашел широкое применение и имеет много версий, одну из которых в 1975 г. написали Билл Гейтс и Пол Аллен. В 1980-х годах Microsoft выпустила QuickBasic [4], обладающий большим быстродействием, простотой, компактностью. Но основная часть языка во всех вер­сиях одна. Вот лишь несколько версий языка: Basic, GWBasic, Power Basic, Turbo Basic, QuickBasic (компилирующая система языка входит в состав MS-DOS, начиная с версии DOS 5.0), Visual Basic (для программирования в среде Windows).

В 1970 г. швейцарский ученый Никлаус Вирт разработал язык Паскаль для новой операционной системы UNIX, установленной на компьютере CDC 6000. Язык нашел широкое применение и послужил базой для создания паскалеподобных языков: дда, Модула-2, Оберон — два последних были разработаны также Никлаусом Виртом. В 1975 г. Вирт и Йенсен выпустили классическое описание языка «Pascal User and Report». В 1983 г. появляется Турбо Паскаль фирмы Borland. Выпустив семь версий этого пакета, фирма Borland/Inprise стала выпускать систему визуальной разработки Delphi для ОС Windows.

Язык Си создан Д. Ритчи и Б. Керниганом в 1972 г. В 1979 г. Бьерном Страуструпом разработан «Си с классами», а в 1983 г. — Си++. Этот язык в основном является языком Си со специальными синтаксическими расширениями для определения и управления объектами, введена поддержка абстракции данных, проверка типов аргументов функций и макроподстановка функций. Язык, повсеместно эффективно используемый для объектно-ориентированного программирования, постоянно совершенствуется. Были разработаны языки, основанные на Си, такие как Objective-C, C-talk, Complete С.

Языки Си и Паскаль стали самыми популярными языками для структурного программирования, подняв его на новый уро¬вень упорядоченности и производительности .

Язык Ада разработан группой французских ученых под руко¬водством Ж. Ишбиа в период 1975—1980 гг. по заказу Министер¬ства обороны США для создания бортовых систем управления военными объектами. Конечная версия международного стан¬дарта языка была опубликована в 1987 г. Последний стандарт описывает версию языка Ада-95. Она является первой в мире объектно-ориентированной системой программирования, на ко¬торую был введен международный стандарт —ISO/les 8652:1985 (Е). По своей структуре язык Ада очень похож на Паскаль и име¬ет возможность использовать неоднородные структуры, разделе¬ние памяти, реализовывать неявные функции преобразования типов. Язык ориентирован на тщательный контроль программ, чтобы надежность военных систем была максимальной. Ада располагает большим набором данных (например, ch — символьный, такого типа нет ни в Фортране, ни в Алголе-60), возможностью строить новые типы данных, не предусмотренные Язык оказался достаточно универсальным и применяетРИ только для решения военных задач.

Язык Модула-2 создан в 1979 г. Никлаусом Виртом, в ж сочетается простота Паскаля и средства модулизации Главное свойство языка — хорошо продуманная структура программ. Характерной чертой является раздельная компиляция, позволя щая разрабатывать и хранить в библиотеках программы, которые можно использовать повторно. Язык прост для изучения и экс плуатации.

Язык Оберон создан Никлаусом Виртом в 1987 г. как попытка достичь идеала универсального языка программирования. В Ш имеются средства обогащения комбинированных типов данных средства объектно-ориентированного программирования I пас’ ширяемые записи. Язык обеспечивает строгий контроль на этапе трансляции. В 1992 г. X. Мессенбек предложил расширенную вер. сию языка — Оберон-2. В настоящее время семейство оригиналь¬ных Оберон-систем известно под названием Oberon V4.

В системах программирования (Delphi, C++ Builder фирмы Borland, Visual Basic, Visual C++ фирмы Microsoft и др.) и в средах программирования (Турбо Паскаль и др.) хорошо предстаатен визуальный интерфейс, позволяющий пользователям легко общаться с системой. Визуальная среда программирования включает средства разработки программ: компилятор, текстовый редактор, компоновщик, отладчик, справочную систему и библиотеку программ.

Языки проектирования программ — системы визуального про-граммирования — имеют самый высокий уровень абстракции [1]. Они являются самым современным и эффективным средством создания программных продуктов и рассматриваются как средст¬ва описания задач. В число наиболее популярных входят следую¬щие системы программирования: Visual Basic, Delphi, C++Builder, Visual C++, базирующиеся соответственно на языках Бейсик, Паскаль и Си++. Как правило, они имеют интегрированную сре¬ду разработки (IDE — Integrated Development Environment), включающую текстовый редактор, конструктор форм и набор других инструментов, позволяющих значительно сократить объем работ по созданию программных продуктов.

В 1991—1993 гг. Microsoft создает первую визуальную среду' программирования — систему программирования Visual Basic, позволяющую достаточно просто создавать Wmdows программы. Visual Basic обладает средствами визуального проектирования, упрощает программирование на языке Бейсик и использует все графические функции Windows [6].

Visual Basic стал одним из первых языков, поддерживающих событийно-управляемое программирование, позволяющее программисту не описывать каждый шаг, а только указать, как реагировать на различные события, создавая набор управляемых взаимодействующих процедур- Visual Basic связан с приложением Windows — Microsoft Office, он снабжен встроенными средствами похзержки баз данных Access. В Visual Basic появились инструменты, позволяющие упростить работу с Интернетом, быстро подключить указанные программы к Глобальной сети, придавая им функции навигаторов . В последнее время некоторые серверы и браузеры поддерживают язык Visual Basic Script.

Отдельно следует выделить язык dBase фирмы Borland, который представляет собой гибрид объектно-ориентированного if традиционных языков и применяется для реал и кшии баз Данных. При их создании реализуют объектный дизайн и обычные приемы обработки записей. Был создан целый ряд эффективных dBase-подобных систем управления базами данных

В 1995 г. фирма Borland создает систему программирования Delphi, а фирма Microsoft — Visual C++

Высший на сегодняшний день уровень языков — языки описания сценариев. При их использовании повышается производительность труда. Это уже система программирования, позволяющая общаться человеку с машиной напрямую с минимальной его подготовкой. Обеспечивается легкий доступ к множеству су-ществующих объектов, есть возможность манипулирования ты-сячами объектов, облегчается труд программиста.

Языки описания сценариев — подвид пакетных файлов, подоб¬ных макросам, в которых объединены отдельные команды, управ¬ляющие операционной средой в соответствии со списком, являю¬щимся программой. Основное назначение этих языков — связы¬вать различные компоненты и приложения друг с другом. Здесь нашел применение бестиповой подход к описанию данных, что значительно упрощает установление связей между компонентами и ускоряет разработку прикладных программ. Эти языки пред значсны для комбинирования компонентов, набор которьгу дается заранее с помощью графического интерфейса пользователя для, Интернета или инфраструктуры разработки и технологии сценариев.

Perl (Pract ical Extraction and Report Language — язык для тического извлечения данных и составления отчетов) — язык обработки произвольных больших текстов и файлов. Его ча используют для написания системных программ. С помощью языка можно не только сканировать текстовые файлы, но и oбрабатывать двоичные данные. Синтаксис языка близок к синтаксису Си. Perl позволяет использовать регулярные выражения создавать объекты, вставлять фрагменты программ на Perl в Я граммы на Си и Си++, осуществлять доступ к базам данных.

Популярность объектно-ориентированного языка Си++. вела к рождению множества новых языков для современного Интернета. С развитием Глобальной сети появилась проблема переноса программ с одной платформы на другую. Для ее решения и создания мобильных сетевых программных продуктов фирмой Sun Microsystems в 1991 г. был создан новый язык Java — универсальный, объектно-ориентированный язык, позволяющий описывать любые задачи, включая обслуживание веб-странии. Для функционирования он требует компиляции и вспомогательных файлов. По синтаксису и технологии програм-мирования очень похож на Си++. Программы, написанные на языке Java, независимы от архитектуры ЭВМ. Это достигается путем транслирования программ в промежуточный язык, назы-ваемый байт-иодом. Java имеет защиту от компьютерных вирусов и несанкционированного доступа. Главным отличием Java-npo- грамм, которые называются Java-апплетами, является использо-вание библиотеки Java-клэссов, обеспечивающих разработку безопасных распределенных систем. В 2003 г. компания Sun объ-явила о появлении нового продукта Joe, предназначенного для существенного облегчения встраивания Java-клиентов в инфор-мационные системы Интернета.

HTML — языке гипертекстовой разметки, язык для программирования во Всемирной паутине, язык да написания программного кода для веб-страниц. Первую версию HTML в 1990 г. разработал Тим Бернерс-Ли — сотрудник Европейской лаборатории физики элементарных частиц. По существу, это язык форматирования, определяющий, как на веб-странице будут размещены текст, графика, таблицы. Можно также создавать ссылки между различными частями информации. Основу HTML представляет обычный текст, в который вставляются управляющие символы (теги). Получаем веб-страницу. Этот объект может содержать информацию различного вида, просмотреть которую можно с помощью специальных программ-браузе- ров (internet Explorer, Netscape Navigator и др.). Найти веб-страницу можно с помощью универсального указателя ресурсов (URL — Universal Resource Locator). Для доступа к веб-странице используется протокол передачи гипертекста HTTP (Hyper-Text Transfer Protocol), т. e. сначала указывается протокол, а затем имя сервера и путь к файлу веб-страницы.

SQL — язык структурированных запросов, непроцедурный язык высокого уровня позволяет решать задачи получения информации из таблиц БД и манипулировать данными в таблицах. Используется для создания интерфейса БД. Реализован в популярных СУБД. Стал стандартным языком запросов. В 1992 г. объявлен международным стандартом. SQL включает язык определения схемы (SQL-DDL) и язык манипулирования данными (SQL-DML). Язык позволяет задать только то, что нужно делать, а само ис¬полнение отдельных операций возложено на СУБД. Особен¬ность языка заключается в так называемой трехзначной логике. Кроме булевых значений «истина» и «ложь», выражение может принимать значение null (пустое значение) — специальный кол, который используется при отсутствии данных.

В конце 1990-х годов в фирме Microsoft под руководством Андерса Хейльсберга был разработан язык Си шарп (С#). Альфа версия выпущена в 2000 г., а в 2001 г. окончательная версия вошла в пакет Visual Studio.Net 7. Язык унаследовал лучшие свойства языков Си и Си++. Си шарп работает в среде исполнения .NET Framework, что обеспечивает переносимость программ в многоязыковое программирование. Программы на Си# могут быть скомпилированы в среде Visual C++ [5].

В настоящее время программирование на персональных ЭВМ ведется в основном на языках Бейсик, Паскаль и Си (как правило, их последних версиях), а на больших и мини-ЭВМ все еше применяются языки Фортран и PL/1. Для перспективных ЭВМ нового поколения прототипом будущего языка программирования считается Пролог. Появление более быстрых ЭВМ и более совершенных языков описания сценариев, удобных графических интерфейсов пользователя и компонентных архитектур, популярность Интернета расширяют сферу применения языков описания сценариев для различных приложений.

1.2 Связи алгоритма и языка программирования

Чтобы алгоритм стал понятен ЭВМ, его следует закодировать — перевести на строго формализованный язык, т. е. язык программирования. Кодирование — процесс достаточно механический, но требует твердого знания команд и синтаксиса языка програм мирова н ия.

Алгоритм, записанный на языке программирования, называ¬ется программой для ЭВМ [3]. Языки эти формальные, специально созданные для общения человека с компьютером. Каждый язык программирования имеет алфавит, словарный запас, грамматику, синтаксис и семантику. Алфавит — фиксированный набор символов, допускаемых для составления текста программы на этом языке. Синтаксис система правил, определяющих допус-тимые конструкции языка программирования из букв алфавита. Семантика — система правил однозначного толкования отдель¬ных языковых конструкций, позволяющих воспроизвести выполнение процесса обработки данных. Если программа написана в машинных кодах, то она может сразу исполняться ЭВМ. Но писать такие программы сложно, они очень громоздки и плохо воспринимаются человеком.

Если формальный язык, на котором написана программа, не может сразу быть воспринят компьютером, то создают специаль- НЬ1е пРогРаммы (трансляторы: компиляторы или интерпретаторы), осуществляющие автоматический перевод программ с языка программирования в машинные коды.

Программы-компиляторы (разновидность трансляторов) вы. полняют основные этапы компиляции.

• вводят исходный код (специальные символы, слова и мате-матические выражения);

• преобразуют его в объектный код;

• подключают с помощью редактора связей необходимые стандартные программные модули из библиотек;

• заставляют компьютер выполнять соответствующие команды на машинном языке (исполняемый код — рабочая программа).

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

Более понятным программистам, чем машинный код, является специальный код — код ассемблера. Он записывается в виде мне-моник. Каждая команда представляет собой мнемоническую запись. Иногда системные программы пишут на ассемблере, а потом переводят в машинный код — ассемблирование, или наоборот, чтобы легче было читать программу, выполняют дисассемблирование: й

До 1980-х годов компьютеры использовались для математических и технических расчетов и действий с экономической информацией. Для этих задач разработаны проблемно-ориентированныенные языки программирования. Дальнейшее развитие языков привело их более универсальными, позволяющими составлять программы для любых информационных действий, управления печатью, рисования чертежей, воспроизведения звуков и т. д.

2. ПОНЯТИЕ ПЕРЕМЕННОЙ В РАЗЛИЧНЫХ ЯЗЫКАХ ПРОГРАММИРОВАНИЯ

Язык программирования должен иметь алфавит, синтаксис и семантику. Правила, определяющие структуру текста, составляют синтаксис. Правила, позволяющие извлекать смысл теста называются семантикой языка. Для описания синтаксиса языка используется метаязык (язык для описания языка). В качестве метаязыка используют либо металингвистические формулы Бэкуса—Наура, либо синтаксические диаграммы. Джон Бэкус разработал специальную систему определений для языков программирования. Датский астроном П. Наур внес некоторые уточнения, и форму стали называть формой Бэкуса—Наура. В формуле каждое понятие определяется с помощью одной ме-талингвистической формулы, в левой части которой указываются определяемые понятия, а в правой — описываются все допустимые структуры языка, соответствующие этому понятию. Левая и правая части формулы связываются знаком ::=, который читается «по определению есть». При перечислении дополнительных вариантов структур в правой части используется знак|, имеющий смысл «или». Все определяемые понятия языка программи¬рования заключаются в угловые скобки < >, а неопределяемые исходные понятия языка называются лексемами. Лексемы могут использоваться в правой части формулы [2].

Для определления понятия <целое число>, если алфавит языка программирования включает арабские цифры и знаки арифметических операций. Сначала определим понятие <цифра>. Понятие <целое без знака>, может быть записано следующей формулой:

<целое без знака> ::= <цифра> | <целое без знака> <цифра>

Это равносильно определению «любая последовательность цифр». Формула рекурсивна, так как <целое без знака> уже встречается в правой части, т. е. имеется ссылка на само себя. Теперь выведем формулу:

<целое число> ::= <целое без знака> | -<целое без знака> || +<целое без знака>.

Полученная цепочка из трех формул определяет понятие <целое число> через лексемы языка 0, 1, ... , 9, +, –

С помощью металингвистических формул могут быть описаны все понятия языка программирования. Синтаксическая правильность текста проверяется в процессе его синтаксического анализа на основе металингвистических формул.Способ описания синтаксиса на основе диаграмм основан н тех же принципах.

Синтаксические диаграммы графически изображают допустимую структуру определяемого понятия. Следование элементов структуры задается стрелками, вариантность указывается как распараллеливание направлений следования. Лексемы изображают в виде кружка или овала, а определяемое понятие — в виде прямоугольника. Диаграмма имеет одну входную и одну выходную стрелки.

2.1 Виды и типы переменных в языке Паскаль

Любая переменная, объявленная в языке программирования, принадлежит к некоторому типу данных. Тип данных опеределяет:

  • какие значения может принимать элемент данных этого типа;
  • какие операции допустимы над этим элементом данных.

Типы данных в языке Паскаль делятся на скалярные и структурные. Элемент данных структурного типа объединяет в себе несколько других элементов, элемент скалярного типа является неделимым. К основным скалярным типам данных относятся INTEGER, REAL, CHAR, BOOLEAN.

Тип INTEGER – представляет собой тип целых чисел. Переменные этого типа записываются в виде чисел со знаком или без него, например: 5, -120, 0, 6.

Переменные должны быть обязательно объявлены в программе. Для этого используется ключевое слово VAR. Группа целых чисел в языке Паскль представлена в таблице 1.

Таблица 1 – Целочисленные типы в языке Паскаль

Тип

Область допустимых значений

INTEGER

-32768…32767

SHORTINT

-128…127

LONGINT

-2147483648….2147483647

WORD

0…65535

BYTE

0…255

Тип REAL называется также вещественным типом или типом с плавающей точкой. Элементы этого типа – действительные числа, которые храняться в памяти компьютера в формате с плавающей точкой. Вещественные числа так же требуют описания перед использованием. Примерами вещественных числе являются 12.3, -6.5, 154,65. Группа действительных чисел в Паскале представлена в таблице 2.

Таблица 2 – Числа с плавающей точкой в языке Паскаль

Тип

Область допустимых значений

Количество цифр после запятой

REAL

11–12

SINGLE

7–8

DOUBLE

15–16

EXTENDED

19–20

COMP

19–20

Тип данных BOOLEAN – логический имеет два значения – TRUE –истина и FALSE – ложь. Данный тип так же требует обявления пермененной перед использованием.

Тип данных CHAR – символьный предназначен для обработки нечисловой инфорации – строк или отдельных символов текста. Его значениями являются отдлельные символы или строки текста. Для объявления переменной данного типа используется ключевое слово CHAR.

Далее представлены несколько примеров с различными типами данных. На рисунке 1 показано, что переменной A, имеющей целочисленный тип в процессе выполнения программы присваивается значение числа с плавающей точкой, что является недопустимым. Обратное присваивание – допустимо (рисунок 2).

Рисунок 1 – Неверный выбор типа данных

Рисунок 2 – Присваивание целочисленного значения

переменной с плавающей точкой.

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

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

Над переменными типа BOOLEAN могут выполняться логические операции. Примеры представлены на рисунке 3.

Рисунок 3 – Логические операции

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

2.2 Виды и типы переменных в языке Visual Basic

Язык Visual Basic представляет собой мощное средство разработки программ для операционной системы Windows с поддержкой большиства современных требований, таких, как базы данных, элементы управления, работа с сетью и др. Как и в рассмотренном в предыдущем разделе языке Паскаль, язык Visual Basic требует, чтобы, чтобы переменная перед использованием была описана. Внешний вид среды разработки представлен на рисунке 4

Рисунок 4 – Среда раработки Visual Basic

Переменная представляет собой именованную ячейку памяти, в которой хранится некоторое значение, которое может меняться в процессе выполнения программы. Если при начальном задании переменной не указан её тип, то VB присваивает ей универсальный тип, т.е. такой тип, который может содержать как числовые, так и нечисловые данные. Паскль такого не допускает. Для иллюстрации представим простую программу:

Dim A

Private Sub Form_Load()

A = "H"

MsgBox (A)

End Sub

В данной программе задается переменная A, у которой не указано значение. Далее ей присваивается символьная строка «H», и затем значение выводится во всплывающем сообщении (рисунок 5).

Рис. 5 – Результат работы программы

Если указать тип данных, то результат выполнения будет другой (рисунок 6).

Рисунок 6 – Результат при неверном здании типа

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

Как и в языке Паскаль, в VB существует несколько типов числовых данных и при программировании очень важно выбирать правильный тип. Приведём примеры типов числовых данных в языке VB (таблица 3).

Таблица 3 – Типы данных в языке VB

Тип данных

Описание

Диапазон

допустимых значений

BYTE

Однобайтовое

целое число

0…255

BOOLEAN

Логический тип

TRUE, FALSE

INTEGER

Целочисленный тип

-32768…32767

LONG

Длинное целое

-2147483648…2147483647

CYRRENCY

Число

с фиксированной точкой

922337203685477,5808…

922337203685477,5807

SINGLE

Число

с плавающей точкой

-4028235E E + 38 до-1.401298 E-45 для отрицательных значений и от 1.401298 E-45 до 4028235E E + 38

DOUBLE

Число

с плавающей точкой двойной точности

-1.79769313486231570 E + 308 до-4.94065645841246544 E-324 для отрицательных значений и от 4.94065645841246544 E-324 до 1.79769313486231570 E + 308

DECIMAL

Масштабируемое целое число

+/-79,228,162,514,264,337,593,543,950,335 (+/-7.9228162514264337593543950335E + 28). С 28 десятичными разрядами максимальное значение — +/-7.9228162514264337593543950335, а наименьшее ненулевое значение — +/-0,0000000000000000000000000001 (+/-1E-28).

В случае, если значение выходит за указанный тип данных, то возникает переполнение (рисунок 7), что демонстрирует простая программа, приведённая ниже:

Dim A As Integer

Private Sub Form_Load()

A = 32767

MsgBox (A + 1)

End Sub

Рисунок 7 – Переполнение.

Операции с типом данных BOOLEAN выполняются аналогично другим языкам. Пример программы и вывод результатов (рисунок 8):

Dim A As Boolean

Dim B As Boolean

Private Sub Command1_Click()

A = True

B = True

Print "A=", A

Print "B=", B

Print "A AND B", A And B

Print "A OR B", A Or B

A = False

B = True

Print "A=", A

Print "B=", B

Print "A AND B", A And B

Print "A OR B", A Or B

End Sub

Рисунок 8 – Выполнение логических функций.

Так как язык Visual Basic предназначен для создания программ под ОС Windows, в нём имеется больше типов данных и средств их преобразования.

2.3 Виды и типы переменных в языке C#

В языке C# существуют две разновидности типов: ссылочные типы , в которых хранятся ссылки на нужные данные (объекты) и типы значений, которые содержат данные. Приведем примеры типов значений:

Простые типы

Целочисленный со знаком: sbyte, short, int,long

Целочисленный без знака: byte, ushort, uint,ulong

Символы Юникода: char

Бинарный оператор IEEE с плавающей запятой: float, double

Десятичное значение с повышенной точностью и плавающей запятой: decimal

Логическое значение: bool

Тип bool в C# используется для представления логических значений, которые могут иметь значение true или false.

Обработка знаков и строк в C# выполняется в кодировке Юникода. Тип char представляет элемент в кодировке UTF-16, а тип string представляет последовательность элементов в кодировке UTF-16.

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

C# поддерживает одно- и многомерные массивы любого типа. В отличие от перечисленных выше типов, типы массивов не требуется объявлять перед использованием. Типы массивов можно сформировать, просто введя квадратные скобки после имени типа. Например, int[] является одномерным массивом значений типа int, а int[,] — двумерным массивом значений типа int, тогда как int[][] представляет собой одномерный массив одномерных массивов значений типа int.

Типы значений, допускающие значение NULL, также не нужно отдельно объявлять перед использованием. Для каждого обычного типа значений T, который не допускает значение NULL, существует идентичный тип T?, который отличается только тем, что может содержать дополнительное значение null. Например int? — это тип, который может содержать любое 32-разрядное целое число или значение null.

Система типов в C# унифицирована таким образом, что значение любого типа можно рассматривать как object (объект). Каждый тип в C# является прямо или косвенно производным от типа класса object, и этот тип object является исходным базовым классом для всех типов. Чтобы значения ссылочного типа обрабатывались как объекты, им просто присваивается тип object. Чтобы значения типов значений обрабатывались как объекты, выполняются операции упаковки-преобразования и распаковки-преобразования.

В C# так же важен правильный выбор типа переменной. Проиллюстрируем это на простом примере

using System;

namespace ConsoleApp2

{

class Program

{

static void Main(string[] args)

{

int a = 3;

int b = 2;

int c = a / b;

Console.Write(a+"/"+b+"=");

Console.WriteLine(с);

Console.ReadLine();

}

}

}

Данная программа выводит на консоль значения вырадения 3/2, но так как переменные обявлены целочисленными, результат так же будет целочисленным (рисунок 9).

Рисунок 9 – Результат выполнения

Если же тип переменной изменить на значение с плавающей точкой, то результат будет другой – верный (рисунок 10).

using System;

namespace ConsoleApp2

{

class Program

{

static void Main(string[] args)

{

double a = 3;

double b = 2;

double c = a / b;

Console.Write(a+"/"+b+"=");

Console.WriteLine(c);

Console.ReadLine();

}

}

}

Рисунок 10 – Выполнение программы с типом с плавающей точкой.

На данных простых примерах представлена важность выбора правильного типа данных.

ЗАКЛЮЧЕНИЕ

Курсовая работа была посвящена исследованию понятия «переменная» в различных языках программирования. От правильного выбора типов переменных зависит качество выдаваемых программной результатов. В случае неправильно выбора типа данных результат разобы программы может быть неправильным и или непредсказуемым. В том случае, если программа сравнительно простая, то результат неверного выбора типа переменной может быть сравнительно легко обнаружен с использованием трассировочный таблицы и выполнения програмы вручную с записью всех промежуточных шагов.

В случае, если программа имеет большой объём кода, обнаружение неверно заданного типа переменной может быть затруднено, но для этого можно использовать встроенное средство большинства современных средств разработки – отладчик, который позволянт пошагово выполнить программу с просмотром необходимых значений.

Сложноть обнаружения неверно заданного типа переменных может быть связана с недостаточно детальным разбором предметной области, например, в некоторых случаях, достаточно значения , а в некоторых случаях необходимо более точное значение – до 8–9 знаков после запятой, так как это может существенно повлиять на конечный результат.

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

СПИСОК ЛИТЕРАТУРЫ

1. Delphi 7. Учебный курс / С.И. Бобровский. – СПб.: Питер, 2003. – 736 с.: ил.

2. Ватсон Б. C# 4.0 на примерах. – СПб.: БХВ-Петербург, 2011. – 608 с.: ил.

3. Гаврилова М.В. Информатика и информационные технологии : учебник для бакалавров /М.В. Гаврилов, В.А. Климов. – 3-е изд., перераб. и доп. – М.: Издательство Юрайт, 2013. – 378 С. – Серия : Бакалавр. Базовый курс.

4. Компьютер для студентов, аспирантов и преподавателей. Самоучитель.: Учебное пособ. – М.: Издательство ТРИУМФ, 2002 – 656 с.: ил.

5. Светозарова Г.И., Мельников А.А., Козловский А.В. Практикум по программированию на языке бейсик: Учеб. Пособие для вузов. – М.: Наука. Гл. ред. физ.-мат. Лит., 1988 – 368 с.

6. Пестриков В.М. QBASIC на примерах. / В.М. Пестриков, А.Т. Тяжев. – СПб.: БХВ-Петербург, 2010. – 304 с.: ил.