Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

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

Наприклад

y: = -365.4587;

writeln(y) {-3.654587E+02 }

writeln(y:12:5) {…-365.4587}

writeln(y:12:3) {….-365.459}

writeln(y:0:7) {-365.4587}

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

Для реалізації розгалуження використовують оператор розгалуження.

IF <логічний вираз> THEN <оператор 1> ELSE <оператор 2>;

Логічний вираз може набувати одного із значень true або false. Якщо результат true, то виконується оператор 1, якщо false – оператор 2.

В якості операторів 1,2 виконується один оператор, якщо він дійсно один, або складений оператор об’єднаний операторними дужками begin, end.

Наприклад

Програма знаходження коренів квадратного рівняння.

Var a,b,c, d, x1, x2: real;

Begin

Writeln (‘введіть коефіцієнти a, b, c’);

Readln(a,b,c);

d:=b*b-4*a*c;

if d >0 then

Begin

x1:=(-b+sqrt(d))/2/a;

x2:=(-b-sqrt(d))/2/a;

writeln(‘x1=’,x1:12:6, ‘ x2=’,x2:12:6)

End

Else

if d=0 then

Begin

x1:=-b/2/a;

writeln (‘x=’,x1:12:6)

End

Else

writeln (‘коренів немає’)

End.

6. Операторициклу.

а) Операторциклузпараметром. Якщо потрібно у алгоритмі виконати повторення деякої кількості команд кілька разів, застосовують оператор циклу з параметром.

FOR <параметр>: = <початкове значення> TO<кінцеве значення> DO <оператор тіла циклу>;

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

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

Тіло циклу складається з 1 оператора, якщо він 1, або є складеним оператором в операторних дужках.

Наприклад

  1. Програма знаходження суми чисел 1..10.

Var

i, S:integer;

S:=0;

For i:=1 to 10 do S:=S+i;

Writeln(S);

End.

  1. Програмадрукуваннясимволівa’..’z’.

Var c:char;

Begin

For c:=’a’ to ‘z’ do write(c:3);

End.

  1. Програмапобудовитаблиціістинностідляand.

Var a,b: Boolean;

Begin

For a:=false to true do

Begin

For b:=false to true do

Write (a and b:6);

Writeln

End;

End.

Цей оператор циклу ще називають оператором циклу з параметром for to, він передбачає повторення із збільшенням параметру. Оскільки в Turbo Pascal не можна керувати кроком зміни параметра, то для реалізації повторення із зменшенням параметра використовують інший варіант циклу for downto.

FOR<параметр>: = <початкове значення> DOWNTO <кінцеве значення> DO <тіло циклу>;

Після виконання кожного етапу циклу параметр зменшується на 1 одиницю типу.

Зауваження. У випадку необхідності вийти з тіла циклу достроково, тобто до досягнення параметру кінцевого значення не бажано користуватися оператором безумовного переходу, а також аналітичним йому підпрограм типу exit, halt(1).

Для виконання виходу краще змінити значення параметру в тілі циклу.

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

WHILE <логічний вираз> DO <тіло циклу>;

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

Очевидно, що тіло циклу повинно містити якісь дії, що приводять до зміни логічного виразу від true до false.

Наприклад

Дано мішок картоплі, яка вся різної маси. Найменша картоплина важить 50 г. Крок маси 5 г. Скільки картоплин вміститься в 10 кг відрі, якщо їх класти в порядку зростання маси.

Var m, dm, S: real;

i: integer;

Begin

m:=0.05;

dm:=0.005;

S:=0; i:=0;

While S<=10 do

Begin

S:=S+m; i:=i+1;

m:=m+dm

end;

writeln(кількість картоплин‘’,i-1)

End.

в) Операторциклузпісляумовою. Цикл з передумовою передбачає спочатку перевірку, а потім виконується. Деколи потрібно навпаки, спочатку виконати дію, а потім перевірити результат. Якщо результат незадовільняє, то повторити відповідні дії.

REPEAT <тіло циклу> UNTIL <логічний вираз>;

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

Не потрібно об’єднувати тіло циклу операторними дужками.

Наприклад

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

...

Begin

m:= 0.05;

dm:= 0.005;

i:=0;

repeat i:=i+1;

m:=m+dm

until m>=0.5;

writeln(кількість картоплин‘’,i+1)

End.

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

Наприклад

Підрахувати кількість картоплин у відрі, поки не буде покладена 0.5 кг, якщо при цьому вони вміщатимуться у відро.

Begin

m:=0.05;

dm:=0.005;

S:=0; i:=0;

While (S<=10) and(m<0.5) do

Begin S:=S+m; m:=m+dm; i:=i+1

End;

If S>10 then writeln(‘відро переповнилося’) else writeln(‘0ю5 кг картоплина під №’,i);

End.

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

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

CASE <параметр> OF

<значення1>: <оператор>;

<значення2>: <оператор2>;

...

<значення п>: <оператор п>

END

ELSE <оператор п+1>;

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

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

Якщо реальне значення параметра не співпадає ні з жодним значенням, то виконується альтернативна частина else. Оскільки вона не обов’язкова, то її відсутність означає не виконання жодної дії.

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

Наприклад

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

Var c:char;

Begin

Repeat

Writeln (‘введіть символ, клавіша esc - кінець’);

Readln(c);

Case c of

#0..#31: writeln(‘командний’);

‘A’..’Z’,’a’..’z’: writeln(‘англійська буква’);

‘0’..’9’: writeln(‘цифра’);

#128..#255: writeln(‘альтернативна частина таблиці’);

End

else writeln (розділовий знак‘’)

until c=#27;

End.

ТЕМА: Система типів мови Pascal.

Мову програмуванняTurbo Pascal відносять до строго типізованих мов. Це означає, що всі елементи програми повинні бути оголошені явним чином. Явне оголошення типу визначає діапазон допустимих значень та допустимими операціями.

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

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

ТИПИМОВИПРОГРАМУВАННЯTURBOPASCAL:

1. Скалярні / прості / стандартнітипиданих:

а) Ціліабоцілочисельнітипи

В Pascal є 5 типів цілих чисел. Поділ на ці типи пов’язаний із діапазоном допустимих значень і розміром комірок пам’яті.

Тип Діапазон розмір в байтах
Byte 0..255  
Shoting -128..127  
Integer -32768..32767  
Word 0..65535  
longint -2147483648..2147483647  

Над цілими числами виконуються 4 операції:

ціле + ціле = ціле ціле * ціле = ціле

ціле – ціле = ціле ціле / ціле = дійсне

Також використовуються 2 операції:

Div, mod – результат цілий.

Наприклад

5 div 2 =2, 5 mod 2 =1.



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 264; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.237.140 (0.006 с.)