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]);

}

}

}

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


 

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

31624. ПАТОГЕННА ДІЯ ФАКТОРІВ ЗОВНІШНЬОГО СЕРЕДОВИЩА 77.5 KB
  Крашсиндром це патологічний процес який розвивається в потерпілих у результаті тривалого 48 г і більше роздавлювання мяких тканин кінцівок уламками зруйнованих будинків споруджень брилами ґрунту при обвалах у шахтах і ін. Головною ознакою стадії декомпенсації є зниження температури ядра тіла що закономірно приводить: а до зменшення швидкості всіх біохімічних реакцій в організмі у тому числі і процесів біологічного окислювання; б при цьому різко зменшується споживання кисню й утворення АТФ у клітинах; в дефіцит...
31625. ПАТОЛОГІЧНА ФІЗІОЛОГІЯ НИРОК 85 KB
  Ниркову недостатність класифікують наступним чином: 1 У залежності від причин розвитку недостатність нирок може бути: а преренальною порушення кровопостачання нирок б ренальною порушення функції клубочків клубочкової фільтрації і ниркових канальців канальцевої реабсорбції і секреції в постренальною порушення що виникають на шляху відтоку сечі і г аренальною порушення обумовлені відсутністю нирок. Причиною цього є перешкоди відтоку фільтрату чи сечі при ушкодженні канальців закупорка канальців некротчними...
31626. ПАТОЛОГІЯ ВІНЦЕВОГО КРОВООБІГУ 77 KB
  Перш ніж розглянути коронарну недостатність слід зупинитися на особливостях вінцевого кровообігу який характеризується: 1 Високим рівнем екстракції кисню в капілярах серця 7075 у головному мозку 25 у скелетних мязах і печінці 20 що пояснюється значною довжиною капілярного русла серця і у звязку з цим тривалим часом контакту крові із стінкою капілярів. Тому при збільшенні потреби серця в О2 вона не може бути забезпечена шляхом збільшення екстракції О2 як у скелетних мязах оскільки остання і так є максимально можливою в...
31627. ПАТОЛОГІЯ ВОДНО-ЕЛЕКТРОЛІТНОГО ОБМІНУ 86.5 KB
  Внутрішній обмін води залежить від збалансованості між поступленням рідини в організм і її виділенням за один і той же час. N K C Mg ВКС 100 1600 10 130 МКС 1480 45 20 10 ВСС 1420 40 25 15 Із таблиці бачимо що основним електролітом плазми і міжклітинної рідини є N а внутрішньоклітинної рідини K і Mg2 що забезпечує осмотичний тиск всередині клітин. Дегідратація зменшення обєму позаклітинної рідини в організмі коли втрата води переважає над поступленням і виникає негативний водний баланс. Ізоосмолярна дегідратація ...
31628. ПАТОЛОГІЯ ГІПОТАЛАМО-ГІПОФІЗАРНОЇ СИСТЕМИ, ГОНАД і ЕПІФІЗА 89 KB
  Порушення функції гіпоталамоаденогіпофізарної системи. Патогенна дія факторів зовнішнього і внутрішнього середовища негативні емоції біль психічні порушення і т. Механізми виникнення дисфункції гіпоталамоаденогіпофізарної системи: 1 Порушення центральної регуляції нейроендокринних зон гіпоталамуса. 2 Порушення утворення і виділення релізінггормонів клітинами гіпоталамусу.
31629. ПАТОЛОГІЯ ЕНДОКРИННОЇ СИСТЕМИ 80.5 KB
  За функціональних ефектами гормони поділяють на: а ефекторні діють безпосередньо на органимішені; б тропні регулюють синтез ефекторних гормонів; в релізінггормони регулюють синтез і секрецію тропних гормонів. Основні властивості гормонів: 1 утворюються спеціалізованими клітинами ендокринних залоз; 2 секретуються в кров або інші циркулюючі рідини; 3 характеризуються специфічністю впливу який повязаний із існуванням âклітинмішенейâ які мають особливі рецептори до конкретного гормону; 4 володіють високою біологічною...
31630. ПАТОЛОГІЯ ЗОВНІШНЬОГО ДИХАННЯ 78.5 KB
  Дихальну недостатність класифікують: 1 За клінічним перебігом розрізняють: а гостру і б хронічну недостатність дихання. 2 За клінічними проявами недостатність дихання може бути: а компенсованою і б декомпенсованою. Вентиляційна недостатність дихання виникає внаслідок порушень обміну газів між атмосферним повітрям і альвеолами легень тобто в результаті порушень легеневої вентиляції гіповентиляції.
31631. ПАТОЛОГІЯ НАДНИРНИКІВ 73 KB
  Ці пептиди володіють тропною дією на клубочкову зону кори наднирників викликаючи надходження альдостерону в кров. Виділяють 3 ефекти АКТГ при дії його на пучкову зону наднирників: 1 гострий ефект протягом декількох хвилин обумовлюється звязуванням холестерину з цитохромом P450 і посиленням трансляції наявної інформаційної РНК що викликає істотне збільшення утворення стероїдів; 2 підгострий ефект через десятки годин обумовлюється посиленням процесів транскрипції генів які кодують структуру ферментів стероїдогенезу що проявляється...
31632. ПАТОЛОГІЯ ЩИТОПОДІБНОЇ та ПРИЩИТОПОДІБНИХ ЗАЛОЗ 80 KB
  ТТГ діючи на щитовидну залозу викликає наступні ефекти: а підсилює захоплення і включення йоду в органічні сполуки; б підсилює протеоліз депонованого тиреоглобуліну; в підсилює секрецію Т3 і Т4; г при тривалій дії викликає гіпертрофію і гіперплазію щитоподібної залози. Порушення функції щитоподібної залози. Первинний гіпотиреоз зустрічається при: а аутоімунному тиреоїдиті Хашімото б хронічному фіброзноінвазивному тиреоїдиті Ріделя які супроводжуються дефектами синтезу тиреоїдних гормонів в тиреоїдектомії г лікуванні...