Поиск по базе сайта:
Лабораторна робота №1 теоретичний матеріал icon

Лабораторна робота №1 теоретичний матеріал




Скачати 171.84 Kb.
НазваЛабораторна робота №1 теоретичний матеріал
Дата конвертації17.05.2013
Розмір171.84 Kb.
ТипЛабораторна робота

ЛАБОРАТОРНА РОБОТА №1

ТЕОРЕТИЧНИЙ МАТЕРІАЛ

Структура програми

Програмування ЕОМ (електронно-обчислювальних машин) – це процес складання програм розв’язування різноманітних задач на ЕОМ. Суть процесу програмування ЕОМ зводиться до подання алгоритму розв’язування задачі у виді скінченного набору інструкцій для обчислювальної машини. Для запису цих інструкцій розроблено спеціальні мови – мови програмування.

Програма, описана мовою програмування Паскаль, складається з послідовності речень, відокремлених символом крапка з комою. Речення може складатися з таких елементів, як оператор, оголошення, коментар, вказівка компілятору. Елементи речення мають бути відокремлені символом кома або пропуск (за правилами синтаксису).

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

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

Program ІдентифікаторПрограми;

Заголовок програми


Службове слово program вказує на створення програми.

Заголовок програми використовувати не обов'язково.







Uses

Опис модулів, об’єкти яких використовуються у програмі


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







label

const

type

var

procedure

function

Розділ описів


Описи міток (label), констант (const), типів (type), змінних (var), процедур (procedure) і функцій (function) можна використовувати багаторазово в межах розділу описів у довільному порядку.







Begin

Розділ операторів





Розділ є обов’язковим. Містить описи операторів.


end.




Типізація даних

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

Ідентифікатор. Змінна. Константа

Звертатися до об’єкта потрібно за його ідентифікатором.

Ідентифікатор – це скінчений (до 128 символів) впорядкований набір латинських літер, десяткових цифр та знака підкреслення, який не може починатися цифрою. Ідентифікатор однозначно визначає певний об’єкт програми. Наприклад, Summa, x1, max_summa, _plus. Запис 1х не є ідентифікатором.

Регістр літер запису ідентифікатора не впливає на його визначення. Наприклад, записи ^ Summa і summa визначають один ідентифікатор. У мові Паскаль є набір службових слів, які мають певні призначення. Тому службові слова не можна використовувати як ідентифікатори об’єктів. Список службових слів подано в таблиці:

and

destructor

file

inherited

not

record

to

with

asm

div

for

inline

object

repeat

type

xor

array

do

function

interface

of

set

unit




begin

downto

goto

label

or

shl

until




case

else

if

library

packed

shr

uses




const

end

implementation

mod

procedure

string

var




constructor

exports

in

nil

program

then

while




Одним із основних призначень створюваних програм є опрацювання різноманітних даних – чисел, символів, текстів, графічних зображень, звукових записів і т.д. При виконанні програми, дані зберігаються в пам’яті, причому, для кожного з даних відводиться певний об’єм пам’яті – потрібна кількість байтів. Так, для розміщення в пам’яті цілого числа з діапазону [-32000..32000] потрібно 2 байти, символу – 1 байт, дійсного числа – 6 байтів. Пам’ять комп’ютера організована таким чином, що кожний байт має свій номер. Отже, щоб відшукати в пам’яті комп’ютера певні дані, потрібно знати номер початкового байта, з якого починається розміщення даних в пам’яті, та розмір даних в байтах.


Величини, значення яких в процесі роботи програми змінюються, називають змінними.

Змінні оголошуються в розділі опису var так:


var ідентифікатор : тип даних ;


Наприклад, var x : Integer; a : String;


Оголосити кілька змінних одного типу можна так:

var x, y, z : Integer;


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

Константи оголошуються в розділі const так:


const MaxN = 15; Text = 'Pascal';


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

Наприклад,

Форма десяткового запису

Степенева форма

12.53

1.253Е+01

-3.1234

-3.1234Е+00

0.0017

1.7Е-03

-235

-2.35Е+02

1

1Е+00

Перед числом шістнадцяткової системи числення ставиться знак $: $A, $1E.

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

^ WriteLn(’ Введіть два дійсних числа - ’);

Типи даних

Типи даних можна поділити на дві групи:


  • стандартні типи (вбудовані в мову Паскаль)

  • типи даних, що визначаються програмістом.

До стандартних типів даних входять:


  • група цілих типів (ShortInt, Integer, LongInt, Byte, Word);

  • група дійсних типів (Single, Real, Double, Extended, Comp);

  • логічний тип (Boolean);

  • символьний тип (Char);

  • рядковий тип (String);

  • вказівний тип (Pointer);

  • текстовий тип (Text).


Характеристики цілих типів

^ Назва типу

Ідентифікатор

Діапазон значень

Об’єм пам’яті (байт)

Коротке ціле зі знаком

ShortInt

-128…127

1

Ціле зі знаком

Integer

-32768…32767

2

Довге ціле зі знаком

LongInt

-2147483648…2147483648

4

Коротке ціле без знаку

Byte

0…255

1

Ціле без знаку

Word

0…65636

2


Характеристики дійсних типів

^ Назва типу

Ідентифікатор

Діапазон значень

Кількість значущих цифр мантиси

^ Об’єм пам’яті (байт)

Дійсне одинарної точності

Single

від 1.5∙10-45 до 3.4∙1038

7…8

4

Дійсне

Real

від 2.9∙10-39 до 1.7∙1038

11…12

6

Дійсне подвійної точності

Double

від 5.0∙10-324 до 1.7∙10308

15…16

8

Дійсне підвищеної точності

Extended

від 3.6∙10-4951 до 1.1∙104932

19…20

10

Ціле у форматі дійсного

Comp

від –263+1 до 263-1 або від –9.2∙1018 до 9.2∙1018

19…20

8

Вираз. Операція. Операнд

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


Під операндом розуміють значення певного типу даних, що може бути записане явно або як результат обчислення певної функції. Наприклад, 5 + 7, 2 + а, 3*sin(a).


За кількістю операндів операції поділяються на унарні і бінарні. Унарні операції мають лише один операнд, перед яким розміщується символ операції (-5, -x1, -sin(x), @Max).


Більшість операцій є бінарними і містять два операнди, між якими ставиться символ операції. Наприклад, 7+a, sin(x)*cos(x), 2*exp(y).

Дужки використовуються для визначення порядку виконання дій.

Пріоритет операцій

Послідовність виконання операцій визначається трьома факторами:

  • пріоритетом операцій;

  • порядком слідування операцій у виразі;

  • розміщенням дужок.



Пріоритети операцій

Пріоритет

Операції

^ Категорія операцій

1

+, -, Not, @

Унарні операції

2

*, /, div, mod, And, Shl, Shr

Бінарні операції типу множення

3

+, -, Or, Xor

Бінарні операції типу додавання

4

=, <>, <, >, <=, >=, In

Бінарні операції відношення

Операції першого пріоритету виконуються в першу чергу.


Класифікація операцій

Категорія

Операції

Арифметичні операції

унарні +, -

бінарні +, -, *, / , Div, Mod

Операції відношення

=, <>, <, >, <=, >=

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

Not, And, Or, Xor

Порозрядні логічні операції

Not, And, Or, Xor

Операції зсуву

Shl, Shr

Рядкові операції

+

Операції над множинами

+, -, *, In, <=, >=

Операція визначення адреси

@


Опис арифметичних операцій


Операція

Дія

^ Тип операндів

Тип результату

Приклад

+

Збереження знаку

Цілий

Цілий

+7=7

Дійсний

Дійсний

+2.17=2.17

-

Заперечення знаку

Цілий

Цілий

-(-7)=7

Дійсний

Дійсний

-(-2.7)=2.7

+

Додавання

Цілий

Цілий

5+3=8

Дійсний

Дійсний

3+5.7=8.7

-

Віднімання

Цілий

Цілий

5-3=2

Дійсний

Дійсний

7.2-3.2=4.0

*

Множення

Цілий

Цілий

5*3=15

Дійсний

Дійсний

5*3.4=17.0

/

Ділення

Цілий

Дійсний

20/4=5.0

Дійсний

Дійсний

14.4/1.2=12.0

Div

Ціла частина від ділення

Цілий

Цілий

7 div 3 = 2

23 div 5 = 4

15 Div 10 = 1

145 Div 10 = 14

Вилучити останню цифру числа

Mod

Остача від ділення

Цілий

Цілий

7 Mod 3 = 1; 27 Mod 5 = 2

5 Mod 9 = 5

16 Mod 10 = 6

162 Mod 10 =2

Одержати останню цифру числа


Стандартні функції опрацювання даних числових типів

Ідентифікатор функції

Призначення

^ Типи результату

Pi

Pi = 3.14159265387932835

Дійсний

Sin(x)

синус аргументу

Дійсний

Cos(x)

косинус аргументу

Дійсний

Arctan(x)

арктангенс аргументу

Дійсний

Ln(x)

натуральний логарифм

Дійсний

Exp(x)

ex

Дійсний

Abs(x)

модуль аргументу

Співпадає з типом аргументу

Sqr(x)

квадрат аргументу

Співпадає з типом аргументу

Sqrt(x)

квадратний корінь аргументу

Дійсний

Int(x)

ціла частина числа

Дійсний

Frac(x)

дробова частина числа

