Прості типи даних
Типи змінних, що набувають цілих
значень, позначаються службовим словом Integer. Існують певні межі
для значень величин цього типу: -32768 .. 32767 .У
пам'яті комп'ютера такі значення займають 2 байти. Спроба отримати
значення, що виходить за межі діапазону, призводить до помилки транслятора.
У Паскалі існує можливість
використання ще декількох різновидів цілих типів, які мають інші діапазони
своїх значень.
Якщо вам наперед відомо, що
деяка змінна може набувати досить невеликих значень протягом виконання
алгоритму, то її можна описати типом Shortint тобто коротке
ціле. У випадку, якщо вам навпаки потрібен дуже великий розбіг значень цілої
змінної, можна скористатися типом Longint. Бувають такі програми,
що працюють тільки з цілими додатними числами. І для такого випадку у Паскалі є
відповідні типи - тип Byte та тип Word.
У таблиці 1 наведені прості типи
даних Турбо Паскаль, обсяг пам'яті, який необхідний для зберігання однієї
змінної зазначеного типу, множина допустимих значень і допустимі операції.
Таблиця 1
Ідентифікатор
(тип)
|
Довжина
(байт)
|
Діапазон
значень
|
Операції
|
Цілі
типи
|
|||
integer
|
2
|
-32768..32767
|
+,
-, /, *, Div, Mod, >=, <=, =, <>, <, >
|
byte
|
1
|
0..255
|
|
word
|
2
|
0..65535
|
|
shortint
|
1
|
-128..127
|
|
longint
|
4
|
-2147483648..2147483647
|
|
Дійсні
типи
|
|||
real
|
6
|
2,9x10-39 -
1,7x1038
|
+,
-, /, *, >=, <=, =, <>, <, >
|
Цілі числа не
можуть містити у собі дріб. Для від'ємного числа треба ставити знак мінус (-)
перед значенням (числом). Не можна використовувати кому у введені такого числа,
бо інакше буде викликана синтаксична помилка. Приклади цілих чисел:
- 42
- 10000
- −233000
INTEGER (цілий)
Об'єкти даних — учасники
операцій — називаються операндами. Над операндами цілого типу можливі такі
операції: + (додавання), - (віднімання), * (множення), DIV (цілочисельне ділення з
відсіченням залишку), MOD (залишок від цілочисельного ділення). Ці операції виконуються
точно. Порядок виконання звичайний: спочатку множення, ділення та отримання
залишку, потім додавання та віднімання. Службові слова DIV і MOD з двох сторін повинні
відокремлюватися пробілами.
Приклади:
5 div 2 = 2
5 mod 2 = 1
5 div 6 = 0
5 mod 6 = 5
Дійсні
числа можуть містити у собі як цілі, так і дробові значення з точкою
відокремлення від цілої частини. Для від'ємного числа треба ставити знак
мінус (-) перед значенням (числом). Приклади дійсних чисел:
- 20.0005
- 99.9
- −5000.12
REAL (дійсний)
Дійсні сталі мають
обов'язкову цілу частину, за якою
записано дробову частину і порядок (cтепінь
числа 10). Ціла частина – це непорожня послідовність цифр, дробова – непорожня
послідовність цифр із крапкою на початку, а порядок – буква "E" або "e", можливо, із знаком
"+" або "-", і однією або двома цифрами. Перед сталою може
бути знак "-", і тоді вона задає від'ємне число: -12.345E-1.
Абсолютна величина
(модуль) дійсних чисел зазвичай знаходиться в діапазоні від 1Е-38 до 1Е+38. Якщо число по модулю менше,
ніж 1Е-38, відбувається втрата значущості (перетворення на нуль), а якщо більше
1Е+38, то виникає помилка (переповнення).
Розглянемо приклад
Число 1.2345 можна
позначити багатьма різними способами, наприклад, 123.45´ 10-2.
Тут воно має цілу частину 123, дробову частину .45 і
десятковий порядок -2. Цьому запису відповідає стала мови
Паскаль 123.45E-2, у якій 123 – ціла
частина, .45 – дробова, а E-2 – порядок.
Це ж число можна задати сталою 0.12345E1 або 0.012345E+2,
або 1.2345, або 12345e-04. Подання числа сталою, у якій
перед десятковою крапкою записано єдину цифру від 1 до 9, називається нормалізованим,
наприклад, 9.81 або 1.0E2 (число 0 має нормалізоване подання 0.0).
Дійсні значення й операції,
застосовні до них, утворюють тип дійсних з
ім'ям real.
Як бачимо, цілі числа задаються
як цілими сталими, так і дійсними, наприклад, 2 і 2.0.
Проте їм відповідають два цілком різних подання того самого числа,
тобто значення двох різних типів. І в машині вони обробляються по-різному.
Завдання для самостійного опрацювання
Задача 1 «Проста задача?»
Програма зчитує двозначне число і виводить через пропуск кожну цифру окремо.
Вхідні дані
Натуральне число з проміжку від 10 до 99 включно.
Вихідні дані
Два одноцифрових числа, розділених пропуском.
Задача 2 «Цифри»
Обчислити кількість цифр цілого невід'ємного числа n.
Вхідні дані
Одне невід’ємне ціле число n (0 ≤ n ≤ 2 * 109).
Вихідні дані
Кількість цифр в числі n.
Задача 3* «Два кола»
Визначити кількість точок перетину двох кіл.
Вхідні дані
6 чисел x1, y1, r1, x2, y2, r2, де x1, y1, x2, y2 - координати центрів кіл, а r1, r2 - їх радіуси. Всі числа - дійсні, не перевищують по модулю 1000000000=109, задані не більше ніж з 3-ма знаками після коми.
Вихідні дані
Кількість точок перетину. Якщо точок перетину нескінченно багато, то вивести -1.
Задача 4** «Метелик-санітар»
Школярі, йдучи з дому до школи або навпаки - зі школи додому, люблять їсти цукерки. Але, як завжди, цю приємну справу іноді має неприємні наслідки – дітки. Мурзик завжди слідкував за чистотою шкільного двору і йому в цьому з радістю допомагали метелики, вдячні за чудові фотографії, зроблені ним. Метелики могли використовувати власні крильця як лінзи, причому вони могли змінювати їх фокусну відстань. Помітивши обгортку від цукерки, що лежала на шкільному подвір'ї в точці з координатами X1, Y1, метелик перелітав в точку з координатами X2, Y2, Z2, розташовану на шляху сонячних променів до обгортці і, змінюючи фокусну відстань своїх крилець-лінз, спалювали обгортку від цукерки .
Яку оптичну силу D мали крильця-лінзи метелика в цей момент?
Задача 5** «Пірати і монети»
n піратам вдалося справедливо розділити скарб із m золотих монет - кожен отримав свою частину відповідно до свого піратського рангу і стажу. Наймолодший пірат взяв a монет, а кожен наступний пірат брав на одну монету більше, ніж попередній його колега. Останнім був капітан, якому дісталося вдвічі більше від запланованого, очевидно, що після нього монет більше не залишилося.
Скільки було піратів разом з капітаном, якщо відомі a та m. Так як капітан без команди просто пірат, то n> 1.
Вхідні дані
Два натуральних числа a і m (1 ≤ a ≤ 100, m <15150). Вхідні дані коректні.
Вихідні дані
Кількість піратів n.
В даному розділі розглянуто набір реалізацій А.Нікітін на мові Pascal стандартних алгоритмів, застосовуваних при вирішенні завдань олімпіадного програмування.
- Підрахунок різних букв в слові
- Перестановка букв в слові (циклічний зсув вправо)
- Перевірка рядки на "паліндромний"
- Друк всіх дільників натурального числа A
- Друк всіх скоєних чисел до 10000
- Друк всіх простих чисел до 500
- Підрахунок суми цифр числа
- Підрахунок суми елементів одновимірного масиву
- Підрахунок суми елементів двомірного масиву
- Пошук максимального елемента в масиві
- Пошук мінімального елемента в масиві
- Пошук середнього арифметичного в масиві
- Друк всіх елементів масиву з інтервалу C..D
- Циклічний зсув елементів масиву вправо
- Друк самого часто зустрічається елемента з масиву
- Чи всі елементи масиву різні?
- Сортування масиву "бульбашкою"
- Рішення рівняння: A * x ^ 2 + B * x + C = 0
- Обчислення довжини відрізка | AB |
- Яка точка (A або B) ближче до початку координат
- Обчислення площі трикутника по 3 вершин
- Чи потрапляє точка M (x, y) в коло з центром O (Xc, Yc) і радіусом R
- Перекладу десяткового числа в двійкове
- Перекладу двійкового числа в десяткове
- Перекладу десяткового числа в шістнадцяткове
- Перекладу шістнадцятирічного числа в десяткове
- Рекурсивні алгоритми: знаходження НСД і НСК двох чисел
- Рекурсивні алгоритми: обчислення факторіала
- Рекурсивні алгоритми: генерація перестановок
- Рекурсивні алгоритми: швидке сортування
- Рішення системи 2-х рівнянь з двома невідомими
- Рішення системи 3-х рівнянь з трьома невідомими
- Визначення перетину двох відрізків
- Визначення положення точки відносно сектора
- Положення точки щодо вектора
- Положення точки щодо трикутника (варіант 1)
- Положення точки щодо трикутника (варіант 2)
- Моделювання додавання двійкових чисел
- Моделювання віднімання двійкових чисел
- Зведення цілого числа в натуральну ступінь (варіант 1)
- Зведення цілого числа в натуральну ступінь (варіант 2)
- Множення довгих натуральних десяткових чисел
- Кодування: приклад простий кодування (зрушення по ключу)
- Обробка тексту: підрахунок кількості слів в тексті
- Обробка тексту: виділення слів з тексту
- Обробка тексту: виділення чисел з тексту
- Обробка тексту: дозвіл введення тільки цифр
- Обробка тексту: переклад в маленькі букви (нижній регістр)
- Обробка тексту: переклад в заголовні букви (верхній регістр)
- Обробка тексту: видалення з тексту Комметаріі типу {...}
- Бек-трекінг: Міста
- Бек-трекінг: Прохід по лабіринту
- Бек-трекінг: Доміно
- Бек-трекінг: Послідовність
- Бек-трекінг: Магічний квадрат
Немає коментарів:
Дописати коментар