Оператор присвоювання.

Знак оператора :=. Формат оператора:

<ім’я змінної>:=<вираз>;

Тип змінної і виразу повинні бути одного типу або бути сумісними по типу.

Наприклад:

Var

a,b:integer;

x,y:real;

s:string;

T:boolean;

 

a:=24*b+4;

x:=sin(y)-7.8;

Оператор y:=a+b; буде вірним тому, що ціле значення можна розмістити в дійсній змінній.

А навпаки (a:=y+x;) не допустимо.

Змінній T присвоїти true, якщо a>b і false в іншому випадку: T:=a>b;

Змінній T присвоїти true, якщо a кратно b і false в іншому випадку: T:=a mod b=0;

 

Оператор виходу з блоку.

Формат оператору: exit;

Оператор завершує роботу блоку.

 

Оператор завершення програми.

 

Формат оператору: halt <n>;

Оператор завершує роботу програми. n – код завершення програми.

 

Оператори виклику процедур і функцій.

Формат оператору: <ім’я процедури | функції> [{<список параметрів>}];

 

Оператори вводу-виводу.

Оператори вводу.

Оператори вводу призначені для вводу даних. Пристроєм вводу по умовчанню є клавіатура.

Формат оператору вводу:

read | readln [(<список вводу>)];

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

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

При введенні значень з клавіатури дані можуть розділятись символами „пропуск” і Enter(¿). Строкові дані можуть розділятись тільки Enter.

Дані, що вводяться повинні відповідати списку вводу: їх кількість повинна бути не меншою і відповідні елементи повинні бути одного типу, або сумісними по типу.

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

Оператор починає обробку введених даних після натискання Enter. Якщо введені всі дані з списку вводу, то оператор завершується. Якщо ні – очікується продовження вводу.

Наприклад, при наявності в програмі опису:

Var

a,b:integer;

x,y:real; (a)

s,s1:string[20];

і оператору readln(a,b,x,y);

Для задоволення вводу можна набрати на клавіатурі наступний рядок даних -34 45 3.45 -56.8 ¿

В результаті вводу змінні будуть мати значення: a=-34, b=45, x=3.45, y=-56.8

Після виконання оператору readln(a,b,x,b);

і вводу 34 45 3.45 -56 ¿ змінні будуть мати значення: a=-34, b=-56, x=3.45

Якщо треба послідовно виконати оператори readln(a,b); read (x,y);

і на клавіатурі набрати дані 22 7 2.35 -5.4 ¿

то після вводу двох перших значень курсор перейде на новий рядок (тому, що використано оператор readln) і значення для x і y введені не будуть. Тому необхідно використати наступний ввод

22 7 ¿

2.35 -5.4 ¿

 

Оператори виводу.

Оператори виводу призначені для виводу даних. Пристроєм виводу по умовчанню є екран монітора.

Формат оператору виводу:

write | writeln [(<список виводу>)];

Оператор writeln відрізняється від write тим, що після виводу означених даних здійснює перехід на початок наступного рядка.

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

Числові дані перед виведенням перетворюються в строковий формат.

Наприклад, використовуючи опис (а), виведемо сповіщення:

Writeln (‘При Х=’,X,’ Y=’,Y);

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

Якщо необхідно перейти на наступний рядок, можна виконати оператор Writeln;

 

Форматування даних при виводі.

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

При виведенні числових цілих, символьних, логічних, строкових значень вказується тільки ширина поля, яка записується в операторі виводу після відповідного елементу виводу, відділяючись від нього символом „:”.

<елемент виводу>:<ширина поля виводу>

Значення ширини поля виводу може буди цілим числом або виразом цілого типу.

Дані, що виводяться вирівнюються по правому краю поля. Ліві нулі не виводяться.

Наприклад: при використанні оператора writeln ( ‘Значення’:15, a:5, b:7);

при a=25 I b=165 буде виведено:

_ _ _ _ _ _ _ Значення _ _ _25_ _ _ _ 165

При виведенні числових дійсних значень необхідно додатково вказати кількість знаків після крапки. Кількість вказується після ширини поля, відділяючись символом „:”.

<елемент виводу>:<ширина поля виводу>:<кількість знаків після крапки>

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

Наприклад: при використанні оператора writeln (x:7:2, y:10:3, z:5.0);

при x=25.0034, b=-165.56784, z=356.776 буде виведено:

_ _ 25.00 _ _-165.568 _ 357.

Розробка програм реалізації лінійних алгоритмів.

 

Приклад 1. Розробити програму знаходження площини довільного трикутника з заданими сторонами.

 

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