Дійсний

Round(x)

округлення значення дійсного типу до найближчого значення довгого цілого

Довге ціле

Trunc(x)

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

Довге ціле


Математичні вирази в програмі потрібно записувати в лінійній формі.


Приклади запису

^ Математичний запис

Лінійний запис



(x+y)/Sqrt(x*x+y*y)

an

Стандартної функції піднесення до степеня в мові Паскаль немає.

Тому потрібно виразити результат через відомі функції Exp(x) та Ln(x).

Отже, Exp(n*Ln(a))



Exp(5*Ln(2*Pi/3))



(3+Exp(y-1))/(1+x*x*Abs(y-Sin(x)/Cos(x)))



(Sqrt(Abs(x-1))-Exp(1/3*Ln(Abs(y))))/(1+x*x/2+y*y/4)

Оператори

Оператори поділяються на дві групи:

  • прості;

  • описові (описують послідовність виконання інших операторів).

В записі програми між двома послідовно розміщеними операторами ставиться символ ; .

Прості оператори:

  • оператор надання значення;

  • оператор виклику процедури.


Оператор надання значення

Форма запису : ідентифікатор змінної := вираз

Наприклад, a := 5 + Sin(3*Pi/2)


Порядок виконання:


  1. обчислюється значення виразу;

  2. якщо тип результату сумісний з типом змінної, то її значення замінюється значенням виразу;

  3. якщо тип результату не сумісний з типом змінної, то виконання програми припиняється (система розробки програм повідомить "^ Type mismatch").


Оператор виклику процедури

Форма запису: ідентифікатор процедури (список параметрів) .

Наприклад,


WriteLn(a, b, c)

вивести на екран значення змінних a, b, c ;

WriteLn

перейти до початку наступного рядка (процедура без параметрів).

Введення даних (з клавіатури).


Здійснюється за допомогою стандартних процедур:

^ Read (список змінних);

ReadLn (список змінних);


При виконанні операторів Read, ReadLn очікується введення даних з клавіатури, яке повинно закінчитися натисненням клавіші ^ Enter.


При введенні числових даних потрібно враховувати такі зауваження:

  • символи пропуску (Space), табуляції (Tab), що передують запису числа, пропускаються;

  • при введенні кількох числових даних одним оператором введення потрібно числа відокремлювати символом пропуску (при цьому дані розміщуються в одному рядку) або символом кінця рядка (при цьому відбувається перехід на початок нового рядка);

  • якщо при введенні числових даних введена послідовність символів не відповідає числовому формату, то виконання програми припиняється (система розробки програм повідомить "Invalid numeric format");

  • при введенні числових даних суттєвої різниці у використанні операторів ^ Read і ReadLn немає.



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


Виконання оператора ReadLn без параметрів призведе до затримки виконання програми до натиснення клавіші Enter. Цей прийом часто використовують для перегляду проміжних результатів на дисплеї.


^ За допомогою операторів Read і ReadLn дозволяється вводити з клавіатури значення тільки цілих, дійсних, символьних та рядкових типів даних.

Виведення даних (на екран дисплея)


Здійснюється за стандартними процедурами:

^ Write (список елементів виведення),

WriteLn (список елементів виведення).


Елементи в списку розділяються комами. Кожний елемент виведення може бути записаний у формі:

вираз[:ширина поля[:число десяткових знаків після коми]]


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


Параметр ширина поля – вираз цілого типу, що задає мінімальну ширину поля виведення.


Наприклад, WriteLn(5:3,6:4);

Для виведення числа 5 виділяється поле шириною в 3 позиції на екрані, починаючи з поточної позиції курсору. Для числа 6 – 4 позиції. Значення вирівнюються до правої межі. На екрані ( _ – позначення символу пропуску):



_

_

5

_

_

_

6


В операторах ^ Write, WriteLn параметр число десяткових знаків після коми використовується для виведення дійсних чисел у звичайній формі (у формі з фіксованою крапкою). При цьому обов’язково потрібно задати параметр ширина поля, в якому потрібно врахувати всі символи запису числа разом з десятковою крапкою.


Наприклад, результат виконання оператора WriteLn(Pi:7:2) буде таким:


_

_

_

3

.

1

4


Якщо параметри форматування не вказуються, то дійсні числа подаються у степеневій формі (у форматі з плаваючою крапкою). Наприклад, результат виконання оператора WriteLn(435.6748) буде таким: 4.3566748000E+02. Формат виведення часто використовують при виведенні даних на екран у вигляді таблиць.


Оператор WriteLn без параметрів використовують для переходу на початок наступного рядка.


За допомогою операторів Write, WriteLn можна виводити на екран значення числових, символьних, рядкових, та логічних типів даних.



Програмування алгоритмів лінійної структури




Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації