95620

Объявление переменной и определение переменной

Лекция

Математика и математический анализ

ЭВМ, где точка фиксируется после знакового разряда, работает с дробными числами; если же точка зафиксирована после n-го разряда, то в такой ЭВМ могут представляться только целые числа. Рассмотрим частный случай q = 2; т.е. используется двоичная система счисления. Микропроцессор в IBM PC хранит целые числа и выполняет целочисленные операции...

Русский

2015-09-25

40.57 KB

0 чел.

Лекция  4.

x1

………….

хк

хк+1

………….

хn-1

Знак

k

m

а) Естественная форма: число записывается в виде знака и последовательности цифр, разделённых точкой (либо запятой) на целую и дробную части: Х = х1х2 … хк . хк+1 … хn-1 Точка (запятая)  в МС не изображается, а считается всегда стоящей на одном фиксированном месте. Такая форма представления называется представлением с фиксированной точкой.  

Знак «плюс» кодируется нулём, а знак «минус» — единицей; к — количество разрядов в целой части, а  m — в дробной части числа; точка подразумевается между ними. Таким образом, характеристики МС = {n, k, m, q}; здесь n = k + m + 1;

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

Рассмотрим частный случай q = 2; т.е. используется двоичная система счисления.  Микропроцессор в  IBM  PC хранит  целые  числа и  выполняет целочисленные  операции только с целыми  данными.  Число Х запишется так:

х0 х1 х2 … хк хк+1 … хn-1;

 

здесь х0 - знак, а хi равно 0, либо 1для i=0,1,…n-1.

На это представление можно посмотреть как на целое число; его называют машинным кодом числа Х для представления с фиксированной точкой. Это прямой код числа Х:

 

Пример.  МС = {n=8; n-1=k+m; q=2};   даны два числа a и b. записать их прямые коды.

  a =101112  [a]пр = 0101 1100

 b = -1010012  [b]пр = 1010 1001

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

В современных ЭВМ числа, как правило, хранятся в памяти в дополнительном коде, для положительных чисел и нуля дополнительный код совпадает с прямым. Для рассмотренных чисел  a и b:

[a]доп = [a]пр =  0101 1100 

[b]доп = 10000 0000

  -  0010 1001

               1101 0111        1101 0111

Замечание 1. Существует и другое, более простое, правило для определения дополнительного кода числа х<0: взять прямой код числа |х|, инвертировать его (заменить нули на 1, а  1 - на нули) и добавить к младшему разряду кода единицу. Например, дополнительный код числа b можно получить и так

[|b|]доп = 0010 1001; после инвертирования:  1101 0110  

 [b]доп = 1101 0110 + 1 = 1101 0111

Замечание 2. Дополнительный код не позволяет определить ситуацию переполнения, поэтому, наряду с ним, используется модифицированный дополнительный код:

Выполнение операций над числами, представленными с фиксированной точкой.

Сложение:  a + b = [a]доп + [b]доп =  здесь единица переполнения теряется.

Вычитание: :  a b = [a]доп +[–b]доп , т.е. операция вычитания заменяется сложением.

[–b]доп = 0010 1001 , операция   [a]доп +[–b]доп  выполняется над модифицированными дополнительными кодами:            

00 101 1100

00 010  1001

01 000  0101

Различные значения в двух знаковых разрядах результата сигнализируют о ситуации переполнения (см. замечание 2) - это аварийная (особая ) ситуация.

Умножение двух n-разрядных машинных слов выполняется на специальном (2*n)-разрядном регистре.

Диапазон чисел, представленных

а)в прямом коде:   –(qkqm)  X  (qkqm)

Здесь Xmax=(qkqm) –самое большое значение числа, которое можно представить в МС.   Каждому X из диапазона соответствует свой машинный код. Коды чисел X и -Х отличаются знаковыми разрядами.

b)в дополнительном коде:    –qk   X  (qkqm)

  Здесь незадействованным оказался код   100000…..0000 (так как нуль представляется кодом из n нулей, а -0 нет), его поставили в соответствие числу –qk .

Точность чисел, представленных с фиксированной точкой.

Если в записи числа, в его дробной части, содержится более, чем n цифр, то при записи числа в МС лишние знаки отбрасываются (с округлением или без округления), т.е. вместо числа Х хранится его приближение Х*. Очевидно, что отброшенный хвост не превосходит единицы (n-1) - го разряда:  | XX*|  q–(n-1). Эту величину (наименьшую из верхних оценок) называют абсолютной погрешностью, обозначают .

