Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
demosfen23
0 / 0 / 0
Регистрация: 28.02.2018
Сообщений: 9
1

перевести код из паскаля на с++

30.06.2018, 21:55. Просмотров 420. Ответов 8
Метки нет (Все метки)

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
var i, a, n, s: int64; j, t:longint;
procedure out;
begin
  writeln (s);
  halt;
end;
 
begin
  readln (n);
  if n<1 then begin writeln (0); halt; end;
  i:=1; a:=0;
  while a<n do
    begin
      a:=6*i*i;
      inc(i);
    end;
  i:=i-1;
  if i=1 then
    case n of
      1: begin s:=3; out; end;
      2: begin s:=5; out; end;
      3: begin s:=7; out; end;
      4: begin s:=9; out; end;
      5: begin s:=11; out; end;
      6: begin s:=12; out; end;
    end;
  if i=2 then
    case n of
      7: begin s:=14; out; end;
      8: begin s:=16; out; end;
      9: begin s:=18; out; end;
      10: begin s:=19; out; end;
      11: begin s:=21; out; end;
      12: begin s:=23; out; end;
      13: begin s:=24; out; end;
      14: begin s:=26; out; end;
      15: begin s:=28; out; end;
      16: begin s:=29; out; end;
      17: begin s:=31; out; end;
      18: begin s:=33; out; end;
      19: begin s:=34; out; end;
      20: begin s:=36; out; end;
      21: begin s:=38; out; end;
      22: begin s:=39; out; end;
      23: begin s:=41; out; end;
      24: begin s:=42; out; end;
    end;
  s:=0; a:=12;
  for j:=1 to i-1 do
    begin
      s:=s+a;
      a:=a+18;
    end;
  n:=n-6*(i-1)*(i-1);
  if n>1 then begin s:=s+2; n:=n-1; end;
  for j:=1 to i-2 do
    begin
      if n>0 then begin s:=s+2; n:=n-1; end;
      if n=0 then break;
      if n>0 then begin s:=s+1; n:=n-1; end;
      if n=0 then break;
    end;
  for t:=1 to 5 do
    begin
      if n>0 then begin s:=s+2; n:=n-1; end;
      if n=0 then break;
      for j:=1 to i-1 do
        begin
          if n>0 then begin s:=s+2; n:=n-1; end;
          if n=0 then break;
          if n>0 then begin s:=s+1; n:=n-1; end;
          if n=0 then break;
        end;
      if n=0 then break;
    end;
  if n>0 then begin s:=s+2; n:=n-1; end;
  if n=0 then out;
  if n>0 then begin s:=s+1; n:=n-1; end;
  if n=0 then out;
end.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2018, 21:55
Ответы с готовыми решениями:

Перевести код из Паскаля в С++
Помогите, пожалуйста перевести в с++ uses crt; const nmax=20; var a:array of integer; ...

Перевести код из Паскаля в Си++
Переведите пожалуйста из Паскаля в Си++, кому не сложно.

Перевести код с Паскаля на С++
Program proga; uses crt; Type gostinica= record FIO:string; nomer:integer; cena:integer;...

Перевести код с Паскаля на C++
begin var число := ReadInteger('Введите трехзначное натуральное число:'); var (сотни,...

Перевести код с паскаля на C++
По заданному натуральному числу N необходимо вычислить количество натуральных чисел, которые...

8
Verevkin
2620 / 1406 / 350
Регистрация: 12.03.2015
Сообщений: 7,507
30.06.2018, 22:12 2
Жуть какая...
--------
ТЗ есть, не?
0
worldandlife
30.06.2018, 22:15
  #3

Не по теме:

Цитата Сообщение от Verevkin Посмотреть сообщение
Жуть какая...
Жуть не то слово, старина)

