3572

Алгоритми роботи з цілими числами

Лекция

Информатика, кибернетика и программирование

Тип ціле число є основним для будь-якої алгоритмічної мови. Зв'язано це з тим, що вміст комірки пам'яті або регістра процесора можна розглядати як ціле число. Адреси елементів пам'яті також являють собою цілі числа, з їхньою допомогою записуються машинні команди й т.д...

Украинкский

2012-11-03

54 KB

3 чел.

Алгоритми роботи з цілими числами

Тип ціле число є основним для будь-якої алгоритмічної мови. Зв'язано це з тим, що вміст комірки пам'яті або регістра процесора можна розглядати як ціле число. Адреси елементів пам'яті також являють собою цілі числа, з їхньою допомогою записуються машинні команди й т.д. Символи представляються в комп'ютері цілими числами - їхніми кодами в деякому кодуванні. Зображення також задаються масивами цілих чисел: для кожної крапки кольорового зображення зберігаються інтенсивності її червоної, зеленої й синьої складової (у більшості випадків - у діапазоні від 0 до 255). Як говорять математики, цілі числа дані, а все інше сконструювала з них людина.

Загальноприйнятий у програмуванні термін ціле число або ціла змінна, строго говорячи, не цілком коректний. Цілих чисел нескінченно багато, десятковий або двійковий запис цілого числа може бути як завгодно довгий й не міститися в області пам'яті, відведеної під одну змінну. Ціла змінна в комп'ютері може зберігати лише обмежену безліч цілих чисел у деякому інтервалі. У сучасних комп'ютерах під цілу змінну виділяється 8 байт, тобто 64 двійкового розряду. Вона може зберігати числа від нуля до 2 в 64-й ступені мінус 1. Таким чином, максимальне ціле число, що може зберігатися в цілій змінній, дорівнює

264 - 1 = 18,446,744,073,709,551,615

Арифметичні цілочисельні типи

Ім'я типу

Системний тип

Діапазон

Розмір

Sbyte

System.SByte

- 128... …127

Знакове, 8 Біт

Byte

System.Byte

0... …255

Беззнакове, 8 Біт

Short

System.Short

- 32768 …32767

Знакове, 16 Біт

Ushort

System.UShort

0... …65535

Беззнакове, 16 Біт

Int

System.Int32

- 2,147,483,648…2,147,483,647

Знакове, 32 Біт

Uint

System.UInt32

0...4…4,294,967,295)

Беззнакове, 32 Біт

Long

System.Int64

- 9,223,372,036,854,775,808 …

9,223,372,036,854,775,807

Знакове, 64 Біт

Ulong

System.UInt64

0...18…18,446,744,073,709,551,615

Беззнакове, 64 Біт

Додавання й множення значень цілих змінних виконується в такий спосіб: спочатку виконується арифметична операція, потім старші розряди результату, що вийшли за кордон шестидесяти двох двійкових розрядів (тобто вісьми байтів), відкидаються. Певні в такий спосіб операції задовольняють традиційним законам комутативності, асоціативності і дистрибутивності:

a+b = b+a, ab = ba

(a+b) + c = a+(b+c), (ab)c = a(bc)

a(b+c) = ab+ac

В елементарній шкільній математиці результат операції залишку від ділення традиційно вважається невід’ємним. Операція знаходження залишку буде позначатися знаком відсотка %, як у мові С#. Тоді, приміром,

3%5 = 3,

17%5 = 2,

(-3)%5 = 2,

(-17)%5 = 3.

Звідси видно, що в шкільній математиці не виконується рівність

(-a)%b = -(a%b),

Операції зміни знака й знаходження залишку не перестановочні ( математичною мовою, не комутирують один з одним). У комп'ютері операція знаходження залишку від ділення для від’ємних чисел визначається інакше, її результат може бути від’ємним. У наведених прикладах результати будуть наступними:

3%5 = 3,

17%5 = 2,

(-3)%5 = -3,

(-17)%5 = -2.

При діленні на позитивне число знак залишку збігається зі знаком діленого. При такому визначенні тотожність

(-a)%b = a%(-b) = -(a%b) справедлива.

Це дозволяє в багатьох алгоритмах не стежити за знаками (так само, як у тригонометрії формули, виведені для кутів, менших 90 градусів, автоматично виявляються справедливими для будь-яких кутів).

У двійковому поданні старший розряд у від’ємних цілих чисел дорівнює одиниці, у додатних - нулю. Двійкові розряди подання цілого числа в програмуванні нумерують від 0 до 31 справа наліво. Старший розряд має номер 31 і часто називається знаковим розрядом. Таким чином, знаковий розряд дорівнює одиниці у всіх від’ємних чисел і нулю в додатних. Двійкове подання максимального по абсолютній величині від’ємних чисел k складається з одиниці й тридцяти одного нуля:

-214748364810 = 100000000000000000000000000000002

Двійкове подання числа -1 складається із тридцяти двох одиниць:

-110 = 111111111111111111111111111111112

Двійкове подання максимального додатного числа складається з нуля в знаковому розряді й тридцяти однієї одиниці:

214748364710 = 011111111111111111111111111111112

Слід зазначити, що в програмуванні часто використовують також короткі цілі числа, двійковий запис яких займає вісім розрядів, тобто один байт, або шістнадцять розрядів, тобто два байти. Робота з такими короткими цілими числами підтримується на апаратному рівні. У мові Сі однобайтовим цілим числам відповідає тип Sbyte, двухбайтовим - тип short. Однобайтові цілі числа - це елементи кільця відрахувань Zm, де m = 28 = 256.

У випадку двухбайтових цілих чисел (тип short) m = 216 = 65536.

Розглянемо наступні алгоритми:

Лістинг 9.1. Дано ціле число , знайти суму і кількість чисел

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите число: ");

int s = int.Parse(Console.ReadLine());

int i = 0, sum = 0; ;

while (s > 0)

{

int d = s % 10;

sum = sum + d;

s = s / 10;

i++;

 

}

Console.WriteLine("Сумма чисел = " + sum+ " kol"+i);

}

}

}

Лістинг 9.2. Знайти цифру , яка находиться на третьому місці введеного числа.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите число: ");

int s = int.Parse(Console.ReadLine());

int i = 0, s1 = s;

while (s > 0)

{

s = s / 10;

i++;

}

s = s1; int l = 0;

while (s > 0)

{

int d = s % 10;

s = s / 10;

l++;

if (l==i-2) Console.WriteLine("число = " + d);

}

}

}

}

Спробуйте проаналізувати представлені алгоритми з представленням цілого числа типом string.

Лістинг 9.3.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace _25

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите число: ");

string s = Console.ReadLine();

int i = 0, sum = 0; ;

string d;

for (i = 0; i < s.Length; i++)

{

d = null;

d += s[i];

sum += Int32.Parse(d);

}

Console.WriteLine("Сумма чисел = "+sum);

}

}

}

Лістинг 9.4.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace _26

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введіть число: ");

string s = Console.ReadLine();

Console.WriteLine("На третьому місці цифра " + s[2]);

}

}

}

Проаналізуйте наведені задачі, перевірте їх працездатність в середовищі програмування.


 

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

27013. Учет расчетов с подотчетными лицами 14.51 KB
  В бухгалтерском учете операции с подотчетными лицами отражаются следующими проводками: 1 выдан аванс на командировочные расходы: Дебет счета 71 Расчеты с подотчетными лицами Кредит счета 50 Касса; 2 отражены расходы по найму жилого помещения без учета НДС: Дебет счета 44 Расходы на продажу Кредит счета 71 Расчеты с подотчетными лицами; 3 учтена сумма НДС уплаченная за найм жилого помещения: Дебет счета 19 Налог на добавленную стоимость по приобретенным ценностям Кредит счета 71 Расчеты с подотчетными лицами; 4 возврат...
27014. Учет вложений в нефинансовые активы 15.97 KB
  Учет операций по вложениям в объекты основных средств нематериальных непроизведенных активов при их приобретении в том числе в сумме затрат связанных с выполнением научноисследовательских опытноконструкторских технологических работ отражается по дебету соответствующих счетов аналитического учета счета 010600000 Вложения в нефинансовые активы 010611310 010613330 010631310 010632320 с кредитом соответствующих счетов аналитического учета счета 010700000 Нефинансовые активы в пути 010711310 010731310 в случае приобретения объектов...
27015. Документальное оформление, оценка и учет отгрузки (отпуска) и продажи продукции, работ и услуг покупателям и заказчикам. Аналитический и синтетический учет отгрузки и реализации продукции 22.19 KB
  Аналитический и синтетический учет отгрузки и реализации продукции.Учет готовой продукции осуществляется в количественных и стоимостных показателях. Оценка готовой продукции ГП учитывается по фактическим затратам связанным с ее изготовлением по фактической производственной себестоимости включающей затраты связанные с использованием в процессе производства ос сырья материалов топлива энергии трудовых ресурсов и других затрат на производство продукции.
27016. Система нормативного регулирования бюджетного учета 14.8 KB
  Система нормативного регулирования бюджетного учета Бухгалтерский учет упорядоченная система сбора регистрации и обобщения информации в денежном выражении об имуществе обязательствах организаций и их движении путем сплошного непрерывного и документального учета всех хозяйственных операций. Бюджетный учет представляет собой упорядоченную систему сбора регистрации и обобщения информации в денежном выражении о состоянии финансовых и нефинансовых активов и обязательств Российской Федерации субъектов Российской Федерации и муниципальных...
27017. Анализ состояния и использования ОФ 18.16 KB
  Анализ состояния и использования ОФ Задачами анализа состояния и эффективности использования основных производственных фондов являются: установление обеспеченности предприятия и его структурных подразделений основными фондами соответствия величины состава и технического уровня фондов потребности в них; выяснение выполнения плана их роста обновления и выбытия; изучение технического состояния основных средств и особенно наиболее активной их части машин и оборудования; определение степени использования основных ...
27018. Аудиторские доказательства 13.93 KB
  Аудиторские доказательства Аудиторские доказательства это информация полученная аудитором при проведении проверки и результаты анализа указанной информации на которых основывается мнение аудитора. К аудиторским доказательствам относятся первичные документы и бухгалтерские записи являющиеся основой финансовой бухгалтерской отчетности а также письменные разъяснения уполномоченных сотрудников аудируемого лица и информация полученная из различных источников от третьих лиц. ОЦЕНКА Аудитор должен выбрать и выполнить уместные в рамках...
27019. Документальное оформление и учет поступления основных средств. Определение их первоначальной стоимости в зависимости от способа поступления 25.05 KB
  оформляют типовыми формами первичной учетной документации № формы Наименование формы ОС1 Акт о приемепередаче объекта ос кроме зданий сооружений ОС1а Акт о приемепередаче здания сооружения ОС1б Акт о приемепередаче групп объектов ос кроме зданий сооружений ОС2 Накладная на внутреннее перемещение объектов ос ОС3 Акт о приемесдаче отремх реконстрх модернизых объектов ос ОС4 Акт о списании объекта ос кроме автотранспортных средств ОС4а Акт о списании автотранспортных средств ОС4б Акт о списании групп объектов ос кроме...
27020. Метод экономического анализа, определение, характерные особенности 18.79 KB
  Метод экономического анализа определение характерные особенности Метод экономического анализа представляет собой способ подхода к изучению хозяйственных процессов в их плавном развитии. Характерными особенностями метода экономического анализа являются: использование системы показателей изучение причин факторов изменения этих показателей выявление и измерение взаимосвязи между ними в целях повышения эффективности. Характерными особенностями метода экономического анализа являются: определение системы...
27021. Нормативное регулирование бухгалтерской отчетности в РФ 16.38 KB
  После долгих дискуссий решено новые нормые акты по бухгму учету и бухгалтерской отчти называть не стандартами а ПБУ сохранив тем самым нацую особенть в решении методолх вопросов. Приведем перечень действующих российских ПБУ: 1. ПБУ 1 98 Учетная политика организации; 2. ПБУ 2 94 Учет договоров контрактов на капитальное строительство; 3.