Форум программистов, компьютерный форум CyberForum.ru

Код Pascal на С - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рандомное перемещение картинок(подробно) http://www.cyberforum.ru/cpp-beginners/thread31526.html
У меня задача сделать игру Парные картинки. У меня есть зарание раставленые 24 картинки тобишь (12х2). Мне надо, чтобы они все перемешались в рандомном порядке но раставились по координатам уже заданым. Нутоесть 1-ая на место 8, 2-ая на 4-ую. и т.д.
C++ Borland C++ 5.5 LINE TOOLS Привет всем! У меня только 1 вопрос КАК ВВОДИТЬ команды в Borland C++ 5.5 LINE TOOLS простите, закалибался уже ей богу... http://www.cyberforum.ru/cpp-beginners/thread31515.html
C++ Нейросетевое программирование
задача состоит в следующем: допустим есть 10 акций, в итоге на определенную сумму надо собрать пакет для макс. прибыли через месяц, полгода, ну в общем не важно...сама формулировка задачи не столь важна... Срок сдачи: 1 мая, на крайний 5... Что надо сделать: обучить нейросеть для прогнозирования роста/падения акции, данные можно взять, например, с форекса, полученное решение записать в...
C++ Простые делители
Требуется написать программу которая находит сумму простых делителей числа n
C++ Последнее слово http://www.cyberforum.ru/cpp-beginners/thread31249.html
требуется найти последнее слово в строке. Например poslednee slovo v stroke stroke заметьте в конце строки есть 6 пробелов
C++ Найти все вхождения строки s в t Требуется написать программу, которая выводить на экран идексы всех вхождений строки s в строку t: abababababa aba 0 2 4 6 8 Добавлено через 1 час 1 минуту 53 секунды Ну кто нибудь помогите плиииизз... подробнее

Показать сообщение отдельно
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254

Код Pascal на С - C++

26.04.2009, 21:07. Просмотров 692. Ответов 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
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
uses
  SysUtils;
 
const
  base = 10;
 
type
  int = longint;
 
var
  n, k, i, len, j, z, x : int;
  s, t, ans, s1, w, m: string;
  intpart, rest: int;
  period, per: int;
  were: array[0..9] of int;
  first, zero, minim: boolean;
  a,b:array[0..10000]of string;
  ch:char;
 
begin
  reset(input, 'input.txt');
  rewrite(output, 'output.txt');
while not seekeof do begin
  read(n, k);
  s := '.';
  intpart := n div k;
  while (intpart > 0) do
  begin
    s := inttostr(intpart mod base) + s;
    intpart := intpart div base;
  end;
  if (s = '.') then
    s := '0.';
  rest := n mod k;
  i := 0;
  period := 0;
  fillchar(were, sizeof(were), 0);
  while (rest > 0) do
  begin
    inc(i);
    if (were[rest] > 0) then
    begin
      period := i - were[rest];
      break;
    end;
    were[rest] := i;
    rest := rest * base;
    s := s + inttostr(rest div k);
    rest := rest mod k;
  end;
  first := true;
  ans:=ans+inttostr(n)+'=';
  repeat
    zero := true;
    t := '';
    for i := 1 to length(s) do
    begin
      if (s[i] in ['1'..'9']) then
      begin
        t := t + inttostr(k);
        dec(s[i]);
        zero := false;
      end
      else
        t := t + s[i];
    end;
    if zero then
      break;
    if first then
      first := false
    else
      ans:=ans+'+';
    while (s[1] = '0') and (s[2] <> '.') do
      s := copy(s, 2, length(s));
    while (t[1] = '0') and (t[2] <> '.') do
      t := copy(t, 2, length(t));
    if (period > 0) then
    begin
      minim := false;
      for per := 1 to period div 2 do if (period mod per = 0) then
      begin
        minim := true;
        for i := length(t) downto length(t) - period + per + 1 do
        begin
          if (t[i] <> t[i - per]) then
          begin
            minim := false;
            break;
          end;
        end;
        if minim then
        begin
          setlength(t, length(t) - period + per);
          break;
        end;
      end;
      if not minim then
        per := period;
      while (t[length(t) - per] = t[length(t)]) do
        setlength(t, length(t) - 1);
      if (per > 1) or (t[length(t)] <> '0') then
      begin
        ans:=ans+copy(t, 1, length(t) - per)+'('+copy(t, length(t) - per + 1, length(t))+ ')';
        continue;
      end;
      setlength(t, length(t) - per);
    end;
    while (t[length(t)] = '0') do
      setlength(t, length(t) - 1);
    if (t[length(t)] = '.') then
      setlength(t, length(t) - 1);
    ans:=ans+t;
  until false;
 end;
 len:=1;
  while ans[z]<>'=' do inc(z);
   while z<>length(ans) do
    begin
     inc(z);
     if ans[z] in ['0'..'9','(',')','.'] then a[len]:=a[len]+ans[z] else inc(len);
    end;
    for i:=1 to len do
     b[i]:=a[i];
    for i:=1 to len do
     for j:=1 to length(a[i]) do
      begin
       if a[i][j]='(' then begin
        x:=j-1;delete(a[i],j,1);
         while a[i][x]<>')' do
          begin
           inc(x);
            if a[i][x]=')' then break;
            m:=m+a[i][x];
          end;
           delete(a[i],x,1);
          for x:=length(a[i]) to 6 do a[i]:=a[i]+m;
        end;
      end;
     for i:=1 to len do
      for j:=i+1 to len do
       if a[i]>a[j] then begin w:=a[i];a[i]:=a[j];a[j]:=w;w:=b[i];b[i]:=b[j];b[j]:=w;end;
       write(n,'=');
     for i:=1 to len-1 do
      write(b[i],'+');
     write(b[len]);
end.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru