Перший байт рядка


Приклад 15.3.

Визначити суму вірних дільників чисел, що належать діапазону [2,16].Вірними дільниками числа є всі числа, що націло ділять задане число, за винятком його самого. Для визначення суми вірних дільників чисел використати процедуру.

 

divisors(n,sum)
S=0  
a=др.ч.(n/i)  
a=0
Sum=S  
S=S+i  
RETURN
i=1,n-1
T
F
ПОЧАТОК
Вивед. d,s
Divisors (d,s)
КІНЕЦЬ
d=2,16

 


program Sum_div;

VAR

data,results : text; {Приклад 13.1.}

d,sum_of_divisors : integer;

PROCEDURE divisors(n:integer;var Sum:integer);

var a : real;

s,i : integer;

begin

s:=0;

for i:=1 to n-1 do

begin

a:=frac(n/i);

if a=0 then s:=s+i;

end;

Sum:=s;

end; {OF PROCEDURE}

 

BEGIN assign(results,'res_n6.pas');

rewrite(results);

{Использование процедуры}

writeln(results,'Задане число ','Сума вірних дільників числа ');

For d:=2 to 16 do begin

divisors(d,sum_of_divisors);

writeln(results,d:8,sum_of_divisors:10);

end;

close(results);

END.

Лекція 16

Рядки (String).

Використання рядків у Паскалі

Рядки у Паскалі – широко використовуються для роботи з текстовими даними.

Рядок у Паскалі

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

Array [0 .. n] of char;

Розмірність рядка

На відміну від масиву символів кількість символів рядка може змінюватись від 0 до n, де n є максимальна кількість символів у рядку.

Значення n визначається за допомогою об’яви String[n] і може бути будь-якою сталою меншою за 255.

Var NAME: String[25] ;

Рядкові сталі

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

Const warning=’Стала більша за 75’;

Title=’ Сума до сплати’;

Name= ‘Студент Степченко’;

Змінна рядкового типу

Якщо в програмі використовується змінна рядкового типу, то в розділі об’яв програми повинна бути описана розмірність (тобто довжина ) цієї змінної.

Об’ява розмірності

Розмірність вказується в квадратних дужках після зарезервованого слова String і визначає максимальну кількість символів, які можна розмістити у рядку. Наприклад,

Var Day: String[7] ;

об’являє рядок, який може містити в собі максимально 7 символів.

Найперший байт рядка має індекс 0 і зберігає інформацію про реальну довжину рядка.

Перший символ рядка знаходиться у другому байті і має індекс, що дорівнює 1.

Приклад 16.1 Розділ об’яв

program Test_string;

uses crt;

var dlina:string[10];

lin:string[7];

sym,vlist:integer;

 

Розділ інструкцій

begin

clrscr; writeln('lin[0]=',ord(lin[0]));

lin:='flower'; writeln(lin);

writeln('lin[0]=',ord(lin[0]));

dlina:='flower-rose'; writeln(dlina);

writeln('dlina[0]=',ord(dlina[0]));

end.

Отримані результати мають вигляд:

 

lin[0]=0

flower

lin[0]=6

flower-ros

dlina[0]=10