Структуры данных: структуры (PascalABC.NET): различия между версиями
Перейти к навигации
Перейти к поиску
Строка 24: | Строка 24: | ||
var res := Count(p1, p2); | var res := Count(p1, p2); | ||
Writeln($'Длинна отрезка равна {res}'); | Writeln($'Длинна отрезка равна {res}'); | ||
+ | end. | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Правильность даты === | ||
+ | <syntaxhighlight lang="pascal" line> | ||
+ | type | ||
+ | DateRecord = record | ||
+ | day: integer; | ||
+ | month: integer; | ||
+ | year: integer; | ||
+ | end; | ||
+ | function DateOK(date: DateRecord): boolean; | ||
+ | Begin | ||
+ | if (date.day < 0) or | ||
+ | (date.month < 0) or | ||
+ | (date.year < 0) then | ||
+ | DateOK := false | ||
+ | else | ||
+ | begin | ||
+ | if (not (date.month in [1..12])) then | ||
+ | begin | ||
+ | DateOK := false; | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | if (not(date.day in [1..31])) then | ||
+ | DateOK := false | ||
+ | else | ||
+ | DateOK := true; | ||
+ | end; | ||
+ | end; | ||
+ | end; | ||
+ | |||
+ | Begin | ||
+ | var dt : DateRecord; | ||
+ | dt.day := 31; | ||
+ | dt.month := 2; | ||
+ | dt.year := 2000; | ||
+ | var res := DateOK(dt); | ||
+ | Writeln($'{res}'); | ||
end. | end. | ||
</syntaxhighlight> | </syntaxhighlight> |
Версия 15:11, 16 июня 2021
Записи
Задачи
Длина отрезка между двумя точками
1 type
2 Point = record
3 x, y: real;
4 end;
5 function Count(p1, p2: Point): real;
6 begin
7 var length := sqrt((p1.x-p2.x)**2 + (p1.y-p2.y)**2);
8 Count := length;
9 end;
10
11 Begin
12 var p1, p2: Point;
13 p1.x := 0;
14 p1.y := 0;
15 p2.x := 1;
16 p2.y := 1;
17 var res := Count(p1, p2);
18 Writeln($'Длинна отрезка равна {res}');
19 end.
Правильность даты
1 type
2 DateRecord = record
3 day: integer;
4 month: integer;
5 year: integer;
6 end;
7 function DateOK(date: DateRecord): boolean;
8 Begin
9 if (date.day < 0) or
10 (date.month < 0) or
11 (date.year < 0) then
12 DateOK := false
13 else
14 begin
15 if (not (date.month in [1..12])) then
16 begin
17 DateOK := false;
18 end
19 else
20 begin
21 if (not(date.day in [1..31])) then
22 DateOK := false
23 else
24 DateOK := true;
25 end;
26 end;
27 end;
28
29 Begin
30 var dt : DateRecord;
31 dt.day := 31;
32 dt.month := 2;
33 dt.year := 2000;
34 var res := DateOK(dt);
35 Writeln($'{res}');
36 end.