Алгоритм рішення задачі і текст програми:

       
 
   
program S_Rectangle; {Визначення площини по заданим сторонам трикутника} var a,b,c,p,S:real; begin write ('Введіть значення сторін трикутника '); readln(a,b,c); p:=(a+b+c)/3; S:=sqrt(p*(p-a)*(p-b)*(p-cmod 60); writeln ('Площина трикутника S= ',S:8:2); readln; end.  
 

 

 


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

Вивчивши завдання, визначаємо, що для одержання результату необхідно ввести значення для довжини шляху і швидкості руху. При вводі уточнюємо одиниці виміру: шлях в кілометрах, швидкість в кілометрах на годину. Для одержання значення витраченого часу використовуємо відому з фізики формулу S=V×t. Можна визначити час t=S/V. Результатом буде дійсне число, яке користувачу не дасть вірного уявлення про витрачений час. Необхідно отримати значення часу в годинах і хвилинах. Щоб отримати кількість годин, необхідно для дійсного значення часу взяти його цілу частину (для цього використовується функція trunk). Для визначення хвилин, необхідно дійсне значення часу перевести в хвилини, отримане значення перевести в ціле значення (функція round) і отримати залишок від ділення цього значення на 60. Значення витрачених годин і хвилин є результатом рішення і їх необхідно вивести.

Алгоритм рішення задачі і текст програми:

       
 
   
program Time; {Визначення часу по заданим шляху і швидкості} var S,V,T:real; chas,min:integer; begin write ('Введіть значення шляху в км і швидкості км/год: '); readln(S,V); T:=S/V; {дійсне значення часу} chas:=trunc(T); {ціле значення кількості годин} min:=(round(T*60) mod 60); { -“- кількості хвилин} writeln ('Витрачено: годин ',chas:4,' хвилин’,min:4); readln; end.  
 

 

 


Завдання для самоперевірки.

 

1. Записати оператор присвоювання, який змінній D присвоює середнє арифметичне значення чисел a,b,c.

2. Записати оператор присвоювання, який змінній C присвоює значення гіпотенузи прямокутного трикутника з катетами a,b.

3. Яке значення буде мати змінна X після виконання операторів X:=10; X:=X+4;

4. Записати оператор, який змінює знак у значення змінної X

5. Які значення будуть мати змінні X,Y після виконання операторів X:=2; Y:=5; X:=Y; Y:=x;

6. Поміняти місцями значення змінних X,Y таким чином, щоб в X опинилось значення X, а в Y - значення X.

7. Змінній Х присвоїти значення цілої частини дійсного числа Y.

8. Змінній T присвоїти true, якщо a парне і false в іншому випадку:

9. Змінній T присвоїти true, якщо a=b і false в іншому випадку:

10. Змінній T присвоїти true, якщо три числа x,y,z рівні між собою і false в іншому випадку:

11. Y дійсна змінна, n - ціла змінна. Оператор Y:=n+1; буде вірним чи ні і чому.

12. Y дійсна змінна, n - ціла змінна. Оператор n:=Y +1; буде вірним чи ні і чому.

13. Y дійсна змінна, n - ціла змінна. Оператор n:=n div 2; буде вірним чи ні і чому.

14. Y дійсна змінна, n - ціла змінна. Оператор n:=n/2; буде вірним чи ні і чому.

15. Y дійсна змінна, n - ціла змінна. Оператор Y:=y div 2; буде вірним чи ні і чому.

16. Чи буде вірним оператор k:=k mod 3+k*cos(0); і якого типу повинна бути змінна k.

17. Присвоїти змінній k третю від кінця цифру в запису додатного цілого числа m. (наприклад, якщо k=13289, то m= 2).

18. Визначити значення змінної t:=not (2=5);

19. Записати оператор виводу, який виводить фразу: При X=1.2, Y=1.234

20. Записати оператор виводу, який виводить значення цілої змінної з відступом від початку рядка на 7 позицій.

21. Записати оператор виводу, який виводить заголовок „Таблиця” з відступом від початку рядка на 15 позицій.

22. Записати оператор вводу для вводу двох значень цілого типу і одного строкового. Якими символами необхідно розділяти дані при вводі.

23. Записати оператор вводу для вводу двох значень строкового типу і одного цілого. Якими символами необхідно розділяти дані при вводі.

24. Які значення будуть мати змінні X,Y,Z після описаного вводу і чому: оператор вводу readln(X); read(y,z). Рядок вводу 5 6 7 ¿

25. Які значення будуть мати змінні X,Y,Z після описаного вводу і чому: оператор вводу readln(X,Y); read(z). Рядки вводу 5 6 ¿ 7 ¿

26. Розробити програму визначення площини прямокутника по заданим його сторонам.

27. Розробити програму визначення наступного члена арифметичної прогресії при заданих значеннях останнього члена прогресії і різниці прогресії.

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

 

 

Складні оператори

Складні оператори діляться на складені і структуровані оператори.

Складений оператор -це послідовність довільних операторів, обмежених операторними дужками (словами begin, end):

Begin

<оператори>

end;

 

Структуровані оператори -це оператори, які мають внутрішню структуру. До них відносяться оператори реалізації розгалужених процесів, оператори реалізації циклічних процесів(оператори повторів), оператор приєднання.

Оператори реалізації розгалужених алгоритмів

 

Умовний оператор.

Використовується для вибору дій в залежності від якоїсь умови.

Формат:

If <умова> then <оператор 1> [ else <оператор 2> ];

<умова> - логічний вираз

<оператор 1, 2> - може бути простим і складним

Якщо результат умови є істина, то виконується <оператор 1> ,а потім управління передається оператору, що стоїть за умовним, інакшеуправління передається оператору, що стоїть за словом Else, якщо воно є, а потім оператору, що стоїть за умовним; якщо його нема, то зразу ж оператору, що стоїть за умовним.

<оператор 1> в свою чергу може бути умовним оператором. Такий оператор називається вкладеним. Фраза Else завжди відноситься до останнього умовного оператора. Тому, якщо внутрішній умовний оператор не має фрази Else, то <оператор 1> потрібно обмежувати операторними дужками (приклад 2).

 

Оператор вибору.

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

Формат:

Case <перемикач> of

<набір значень 1>: <оператор 1>;

<набір значень 2>: <оператор 2>;

.

.

<набір значень n>: <оператор n>

[ else <альтернативний оператор>];

End;

<перемикач> -вираз переліченого типу

<набір значень n>- допустимі значення, які може приймати перемикач. Елементи набору відділяються комами. Значення повинні бути того ж типу, що і перемикач. Можна використовувати діапазони, наприклад ‘a’ .. ‘m’.

<набір значень n>- оператор, що виконується для даного набору значень. Може бути простим і складним.

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

 

Розробка програм реалізації розгалужених алгоритмів.

 

Приклад 1. Розробити програму визначення, чи належить задане число проміжку [2,10].

 

 

 


Приклад 2. Розробити програму, яка виконує наступні дії: Задані два числа a,b. Якщо a не менше b (тобто a>=b), то, якщо b негативне необхідно b збільшити в 10 раз. Якщо a менше b (тобто a<b), то знайти модуль а. В інших випадках значення a,b не змінювати.

       
 
   
 


Приклад 3. Розробити програму, яка виконує наступні дії: для введеного символу видати відповідне сповіщення: при введенні „П” вивести своє прізвище, при введенні „І” – ім’я, при введенні іншого символу видати сповіщення „Символ не оброблюється”.

       
 
   
program Simbol; {Визначеннясимволів} var С:char; begin write ('Введіть cимвол '); readln(С); case C of ‘П’,’п’; writeln (‘Іванов‘); ‘І’,’і’; writeln (‘Сергій‘) else writeln (‘Символ не обробляється’); end; readln; end.  
 

 


Завдання для самоперевірки.

 

1) Який з операторів реалізації розгалужень краще використати, якщо необхідно визначити одне з трьох значень змінної?

2) Чи необхідно ставити символ пунктуації пере фразою else в умовному операторі .

3) Чому оператор case називається оператором вибору.

4) В операторі case перемикач повинен бути якого типу?

5) В операторі case яким символом відділяються набір значень перемикача від оператора?

6) Розробити програму, яка визначає, чи задане число кратне числам 7,6.

7) Розробити програму, яка вводить два числа і символ дії (+,- , *, /). Для введеного символу дії необхідно виконати саму дію над числами.

8) Розробити програму: Для двох заданих чисел x,y зробити так, щоб в х було завжди більше число.

9) Розробити програму, яка визначає чи є два заданих числа однієї парності.

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

11) Розробити програму, яка в залежності від введеного часу (від 8 до 17 годин) сповіщає яка зараз пара, перерва або нема занять.

Оператори повторів.

 

Бувають трьох типів:

- Оператор циклу з параметром

- Оператор циклу з передумовою

- Оператор циклу з післямовою

 

 








Дата добавления: 2015-12-10; просмотров: 1606;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.061 сек.