Аварийные (особые)ситуации, возникающие при выполнении операций над числами, представленными с фиксированной точкой.

  1.  переполнение разрядной сетки, называют переполнение с фиксированной точкой.
  2.  деление на нуль, называют некорректность деления в арифметике с фиксированной точкой.

Достоинства формы представления чисел с фиксированной точкой.

Сравнительно простая конструкция ЭВМ: в операциях сложения, вычитания при q=2 все разряды МС (и знаковый и числовые) работают одинаково.

Недостатки формы представления чисел с фиксированной точкой:

  1.  Сравнительно узкий диапазон чисел; необходимость следить, чтобы все промежуточные результаты лежали в этом диапазоне, для чего приходится выполнять достаточно громоздкую процедуру - масштабирование формул.
  2.  При хранении небольших по величине чисел возникает такая ситуация: хранятся в МС незначащие цифры (нули)  числа, а значащие должны быть отброшены. Например, число Х = 0.1= 0.0001[10011001100…]2 будет представлено:  0000 0001 , т.е. хранится Х*= 0.00012 = 0.0625.

6.Переменная – объект программы, который может изменять значение в ходе выполнения программы, переменная имеет имя и значение.

Объявление и определение переменной

До первого использования  переменной, её обязательно надо объявить(описать). Объявления переменных могут располагаться в любом месте  программы. Не обязательно делать все объявления переменных до появления первого исполняемого оператора, как это было принято в С. Тем не менее, объявления наиболее часто употребляемых переменных целесообразно производить в  начале программы, чтобы обеспечить ее удобочитаемость.

Объявление переменной предполагает указание имени переменной  и ее типа (в простейшем случае):   

имя типа  имя переменной [инициализатор]

Возможно указпание  нескольких имён:

 тип  имя [,имя … имя];

Например:  

int a,b;

float x;

При описании  можно присвоить переменной начальное значение, говорят инициализировать её, есть 2 способа сделать это:

 short  k,I=1;    // тип  имя =значение ;

 int  x(10);      // тип  имя (значение);

Модификатор  const  перед описанием переменной указывает, что переменная явл. именованной константой,она должна быть инициализирована при описании  и её значение изменять нельзя.

const int=100;   

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

Описание переменной  определяет её область действия – часть программы, где её можно использовать для доступа к выделенной ей области памяти.    Если  переменная определена в  блоке (внутри{  }) , то она говорят явл. локальной и область её действия от места описания и до конца блока. Если переменная определена вне любого блока, она наз. глобальной, область её действия – весь файл, где она описана,  начиная с места  описания.

Есть  разница  между терминами   объявление переменной и определение переменной.

Если при объявлении переменной  одновременно выделяется память под нее, то происходит определение переменной. Предложения – объявления  переменных, описанные выше,  являются и объявлениями, и определениями.

Вещественный тип

Стандарт С++ определяет три вещественных типа данных:

 float         4 байта             1.17*10-38 <|x|<3.4*10+38 ; x=0

 double        8 байтов         2.2*10-308 <|x|<1.7*10+308 ; x=0

 long double   10 байтов    3.4*10-4932 <|x|<1.19*10+4932 ; x=0

Операции для вещественного  типа:  

OP(вещественный)={+оо ; * / ; + - ; < <= >= > ;== != }

Функции для вещественного типа:  #include<cmath>  

Fun(вещественный)={fabs(x), sin(x), cos(x), log(x), log10(x), exp(x), pow(a,b), tan(x), atan(x),  asin(x),  acos(x), sqrt(x)}

Константы вещественного типа

Естественный вид:     [xxxx].[xx..xx],  например,    136.25,  136. , .25

Константа с порядком: :     

[xxxx][.][xx..xx] [{E/e}  [{+/-}]xx],

 например  .15е1  , 3Е5 , 1.25Е-3  это константы  0.15*101 , 3*105,  1.25*10-3 

По умолчанию у вещественной константы тип double, можно явно указать тип  с помощью суффиксов  F,f (для float),  L,l (для long double).

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

Множество значений логического типа  {false, true}(эти слова зарезервированы как константы  логического типа),  false представляется значением 0, любое другое значение интерпретируется как  true, если true преобразуется к целому типу, оно имеет значение 1. Переменные логического типа чаще всего используются для хранения результатов сравнения.

Операции для логического   типа:

O(bool )={ !  ; <  <=  >=  > ; ==  != ;  && ; || }

Функции для логического типа: Fun(bool)= ø

Символьный тип: char 

Возможны типы

Signed char (≈ char)     1байт     -128 ÷ 127