0
Bleach163
32 / 27 / 20
Регистрация: 23.06.2018
Сообщений: 79
Завершенные тесты: 1
30.06.2018, 22:55 4
Цитата Сообщение от demosfen23 Посмотреть сообщение
1: begin s:=3; out; end;
2: begin s:=5; out; end;
3: begin s:=7; out; end;
4: begin s:=9; out; end;
5: begin s:=11; out; end;
6: begin s:=12; out; end;
Обязательно так... Извращаться?
0
30.06.2018, 22:55
worldandlife
624 / 36 / 25
Регистрация: 25.04.2017
Сообщений: 439
Записей в блоге: 1
Завершенные тесты: 1
30.06.2018, 23:20 5
Цитата Сообщение от Bleach163 Посмотреть сообщение
Обязательно так... Извращаться?
Это новая парадигма программирования
0
Bleach163
32 / 27 / 20
Регистрация: 23.06.2018
Сообщений: 79
Завершенные тесты: 1
01.07.2018, 00:41 6
Вроде бы так...
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
#include <iostream>
using namespace std;
 
int main()
{
    long long n, s = 0, a = 0, i = 0;
    long j, t;
    cin >> n;
    if (n < 1)
    {
        cout << 0 << endl;
        return 0;
    }
    while (a < n)
    {
        a = 6 * i * i;
        i++;
    }
    if (i < 3)
    {
        s = n * 2 + 1 - (n > 5) - (n == 24) - (n - 7) / 3 * (n > 6);
        cout << s << endl;
        return 0;
    }
    a = 12;
    i--;
    for (j = 1; j <= i; j++)
    {
        s += a;
        a += 18;
    }
    n = n - 6 * i * i;
    if (n > 1)
    {
        s += 2;
        n--;
    }
    for (j = 1; j < i && n > 0; j++, n -= 2)
        s += 2 + (n > 1);
    for (t = 1; t <= 5 && n > 0; t++)
    {
        s += 2;
        n--;
        for (j = 1; j <= i && n > 0; j++, n -= 2)
            s += 2 + (n > 1);
    }
    if (n-- > 0)
        s += 2;
    s += (n-- > 0);
    if (n <= 0)
        cout << s << endl;
}
0
Verevkin
2620 / 1406 / 350
Регистрация: 12.03.2015
Сообщений: 7,507
01.07.2018, 01:48 7
Цитата Сообщение от Bleach163 Посмотреть сообщение
Вроде бы так...
ну-ну...

перевести код из паскаля на с++
0
Bleach163
32 / 27 / 20
Регистрация: 23.06.2018
Сообщений: 79
Завершенные тесты: 1
01.07.2018, 04:28 8
Verevkin, объясните, что вам не нравится? Я всего-то заменил 2 switch'a, куда вы хотите тут массивы запихнуть?

Добавлено через 3 минуты
Хотя +1-(n>5) можно было заменить на +(n<6)... Но не более того, читать мысли я не умею.
0
Verevkin
2620 / 1406 / 350
Регистрация: 12.03.2015
Сообщений: 7,507
01.07.2018, 12:03 9
Цитата Сообщение от Bleach163 Посмотреть сообщение
объясните, что вам не нравится?
Я, разве, жаловался, что мне что-то не нравится?
Цитата Сообщение от Bleach163 Посмотреть сообщение
Я всего-то заменил 2 switch'a, куда вы хотите тут массивы запихнуть?
Не запихнуть, а заменить. Поскольку s(n) - это дискретная функция, можно задать все её значения один раз в константном массиве Sn[idx], где nнач ≤ idx ≤ nкон- это те самые метки внутри switch/case.

перевести код из паскаля на с++
0
01.07.2018, 12:03
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2018, 12:03

Перевести код с Паскаля на Си++
Добрый всем день! Будьте добры, перепишете пожалуйста данную программу из паскаля на си++. Буду...

Перевести код с Паскаля на С++
Фирме принадлежат два магазина. Известна стоимость товаров, проданных в каждом магазине за каждый...

Перевести код паскаля в с++
Нужно перевести данный код паскаля в с++. Задание: Найти в строке все заданные последовательности...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.