М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
vladyakovlev22
vladyakovlev22
27.10.2020 13:48 •  Информатика

Надо переделать код для лазаруса (из pascalABC на Freepascal), а то программа не выполняется, выдается фатальная ошибка, хоть с синтаксисом все нормально type point=record
x,y:real;
end;
var a:array[1..3] of point;
i,j: integer;
z: point;
c: real;
begin
writeln('Координаты вершин');
readln(a[1].x,a[1].y,a[2].x,a[2].y,a[3].x,a[3].y);
//отсортируем по убыванию y
for i:=1 to 2 do
for j:=i+1 to 3 do
if a[i].y>a[j].y then
begin
z:=a[j];
a[j]:=a[i];
a[i]:=z;
end;
//выбираем первую точку
if a[2].x a[2].x then
begin
z:=a[3];
a[3]:=a[2];
a[2]:=z;
end;
for i:=1 to 3 do begin
c:=sqrt(a[i].x*a[i].x + a[i].y*a[i].y);
writeln ('Расстояние от начала координат',' ',c);
end;
readln
end.

👇
Ответ:
Dasha20101111
Dasha20101111
27.10.2020

Я комментарием пометил ошибку

type point=record

x,y:real;

end;

var a:array[1..3] of point;

i,j: integer;

z: point;

c: real;

begin

writeln('Координаты вершин');

readln(a[1].x,a[1].y,a[2].x,a[2].y,a[3].x,a[3].y);

//отсортируем по убыванию y

for i:=1 to 2 do

for j:=i+1 to 3 do

if a[i].y>a[j].y then

begin

z:=a[j];

a[j]:=a[i];

a[i]:=z;

end;

//выбираем первую точку

if a[2].x a[2].x then    // Ошибка, здесь ничего не сравнивается

begin

z:=a[3];

a[3]:=a[2];

a[2]:=z;

end;

for i:=1 to 3 do begin

c:=sqrt(a[i].x*a[i].x + a[i].y*a[i].y);

writeln ('Расстояние от начала координат',' ',c);

end;

readln

end.

4,6(54 оценок)
Открыть все ответы
Ответ:
LadyWolf123456789
LadyWolf123456789
27.10.2020
Var month: array[1..12]of string[10]=
(' январь ',' февраль ',' март ',' апрель ',' май ',' июнь ',
' июль ',' август ',' сентябрь ',' октябрь ',' ноябрь ',' декабрь ');
procedure p(s:string);
begin
writeln(s);
end;
var N_M:integer;
begin
writeln(' введи номер месяца ');
readln(N_M);
case N_M of
 1..12: p(month[N_M]);
 else p(' такого месяца нет ');
 end;
case N_M of
 1,3,5,7,8,10,12: p(' 31 день ');
 4,6,9,11: p(' 30 дней ');
 2: p(' 28 дней ');
 end;
case N_M of
 12,1,2: p(' зима');
 3,4,5: p(' весна');
 6,7,8: p(' осень');
 9,10,11: p(' лето');
 end;
end.

Пример:
введи номер месяца
5
май
31 день
весна
4,6(5 оценок)
Ответ:
YouAreMyWeakness
YouAreMyWeakness
27.10.2020
// PascalABC.NET 3.3, сборка 1547 от 07.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк/столбцов в матрице:');
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var (s,p):=(0,BigInteger(1));
  for var i:=0 to n-1 do
    if (a[i,i]>0) and (a[i,i].IsEven) then s+=a[i,i]
    else
      if a[i,n-1-i].IsOdd then p*=a[i,n-i-1];
  Writeln(s*p)
end.

Пример
Количество строк/столбцов в матрице: 13
*** Исходная матрица ***
   1 -62  88  54  98 -68 -10 -69  39 -69 -83  32 -31
 -55 -57  51 -44 -15  -5   6  83  42  -9 -27  11  22
  -4 -61  -4  -7  -9  50  20  67  94 -57  24 -51  -1
  21  40 -21 -87 -17  62  61  52 -19  23 -66  45  41
 -93 -84 -82  58  47  16 -57 -23  35 -49  35 -54  40
 -33 -87   1 -49  99 -73 -92  85  73  65   5  30 -92
  10  50  69 -85  16 -38  48  49  44   5  50 -64  -5
 -92 -94 -78  85 -11  43  66  43  -4  49 -49 -70  23
 -93  38  55 -67 -50  13 -71  39 -93  -8   8  21  35
 -26  -2  90  22   8  51 -84   5 -81 -98  64  88 -24
  62  63 -35 -86 -98  18  85  92 -45 -89  94  11 -45
 -63 -92  55 -98  14  14 -35  54 -30 -31  53  74 -59
  -1 -85 -81  87  36  91 -55  74  51 -34 -25  93  -9

216716207400
4,7(98 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