Файл: Понятие переменной в программировании. Виды и типы программирования..pdf
Добавлен: 04.04.2023
Просмотров: 239
Скачиваний: 2
Введение
На современном этапе развития компьютерных технологий невозможно представить какого–либо высококвалифицированного специалиста, не владеющего информационными технологиями. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования.
Понятие переменной в программировании имеет свою специфику. С каждой переменной связываются три объекта:
Тип данных - он описывает множество возможных значений переменной.
Имя (идентификатор) переменной - последовательность латинских букв и цифр, начинающаяся с буквы (и не слишком длинная); оно используется для обозначения текущего значения соответствующей переменной в тексте программы.
Место в памяти, предназначенное для хранения текущего значения переменной (размер его определяется типом переменной).
Фактически переменная - это способ организации хранения и доступа для одного объекта данного типа. В языке имеются средства:
- создать (описать) переменную;
- задать (записать в память) значение переменной, изменить его и прочитать (использовать в вычислениях)
Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Объектом исследования послужили языки программирования и история развития языков программирования.
Целью курсовой работы является изучение классификации языков программирования и их развития.
Цели исследования:
1. Выяснить понятие переменной в программировании.
2. Рассмотреть типы и виды программирования.
Задачи исследования:
1. Ознакомления с языками программирования.
2. Рассмотрение истории развития языков программирования.
В данной курсовой работе использовался научно-исследовательские методы
Исходя их темы, в курсовой работе будут рассмотрены следующие вопросы: понятие переменной в программировании и их классификации, виды и типы программирования.
Глава 1 Понятие переменной в программировании
Понятие и классификация переменных в программировании
Переменная в программировании — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Данные, находящиеся в переменной (то есть по данному адресу памяти), называются значением этой переменной.
В других парадигмах программирования, например, в функциональной и логической, понятие переменной оказывается несколько иным. В таких языках переменная определяется как имя, с которым может быть связано значение, или даже как место для хранения значения.
Переменные в программировании, как и в математике, обозначаются символическими именами. Эти имена называют идентификаторами (от глагола «идентифицировать», что значит «обозначать», «символизировать»). Идентификатор может быть одной буквой, множеством букв, сочетанием букв и цифр и т.д. Примеры идентификаторов: А, Х, В3, prim, r25 и т.д
Переменная должна быть описана до первого использования, а чаще всего в самом начале программы, а еще чаще - в конкретной секции программы. Переменная должна быть написана латиницей, с цифрами или без. Некоторые языки допускали символ "_". Первым должен быть символ.
Переменная имела характерную особенность: она должна была знать, сколько занимает байт в памяти и как ей выровняться на границу слова, а то и двойного слова.
Последнее было очень важно для математических программ. Особенности организации оперативной памяти и работа математического сопроцессора обязывали программиста не только правильно и вовремя описать переменную, но и подумать, как она расположится в оперативной памяти.
Пример: "Недра" оперативной памяти недоступны современному программированию в подавляющем большинстве случаев. Раньше с организацией памяти приходилось строго считаться.
Первые структуры данных - совокупности переменных - функционировали как переменные с определенной семантикой, но для доступа к ним требовалось не только знать, сколько байт что занимает, но и учитывать, что некоторые типы данных компилятор автоматом выравнивал на границу слова.
Все это приводило к серьезным ошибкам в программах. В память о тех суровых временах следует отметить, что первые языки при всей их пунктуальности и требовательности обеспечивали переменные, типы, структуры данных в программировании и разработке безопасным синтаксическим контролем.
Если программа проходила синтаксический контроль и успешно линковалась, проблемы с выполнением начинались только при фатальной ошибке программиста или сбое аппаратуры.
Переменная в программировании может иметь тип, имя и значение. Перед использованием любую переменную надо определить. Синтаксис определения переменной выглядит следующим образом:
тип_переменной имя_переменной;
Например, простейшее определение переменной:
int number;
Здесь определена переменная number, которая имеет тип int. Поскольку определение переменной представляет собой отдельное выражение, то после него ставится точка с запятой.
Имя переменной может представлять последовательность символов латинского алфавита, чисел и знака подчеркивания. При этом имя должно начинаться либо с алфавитного символа, либо со знака подчеркивания.
int _number33;
Нередко компиляторы имеют ограничение на длину названий переменных, например, для некоторых компиляторов длина имени переменной не должна превышать 31 символа, для других компиляторов ограничение может быть более жестким.
Также стоит учитывать, что C - регистрозависимый язык, а это значит, что регистр символов имеет большое значение. То есть следующем коде будут определяться две разные переменные:
1 int number;
2 int Number;
Поэтому переменная Number не будет представлять то же самое, что и переменная number.
Кроме того, в языке есть ряд зарезервированных слов, которые не могут использоваться в качестве имени переменной. Их не так много: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while.
Также нельзя объявить больше одной переменной с одним и тем же именем, например:
1 int number;
2 int number;
Подобное определение вызовет ошибку на этапе компиляции.
При определении переменных каждой из них присваивается неопределенное значение. Но в дальнейшем мы можем присвоить ей конкретное значение:
1 int number;
2 number = 2;
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int number;
6 number = 2;
7 printf("number = %d \n", number);
8 return 0;
9 }
Для вывода числа на консоль используется спецификатор %d, вместо которого вставляется значение переменной number. Таким образом, мы получим следующий консольный вывод:
number = 2
Однако также можно сразу при определении переменной дать ей некоторое начальное значение. Данный прием называется инициализацией:
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int number = 2;
6 printf("number = %d \n", number);
7 return 0;
8 }
Чем характеризуются переменные величины
Прежде всего своим именем, к которому разные языки предъявляют строгие требования. Если в PHP знак $ обязательно стоит перед именем переменной, то в Java это выходит за рамки соглашения. Вообще, по части именования переменных величин, помимо идей синтаксиса языка, есть масса идей разработчиков.
Начиная писать на конкретном языке, следует прислушаться к мнению коллег и посмотреть последние идеологические мануалы по стилю языка.
Вторая характеристика переменной - ее значение. Оно есть всегда. Даже если значение отсутствует - это тоже значение. Характерная черта: например, PHP многие функции, выдающие в качестве результата число, могут выдать результатом boolean - чем не результат?
Тип не важен, важно наличие, и многие конструкции JavaScript волне удовлетворяются наличием значения, невзирая на его тип. Последнее, что имеет значение, так это, собственно, значение переменной.
Базовые типы данных
В общем-то мир описания, мир переменных, несмотря на диалекты и стили в именовании, не сильно развился в отношении базовых типов.
В основном программисты используют строки (string), часто целые числа (int, integer), при необходимости вещественные числа (double, real), некоторые еще сохранили понятие знака (char).
Про базы данных (от мала до велика) можно даже не говорить, там количество вариаций основных типов предусмотрено на все случаи жизни, а многие типы данных наследуются со времен Ады и Беббиджа.
В настоящее время сама лучшая переменная в программировании полностью характеризуется указанием на себя, допуская, что ее значение, тип и вообще кто она такая будет ясно только в тот момент, когда она потребуется.
Переменные и алгоритмы
Одинокая переменная в программировании полностью характеризуется стремлением оказаться в компании ей подобных. Это историческое явление, и мало что здесь зависит от воли разработчика.
Если создание программы начинается с технического задания, особенно если в разработке принимают специалисты, для которых в теме "алгоритмизация и программирование" первое слово имеет большее значение чем второе, то переменных будет великое множество. Обычно такой вариант останавливается на этапе описания переменных.
Если создание программы начинается с анализа ее основной задачи, и именно главная точка задачи берется за основу, то шансов получить работающий результат достаточно.
Описать главную точку и создать алгоритм, ее обслуживающий, - это не просто переменная в программировании, тип, имя, значения и место описания, а начало процесса. Важен процесс описания переменных и алгоритма, который с ними работает.
Важно движение:
- первое приближение к цели;
- результат, анализ и уточнение описания;
- второе приближение к цели.
Обычно после создания второго-третьего описания приходит понимание, с чего следует начинать. И задача пошла в работу.
Указательное описание переменных
Немногого стоит начать программу с основных переменных: не имена, типы и значения играют главную роль. Одинокая переменная, структура данных, массив и даже объект - это просто статистическое решение задачи.
Дерево объектов, описывающих задачу, то есть и переменные, и алгоритмы, инкапсулированные в единый код - объект, а все объекты в общий объект - систему объектов - вот это дело. Вот это реальное и современное создание переменных.
Такие переменные могут взаимодействовать с себе подобными, а благодаря наследованию каждая из них может перемещаться по своей родословной ветке, то есть указатель на то, что и где в данный момент используется, и как он это делает - актуален, а само его содержание - нет. В данном случае содержание играет свою роль, когда оно это сделает, указатель перемещается на следующее содержание.
Статическая и динамическая типизация переменных
Если тип данных определяется на этапе компиляции, имеет место статическая типизация, а если на этапе выполнения программы — динамическая. В последнем случае иногда говорят, что переменная не имеет типа, хотя данные, содержащиеся в ней, безусловно, относятся к определённому типу данных, но выясняется это уже во время выполнения программы.
В большинстве случаев статическая типизация позволяет уменьшить затраты ресурсов при выполнении программы, поскольку для динамической типизации требуются затраты ресурсов на выяснение типов данных и их приведение в выражениях со смешанными типами. Статическая типизация позволяет проводить проверку типов на этапе компиляции программы. Это также упрощает обнаружение ошибок ещё на этапе разработки, когда их исправление обходится менее дорого.
Тем не менее, во многих случаях необходимо применение динамической типизации. Например, необходимость поддержания совместимости при переходе на новый формат представления данных (например, старая часть проекта посылает процедуре дату символьной строкой, а новые объекты используют более современный числовой тип).
Статические и динамические переменные
Адрес поименованной ячейки памяти также может определяться как на этапе компиляции, так и во время выполнения программы. По времени создания переменные бывают статическими и динамическими. Первые создаются в момент запуска программы или подпрограммы, а вторые создаются в процессе выполнения программы.
Динамическая адресация нужна только тогда, когда количество поступающих на хранение данных заранее точно не известно. Такие данные размещают в специальных динамических структурах, тип которой выбирается в соответствии со спецификой задачи и с возможностями выбранной системы программирования. Это может быть стек, куча, очередь и т. п. Даже файл, в том смысле, который заложил Н.Вирт в Паскаль, является динамической структурой.