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

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
 
(не показаны 2 промежуточные версии этого же участника)
Строка 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 Записи (документация)]
 
* [https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C_(%D1%82%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85) Записи (википедия)]
 
* [https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C_(%D1%82%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85) Записи (википедия)]
 +
 +
== Задачи ==
 +
=== Длина отрезка между двумя точками ===
 +
<syntaxhighlight lang="pascal" line>
 +
type
 +
  Point = record
 +
    x, y: real;
 +
  end;
 +
function Count(p1, p2: Point): real;
 +
begin
 +
  var length := sqrt((p1.x-p2.x)**2 + (p1.y-p2.y)**2);
 +
  Count := length;
 +
end;
 +
 +
Begin
 +
  var p1, p2: Point;
 +
  p1.x := 0;
 +
  p1.y := 0;
 +
  p2.x := 1;
 +
  p2.y := 1;
 +
  var res := Count(p1, p2);
 +
  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.
 +
</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.