Реферат: Зміст вступ 5


мова програмування Pascal

ЗМІСТ

1. Вступ 5

2. Основи мови програмування 7

§ 2.1 Вступ до мови програмування 7

§ 2.2 Алфавіт мови і структура програми 9

§ 2.3 Стандартні типи змінних 13

§ 2.4 Опис констант і змінних 14

§ 2.5 Організація вводу-виводу 16

§ 2.6 Вправи та завдання 21

3. Стандартні операції, процедури та функції 23

§ 3.1 Стандартні математичні операції мови 23

§ 3.2 Стандартні математичні функції 27

§ 3.3 Стандартні операції для роботи з символьною інформацією. 31

§ 3.4 Логічні операції 32

§ 3.5 Вправи та завдання 37

^ 4. Графічна інформація та її обробка на мові Pascal. 41

§ 4.1 Організація відображення графічної інформації 42

§ 4.2 Вправи та завдання 44

5. Поняття розгалуження і вибору. 45

§ 5.1 Структура “якщо... то... інакше...” 46

§ 5.2 Інструкція If... Then... Else... 47

§ 5.3 Інструкція Case 53

§ 5.4 Організація розгалужень в програмах 56

§ 5.5 Вправи та завдання 57

^ 6. Організація циклів 59

§ 6.1 Цикл з параметром 61

§ 6.2 Цикл з передумовою 64

§ 6.3 Цикл з післяумовою 68

§ 6.4 Який з циклів використовувати? 71

§ 6.5 Приклади використання циклів при розв’язуванні конкретних задач. 72

§ 6.6 Вправи та завдання 79

^ 7. Поняття про процедури та функції 83

§ 7.1 Чи потрібні процедури і функції 83

§ 7.2 Процедури 86

§ 7.3 Функції 91

§ 7.4 Вправи та завдання 96

8. Масиви 98

§ 8.1 Поняття масиву 98

§ 8.2 Пошук найбільшого або найменшого елементу масиву 100

§ 8.3 Сортування елементів масиву 103

§ 8.4 Приклади розв’язання задач з використанням масивів 113

§ 8.5 Вправи та завдання 117

^ 9. Робота з літерними та символьними величинами 119

§ 9.1 Основні операції для роботи з літерними величинами 120

§ 9.2 Приклади розв’язування задач з використанням основних операцій для роботи з літерними величинами 122

§ 9.2 Лексикографічний метод генерації перестановок 128

§ 9.4 Вправи та завдання 132

^ 10. Двомірні масиви 134

§ 10.1 Приклади використання двомірних масивів 135

§ 10.2 Вправи та завдання 156

11. Множини, записи, файли 159

§ 11.1 Множини 159

§ 11.2 Записи 166

§ 11.3 Файли 170

§ 11.4 Вправи та завдання 182

Побажання тим, хто відчув себе програмістом 184

Додатки 185

Словник деяких зарезервованих слів та основних операцій мови 185

Основні команди оболонки програмування Turbo Pascal 5.5 190

^ Список рекомендованої літератури 198


1. Вступ


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

Саме так задумано і побудовано цю книгу: не всі повинні бути класними програмістами, але за певних обставин життя, наприклад, при вивченні курсу основ інформатики в школі чи іншому навчальному закладі, вміти скласти програму для ПЕОМ і причому отримати від цього задоволення повинні всі. Якщо ви поділяєте наше життєве кредо, то ця книга для вас.

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

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

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

З приводу всілякого роду зауважень, виявлених помилок, побажань (будемо вдячні за любі корисні зауваження) просимо звертатись за адресою:

261400

Україна

м. Бердичів Житомирської області

пров. Поштовий 8–А кв. 21 (тел.: (8–04143) 9–33–55)

Присяжнюк А.В., Присяжнюк С.А.

Бажаємо всім успіху!


^ 2. Основи мови програмування
З чого починають вчити мову програмування. З того ж, з чого починають вивчати довільну розмовну мову – з алфавіту та перших обов’язкових слів. Якщо ви вже пишете програми на Паскалі, то даний розділ можете пропустити і одразу перейти до наступного. Але ми вам рекомендуємо на всякий випадок просто переглянути матеріал, можливо і ви зустрінете для себе щось нове.

