Файл: Понятие переменной в программировании. Виды и типы переменных (Оператор присваивания. Арифметические выражения).pdf
Добавлен: 29.03.2023
Просмотров: 285
Скачиваний: 1
Аналогично могут быть выделены типичные группы функций:
-
- стандартные алгебраические и арифметические — sin, Cos, Sqrt, Min, Max И Др.;
- стандартные строчные — выделение, удаление подстроки, проверка типа переменной и т. д.;
- нестандартные функции, в том числе описание операций и форматов ввода-вывода данных; преобразование типов данных; описание операций над данными, специфичными для конкретной системы программирования, ОС или типа ЭВМ.
2.1. Подпрограммы
При разработке программ на алгоритмических языках широко используются подпрограммы. Подпрограмма — это средство, позволяющее многократно использовать в разных местах основной программы однажды описанный фрагмент алгоритма.
Как уже упоминалось выше, первоначально наборы таких программных заготовок именовались библиотеками стандартных программ (БСП).
В большинстве ЯП не проводится концептуальное различие между такими объектами, как программа и подпрограмма (процедура, функция). В связи с этим всякая подпрограмма может приобретать иерархическую структуру, включая в себя подчиненные (вызываемые) подпрограммы, процедуры и т. д., имеющие стандартный состав.
Объявления (типы, переменные, константы), использующиеся любой подпрограммой, относятся к одной из двух категорий — категории локальных объявлений и категории глобальных объявлений.
Локальные объявления принадлежат подпрограмме, описаны внутри нее и могут использоваться только ею.
Глобальные объявления принадлежат программе в целом и доступны как самой программе, так и всем ее подпрограммам. Обмен данными между основной программой и ее подпрограммами обычно осуществляется посредством глобальных переменных.
Если имя глобального объявления совпадает с именем локального, то внутри подпрограммы обычно объявление интерпретируется как локальное, и все изменения, вносимые, например, в значение такой переменной, актуальны только в рамках подпрограммы.
Описание подпрограммы может содержать список аргументов (параметров), которые называются формальными. Каждый параметр из списка формальных параметров является локальным по отношению к подпрограмме, для которой он объявлен. Это означает, что глобальные переменные, имена которых совпадают с именами формальных параметров, становятся недоступными для использования в подпрограмме.
Все формальные параметры можно разбить на две категории:
- параметры, вызываемые подпрограммой по своему значению (т. е. параметры, которые передают в подпрограмму свое значение и не меняются в результате выполнения подпрограммы);
- параметры, вызываемые подпрограммой по наименованию (т. е. параметры, которые становятся доступными для изменения внутри подпрограммы).
Главное различие этих двух категорий — в механизме передачи параметров в подпрограмму. При вызове параметра по значению происходит копирование памяти, занимаемой параметром, в стек и использование в дальнейшем в операторах подпрограммы локальной копии параметра. Основное значение параметра (глобальное по отношению к подпрограмме) при этом остается без изменения. Следует отметить, что использование такого механизма при передаче, например, массивов большой длины может отрицательно повлиять на быстродействие программы, заполняя стек лишней информацией.
При вызове параметра по наименованию в подпрограмму передается адрес памяти (глобальной по отношению к подпрограмме), в которой размещено значение параметра. Таким образом, в качестве локальной переменной выступает ссылка на глобальное размещение параметра, обеспечивающая доступ к самому значению.
При обращении к подпрограмме формальные параметры заменяются на соответствующие по типу и категории фактические параметры вызывающей программы или подпрограммы.
Элементы языков программирования могут рассматриваться на следующих уровнях:
- алфавит — совокупность символов, отображаемых на устройствах печати и экранах и/или вводимых с клавиатуры терминала. Обычно это набор символов Latin-1, с исключением управляющих символов. Иногда в это множество включаются неотображаемые символы, с указанием правил их записи (комбинирование в лексемы);
- лексика — совокупность правил образования цепочек символов (лексем), образующих идентификаторы (переменные и метки), операторы, операции и другие лексические компоненты языка. Сюда же включаются зарезервированные (запрещенные, ключевые) слова ЯП, предназначенные для обозначения операторов, встроенных функций и пр.
- синтаксис — совокупность правил образования языковых конструкций, или предложений ЯП — блоков, процедур, составных операторов, условных операторов, операторов цикла и пр. Особенностью синтаксиса 4 является принцип вложенности (рекурсивность) правил построения конструкций;
- семантика — смысловое содержание конструкций, предложений языка, семантический анализ — это проверка смысловой правильности конструкции. Например, если мы в выражении используем переменную, то она должна быть определена ранее по тексту программы, а из этого определения может быть получен ее тип. Исходя из типа переменной, можно говорит о допустимости операции с данной переменной. Семантические ошибки возникают при недопустимом использовании операций, массивов, функций, операторов и пр.
2.2. Написание простейшей программы на языке С
Давайте теперь разберемся с переменными, а именно что они из себя представляют и для чего служат. Разбираться мы будем на практике: для этого мы напишем программу, которая будет запрашивать у пользователя поочередно два целых числа, затем складывать их и результат выводить на экран. Затем уже на этом примере разберемся с сущностью переменных в программировании.
//Сложение двух чисел
#include <iostream>
using namespace std;
int main()
{
int chislo1;
int chislo2;
int summa;
cout << "Vvedite pervoe chislo: " << endl;
cin >> chislo1;
cout << "Vvedite vtoroye chislo: " << endl;
cin >> chislo2;
summa = chislo1 + chislo2;
cout << "Summa ravna: " << summa << endl;
return 0;
}
Давайте теперь разберем код, а затем вы создадите новый проект в среде программирования, напишите эту программу, откомпилируете и построите, запустите и сами посмотрите на результаты ее работы. Итак, первая строка – это однострочный комментарий - в нем мы указываем цель нашей программы (у нас она складывает два числа). В случае, если он не помещается на одну строку, то перед тем, как его продолжать писать на новой строке, нужно опять поставить две косые черты, предваряющие комментарий "//". Есть в С++ и многострочный комментарий, пришедший из более раннего языка Си, но им пользуются реже. Вот так он выглядит:
/* здесь вы вводите
текст своего комментария, который
может состоять из нескольких строк,
вот как в этом примере, и ограждается он с двух сторон
вот такими обозначениями */
Этот же текст с использованием однострочного комментария выглядел бы так:
//здесь вы вводите
//текст своего комментария, который
//может состоять из нескольких строк,
//вот как в этом примере, и ограждается он с двух сторон
//вот такими обозначениями
Следующая строка кода - это уже известная нам директива препроцессора, подключающая необходимый для работы заголовочный файл iostream.h. Подключаем его, т.к. у нас используются в программе функции вывода (cout), ввода (cin), перевода курсора на новую строку (endl), объявленные в нем.
Далее мы видим главную и обязательную функцию программы - main(). С ней то и начинается построчное выполнение программы. Построчное, потому что в программировании все инструкции выполняются последовательно, если не задано иных условий.
Первая строчка программы - int chislo1; Это и есть наша первая переменная, а если быть точнее, то ее объявление в программе. Прежде, чем использовать какую-либо переменную в программе, ее нужно объявить.
Объявить - значит определить тип и присвоить имя. В нашем случае мы определили тип нашей переменной, как int (то есть целое число), а имя дали chislo1. Для чего при объявлении переменных нужно указывать тип!? Для того, чтобы программа при запуске смогла зарезервировать в оперативной памяти компьютера столько места, сколько необходимо для ее хранения. Для хранения целого числа типа int требуется 4 байта оперативной памяти. Размер такого числа может быть в пределах от чуть более +2 млрд. до чуть более, чем -2 млрд.
Объявить переменную можно в любом месте программы, до ее первого использования. Хотя желательно в своих программах придерживаться какого-либо одного стиля: например, объявлять в начале функции main(), как в этой программе.
Мы знаем, что компьютер - это устройство, которое умеет выполнять большое количество операций, таких как сложение, вычитание, умножение, деление, сравнение двух чисел и т.д. Иными словами, компьютер оперирует данными. Вот эти данные располагаются в переменных. А где же располагаются переменные? После запуска, программа загружается в оперативную память компьютера, где она занимает какое-то определенное пространство, часть из которого занимают переменные.
Переменная - это выделенная нами область в памяти компьютера (выделяем ее с помощью объявления в коде программы), в которой будут храниться наши данные. Почему данные, а не данное? Потому, что судя из названия - эта область памяти перезаписываемая, в отличии от констант, значение которой на протяжении всей программы остается одинаковым и не может быть изменено, перезаписано (объявляется также, как и переменная, за исключением того, что перед определением типа ставится модификатор const, который указывает компилятору, что это данное нельзя изменять).
Переменные могут хранить не только числовые значения, но и символьные, логические. Пока что мы рассматриваем только числовые. В данном случае мы объявили три переменные целого типа.
int chislo1;
int chislo2;
int summa;
Можно также объявить эти переменные и в одну строку, т.к. их типы совпадают. Получится так:
int chislo1, chislo2, summa;
Итак, сначала нужно указать тип переменной. В нашем случае - это тип "int", целочисленная переменная. Затем указывается имя переменной и ставится точка с запятой, т.к. мы знаем, что каждая инструкция в языке С++ заканчивается точкой с запятой. Переменные мы объявили, соответственно, место для них в памяти компьютера уже будет зарезервировано. Но есть одно но...переменным еще не присвоено значение, поэтому различные операции (сложение, вычитание, сравнение и т.д.) с ними производить еще нельзя. В них содержится различный "мусор" (ненужные значения). Поэтому смотрим следующие строки:
cout << "Vvedite pervoe chislo: " << endl;
cin >> chislo1;
cout << "Vvedite vtoroye chislo: " << endl;
cin >> chislo2;
Выводим сообщение-подсказку пользователю о том, что нужно ввести первое число. В следующей строке с помощью оператора ввода cin программа считывает с потока ввода введенное пользователем с клавиатуры число и сохраняет его в переменную chislo1. Теперь данная переменная уже не содержит "мусор", а содержит введенное пользователем число и, соответственно, с ним можно производить различные операции. Далее идет запрос на ввод второго числа и также программа сохраняет его в переменную chislo2.
Итак, мы запросили у пользователя два числа, сохранили их в переменных chislo1 и chislo2, теперь с ними можно производить различные операции. В нашем случае мы должны будем найти их сумму и сохранить в переменную summa. Следующая строчка кода находит их сумму и сохраняет в переменную summa:
summa = chislo1 + chislo2;
Здесь мы видим оператор присваивания "=" и оператор сложения "+". Что они делают, я думаю, что вы уже догадались. Запомните только одну вещь: в отличие от математики в программировании знак присваивания ("=") работает чуть по другому - то, что находится справа от него, присваивается той переменной, что слева. Т.е. сначала складываются две переменные chislo1 и chislo2, а затем их результат записывается в переменную summa. Теперь можно пользоваться этой переменной, что мы и сделаем в следующей строке кода.
Следующая строка кода выводит значение этой переменной на экран:
cout << "Summa ravna: " << summa << endl;
Переменная - это область в памяти компьютера, которая хранит данные, которые могут меняться (отчего и название - переменная).
Абсолютно все в компьютере на низком уровне сводиться к работе с переменными (данными), поэтому без них компьютер и программирование потеряли бы смысл.
ЗАКЛЮЧЕНИЕ
Основные возможности переменных, предоставляемые языками программирования, интуитивно понятны и просты, но есть немало деталей, которые помогут нам сделать встраиваемое приложение более надежным и эффективным.
В своей курсовой работе я описал понятие, свойства и типы переменных. Более подробно ознакомились с написанием и работой простейшей программы на языке C.
СПИСОК ЛИТЕРАТУРЫ
Григорьев, А.Б. О чем не пишут в книгах по Delphi; БХВ-Петербург - Москва, 2013. - 576 c.