Unsigned char           1байт      0 ÷ 255

Множество значений типа  char – множество символов ASCII, каждый символ в байте представлен своим кодом (0 ÷ 255), часть символов (с кодами 0÷31)является управляющими , они не имеют графического изображения, символы с кодами 32÷127 имеют фиксированное графическое написание ,а наборы символов с кодами 128÷255 отличаются для разных операционных систем , платформ и часто не содержат русских букв.

Коды цифр 0….9 упорядочены по возрастанию и идут без пропусков. Коды больших латинских букв упорядочены по алфавиту и идут без пропусков. То же самое верно и для малых латинских букв.

Операции для символьного   типа: -те же, что и для целого типа 

 (в операциях отношения сравниваются коды символов)

Множество функций для  символьного типа  пусто, но есть функции, которые выполняют проверку символов и выдают логические значения (истина или ложь).

#include <cctype>  //подключение функций классификации и преобразования символов

isalnum(int ch)-проверка является ли символ буквой или цифрой.

isalpha(int ch)-проверка является ли символ буквой .

isdigit(int ch)-проверка является ли символ цифрой.

iscntrl(int ch)-проверка является ли символ управляющим.

Константы символьного типа

Символьные константы записываются в одиночных кавычках: 'А', ’+' и т. д. (это символы, имеющие графическое изображение).

Управляющие символы не  имеют графического написания  и изображаются  '\символ', говорят в виде управляющей последовательности, это означает, что символ \ «управляет»  интерпретацией следующих за ним символов последовательности. Так, ‘\t’  воспринимается не как символ 't', а как символ табуляции.  (Символ табуляции означает, что весь поток вывода будет условно разделен на фрагменты одинаковой длины, определяемой шагом табуляции, и следующий символ будет напечатан в начале  следующего фрагмента, а не сразу за предыдущим символом. В консольных программах шаг табуляции равен восьми позициям.)  Символьная константа '\п' означает перевод курсора в начало следующей строки. Управляющие символы могут использоваться и в составе строк.

Символ обратной косой черты  используется  для представления символов  ’  ” \ ?:  ‘\’’, ‘\\’, ‘\”’ , ‘\?’.

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

Структура описания функции:

<Заголовок функции> {<тело функции >}

int main()  

{<тело функции >}

Программа содержит:

<Директивы препроцессора>

using    namespace   std;

<описания>

< описание функции>

…….

< описание функции>

Функции не могут быть вложенными.Одна из функций обязательно есть функция main(). Программа может состоять из одного текстового файла  (его наз. исходный модуль)  или из нескольких исходных модулей.  

6.Переменная – объект программы, который может изменять значение в ходе выполнения программы, переменная имеет имя и значение.

Объявление и определение переменной

До первого использования  переменной, её обязательно надо объявить(описать). Объявления переменных могут располагаться в любом месте  программы. Не обязательно делать все объявления переменных до появления первого исполняемого оператора, как это было принято в С. Тем не менее, объявления наиболее часто употребляемых переменных целесообразно производить в  начале программы, чтобы обеспечить ее удобочитаемость.

Объявление переменной предполагает указание имени переменной  и ее типа (в простейшем случае):   

имя типа  имя переменной [инициализатор];

Возможно указпание  нескольких имён:

 тип  имя [,имя … имя];

Например:  

int a,b;

float x;

При описании  можно присвоить переменной начальное значение, говорят инициализировать её, есть 2 способа сделать это:

 short  k,I=1;    // тип  имя =значение ;

 int  x(10);      // тип  имя (значение);

Модификатор  const  перед описанием переменной указывает, что переменная явл. именованной константой, она должна быть инициализирована при описании  и её значение изменять нельзя.

const int=100;   

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

Описание переменной  определяет её область действия – часть программы, где её можно использовать для доступа к выделенной ей области памяти.   Если   переменная определена в блоке (внутри{  }) , то она говорят явл. локальной и область её действия от места описания и до конца блока. Если переменная определена вне любого блока, она наз. глобальной, область её действия – весь файл, где она описана, начиная с момента описания.

Есть  разница  между терминами   объявление переменной и определение переменной.

Если при объявлении переменной  одновременно выделяется память под нее, то происходит определение переменной. Предложения – объявления  переменных, описанные выше,  являются и объявлениями, и определениями.


 

А также другие работы, которые могут Вас заинтересовать

53367. Ігрові хвилинки на уроках музики 48.5 KB
  Мета даної публікації не заглиблюючись у наукові аспекти теорії гри надати педагогові реальну допомогу на шляху впровадження ігрових форм у навчальновиховний процес. Дуже подобаються школярам варіанти психологічних ігрових вправ після проведення яких бажано аналізувати та обговорювати результати отримані під час гри.Кожній дитині надати можливість для виходу її емоцій після чого бажано алізувати та обговорювати результати отримані...
53368. Ігрові технології на уроках 39.5 KB
  Шіллер наприклад стверджував що античні ігри божественні і можуть служити ідеалом будьяких інших видів дозвілля людини. У Древньому Китаї святкові ігри відкривав імператор і сам у них брав участь. Складність визначається різноманіттям форм гри способів участі в ній партнером та алгоритмами проведення гри.
53369. Объемное моделирование и конструирование из бумаги. Игрушки из бумажных полосок 172.5 KB
  Игрушки из бумажных полосок Вид урока Урок беседа Тип урока Урок изучения нового материала Студенты преподаватели Айрапетова Мария Сергеевна Гусева Анна Павловна Ершова Дарья Дмитриевна Максимова Марина Вадимовна Государственный социальный заказ Во исполнение Закона Российской Федерации Об образовании. Добиваться: применения различных форм методов средств технологий при проведении образовательного урока; установления взаимодействия с различными субъектами образовательного процесса. Технологическая карта урока Триединые...
53370. Розвиток слухової уваги, слухової пам’яті та фонематичного сприймання у дітей дошкільного віку 68 KB
  Діти стають у коло непомітно для ведучого вони передають за спиною один одному дзвіночок. Логопед розрає дітям ведмедиків з зображенням цих предметів потім за ширмою озвучує ці предмети а діти повинні відгадати який ведмедик шумить. Дидактична гра Хто кличе Діти по черзі називають імя ведучого який стоїть до них спиною. Потім гра ускладнюється і діти кличуть ведучого: Ау то голосно то тихо в залежності від того що скаже логопед: Далеко пішли у ліс Близько пішли у ліс.
53371. Учет косвенных расходов в составе себестоимости продукции. Синтетический учёт движения нематериальных активов 22.77 KB
  Косвенные затраты — затраты, которые, в отличие от прямых затрат, не могут быть непосредственно отнесены на себестоимость одного конкретного вида продукции. Косвенные затраты относятся одновременно ко всем видам продукции и распределяются между ними условно: общепроизводственные и общехозяйственные расходы, часть расходов на продажу и др
53372. Дидактические игры как средство активизации учащихся при изучении таблицы умножения 52.5 KB
  Хочу рассказать о некоторых дидактических математических играх, которые я использую на уроках с целью активизации учащихся при формировании вычислительных навыков. Навык, как известно, приобретается в результате многократных повторений одних и тех же операций. Чтобы избежать однообразия в шлифовке табличных случаев умножения и деления, провожу упражнения в игровой, занимательной форме.
53373. Роль ігор-драматизацій в навчанні дошкільників англійської мови 97 KB
  Всі етапи роботи з казкою здійснюються разом з дітьми. Ініціативу розподілу ролей я надаю малечі (за бажанням), разом з тим, тактовно корегую їх вибір, адже дітям з низьким або середнім рівнем розвитку бажано надати роль, яка є невеличкою за обсягом, не дуже складною та не містить у собі тих мовних структур, які викликають труднощі у дитини (зокрема це стосується звуковимови), щоб не зникло бажання приймати участь у виставі.
53374. Использование деловых и ролевых игр на уроках химии для развития ключевых компетентностей учащихся 121.5 KB
  В процессе игры у детей вырабатывается привычка сосредоточиться мыслить самостоятельно развивает внимание стремление к знаниям. По спектру целевой ориентации игры подразделяются: дидактические: расширение кругозора познавательная деятельность; применение ЗУН в практической деятельности; формирование определенных умений и навыков необходимых в практической деятельности; развитие общеучебных умений и навыков; развитие трудовых навыков. В нее включаются последовательно игры и упражнения формирующие умение выделять основные характерные...
53375. Дидактическая игра – залог успешной деятельности учащихя на уроке 101 KB
  Игра помогает формированию фонематического восприятия слова обогащает ребенка новыми сведениями активирует мыслительную деятельность внимание а главное стимулирует речь. В каком глаголе слово нет слышится сто раз стонет В каком слове семь гласных семья Что принадлежит только тебе а употребляется другими чаще чем тобой имя Какое слово состоит из трёх одинаковых букв три о Какая часть растения бывает и частью слова корень Какие буквы обозначают два звука если стоят в начале слова или после гласной ...