Структуры данных: структуры (PascalABC.NET): различия между версиями

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
 +
{{TOCRight}}
 
== Записи ==
 
== Записи ==
 
* [http://pascalabc.net/downloads/pabcnethelp/index.htm?page=LangGuide/Types/records.html Записи (документация)]
 
* [http://pascalabc.net/downloads/pabcnethelp/index.htm?page=LangGuide/Types/records.html Записи (документация)]
Строка 24: Строка 25:
 
   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.