- •Сборник задач по структурному программированию
- •Оглавление
- •Аннотация
- •Введение
- •Раздел 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;
Inc(X);{Количество слов будет на 1 меньше!!}
end;
writeln('Количество слов=', x-1);
close(f);
{Ключевые слова прочитаны из файла и сформирован шаблон для представления результатов обработки текста. Количество определенных ключевых слов будет заноситься в поле результата компоненты записи }
end;
procedure key_word_stat;
{Статистику по частоте появления ключевых слов в тексте соберем при чтении тестового файла}
Var p:boolean;
t,j:integer;
f:text;
str:ss;
begin
p:=test_file(f);
If p then
begin
while not eof(f) do
begin
readln(f,str);
writeln(str);
for j:=1 to x-1 do
begin
t:=pos(stt[j].st,str);
while t<>0 do
begin
inc(stt[j].i);
delete(str,t,length(stt[j].st));
{ удаляем те ключевые слова в строке, которые уже найдены }
t:= pos(stt[j].st,str);
end;
writeln('***',stt[j].st,stt[j].i);
{предложение только для контроля за решением задачи}
end;
end;
close(f);
readln;
end else
begin
writeln('Файла еще нет');
test_file(f);
end;
end;
procedure stat_output;
Var j:integer;
begin
for j:=1 to x-1 do
if stt[j].i<>0 then
writeln('Количество слов=',stt[j].st,
' равно=',stt[j].i);
end;
Var k,l:byte;
ch:char;
tf:text;
begin
{Текст основной программы, обеспечивающий решение сформулированной задачи}
clrscr;
k:=50;
l:=18;
repeat
gotoxy(k,l);
writeln('Выберите действие');
gotoxy(k,l+1);
writeln('1. Создание файла ключевых слов');
gotoxy(k,l+2);
writeln('2. Ввод текстового файла');
gotoxy(k,l+3);
writeln('3. Подсчет статистики');
gotoxy(k,l+4);
writeln('4. Вывод результатов');
gotoxy(k,l+5);
writeln('5. Конец работы');
gotoxy(1,1);
ch:=readkey;
case ch of
'1': begin file_key; clrscr;end;
'2': begin file_create(tf);clrscr;end;
'3': begin
key_load;
key_word_stat;
end;
'4': stat_output;
end;
until ch='5';
end.
