- •Сборник задач по структурному программированию
- •Оглавление
- •Аннотация
- •Введение
- •Раздел 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;
Пример 2.1
{ Разработать графический объект, позволяющий вычислить значения некоторой функции, Построить график функции, вычислить среднее значение функции на отрезке. Данный пример можно рассматривать как попытку создания объекта-функции.}
Program Number_2_1;
uses Graph,CRT;
type Fun=object
X,y: real;
cx,cy: integer;
Constructor Init;
Destructor Done;
Function Fun_sf(xx:real):real;
Function Fun_sr(x1,x2:real):real;
Procedure Graph_Fun;
Procedure Fun_id;
end;
Constructor Fun.Init;
begin
clrscr;
Writeln('Установка начальных значений ');
x:=20;{задаем начальный шаг для вычисления }
y:=20; {функции и начальные координаты для графика}
cx:=320;{координата оси х}
cy:=400; {координата осо у}
end;
Function Fun.Fun_sf(xx:real):real;
begin
Fun_sf:=sqr(xx)+6*xx+9;
end;
Function Fun.Fun_sr(x1,x2:real):real;
Var f1,f2:real;
begin
f1:=Fun_sf(x1);
f2:=Fun_sf(x2);
Fun_sr:=(f2-f1)/(x2-x1);
end;
Procedure Fun.Graph_fun;
Var gd,gm:integer;
Xb,xe,I,j:integer;
c:char; st:string;
begin
gd:=detect;
initgraph(gd,gm,'c:\tpp\bgi');
setcolor(yellow);
line(0,cy,639,cy); {ось х}
line(cx,0,cx,479); {ось у}
fun_id; {установка начальных значений}
for xb:=1 to 31 do
begin
str(xb-17,st);
outtextxy(20*(xb-1),415,st);
end;
xb:=0;xe:=279;
for j:=1 to 2 do
begin
for i:= xb to xe do
begin
x:=-19+i/20;
y:=Fun_sf(x);
putpixel(i,-round(y*20)+300,yellow);
end;
xb:=281;
xe:=639;
end;
end ;
Procedure fun.fun_id;
begin
outtextxy(10,20,'x**2+6*x+9');
end;
Destructor fun.done;
begin
writeln('завершение работы');
end;
{ текст основной программы, которая позволит, построить график функции и найти требуемые значения}
var
f:fun;
begin
f.init;
writeln('Значение функции в точке x= ',f.fun_sf(3.5):5:3);
writeln('Среднее значение функции на отрезке[2,7]:=',
f.fun_sr(2,7):5:3);
readln;
f.Graph_fun;
readln;
closegraph;
f.done;
readln;
end.