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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kostya_Zh
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 11
#1

Из Pascal в C++ - C++

24.10.2013, 14:14. Просмотров 278. Ответов 0
Метки нет (Все метки)

Ребята, помогите пожалуйста перевести Задачу из Pascal в C++.
В головоломку умножения играют с рядом карт, каждая из которых содержит одно положительное целое число. Во время хода игрок убирает одну карту из ряда и получает число очков, равное произведению числа на убранной карте и чисел на картах, лежащих непосредственно слева и справа от неё. Не разрешено убирать первую и последнюю карты ряда. После последнего хода в ряду остаётся только две карты.
Цель игры - убрать карты в таком порядке, чтобы минимизировать общее количество набранных очков.
Ограничения: 3 £ N £ 50, числа на картах целые от 1 до 50, время 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
    Program Problem6_6; 
Uses crt;
Var
   n,i,j: integer;
   v: array[1..50] of integer; {Числа на картах}
   b: array[1..50,1..50] of longint; {Минимальное количество очков}
{-- Рекурсивная функция поиска минимальго количества очков --}
Function func(p1,p2:integer):longint;
Var s,min:longint;
    i:integer;
Begin
    If b[p1,p2] >= 0 Then func:= b[p1,p2] {Не считает второй раз}
    else
      Begin
       If p2 = p1+1 Then b[p1,p2]:= 0{Если в последоватльности две карты}
       else
         Begin
          min:= maxlongint;{Максимальное значение}
          For i:= p1+1 To p2-1 do{Номера карт}
           Begin
             {поиск минимального значения(оптимального параметра)}
             s:= func(p1,i) + func(i,p2) + v[p1]*v[i]*v[p2];
             If s < min Then min:= s;
           end;
          b[p1,p2]:= min;{Заполнение матрицы B}
         end;
       func:= b[p1,p2];{Получение значения функции}
      end;
end;
{---- Код основной программы ----}
Begin
   clrscr;
   Repeat{Проверка данных на удовлетворение условию задачи}
    write('Введите количество карт (3..50): ');
    readln(n);
   Until (n >= 3) And (n <= 50);
   writeln('Введите числа на картах (1..50):');
   For i:=1 To n Do{Ввод чисел на картах}
     Repeat{Проверка}
      write(i,'- я карта :  ');
      readln(v[i]);
     Until (v[i] >= 1) And (v[i] <= 50);
   clrscr;
   writeln;
   write('Числа на картах: ');{Вывод введенных данных на экран}
   For i:=1 To n Do write(' ',v[i]);
   writeln;
   For i:=1 To n Do{«Обнуление» матрицы B}
     For j:=1 To n Do
         b[i,j]:= -1;
   writeln;{Обращение к функции и вывод полученного значения на экран}
   writeln('Минимальное количество очков:  ',func(1,n));
   readkey;
End.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 14:14     Из Pascal в C++
Посмотрите здесь:

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница? - Pascal
Всем привет, решил изучать Паскаль, но на форуме увидел 4 его версии - Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET и не понял, в...

Различия трансляторов Pascal ABC.Net и Turbo/Borland Pascal - Pascal
Пожалуйста, объясните различия между компиляторами Pascal ABC.Net и Turbo/Borland Pascal

Нужно перевести код с Pascal ABC на Turbo Pascal - рисование работающей мельницы - Turbo Pascal
Вот код, он должен рисовать работающею мельницу. uses graphABC,crt; type point=record x,y:integer; end; ...

Из множества выбрать три различные точки по условию -из Turbo Pascal во Free Pascal - Turbo Pascal
Даны 2 множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы круг ограниченный окружностью , проходящий...

Список слов распечатать в алфавитном порядке. В Turbo Pascal или Pascal ABC - Turbo Pascal
Дана непустая последовательность слов, в каждом из которых содержится от 1 до 6 заглавных латинских букв; соседние слова разделены запятой,...

Можно как-то переделать код из Turbo Pascal чтобы он работал в pascal abc.net? - PascalABC.NET
Сделайте пожалуйста, я просто не вникаю uses Graph, Crt; var grDriver: integer; grMode: integer; ErrCode: integer; ...

Переделайте, пожалуйста, программу из Turbo pascal в ABC pascal - Pascal ABC
Помогите, пожалуйста, перевести из PASCAL TURBO в PASCAL ABC Program ProgInt; Uses Crt, Graph; Var Punkt : Byte; Knopka :...

Нужен Turbo pascal или Free pascal на русском - Pascal
Нужен Turbo pascal или Free pascal на русском языке, есть такой или нет? По книге обучаюсь по Turbo pascal, а установлен pascalABC, в книге...

Перевести в код Pascal ABC из кода Pascal Delphi - Pascal ABC
procedure TForm1.Button1Click(Sender: TObject); const n=8; var x:array of real; y,z:array of real; i,j:byte; begin ...

Необходимо перевести программу с Pascal ABC на free pascal - Free Pascal
var a, factorial:longint; const c:array of char= ('0','1'); var res:string; d:0..1; k, n, i:byte; begin ...

Перевести в код Pascal ABC из кода Pascal Delphi - Pascal ABC
Помогите перевести в код ABC а то с Delphi вообще не знаком. Задание было такое: Записать в файл последовательного доступа N...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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