Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 32

Перевод текста из Паскаля в Си++

18.08.2019, 01:53. Показов 2063. Ответов 1

Студворк — интернет-сервис помощи студентам
Здравствуйте. Хотел бы попросить перевод кода с Паскаля на Си++. Сам я Си++ знаю довольно плохо, поэтому, прошу вас помочь.
Вот код:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Program C;
type 
  arr = array[1..200000] of int64;
 
var
  n,min1,ans: int64;
  a,b: arr;
  f1,f2: text;
  
procedure sort( L, R : int64); 
var i,j,x: int64;
begin
  i := l; j := r;
  x := b[(l+r) div 2];
  repeat
    if (b[i] = b[j]) and (a[i] < a[j]) then swap(a[i],a[j]);
    while (b[i] < x) do inc(i);
    while (x < b[j]) do dec(j);
    if ( i <= j ) then
    begin
      if (b[i] = b[j]) and (a[i] < a[j]) then swap(a[i],a[j])
      else begin 
      swap(a[i], a[j]);
      swap(b[i], b[j]);
      inc(i); dec(j);
      end;
    end;
  until (i > j);
  if (l < j) then sort(l,j);
  if (i < r) then sort(i,r);
end;
 
function M(a,b: arr; k,n: int64): int64;
var
  min2: int64;
  
begin
  ans := ans + b[k];
  min2 := 10000000000;
  for var i := k to n do if a[i] < min2 then min2 := a[i]; 
  if a[k] - b[k] < min1 then min1 := a[k]-b[k];
  M := min(ans+min1, ans-b[k]+min2);
end;
 
begin
 assign(f1, 'minions.in');
 assign(f2, 'minions.out');
 reset(f1);
 rewrite(f2);
 readln(f1, n);
 for var i := 1 to n do readln(f1, a[i], b[i]);
 sort(1,n);
 min1 := a[1]-b[1];
 for var i := 1 to n do writeln(f2, M(a,b,i,n));
 close(f1);
 close(f2);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.08.2019, 01:53
Ответы с готовыми решениями:

Перевод с Паскаля на Си++
program PrimesToN; var i, k, n, count: word; begin readln(n); for k := 1 to n do begin count := 0; ...

Перевод из паскаля на дельфи
Добрый день форумчане! Взялся помочь хорошей знакомой, она прислала программу и попросила перевести ее из паскаля в дельфи. Сначала...

Перевод из паскаля в кумир
Помогите перевести уже готовую программу из паскаля в кумир. var a, b, i, ii, fl, j: integer; function sost(k: word):...

1
0 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 32
12.09.2019, 17:20  [ТС]
Сам разобрался.
Вот перевод с некоторыми улучшениями:
C++ (Qt)
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
long long int n,m1,min1,min2,ind;
long long int a[200001], b[200001];
 
void quickSort(int left, int right) {
      int i = left, j = right;
      int pivot = b[(left + right) / 2];
      while (i <= j) {
            if(b[i] == b[j] && a[i] < a[j]) swap(a[i], a[j]);
            while (b[i] < pivot)i++;
            while (b[j] > pivot)j--;
            if (i <= j) {
                  if(b[i] == b[j] && a[i] < a[j]) swap(a[i], a[j]);{
                  swap(a[i], a[j]);
                  swap(b[i], b[j]);
                  i++;
                  j--;
                  }
            }
      };
      if (left < j)
            quickSort(left, j);
      if (i < right)
            quickSort(i, right);
}
 
int main()
{
    ifstream in("minions.in");
    ofstream out("minions.out");
    in >> n;
    for (int i = 0; i < n; i++) in >> a[i] >> b[i];
    quickSort(0, n-1);
    m1 = 0;
    min1 = a[0]-b[0];
    min2 = LONG_LONG_MAX;
    for (int j = 0; j < n; j++) if (a[j] <= min2)
        {
            min2 = a[j];
            ind = j;
        }
    for (int i = 0; i < n; i++)
    {
        if (ind < i)
        {
          min2 = LONG_LONG_MAX;
          for (int j = ind+1; j < n; j++) if (a[j] <= min2)
                {
                   min2 = a[j];
                   ind = j;
                }
        }
        if (a[i] - b[i] < min1) {min1 = a[i]-b[i];}
        m1 = m1 + b[i];
        out << min(m1+min1, m1-b[i]+min2) << endl;
    }
    in.close();
    out.close();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.09.2019, 17:20
Помогаю со студенческими работами здесь

Перевод с паскаля на VBA
Помогите первести с паскаля на VBA for i:=0 to n-1 do begin for j:=0 to n-1 do begin if...

Перевод программы с Паскаля на Си
Есть программа на паскале может кто-нибудь перевести ее на С?? информация должна быть записана из файла /максимальное значение n/ ...

перевод из паскаля в делфи
доброго времени суток, прошу вас помочь сделать мне перевод из паскаля в делфи, возможно не бесплатно,если что спишимся Program...

Перевод C Паскаля на Делфи
var mar:array of string; kol:array of integer;//массив количеств каждой марки. i,j,k,d: byte; begin clrscr; ...

Перевод из паскаля в питон
program String27; var N1,N2,i:integer; S,S1,S2:string; begin Write('N1:'); Readln(N1); Write('N2:'); Readln(N2);


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru