Pascal Урок 3

тому

Освіта — це те, що залишається після того, коли забуваєш усе, чого навчали у школі.

- стрічки друзівРеклама:

Модератори спільноти:ГенійСексу власникКатегорії:C++ Pasca l Pytho n Англійська мова Біологія Гіа ЄДІ Цікава інформація Інформатика Історія Кабінет Ката лог Книги Література Математика Німецька мова Загальна мова Організація Прийняти до с Українська мова Уроки Фізика Хімія Економіка Японська моваУчасники спільноти:ГенійСексу Лекс festina lente Ten to seven Lambrelle Ghaechka illion.Спільноту читають:10 днів тому der eisregen 22 дні тому Paragon. 65 днів тому Marie Joyce 92 дні тому paterson. 145 днів тому Hiade 166 днів тому крилатий виш 171 день тому Хао любить батон 179 днів тому Asmita 187 днів тому I Avada. Kedavra I 217 днів тому ершатмансур

RE: Уроки: Агрегатний стан. Ти йому лестиш

Pascal: Урок 3. Цілочисленне програмування.

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

Оператори в програмі поділяються крапкою зкомою.

Процедури введення/виводуВиведення здійснюється процедурамиWrite/WriteLn. Ln наприкінці назви процедури говорить про те, що після виконання висновку здійсниться перехід на новий рядок. У дужках через кому записуються дані, які потрібно вивести. Рядки пишуться в лапках (одинарних), щоб замість змінної вивелося її значення, записують лише її ідентифікатор. Наприклад, WriteLn(a, '+', b, '=', a + b).

Введення, аналогічно, виконується процедурамиRead/ReadLn. У дужках через кому записуються змінні, куди зберігаються дані, що вводяться. ReadLn бажано використовувати для читання всього рядка до кінця, а якщо треба просто послідовно зчитувати числа через пропуск або переклад рядка, то завжди можна використовувати Read. Наприклад, Read(a, b, c, d, e). Після виконання програми, вікно з нею відразу закривається. Тому, щоб побачити результат, наприкінці програми пишуть рядок ReadLn;

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

А тепер пригадаємо, що інформація у комп'ютері зберігається у двійковому коді. 0 і 1 легко представляються апаратно такий контакт / немає контакту. Коли ми заводимо змінну даного цілого типу, під неї виділяється конкретне число байт в пам'яті.

­ ­

ShortInt = коротке ціле Integer = ціле LongInt = довге ціле Byte = байт (оскільки під зберігання виділяється 1 байт) Word = слово (мова йде про машинне слово, яке залежить від процесора) Отже, дані типу Byte приймають значення 0…255 (2^8 = 256), лише позитивні (безтобто, точніше тільки зі знаком плюс). Дані типу ShortInt набираю значення -128…127. Насправді, зараз під тип Integer виділяється теж 4 байти, чого достатньо.

Тепер щодо негативних чисел.Негативні числазберігаються в інверсному коді. Нехай, наприклад, є 1 байт пам'яті. Потрібно записати туди число -100. Число 100 займає 7 біт: 1100100. Нехай є операція інверсії двійкового числа, яка просто побітово на місце 0 ставить 1, а на місце 1 ставить 0. Значить ми зберігатимемо -100, як 100, але при цьому інвертоване та з доданою одиницею.

1.Інвертуємо число 100 у двійковому поданні. Зверніть увагу на 0 на початку. Під число 100 відведено 8 біт, тобто 8 осередків.

2.Додаємо до інвертованої форми одиницю: 10011011 + 00000001 _______ 10011100

Таким чином, число -100 зберігається як 10011100. Щоб з -100 знову отримати 100, потрібно ще раз виконати ці 2 кроки.

Можна зробити перевірку 100 + (-100) = 0: 01100100 + 10011100 _______ 100000000 Одиниця входить вже в 9 осередок і нам не потрібна. Відповідь 0, все сходиться.

Integer зробили 4-байтним, щоб не було багато проблем із переповненням. І зробили ще один 8-байтний цілий тип – він називається int64. Він зберігає 2^64 значень зі знаком.

Операції визначені на множині цілих типівНасамперед арифметичні операції: +, -, *, div і mod. Зверніть увагу: операція / не визначена на множині цілих чисел: тільки на множині речових. Тобто, 5/2 означає, що 5 і 2 приводяться до речових 5.0 і 2.0, і потім діляться вже речові типи, виходить 2.5. 3>mod - взяттязалишку від розподілу На нуль у програмуванні ділити не можна! Зазначимо операцію присвоєння (:=), яка створює більшу частину помилок на початковому етапі (бо все забуваю ставити двокрапку). Просте = - це символ порівняння, застосовується у перевірці рівності змінних.

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