- •Сборник задач по структурному программированию
- •Оглавление
- •Аннотация
- •Введение
- •Раздел 1
- •Работа с простыми типами данных
- •I a b c результат (можно/ нельзя)
- •Пример 1.1.1
- •Var hour,minute,n:longint;
- •Пример 1.1.2.
- •Var X,s,p:real;
- •I,n:integer;
- •Работа с символами, строками и текстом.
- •3 Слова длины 8 букв и т. Д.
- •Пример 1.2.1
- •Var s:string[80];
- •I,k:integer;
- •Разработка структурированных программ с использованием процедур и функций.
- •Пример 1.3.
- •Var I:word;
- •Var I:word;
- •X:integer;
- •I,m:word;
- •Работа с файлами разных типов.
- •Пример 1.4.
- •I: word;
- •Var X:integer;
- •Var I:word;
- •Var X:integer;
- •Inc(X);{Количество слов будет на 1 меньше!!}
- •Var p:boolean;
- •If p then
- •Var j:integer;
- •Var k,l:byte;
- •Динамические структуры данных. Списки.
- •Пример 1.5.
- •Var lp,pList,pStart : pEl_list;
- •I,oi,kol: integer; {переменные для работы с меню}
- •Insert_list(li);
- •Var I:integer;
- •Var I:integer;p:boolean;
- •Var k:char;
- •1: Begin dialog;
- •2: Begin dialog;
- •3: Begin dialog;
- •4: Begin
- •If noswap then begin
- •5: Begin
- •Var I:integer;
- •Vivod(2,2,25);
- •Решение графических задач
- •Пример 1_6.
- •Var dr,md:integer;
- •X,y,x1,y1,x2,x3,y2,y3,r:integer;
- •Var a:real;
- •Раздел 2
- •Работа с графическими объектами
- •Пример 2.1
- •X,y: real;
- •Var f1,f2:real;
- •Var gd,gm:integer;
- •Xb,xe,I,j:integer;
- •Работа с объектами- векторами
- •Пример 2.2
- •Var t:tPerson;
- •Interface
- •Implementation
- •I:integer;
- •I:integer;
- •I,j:integer;
- •Var m:integer;
- •Init(m);
- •Insert;
- •Работа с объектами - списками.
- •Пример 2.3
- •Interface
- •Implementation
- •Var Pcur1:t_el;
- •Var fname:ss;
- •Var s1:ss; p:byte; I:byte;
- •Var I:integer;
- •Interface
- •Implementation
- •Var Mylt:my_list;
- •Разработка объектов- таблиц.
- •Работа со структурами данных типа дерево.
- •Inf: integer;
- •Пример 2.5.
- •Interface
- •Implementation
- •Var newnode:pnode;
- •X,nl,nr:integer;
- •Var I: word;
- •Var q:pnode;
- •Разработка многомодульных задач.
- •Приложение.
- •Interface
- •Ik:word;{количество записей}
- •IEl:elmnt;
- •Var init_Ok:boolean;
- •Implementation
- •Var I:word;
- •Var m:word;
- •Var I:word;
- •If n then begin
- •Var I:word;
- •Var I: word;
- •Var I:word;{при выходе уничтожаем все списки}
- •Interface
- •Implementation
- •1: Begin
- •2: Begin
- •3: Begin
- •1: Begin
- •2: Begin
- •I:byte;
- •1: Begin
- •2: Begin
- •3: Begin
- •4: Begin
- •Var stop:boolean;
Пример 1.4.
program Number_1_4;
uses Crt;
{Создать текстовый файл. С помощью созданного для решения этой задачи файла
ключевых слов собрать статистику по частоте появления ключевых
слов в тексте исходного файла. Последовательность ключевых слов упорядочить по
алфавиту}
type ss=string[20];
sisx=string[80];
tword = record
st: ss;
I: word;
end;
ff=file of ss;{файл для хранения
ключевых слов}
aa= array[1..60] of tword; {массив для хранения результатов обработки исходного файла ключевых слов в памяти; Предполагаем, что более 60 различных ключевых слов у нас не будет в одном тексте}
Var X:integer;
stt :aa;
f:ff;
procedure File_create(var t:text);
Var I:word;
str: ss;
si:sisx;
k:char;
begin
str:='ttt.txt';
gotoxy(40,10);
writeln('Имя файла для хранения текста -ttt.txt');
assign(t,str);
rewrite(t);
repeat
writeln('Вводите текст');
readln(si);{Вводим и записываем текст построчно}
writeln(t,si);
writeln('Текст весь введен?- y or n');
readln(k);
until k='y';
close(t); {Обязательное закрытие файла, чтобы сформировать признак конца файла и
иметь возможность его проверить при чтении файла}
end;
function test_file(var t:text):boolean;
var
b:boolean;
begin
test_file:=false;
gotoxy(40,10);
writeln('Проверяем всегда наличие файлов',#10#13, ' для работы');
ssign(t,'ttt.txt');
{$i-}
reset(t);
{$i+}
if ioresult<>0 then
begin
writeln('Файл не найден с исходным текстом');
writeln('Необходимо создать или заполнить файл');
File_create(t);
b:=test_file(t);
exit;
end else
test_file:=true;
end;
procedure file_key;
Var X:integer;
a:ss;
k:char;
begin
assign(f,'key.txt');
rewrite(f);
repeat
writeln('Введите последовательность ключевых слов '
,#10#13,' наличие которых хотите',#10#13,
' проверить в некотором тексте');
{Коды конца строк позволяют вывести текст более компактно }
readln(a);
write(f,a);
writeln('Все слова введены - y or n');
readln(k);
until k='y';
close(f);
end;
procedure key_load;
{Ключевые слова размещаем в памяти, чтобы обеспечить проверку исходного текст}
var
sa:ss;
begin
x:=1;
assign(f,'key.txt');
reset(f);
while not eof(f) do
begin
read(f,sa); write(sa,'***');
stt[x].st:=sa;
stt[x].i:=0;