Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
vorobiov
1

Перевод кода с C++

01.10.2014, 22:51. Показов 1257. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <cstdio>
#include <cmath>
 
using namespace std;
 
#define x first
#define y second
 
int main () {
    ios_base :: sync_with_stdio (false);
    freopen ("pixel.in", "r", stdin);
    freopen ("pixel.out", "w", stdout);
    int n;
    cin >> n;
    pair <int, int> a[n];
    int minx = 1000000000, maxx = -1000000000, miny = 1000000000, maxy = -1000000000;
    for (int i = 0; i < n; ++i) {
        cin >> a[i].x >> a[i].y;
        if (a[i].x < minx) minx = a[i].x;
        if (a[i].x > maxx) maxx = a[i].x;
        if (a[i].y < miny) miny = a[i].y;
        if (a[i].y > maxy) maxy = a[i].y;
    }
    minx--;
    miny--;
    maxx++;
    maxy++;
    double q = min (maxx - minx, maxy - miny);
    double ans = 2 * (maxx - minx + maxy - miny);
    int p1 = -100000000;
    int p2 = 1000000000;
    int p3 = -100000000;
    int p4 = 1000000000;
    for (int i = 0; i < n; ++i) {
        int xx = a[i].x;
        int yy = a[i].y;
        int aa, bb, cc;
        //
        aa = 1;
        bb = -1;
        cc = -aa * (xx - 1) - bb * yy;
        if (cc > p1) p1 = cc;
        //
        aa = 1;
        bb = -1;
        cc = -aa * (xx + 1) - bb * yy;
        if (cc < p2) p2 = cc;
        //
        aa = 1;
        bb = 1;
        cc = -aa * (xx - 1) - bb * yy;
        if (cc > p3) p3 = cc;
        //
        aa = 1;
        bb = 1;
        cc = -aa * (xx + 1) - bb * yy;
        if (cc < p4) p4 = cc;
    }
    //
    double p = max (-minx + miny, -maxx + maxy);
    p = p1 - p;
    p = q - p;
    ans -= 2 * p;
    ans += p * sqrt (2);
    //
    p = min (-minx + miny, -maxx + maxy);
    p = p - p2;
    p = q - p;
    ans -= 2 * p;
    ans += p * sqrt (2);
    //
    p = max (-minx - maxy, -maxx - miny);
    p = p3 - p;
    p = q - p;
    ans -= 2 * p;
    ans += p * sqrt (2);
    //
    p = min (-minx - maxy, -maxx - miny);
    p = p - p4;
    p = q - p;
    ans -= 2 * p;
    ans += p * sqrt (2);
    cout.precision (3);
    cout << fixed << ans;
}
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2014, 22:51
Ответы с готовыми решениями:

Перевод кода с Паскаля (перевод в метры)
var a,b,d:integer; c,e:real; begin writeln('1-дециметр 2-километр'); writeln('3-метр ...

Перевод кода С в C++
Помогите пожалуйста перевести код из С в С++ #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

Перевод кода из C++
Ребят как перевести код C++ на PHP read(n); s = 0; while(n&gt;0){ s = s + n mod 2; n...

С++ -> C# (перевод кода)
Здравствуйте, я новичок на этом форуме, но попрошу помочь перевести эти 6 строк кода на C#....

1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
02.10.2014, 14:53 2
Лучший ответ Сообщение было отмечено как решение

Решение

Если не сильно напутал, то
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const
  MaxLInt=$7FFFFFFF; MinLInt=-MaxLInt-1;
function min(a, b: Real): Real; begin min:=a; if b<a then min:=b; end;
function max(a, b: Real): Real; begin max:=a; if b>a then max:=b; end;
var
  n, i: Integer;
  x, y, minx, miny, maxx, maxy, p1, p2, p3, p4, cc: Longint;
  q, ans: Real;
begin
  Assign(input,'pixel.in'); Assign(output,'pixel.out');
  Reset(input); Rewrite(output);
  ReadLn(n);
  minx:=MaxLInt; maxx:=MinLInt; miny:=MaxLInt; maxy:=MinLInt;
  for i:=0 to n-1 do begin
    Read(x,y);
    if x<minx then minx:=x;
    if x>maxx then maxx:=x;
    if y<miny then miny:=y;
    if y>maxy then maxy:=y;
  end;
  Dec(minx); Dec(miny); Inc(maxx); Inc(maxy);
  q:=min(maxx-minx,maxy-miny);
  ans:=2*(maxx-minx+maxy-miny);
  p1:=MinLInt; p2:=MaxLInt; p3:=MinLInt; p4:=MaxLInt;
  Close(input); Reset(input);
  for i:=0 to n-1 do begin
    Read(x,y);
    cc:=-(x-1)+y; if cc>p1 then p1:=cc;
    cc:=-(x+1)+y; if cc<p2 then p2:=cc;
    cc:=-(x-1)-y; if cc>p3 then p3:=cc;
    cc:=-(x+1)-y; if cc<p4 then p4:=cc;
  end;
  ans:=ans+(q-p1+max(-minx+miny,-maxx+maxy))*(sqrt(2)-2);
  ans:=ans+(q+p2-min(-minx+miny,-maxx+maxy))*(sqrt(2)-2);
  ans:=ans+(q-p3+max(-minx-maxy,-maxx-miny))*(sqrt(2)-2);
  ans:=ans+(q+p4-min(-minx-maxy,-maxx-miny))*(sqrt(2)-2);
  WriteLn(ans:0:3);
  Close(input); Close(output);
end.
0
02.10.2014, 14:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2014, 14:53
Помогаю со студенческими работами здесь

Перевод кода
Всем привет! Можете помочь с переводом кода? Кажется он написан на Turbo Pascal. Не знаю этот язык....

Перевод кода
Скажите пожалуйста,как я могу перевести из Паскаля Var n, i : integer; item : integer; begin...

перевод кода
помогите пожалуйста перевести код с паскаля на java. uses crt; var a:array of integer; ...

Перевод кода из C++ в Си
#include &lt;iostream&gt; bool test(int * arr, size_t size){ int sign; if ( ! arr || ! size...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru