Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Типы переменных в программировании




1.12.2017

Основы программирования

Программирование – это процесс составления компьютерной программы на основе некоторого алгоритма.

Структурное программирование основывается на двух важнейших принципах:

· последовательной детализации алгоритма;

· использовании набора базовых структур (отсюда и название метода) для построения алгоритма любой степени сложности.

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

· линейной (последовательной) структуры;

· разветвляющейся (ветвящейся) структуры;

· циклической структуры.

Каждая из этих структур имеет только один вход и только один выход, что позволяет соединять между собой в процессе разработки алгоритма любое количество элементов базовых структур в необходимом для решения задачи порядке. Сложные для понимания и реализации блоки заменяют на последовательность более простых базовых конструкций. При этом количество шагов детализации алгоритма в принципе не ограничено. Структурное программирование широко применяется, поскольку созданы специальные языки программирования, например Паскаль или версии Бейсика (QBasic) позволяющие структурировать программу.
Метод структурного программирования дает возможность решать сложные задачи в самых разных областях профессиональной деятельности.


Языки программирования. Компиляция и интерпретация

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

 

При таком подходе необходимо:

o создать строгую систему условных обозначений для записи команд в понятной для человека форме (язык программирования),

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

После этого на языке программирования можно писать множество программ, пользуясь единственной программой-переводчиком. «Грамматические» правила языка программирования формулируются предельно четко и не допускают вольного расположения отдельных элементов команды и знаков препинания (иначе программа-посредник «не поймет» ваши указания). Каждая команда имеет строго определенный синтаксис (правила записи). Например, если установлено, что условие «если» надо писать по-английски (if) и после условия (a[i]>m) нельзя ставить запятую, то всякая иная запись такой команды будет воспринята программой-посредником как ошибка.
Команды на языке программирования часто называют операторами или инструкциями. Операнд – это элемент, над которыми выполняются действия операторов. Последовательность таких команд, реализующих тот или иной алгоритм, называют программой на исходном языке или просто исходным текстом. Кроме исходного текста, конкретная программа может иметь еще и машинный код, который непосредственно исполняется на машине. Исходные тексты помещают в текстовые файлы. Существует два типа программ-посредников, работающих с исходными текстами: компилятор и интерпретатор.
Программа-компилятор (от слова compile– составлять, собирать) переводит исходный текст в машинный код и записывает его на диск в форме исполняемого (загрузочного) файла. После этого программа выполняется независимо от исходного текста. Раньше программы-компиляторы называли– трансляторами (переводчиками).
Программа-интерпретатор всегда работает совместно с исходным текстом. Она разбирает каждую команду исходного текста (интерпретирует ее) и немедленно исполняет т.е. файл на машинном языке не создается. Программа в режиме интерпретации работает гораздо медленнее, чем такая же программа в машинном коде. Это связано с тем, что каждую инструкцию приходится разбирать во время выполнения, а не заранее, как при компиляции. Многие инструкции в программе выполняются многократно, – и при каждом выполнении интерпретируются заново. Поэтому всюду, где возможно, стремятся заменить режим интерпретации режимом компиляции. Правда, интерпретация имеет и свои преимущества: с ее помощью проще отлаживать программу. Иногда пользуются режимом «псевдокомпиляции»: ускоряют интерпретацию за счет предварительного запоминания тех или иных элементов разобранных команд в памяти машины.
В настоящее время машинные коды не используются, и каждая программа для компьютера составляется на том или ином языке программирования. Существует очень много языков, все они, как правило, содержат средства описания данных, арифметические операторы (подобные с = а+b), средства управления и организации циклов, средства ввода и вывода информации.





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

Общепринятой и строгой классификации языков программирования не существует. Поэтому представим классификацию наиболее распространенных в настоящее время языков:

· языки Ассемблера;

· универсальные языки высокого уровня BASIC и FORTRAN;

· языки более «низкого» уровня Pascal и С (и их объектно-ориентированные расширения, в частности, C++);

· командные языки баз данных и Clipper;

· объектно-ориентированные языки четвертого поколения

Особое место занимают такие языки высокого уровня, как COBOL, Ada, Prolog. Они менее универсальны, чем перечисленные выше средства, но каждый из них в своем роде, по своему весьма эффективен.
Каждая команда на языке ассемблера чаще всего представляет собой одну машинную команду, записанную символическим кодом. Язык ассемблера позволяет создавать наиболее эффективные программы, однако процесс очень трудоемок и требует высокой квалификации программиста. Программирование на этом языке часто называют программированием на низком уровне (хотя программы получаются высокого качества).
_Каждой команде на языке высокого уровня обычно соответствует либо несколько машинных команд, либо целая подпрограмма в машинном коде. К языкам высокого уровня (их часто называют алгоритмическими) относятся FORTRAN (formula translator), BASIC (beginner's all purpose symbolic instruction code), COBOL (Common Business-Oriented Language), C, Pascal, Prolog (programming in logic) и многие другие. Раньше тот или иной язык использовался только в той предметной области, для которой он изобретался (например, FORTRAN – для математических расчетов, COBOL – для коммерческих расчетов, С – для системного программирования и т.д.). В настоящее время возможности языков сглажены, и теперь многие из них теперь считаются универсальными.
С помощью VBA можно создавать собственные программные модули, собственные интерфейсы для офисных приложений Word, Excel, Access.




Имя и значение переменной в программировании

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

Имя переменной

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


              Значение переменной. Команда присваивания.

Компьютер и программист применяют различные обозначения для адресов ОЗУ. Компьютер – шестнадцатеричные числа, программист – более удобные для него идентификаторы. Соответствие этих двух видов обозначений устанавливает транслятор. Но каждый из этих способов указания ячейки означает лишь выделение для переменной места в ОЗУ. Никакого конкретного значения переменной в этой ячейке памяти не появится до тех пор, пока оно не будет туда занесено. Поэтому употреблять имя какой-то переменной можно только после того, как определено ее значение. В каждом языке программирования есть набор операторов, позволяющих давать переменным значения, то есть заносить их в ячейки, названные именем переменной. Переменная может получить свое значение, если его ввести с клавиатуры. Значение переменной можно присвоить – занести ее в ячейку специально существующей для этого командой, которая так и называется – командой присваивания.




Типы переменных в программировании

Значение переменной, занесенное и хранимое в ячейке с ее именем, может быть различным по типу числом (целым или действительным) либо символьным текстом. В соответствии со значением переменные называются целыми, действительными, символьными. Операции, которые можно произвести с числами, нельзя осуществить с символьным текстом. Объем памяти для хранения разных по типу значений тоже потребуется различный. При хранении целого числа занимать место под нулевую дробную часть нерационально. Поэтому в некоторых языках программирования предусмотрены операторы, объявляющие тип переменной с указанным именем. Следовательно, для хранения значений  в этом случае будет отведено столько места, чтобы поместить знак и собственно целую часть. В других языках программирования прямо в имени переменной употребляют значки (символы), чтобы указать транслятору, сколько может понадобиться места под хранение значения данной переменной. Указание типа данных, которые могут стать значениями переменной, с помощью правил задания имени переменной позволяет компьютеру контролировать правомерность требуемых по отношению к переменной операций. Если имя переменной содержит указание на вещественный или целый тип ее допустимого значения, то в ячейку с этим именем нельзя занести символьный текст. Ограничения, налагаемые на операции со значениями в зависимости от их типа, требуют соответствующих ограничений на операции с именами переменных.

 Пояснения:

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

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

· Если же действительное число станет значением переменной целого типа, то из-за отсутствия места для хранения дробной части последняя просто будет отброшена (произойдет преобразование типа значения), что в этом случае равносильно потере точности расчета. Это может оказаться незамеченным при получении результата, так как такое несоответствие типов значения и переменной не вызывает прерывания в работе

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

Объектно-ориентированный подход в программировании

Объектно-ориентированное программирование является в настоящее время наиболее популярной технологией программирования. Основной единицей в объектно-ориентированном программировании является объект, который заключает в себе, как описывающие его данные (свойства), так и средства обработки этих данных (методы).
Объектно-ориентированный подход объединяет статическую модель, описывающую свойства объекта и динамическую модель, описывающую их изменения. Объектно-ориентированное программирование– это создание, приложений из объектов. Одни объекты приходится полностью создавать самостоятельно, другие можно взять в готовом виде из разнообразных библиотек.
Таким образом, в объектно-ориентированном программировании центральное место занимают объекты, которые объединяют в одно целое свойства объекта и возможные над ним операции (методы).
Объект обладает определенными свойствами, которые характеризуют его состояние в данный момент времени, кроме того над объектом возможны операции, которые приводят к изменению этих свойств.
Основными отличительными свойствами объекта являются:
• объединение записей с процедурами и функциями, работающими с этими записями;
• наследование – задание объекта, затем использование его для построения иерархии порожденных объектов с наследованием доступа каждого из порожденных объектов к коду и данным предка;
• полиморфизм – задание одного имени действию, которое передается вверх и вниз по иерархии объектов с реализацией этого действия способом, соответствующим каждому объекту в иерархии.
Инкапсуляцией называется объединение в объекте его свойств и возможных над ним операций (методов).
При объектно-ориентированном подходе доступ к изменению свойств объекта возможен только через принадлежащие этому объекту методы. Методы «окружают» свойства объекта; говорят, что свойства «инкапсулированы» в объект.
Методы объекта (набор операций), которые он может выполнять, инкапсулирующие одинаковый перечень свойств операций, объединяются в классы. Каждый отдельный объект является экземпляром класса. Экземпляры класса могут иметь отличающиеся значение свойств.
Например, файловая система компьютера может содержать сотни и тысячи файлов. Все файлы обладают одним и тем же набором свойств (имя, положение в файловой системе и др.) и операций (переименование, перемещение или копирование и др.) и образуют класс объектов - файлы. Каждый отдельный файл является экземпляром этого класса и имеет конкретные значения свойств (имя, местоположение и др.).
Наследование определяет отношение между классами, объекты класса - потомок обладают всеми свойствами и операциями объектов класса - родитель.
Полиморфизм (много фор») – одна и та же операция над объектами различных классов может выполняться различными методами.
Для большинства классов объектов в среде Windows &Office (папки, документы, символы и др.) также характерен набор одних и тех же операций (переименование, перемещение, копирование, удаление). Такое единообразие очень удобно для пользователя. Но механизмы реализации этих операций неодинаковы для различных классов.
Например, для копирования папки необходимо совершить последовательность действий по изменению файловой системы, а для копирования символа внести изменения в документ. Реализуется полиморфизм при сохранении индивидуальных методов их реализации для каждого класса.
Важное место в технологии объектно-ориентированного программирования занимает событие. Событиепредставляет собой действие, распознаваемое объектом, для которого можно запрограммировать отклик. При наступлении события происходит активизация метода, то есть начинают выполняться связанные с программой другие программы и функции. В качестве событий могут рассматриваться щелчок кнопкой мыши на объекте, нажатие определенной клавиши, открытие документа и т.д. В качестве реакции на события вызывается определенная процедура, которая может изменить свойства объекта, вызывать его методы и т.д.
В системах объектно-ориентированного программирования обычно используется графический интерфейс, который позволяет визуализировать процесс программирования. Появляется возможность создавать объекты, задавать им свойства и поведение.
В среде Windows&Office в качестве программных объектов могут выступать приложения, документы и т.д. Каждый из этих объектов может является исполнителем алгоритмов. Команды объекту (исполнителю) могут дать либо другие объекты, функционирующие в данной системе, либо пользователь компьютера.  










Последнее изменение этой страницы: 2018-05-10; просмотров: 422.

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