Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний технічний університет України
“Київський політехнічний інститут”
Кафедра ОТ
ЗВІТ
про виконання лабораторної роботи № 6
з дисципліни
“Основи програмування та алгоритмічні мови”
Тема: РЯДКИ
Варіант 28
Постановка задачі
Заданий рядок, що містить розділені пробілами слова. Відсортувати слова по зростанню їхньої довжини.
Аналітичні викладки
Відсортувати слова у рядку можна, утворивши тимчасовий масив слів рядку.Блок-схема алгоритму розв’язання задачі
Текст програми
program Lab_6;
uses crt;
Type str = string[15];
mas = array[1..127] of str;
var s : string; {Рядок}
m, r: mas; {Масиви слів}
i, k: byte; {Лічильники}
{Підготовка строки}
procedure blank(var s:string);
begin
while (s[1] = ' ') do
Delete (s, 1, 1);
while Pos (' ', s) <> 0 do
Delete (s, Pos (' ', s), 1);
if (s[Length (s)] <> ' ') then s := s + ' ';
end;
{Отримання масиву}
procedure getmas (const s:string; var m:mas; var i:byte);
var n:byte;
t:string;
begin
t := s;
i := 0;
while length(t) > 0 do
begin
i := i + 1;
n := Pos(' ', t);
m[i] := Copy(t, 1, n-1);
Delete (t, 1, n);
end;
end;
{Поміняти місцями}
procedure swap (var a,b:str);
var k:string;
begin
k:=a;
a:=b;
b:=k;
end;
{Сортування}
procedure sort (const m:mas; const i:byte; var r:mas);
var k,j:byte;
begin
r := m;
For k:=1 to i-1 do
for j := 1 to i-k do
begin
if length(r[j]) > length(r[j+1]) then swap(r[j],r[j+1]);
end;
end;
{Отримання строки}
procedure getstring(const m:mas; const i:byte; var s:string);
var j:byte;
begin
s := '';
for j:= 1 to i do
s := s + m[j] + ' ';
end;
begin
TextColor(0);
TextBackground(7);
clrscr;
writeln ('VVedite stroku:');
readln (s);
blank (s);
getmas(s, m, i);
sort(m, i, r);
getstring(r, i, s);
writeln(s);
readln
end.
Результати виконання програми
/
Висновок
Під час виконання лабораторної роботи я набув навичок роботи з текстовими рядками.
Програма працює правильно і виводить слова у порядку зростання їх довжини.