Для тих хто тільки почав займатись програмуванням цей матеріал буде служити ніби додатковим стимулюючим поштовхом і одночасно невеличким довідником, до якого слід звертатись при виникненні кожного запитання, пов’язаного з відмовою комп’ютера вас розуміти.

Чому саме мова програмування Паскаль? Вся справа в тому, що для розуміння методів структурного програмування мова Паскаль є на думку багатьох фахівців найбільш вдалою і ми з цим не можемо не погодитись. Створена у 1970 році професором Інституту інформатики Швейцарської вищої політехнічної школи Ніклаусом Віртом мова виявилась настільки простою і зручною для розуміння самої суті програмування, що у 1983 році була введена як обов’язкова мова у всі навчальні курси США для учнів, що спеціалізуються в галузі інформатики.


^ § 2.1 Вступ до мови програмування


Що таке мова програмування? Для того, щоб дати відповідь на це запитання, дамо спочатку відповідь на інше запитання: а що таке програмування, або в ще більш простому варіанті: що таке програма? Досить часто в житті ми вживаємо це слово, наприклад: програма телепередач на тиждень, програма підготовки до складання іспиту, індивідуальна програма для спортсмена при підготовці до змагань і т.д. В кожному з наведених прикладів у сказану фразу вкладено різний зміст, але загалом суть залишається тією ж: це послідовність дій (телепрограм на кожен день тижня, вивчення порцій (параграфів) навчального матеріалу при підготовці до іспиту, норми та види щоденного навантаження спортсмена ), точно виконуючи яку виконавець досягне поставленої перед ним задачі. У цьому розумінні термін “програма” дещо схожий до терміну “алгоритм”, але нашим завданням не є вияснення популярного запитання “хто є хто”, тому у нашому розумінні слово програма надалі писатиметься без лапок і буде являти собою систему послідовних команд для ПЕОМ для розв’язання кожної конкретної задачі.

Відповідно програмування буде процесом створення цієї програми, або послідовності інструкцій, а мова програмування буде тим засобом, який допоможе нам у спілкуванні з ПЕОМ, тобто ми з комп’ютером вже не будемо розмовляти, як двоє туристів – українець і китаєць, що знаходяться у Франції і крім рідної мови, ніякої іншої не знають.

Уявимо собі деяку абстрактну гру, дещо не схожу на ту, що ви, мабуть грали в дитинстві – несправний телефон. Не схожу по тій причині, що правила у нас будуть жорсткі – кожне не вірно “вимовлене” слово не буде приводити до невірного результату, а призведе до ситуації, коли ваш друг–комп’ютер вам трошки не ввічливо скаже щось подібне до: “моя твоя не понимай”. Щоб уникнути таких неприємних ситуацій, домовимось, що правила нашої гри будуть настільки суворими, що порушувати їх може лише хіба що черговий електрик, який просто вимкне світло і ваша ПЕОМ буде вилучена з гри.

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


^ § 2.2 Алфавіт мови і структура програми


Згідно правила першого нашої гри, крім слів англійської мови (а якщо бути більш точним, то літер англійського алфавіту), і то лише декількох (так що не переживайте, вчити іноземну мову вам не прийдеться, за винятком декількох десятків слів), під час спілкування ми можемо ще використовувати цифри від 0 до 9, та двадцять два спеціальних символи:

+ - * / = > < . ; ;

@ ( ) [ ] { } # $ ^

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

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

^ Правило друге: всі команди та вирази відокремлюються один від одного крапкою з комою (;), по аналогії як в нашій рідній мові всі речення відокремлюються в основному одне від одного крапками. Тут потрібне невелике уточнення. У всяких правил є винятки: є винятки і до цього правила, але ми з ними познайомимось в процесі гри, коли вони нам стануть потрібні .

^ Правило третє: Символ крапка (.) в умовах нашої гри буде означати лише одне – гру закінчено, тобто використовувати її ми маємо право лише один раз і тільки в кінці гри.

В чому ж буде полягати сама гра? Гра полягає в тому, що ми самі собі придумуємо завдання і пробуємо його пояснити на підставі сформульованих вище правил, та правил для ПЕОМ, які ми будемо формулювати далі. Якщо комп’ютер розв’язує придуману нами задачу, то виграли ми, якщо ні – то ми програли. Нічиїх в даній грі не буває, так само як не буває їх у тенісі або у волейболі.

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

У блоці описів містяться постійні величини, що використовуються в програмі, змінні величини, та допоміжні підпрограми (які ще іноді називають процедурами або функціями), з останніми ми познайомимось трохи пізніше. Блок опису дій починається з слова Begin і закінчується словом End., причому не саме слово End є кінцем програми, а крапка, що слідує за ним. Звертаємо увагу на те, що пара слів Begin і End є “солодкою і нерозлучною парочкою” і таких пар у програмі може бути скільки завгодно, але початком і кінцем блоку опису дій і самої програми є сама та пара, яка закінчується крапкою. Ну а зараз, мабуть, настав час показати, як оформляється даний блок. Але перед цим сформулюємо ще одне – четверте правило, яке не є основним, але суттєвим: якщо ви хочете пояснити свої описи не комп’ютеру, а самі собі, то ви можете зробити це на рідній мові (українській, російській, англійській і т.д.), але це пояснення потрібно взяти у фігурні дужки - { } . Все, що міститься між цими дужками ваш електронний партнер ігнорує і не виконує. Такі пояснення програмісти (а ви скоро ним станете!) називають коментарями до програми. Коментарі значно полегшують розуміння тексту програми сторонній людині, яка не писала даної програми, або навіть самому собі, якщо ви повернулись до даної програми через кілька місяців.

Отже, формулюємо нашу першу задачу, яку ви вже напевне розв’язували на уроках математики.

Задача 1 Обчислити довжину кола.

Розв’язання:

{ Спочатку йде блок описів }

Const { відповідно розділ сталих }

pi = 3.1415926; { цю сталу величину можна було б і не описувати, }

{ так як ПЕОМ її знає в даній мові програмування }

Var {розділ змінних}

R, L : real; { R і L – дійсні числа }

{ зверніть увагу на спосіб запису – спочатку позначення }

{ змінних, а після двокрапки – до якого типу змінних вони відносяться }

Begin { початок програми – блок опису дій }

Read (R); { чекаємо вводу з клавіатури значення радіуса }

L := 2*pi*R; { зверніть увагу на спосіб запису формули! }

Write(’ Довжина кола становить ’, L); { вивід на екран результату }

End. { кінець програми }

Як бачимо, наш партнер розуміє англійські слова “read” і “write”, які в перекладі на українську означають відповідно “прочитати” і “написати”.

Сформулюємо ще два правила нашої гри.

Правило 5: Скрізь, де в математиці ми пишемо знак = потрібно писати знак := який називається знаком присвоєння, крім двох винятків: 1) в розділі сталих пишеться = і 2) якщо йде перевірка виконання якоїсь умови, то також пишеться знак =.

Для розуміння символу := проведемо таку аналогію. Уявимо що у вашому гаманці є 100 доларів. Вам віддали борг в 50 доларів. Скільки стало в вашому гаманці? Вірно, 150 доларів. Тобто, до того що в ньому було, ви ще щось додали. Вираз типу а := а + b і є аналогією вашого гаманця, якщо припустити, що а – це вміст гаманця, а b – борг, що вам повернули. Тепер стає зрозумілим, чому використовують знак присвоєння :=, а не просто знак рівності =, адже цілком очевидно, що при використанні знаку = ми не мали б права записати, що а = а + 50, тобто, що 100 доларів дорівнюють 150 доларам. В той же час ми маємо повне право написати, що в гаманці знаходиться те, що в ньому було раніше плюс те, що ми тільки що поклали! Наголошуємо, що := є одним знаком, а не поєднанням двох знаків – двокрапки : і рівності = .

Тепер дещо про спосіб запису формул. На мові математики ми записали б так L = 2pR, але наш партнер по грі не розуміє, що якщо стоять різні змінні, то між ними автоматично розуміється знак множення, тому необхідно дотримуватись наступного правила 6: знаки множення ставляться обов’язково, весь математичний вираз обов’язково записується в один рядок, тобто “багатоповерхові” дроби наш партнер по грі не розуміє. Останнє потрібно пояснити, не можна використовувати “багатоповерхові” дроби у звичному для нас вигляді. Якщо ж ми запишемо цей дріб в один рядок при допомозі дужок і запишемо вірно, то проблем при обчисленні не буде ніяких!

Отже, можете ввімкнути вашого електронного партнера і спробувати свої сили. Як завантажити оболонку програмування і які в ній необхідно виконувати команди – дивись додаток 1, автор вважає, що з даним питанням кожен користувач ПЕОМ може розібратись самостійно.


^ § 2.3 Стандартні типи змінних


Підведемо деякі підсумки вищесказаного і введемо деякі нові поняття.

Величини, що залишаються незмінними в процесі виконання програми називаються сталими, або як прийнято в математиці – константами. Константи бувають числовими і символьними.

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

Числові змінні та константи в свою чергу діляться на цілі і дійсні за формою запису та типом значення. Вони можуть бути наступних типів, які розрізняють в мові програмування Pascal:

цілим числом в межах від 0 до 255 – типу Byte;

цілим числом в межах від 0 до 65 535 – типу Word;

цілим числом в межах від –32 768 до 32 767 – типу Integer;

цілим числом в межах від –2 147 483 648 до 2 147 483 647 – типу Longint;

дійсним числом в межах від 2.9×10-39 до 1.7×1038 – типу Real;

дійсним числом в межах від 1.5×10-45 до 3.4×1038 – типу Single;

дійсним числом в межах від 5.0×10-324 до 1.7×10308 – типу Double;

дійсним числом в межах від 3.4×10-4932 до 1.7×104932 – типу Extended;

Символьні константи та змінні бувають двох типів:

одного символу, взятого з двох сторін в апострофи – типу Char;

групи символів, записаних на якій завгодно мові, також взятих з обох сторін в апострофи – типу String.

Приведемо значення типів цілочисельних та дійсних змінних у вигляді таблиці, де крім діапазонів вкажемо також кількість комірок пам’яті, необхідних для збереження значення даної змінної в пам’яті комп’ютера:

Тип

Діапазон

Формат

Число значущих цифр

Розмір пам’яті в байтах

Shortin

-128..127

знаковий

до 3

1

Byte

0..255

беззнаковий

до 3

1

Word

0..65535

беззнаковий

до 5

2

Integer

-32768..32767

знаковий

до 5

2

Longint

2147483648..2147483647

знаковий

до10

4

Single

1.5×10-45 до 3.4×1038

беззнаковий

до 8

4

Real

2.9×10-39 до 1.7×1038

беззнаковий

до 12

6

Double

5.0×10-324 до 1.7×10308

беззнаковий

до 16

8

Extended

3.4×10-4932 до 1.7×104932

беззнаковий

до 20

10

Таблиця 1. Цілочисельні типи змінних

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

При практичному програмуванні вибираючи тип змінної, намагайтесь вибирати його найменшим, але таким, що точно охоплює весь інтервал значень, що може зустрітись при виконанні обчислень. Запас створювати немає потреби, а з збільшенням кількості змінних і об’єму програми запас пам’яті ПЕОМ буде катастрофічно зменшуватись. В наш час пентіумів це можливо і не така вже велика проблема, але для тих хто працював, або ще й досі продовжує працювати на БК, Корветах, УКНЦ, Пошуках – ця проблема досить відома. Тому дотримуйтесь в програмуванні життєвого правила: “Економіка повинна бути економною”.

Наголосимо на одній важливій вимозі до імен сталих та змінних. Першим символом у іменах сталих або змінних, або як їх називають у програмуванні ідентифікаторах повинна бути обов’язково літера.


^ § 2.4 Опис констант і змінних


Розділ опису констант починається з службового слова Const, за яким йде опис назви сталих величин і відповідних їм числових або символьних значень. Назва відповідної сталої величини (а також і змінної) повинна бути унікальною, тобто вживатись тільки один раз. Великі і малі літери у назвах величин ПЕОМ розуміє як однакові, тобто константи або змінні виду рі та РІ для ПЕОМ позначають одну і ту ж величину.

Розділ опису змінних розпочинається з службового слова Var за яким йде опис назв змінних і їх типів. Крім вище перечисленних типів у мові Pascal існує ще один тип величин типу Boolean, який називають логічним або булівським на честь видатного математика Буля, який створив одноіменний розділ алгебри. Даний тип може набувати тільки двох значень: true і false, відповідно “істинно” і “хибно”. Інколи для зручності їм ставлять у відповідність число 1 і 0, але це є не зовсім вірно. Незважаючи на наукову неточність останньої відповідності, ми також будемо інколи проводити таку ж аналогію з метою спрощення наочності при пояснення тієї чи іншої задачі чи проблеми. Більш детальніше типи змінних ми розглянемо в процесі подальшої розповіді.

Якщо під час написання програми ви сумніваєтесь куди віднести дану величину: до сталих чи до змінних, то саме цей сумнів вам підказує – на всякий випадок віднесіть до змінних.

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

Блок опису дій складається з інструкцій трьох типів: команд для виконавця, дій виконавця і повідомлень виконавця, – або як говорять програмісти: вводу, операторів і виводу. Тобто, продовжуючи паралельно нашу музичну освіту, ми можемо образно пояснити це так:

спочатку музикантам роздають ноти, або диригент повідомляє їм вхідні дані: повідомляє що і як потрібно прочитати або з нотного листа, або з рухів диригента;

сам музикант (наша ПЕОМ) виконує інструкції записані в нотному листі, або відповідно до наказів диригента;

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


^ § 2.5 Організація вводу-виводу


Власне кажучи, нас в даний момент цікавить саме перший і останній процес спілкування між диригентом (програмістом) і музикантом (ПЕОМ). Саме цей розділ спілкування називають в програмуванні організацією вводу–виводу інформації. В умовах мови програмування Pascal та нашої гри цій меті служать дві команди, або як ще іноді кажуть дві інструкції: Read (Readln) та Write (Writeln), які на зрозумілу нам українську мову переводяться як прочитати (отримати) та написати (вивести, надрукувати) необхідні дані. Закінчення “–ln” в деяких варіантах команд трактується як “перейти на новий рядок” (скорочення від англійського – line new).

В процесі вводу та виводу в одній інструкції можна перераховувати необхідні константи, змінні, повідомлення і т.д., перераховуючи їх через кому. Так, наприклад, повідомлення виду

Write(s1, t, ’ дані про особу ’, man);

вказує на те, що на екран комп’ютера будуть виведені значення змінних sl, t, після чого буде написана фраза ” дані про особу ” і в кінці надруковано значення змінної man. Відсутність вище вказаного закінчення “–ln” говорить про те, що подальші повідомлення будуть виводитись на екран саме в цьому рядку, а не в іншому місці. Уважні читачі мабуть вже самі помітили, що між символами ’ ’ можуть стояти будь–які повідомлення на довільній розмовній мові, найбільш зрозумілій користувачу або програмісту.

При виводі повідомлень на екран ПЕОМ ми маємо змогу виводити інформацію в такому вигляді, в якому нам потрібно. Для цієї мети в Паскалі передбачено форматування числових значень змінної, яке в загальному випадку записується так:

write(s:n:m); {s – змінна типу real, а n,m – integer}

де n – кількість цифр у всьому числі;

m – кількість значущих цифр у дробовій частині змінної.

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

write(10*pi:1:3);

повинен по ідеї вивести тільки одну цифру, але виконання програми:

program demowrite1;

uses crt;

begin

clrscr; { очистити екран }

write(10*pi:1:3);

readln;

end.

дає на екрані монітору результат 31.416.

Зверніть увагу на фразу uses crt; перед початком програми. Ця фраза повідомляє, що до нашої програми автоматично підключається модуль crt. Модуль – це додаткова програма, яка підключається до вашої програми. Існують стандартні модулі, до яких відноситься і модуль crt, крім того кожен програміст може створювати власні модулі, які ще прийнято називати бібліотеками, і підключати їх до своїх програм. Зроблено це для того, щоб зменшити об’єм програми, яку потрібно написати, і мати можливість використовувати раніше написані програми багато разів. З питання створення власних модулів рекомендуємо звернутись до технічної документації, яка поставляється фірмою – розробником разом з компілятором Паскаля.

Ми ж лише вкажемо на деякі операції, що містяться в згадуваному модулі crt:

ClrScr – очищення екрану монітору;




Рис. 1
Gotoxy(x,y) – встановити курсор на екрані у точці з координатами (х,у). Тут потрібно сказати про координати екрану. Екранна система координат має вигляд, як показано на рис. 1. Зверніть увагу, що початок координат знаходиться в лівому верхньому куті екрану. Крім того, вісь ОY направлена вниз. У текстовому режимі значення координат змінюються в межах:

0 £ х £ 79

0 £ у £ 24

тобто можна виводити 80 символів по осі ОХ і всього 25 рядків.

Крім того, графічний екран відокремлено від текстового, тому до цього рисунку ми повернемось, коли будемо розглядати графічні команди.

TextColor (color); – встановлює колір літер тексту.

Кольори можна задавати або назвою кольору (на англійській мові), яку Паскаль–програма розуміє, або їх номером. Значення кольорів приведено у таблиці 2:



№ кольору

Ім’я кольору

^ Значення кольору

0

Black

чорний

1

Blue

синій

2

Green

зелений

3

Cyan

голубий

4

Red

червоний

5

Magenta

фіолетовий

6

Brown

коричневий

7

LightGrey

світлосірий

8

DarkGrey

темносірий

9

LightBlue

світлосиній

10

LightGreen

світлозелений

11

LightCayn

світлоголубий

12

LightRed

рожевий

13

LightMagenta

бузковий

14

Yellow

жовтий

15

White

білий

Таблиця 2. Значення кольорів у модулі crt.

А взагалі слід відмітити, що значення параметру Color може змінюватись в межах від 0 до 255, в залежності від типу монітору (CGA, EGA, VGA і т.д.), і навіть в більших.

TextBackGround (color); – встановлює колір для фону символів.

Delay (Time); – затримка тривалості виконання програми. Одночасно може виконувати роль тривалості звукового сигналу (див. нижче).

Sound (n); – подання звукового сигналу частоти n на вмонтований в ПЕОМ внутрішній динамік (не путайте з Sound – картою!).

NoSound; – відключення звукового сигналу.

Рекомендуємо вам самостійно поексперементувати з даними процедурами модуля. Робота видасться для вас цікавою, якщо ви тільки почали вивчати Паскаль, якщо ж ви вже знайомі з Паскалем, то робота з модулем crt для вас давно знайома і проблем не може бути.

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

Ми ж зараз, дещо випереджуючи події, розглянемо введення даних з текстового файлу і виведення даних у текстовий файл. Таке випередження ми можемо пояснити тим, що у багатьох завданнях, що будуть розглядатись далі, нам прийдеться зчитувати інформацію з текстового файлу або записувати у нього результати роботи програми. Для розгляду організації такої роботи знову звернемось до аналогій. Уявіть собі, що вам для розв’язку фізичної задачі необхідно знайти у довіднику значення деякої величини, наприклад, густини заліза. Для цього нам потрібно взяти в руки довідник з фізики, відкрити його і прочитати необхідні дані. Після цього нам залишиться лише закрити відкритий довідник і продовжувати далі розв’язувати задачу. Аналогом книги є текстовий файл і робота з ним повністю відповідає описаному вище способу роботи з довідником. Для повноти картини сформулюємо і розв’яжемо задачу, у якій і вкажемо команди для роботи з текстовими файлами.

Задача 2 У текстовому файлі DANO.TXT знаходиться значення радіусу кулі. Записати у текстовий файл RESULT.TXT значення її об’єму.

Розв’язання: Наведемо програму, що вирішує дане завдання, а в коментарях до неї приведемо необхідні пояснення.

program demo_file;

var f : text; { файлова змiнна для текстового файлу }

R, V : real; { змінні для радіусу і об’єму }

begin

Assign(f,'DANO.TXT'); {Поставили у відповідність файловій змінній ім’я файлу }

Reset(f); { Відкрили файли тільки для читання }

Readln(f,R); { Прочитали з файлу значення змінної }

Close(f); { Закрили файл }

V := (4*pi*R*R*R)/3; { Обчислили об’єм }

Assign(f,'RESULT.TXT'); { Поставили у від–ність файловій змінній новий файл }

Rewrite(f); { Відкрили його для запису }

Write(f,V:5:3); { Записали у файл значення об’єму }

Close(f); { Закрили файл }

end.

Як бачите, нічого складного немає, потрібно тільки запам’ятати, що всі три дії є обов’язковими, тобто:

спочатку ставимо у відповідність файловій змінній ім’я файлу: Assign(f, ’DANO.TXT’);

відкриваємо файл для читання: Reset(f); або для запису: Rewrite(f);

зчитуємо або записуємо необхідні дані;

по закінченню роботи закриваємо файл: Close(f);.

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

Assign(f, ’A:\WORK\DANO.TXT’);

