====== Песочница ======
===== Список ссылок =====
* [[http://www.humanities.edu.ru/db/msg/80303|ИНФОРМАТИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ]] --- Н.А.Савченко. Образовательное электронное Интернет-издания для педагогов.
* [[http://moodle.org/index.php?lang=ru_utf8|Moodle]] --- CMS для создания курсов и веб-сайтов.
===== Завораживающая механика =====
===== Презентации проектов =====
{{playground:familnaja_chest_vusterov.swf?576x522|Фамильная честь Вустеров}}
===== Подсветка синтаксиса =====
==== Работа с внешним файлом ====
|
{ Составить программу, которая обеспечивает ввод
с клавиатуры и запись во внешний файл следующей
информации о студентах гр.3120: фамилии, года
рождения и оценки сессии.
Обработать созданный внешний файл: вычислить
средний бал группы по каждому предмету и распечатать
список студентов, средний бал которых выше среднего
балла группы и год рождения меньше среднего. }
Program gr3120;
Uses Crt;
Type Student = Record
FIO : string[25];
Year : integer;
o1, o2, o3 : byte;
End;
Var f : file of Student;
Group : array [1..30] of Student;
St : Student;
n, i : byte;
co1, co2, co3, cYear : real;
Begin
ClrScr;
Write('Введите количество студентов: ');ReadLn(n);
WriteLn('Введите сведения о студентах: ');
Assign(f,'gr3120.dat');
Rewrite(f);
for i:=1 to n do begin
with Group[i] do begin
Write('Фамилия И.О.: ');ReadLn(FIO);
Write('Год рождения: ');ReadLn(Year);
WriteLn('Оценки за сессию:');
Write('Предмет1: ');ReadLn(o1);
Write('Предмет2: ');ReadLn(o2);
Write('Предмет3: ');ReadLn(o3);
end;
Write(f,Group[i]);
end;
Close(f);
WriteLn('Файл записан.');
WriteLn('Содержимое файла:');
Reset(f);
while not Eof(f) do begin
Read(f,St);
WriteLn(St.FIO:25,St.Year:6,St.o1:3,St.o2:3,St.o3:3);
end;
Close(f);
WriteLn('Обработка данных из файла:');
co1 := 0; co2 := 0; co3 := 0; cYear := 0;
Reset(f);
for i:=1 to n do begin
Read(f,Group[i]);
with Group[i] do begin
co1 := co1 + o1;
co2 := co2 + o2;
co3 := co3 + o3;
cYear := cYear + Year;
end;
end;
co1 := co1 / n;
co2 := co2 / n;
co3 := co3 / n;
cYear := cYear / n;
Close(f);
WriteLn('Средний балл по предметам:',co1:6:2,co2:6:2,co3:6:2);
WriteLn('Средний год рождения:',cYear:12:0);
WriteLn('Список студентов, у которых оценки выше средних');
WriteLn(' и год рождения меньше среднего:');
for i:=1 to n do
with Group[i] do
if (o1>co1) and (o2>co2) and (o3>co3) and (Year|{{:playground:gr3120.png?360|Результат работы программы}}|
==== Построение графика функции ====
|
{ Вычислить функции f(x) на отрезке [1,5] с шагом 0.1
x^2 , если 1<= x <=2.5
f(x) ={ x^1/2 (это корень квадратный из ), если 2.5< x <=4.2
-1, если 4.2 < x <= 5
Записать значение функции в файл в виде < x f(x) >.
Построить графики функций f(x) в градуированной системе координат. }
Program GraphFunc;
{$N+ E+}
Uses Crt, Graph;
Const KoefX = 35; n = 1000; Color = 2;
Var f : Text;
x : Real;
Xasp, Yasp, KoefY : Word;
Function Func(x:Extended) : Extended;
begin
if (x>=1) and (x<=2.5)
then Func := x * x
else if (x>2.5) and (x<=4.2)
then Func := sqrt(x)
else Func := -1;
end;
Procedure SaveFuncFile;
begin
Assign(f,'Func.txt');
Rewrite(f);
WriteLn(f,' x f(x)');
x := 1;
repeat
WriteLn(f,x:4:1,Func(x):6:2);
x := x + 0.1;
until x > 5;
Close(f);
end;
Procedure GrInit;
var grDriver, grMode, ErrCode : integer;
begin
grDriver := Detect;
InitGraph(grDriver,grMode,'');
ErrCode := GraphResult;
if ErrCode <> grOk then begin
WriteLn('Ошибка графики: ',GraphErrorMsg(ErrCode));
WriteLn('Программа остановлена.');
Halt(1);
end;
GetAspectRatio(Xasp,Yasp);
KoefY := round((Xasp / Yasp) * KoefX);
end;
Procedure SysCoord;
const dx = 2; dy = 2;
var x, y : Word; s : string[5]; t : integer;
begin
Line(0, GetMaxY div 2, GetMaxX, GetMaxY div 2);
Line(GetMaxX - 2*dx, GetMaxY div 2 + 2*dy, GetMaxX, GetMaxY div 2);
Line(GetMaxX - 2*dx, GetMaxY div 2 - 2*dy, GetMaxX, GetMaxY div 2);
OutTextXY(GetMaxX - 15,GetMaxY div 2 - 15,'X');
x := (GetMaxX div 2) mod KoefX; t := (GetMaxX div 2) div KoefX;
while x < GetMaxX do begin
Line(x, GetMaxY div 2 - dy, x, GetMaxY div 2 + dy);
Str(-t,s); t := t - 1;
OutTextXY(x + dx, GetMaxY div 2 + 8, s);
x := x + KoefX;
end;
Line(GetMaxX div 2, 0, GetMaxX div 2, GetMaxY);
Line(GetMaxX div 2 - 2*dx, 2*dy, GetMaxX div 2, 0);
Line(GetMaxX div 2 + 2*dx, 2*dy, GetMaxX div 2, 0);
OutTextXY(GetMaxX div 2 + 10, 10,'Y');
y := (GetMaxY div 2) mod KoefY; t := (GetMaxY div 2) div KoefY;
while y < GetMaxY do begin
Line(GetMaxX div 2 - dx, y, GetMaxX div 2 + dx, y);
Str(t,s); t := t - 1;
if s<>'0' then OutTextXY(GetMaxX div 2 - 20, y - dy, s);
y := y + KoefY;
end;
end;
Procedure DrawGraph;
var xi, yi, h : Extended;
begin
h := 0.1 / KoefX ;
xi := 1;
while xi < 5 do begin
yi := Func(xi);
PutPixel(GetMaxX div 2 + round(xi * KoefX),
GetMaxY div 2 - round(yi * KoefY),Color);
xi := xi + h;
end;
end;
Begin
ClrScr;
SaveFuncFile;
GrInit;
SysCoord;
DrawGraph;
ReadKey;
CloseGraph;
End.
|Содержимое полученного файла (FUNC.TXT):
x f(x)
1.0 1.00
1.1 1.21
1.2 1.44
1.3 1.69
1.4 1.96
1.5 2.25
1.6 2.56
1.7 2.89
1.8 3.24
1.9 3.61
2.0 4.00
2.1 4.41
2.2 4.84
2.3 5.29
2.4 5.76
2.5 6.25
2.6 1.61
2.7 1.64
2.8 1.67
2.9 1.70
3.0 1.73
3.1 1.76
3.2 1.79
3.3 1.82
3.4 1.84
3.5 1.87
3.6 1.90
3.7 1.92
3.8 1.95
3.9 1.97
4.0 2.00
4.1 2.02
4.2 2.05
4.3 -1.00
4.4 -1.00
4.5 -1.00
4.6 -1.00
4.7 -1.00
4.8 -1.00
4.9 -1.00
5.0 -1.00
{{:playground:funs.jpg?320|Результат работы программы}}|
|
{ Вычислить функции sin(x), cos(x), f(x)
на отрезке [-Pi,Pi] с шагом Pi/20
sin(x), если -Pi <= x <= 0
f(x) ={ cos(x), если 0 < x <= Pi
Записать значение функции в файл в виде < x sin(x) cos (x) f(x) >.
Построить графики функций f(x) в градуированной системе координат. }
Program GraphFunc;
{$N+ E+}
Uses Crt, Graph;
Const KoefX = 70; n = 1000; Color = 2;
Var f : Text;
x : Real;
Xasp, Yasp, KoefY : Word;
Function Func(x:Extended) : Extended;
begin
if (x >= -Pi) and (x <= 0)
then Func := sin(x)
else Func := cos(x);
end;
Procedure SaveFuncFile;
begin
Assign(f,'Func.txt');
Rewrite(f);
WriteLn(f,' x sin(x) cos(x) f(x)');
x := -Pi;
repeat
WriteLn(f,x:4:1,sin(x):7:2,cos(x):9:2,Func(x):8:2);
x := x + Pi/20;
until x > Pi;
Close(f);
end;
Procedure GrInit;
var grDriver, grMode, ErrCode : integer;
begin
grDriver := Detect;
InitGraph(grDriver,grMode,'');
ErrCode := GraphResult;
if ErrCode <> grOk then begin
WriteLn('Ошибка графики: ',GraphErrorMsg(ErrCode));
WriteLn('Программа остановлена.');
Halt(1);
end;
GetAspectRatio(Xasp,Yasp);
KoefY := round((Xasp / Yasp) * KoefX);
end;
Procedure SysCoord;
const dx = 2; dy = 2;
var x, y : Word; s : string[5]; t : integer;
begin
Line(0, GetMaxY div 2, GetMaxX, GetMaxY div 2);
Line(GetMaxX - 2*dx, GetMaxY div 2 + 2*dy, GetMaxX, GetMaxY div 2);
Line(GetMaxX - 2*dx, GetMaxY div 2 - 2*dy, GetMaxX, GetMaxY div 2);
OutTextXY(GetMaxX - 15,GetMaxY div 2 - 15,'X');
x := (GetMaxX div 2) mod KoefX; t := (GetMaxX div 2) div KoefX;
while x < GetMaxX do begin
Line(x, GetMaxY div 2 - dy, x, GetMaxY div 2 + dy);
Str(-t,s); t := t - 1;
OutTextXY(x + dx, GetMaxY div 2 + 8, s);
x := x + KoefX;
end;
Line(GetMaxX div 2, 0, GetMaxX div 2, GetMaxY);
Line(GetMaxX div 2 - 2*dx, 2*dy, GetMaxX div 2, 0);
Line(GetMaxX div 2 + 2*dx, 2*dy, GetMaxX div 2, 0);
OutTextXY(GetMaxX div 2 + 10, 10,'Y');
y := (GetMaxY div 2) mod KoefY; t := (GetMaxY div 2) div KoefY;
while y < GetMaxY do begin
Line(GetMaxX div 2 - dx, y, GetMaxX div 2 + dx, y);
Str(t,s); t := t - 1;
if s<>'0' then OutTextXY(GetMaxX div 2 - 20, y - dy, s);
y := y + KoefY;
end;
end;
Procedure DrawGraph;
var xi, yi, h : Extended;
begin
h := Pi/20 / KoefX ;
xi := -Pi;
while xi < Pi do begin
yi := Func(xi);
PutPixel(GetMaxX div 2 + round(xi * KoefX),
GetMaxY div 2 - round(yi * KoefY),Color);
xi := xi + h;
end;
end;
Begin
ClrScr;
SaveFuncFile;
GrInit;
SysCoord;
DrawGraph;
ReadKey;
CloseGraph;
End.
|Содержимое полученного файла (FUNC.TXT):
x sin(x) cos(x) f(x)
-3.1 -0.00 -1.00 -0.00
-3.0 -0.16 -0.99 -0.16
-2.8 -0.31 -0.95 -0.31
-2.7 -0.45 -0.89 -0.45
-2.5 -0.59 -0.81 -0.59
-2.4 -0.71 -0.71 -0.71
-2.2 -0.81 -0.59 -0.81
-2.0 -0.89 -0.45 -0.89
-1.9 -0.95 -0.31 -0.95
-1.7 -0.99 -0.16 -0.99
-1.6 -1.00 -0.00 -1.00
-1.4 -0.99 0.16 -0.99
-1.3 -0.95 0.31 -0.95
-1.1 -0.89 0.45 -0.89
-0.9 -0.81 0.59 -0.81
-0.8 -0.71 0.71 -0.71
-0.6 -0.59 0.81 -0.59
-0.5 -0.45 0.89 -0.45
-0.3 -0.31 0.95 -0.31
-0.2 -0.16 0.99 -0.16
-0.0 -0.00 1.00 -0.00
0.2 0.16 0.99 0.99
0.3 0.31 0.95 0.95
0.5 0.45 0.89 0.89
0.6 0.59 0.81 0.81
0.8 0.71 0.71 0.71
0.9 0.81 0.59 0.59
1.1 0.89 0.45 0.45
1.3 0.95 0.31 0.31
1.4 0.99 0.16 0.16
1.6 1.00 0.00 0.00
1.7 0.99 -0.16 -0.16
1.9 0.95 -0.31 -0.31
2.0 0.89 -0.45 -0.45
2.2 0.81 -0.59 -0.59
2.4 0.71 -0.71 -0.71
2.5 0.59 -0.81 -0.81
2.7 0.45 -0.89 -0.89
2.8 0.31 -0.95 -0.95
3.0 0.16 -0.99 -0.99
3.1 0.00 -1.00 -1.00
{{:playground:func.jpg?320|Результат работы программы}}|
===== Вставка рисунка =====
{{:playground:vodjanye_lilii.jpg?150|}}
===== Хранение файла =====
{{:playground:akt1.xls|Акт 1}}
===== Сценарий тематического урока =====