Мегаобучалка Главная | О нас | Обратная связь


О преобразовании числовых типов данных Паскаля



2018-07-06 1040 Обсуждений (0)
О преобразовании числовых типов данных Паскаля 0.00 из 5.00 0 оценок




В Паскале почти невозможны неявные (автоматические) преобразования числовых типов данных. Исключение сделано только для типа integer, который разрешается использовать в выражениях типа real. Например, если переменные описаны следующим образом:

Var X :integer; Y: real;

то оператор

Y := X+2;

будет синтаксически правильным, хотя справа от знака присваивания стоит целочисленное выражение, а слева – вещественная переменная, компилятор сделает преобразование числовых типов данных автоматически. Обратное же преобразование автоматически типа real в тип integer в Паскале невозможно. Вспомним, какое количество байт выделяется под переменные типа integer и real: под целочисленный тип данных integer выделяется 2 байта памяти, а под real – 6 байта. Для преобразования real в integer имеются две встроенные функции: round(x) округляет вещественное x до ближайшего целого, trunc(x) усекает вещественное число путем отбрасывания дробной части.

 

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

Пример описания целой переменной с именем a и вещественной переменной x:

int a; float x;

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

int a, b = 1; float x = 0.1, y = 0.1f;

Здесь описаны:

· переменная a типа int, начальное значение которой не присваивается;

· переменная b типа int, ее начальное значение равно 1;

· переменные х и y типа float, которым присвоены одинаковые начальные значения 0.1. Разница между ними состоит в том, что для инициализации переменной х сначала формируется константа типа double, а затем она преобразуется к типу float ; переменной y значение 0.1 присваивается без промежуточного преобразования.

Рекомендуется всегда инициализировать переменные при описании. При инициализации можно использовать не только константу, но и выражение — главное, чтобы на момент описания оно было вычисляемым, например:

int b = 1, a = 100; int x = b * a + 25;

Программа на C# состоит из классов, внутри которых описывают методы и данные. Структуру программы иллюстрирует рис. 3.1. Переменные, описанные непосредственно внутри класса, называются полями класса. Им автоматически присваивается так называемое "значение по умолчанию" — как правило, это 0 соответствующего типа. Переменные, описанные внутри метода класса, называются локальными переменными. Их инициализация возлагается на программиста.


Рис. 3.1.Структура программы

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

class X // начало описания класса X{int A; // поле A класса Xint B; // поле B класса X void Y() // ----------------------------------------- метод Y класса Х {int C; // локальная переменная C, область действия – метод Yint A; // локальная переменная A (НЕ конфликтует с полем А) { // ============ вложенный блок 1 ============int D; // локальная переменная D, область действия – этот блок// int А; недопустимо! Ошибка компиляции, конфликт с локальной// переменной А С = B; // присваивание переменной С поля В класса Х (**) С = this.A; // присваивание переменной С поля А класса Х (***)} // ============ конец блока 1 =============== { // ============ вложенный блок 2 ============int D; // локальная переменная D, область действия – этот блок} // ============ конец блока 2 =============== } // ------------------------- конец описания метода Y класса X } // конец описания класса X

В листинге 3.1 приведен пример программы, в которой описываются и выводятся на экран локальные переменные.

using System;namespace ConsoleApplication1{ class Class1 { static void Main() {int i = 3;double y = 4.12;decimal d = 600m;string s = "Вася"; Console.Write( "i = " ); Console.WriteLine( i );Console.Write( "y = " ); Console.WriteLine( y );Console.Write( "d = " ); Console.WriteLine( d );Console.Write( "s = " ); Console.WriteLine( s );} }}

Листинг 3.1. Описание переменных

Внимание

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

Именованные константы

Можно запретить изменять значение переменной, задав при ее описании ключевое слово const, например:

constint b = 1; constfloat x = 0.1, y = 0.1f; // const распространяется на обе переменные

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

constint b = 1, a = 100; constint x = b * a + 25;

Операции и выражения

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

Например, a + 2 — это выражение, в котором + является знаком операции, а a и 2 — операндами. Пробелы внутри знака операции, состоящей из нескольких символов, не допускаются. Операции C# приведены в таблице 3.1.

Таблица 3.1. Операции C#
Категория Знак операции Название
Первичные x() Вызов метода или делегата
x[] Доступ к элементу
x++ Постфиксный инкремент
x-- Постфиксный декремент
new Выделение памяти
typeof Получение типа
checked Проверяемый код
unchecked Непроверяемый код
Унарные + Унарный плюс
- Унарный минус (арифметическое отрицание)
! Логическое отрицание
Поразрядное отрицание
++x Префиксный инкремент
--x Префиксный декремент
(тип)x Преобразование типа
Мультипликативные (типа умножения) * Умножение
/ Деление
% Остаток от деления
Аддитивные (типа сложения) + Сложение
- Вычитание
Сдвига << Сдвиг влево
>> Сдвиг вправо
Отношения и проверки типа < Меньше
> Больше
<= Меньше или равно
>= Больше или равно
is Проверка принадлежности типу
as Приведение типа
Проверки на равенство == Равно
!= Не равно
Поразрядные логические & Поразрядная конъюнкция (И)
Поразрядное исключающее ИЛИ
| Поразрядная дизъюнкция (ИЛИ)
Условные логические && Логическое И
|| Логическое ИЛИ
Условная ?: Условная операция
Присваивания = Присваивание
*= Умножение с присваиванием
/= Деление с присваиванием
%= Остаток от деления с присваиванием
+= Сложение с присваиванием
-= Вычитание с присваиванием
<<= Сдвиг влево с присваиванием
>>= Сдвиг вправо с присваиванием
&= Поразрядное И с присваиванием
Поразрядное исключающее ИЛИ с присваиванием
|= Поразрядное ИЛИ с присваиванием

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

Результат вычисления выражения характеризуется значением и типом. Например, пусть a и b — переменные целого типа и описаны так:

int a = 2, b = 5;

Тогда выражение a + b имеет значение 7 и тип int, а выражение a = b имеет значение, равное помещенному в переменную b (в данном случае — 5) и тип, совпадающий с типом этой переменной.

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

Например, a + b + c означает (a + b) + c, а a = b = c означает a = (b = c).



2018-07-06 1040 Обсуждений (0)
О преобразовании числовых типов данных Паскаля 0.00 из 5.00 0 оценок









Обсуждение в статье: О преобразовании числовых типов данных Паскаля

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1040)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)