Для повного засвоєння даного матеріалу рекомендуємо самостійно спробувати зчитати з текстового файлу та записати у текстовий файл деяку інформацію. Вид інформації та назви файлів придумайте самі.


^ § 2.6 Вправи та завдання


3 Вкажіть вірні імена змінних серед нижче приведених:

а) proba; б) _fire_; в) 5_step;

г) BoX; д) fi_re; е) step_5;

є) 5BoX; ж) maMa; з) _step_5;

4 Які з приведених нижче послідовностей символів є операторами присвоювання:

а) a := b; б) a = a+1; в) a:b–sqr(2);

г) a * x + b := 0; д) z := 0; е) z := z+1;

є) z := z + 1,2; ж) y := y; з) –y := y?

5 Вкажіть серед нижче написаної програми рядки з помилками:

{програма знаходить суму двох чисел,

введених з клавіатури }

program summa 2;

begin

a b S : integer;

a := 5;

b := a–2;

S = a + b;

writeln(' Сума = ' S);

end.

6 Які з наступних послідовностей символів є операторами вводу:

а) read(x, y, z); б) read x, y, z; в) read(x);

г) x := read(x); д) read(a; b); е) read(a, b+c);

7 Задати у вигляді оператора присвоювання наступні дії:

а) змінній х присвоїти значення, що дорівнює півсумі значень змінних х та у;

б) подвоїти значення змінної а;

в) значення змінної х збільшити на 0,1;

г) змінити знак значення змінної t.

8 Які з наступних послідовностей символів є операторами виведення:

а) write(x, y); б) write x, y, z; в) print x;

г) write(100); д) read(a; b); е) write(x, x+10,2);


^ 3. Стандартні операції, процедури та функції


Ви вже мабуть чули фразу, що можна бути чудовим математиком, зовсім не знаючи програмування, але не можна стати класним програмістом, не знаючи математики. Ми з вами не ставимо перед собою мету стати видатним математиком (мабуть, що даремно!), але основні математичні операції, що використовуються в мові Паскаль, ми з вами повинні знати.

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

Крім математичних ми розглянемо також логічні операції та стандартні операції для роботи з символьною інформацією.


^ § 3.1 Стандартні математичні операції мови


Всі наші дії при складанні програми зводяться до створення відповідної математичної моделі і опис її при допомозі відповідних математичних операцій. Що таке математична модель? Це питання досить складне і є окремою важливою темою, тому ми обмежимось лише тим, що скажемо так: математична модель, це конкретне явище, подія і т.д. описане при допомозі тільки математичних формул. Наведемо приклад: нехай нам потрібно зварити борщ. Ми спочатку вибираємо посуд, в якому будемо його варити відповідної місткості, потім, виходячи з об’єму посуду, складаємо калькуляцію: 200 г картоплі, 50 г червоного буряка, 75 г капусти, 40 г солі, 3 л води і т.д. В практичному житті жодна домогосподарка так не робить, всі продукти вона поміщає в посуд “на око”, і практично завжди отримує страву з гарними смаковими якостями. При поясненні механізму варіння борщу, ми повинні описати весь процес строго математично, в тому числі описати математично поняття “беремо”, “переміщуємо”, “доводимо до кипіння” і всі інші терміни, інакше ми просто, в кращому випадку, просто борщу не зваримо.

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

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

математичний вираз обов’язково записується в один рядок;

забороняється ставити підряд два знаки арифметичних операцій (+,–,*,/);

знак множення ставиться обов’язково;

з усіх видів дужок можна використовувати лише круглі;

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

У мові Pascal визначені такі математичні операції:

+ – додавання;

– – віднімання;

* – множення;

/ – ділення;

div – ділення націло;

mod – остача при діленні націло.

Перші чотири операції всім вам прекрасно знайомі. А от на операціях div та mod зупинимось більш детальніше. Проте, як ми побачимо буквально через декілька рядків, і ці операції вам добре знайомі, але ми їх раніше ніколи не вважали окремими арифметичними операціями.

Задача 9 Розділити 128 доларів між п’ятьма робітниками.

Розв’язання: Ділимо: 128 : 5 = 25,6. Тобто по 25 доларів і шістдесят центів кожному. Але от проблема – у нас є довільні купюри, але немає монет.
еще рефераты
Еще работы по разное