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

Из Pascal в C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Происхождение и сущность ошибок.оператор operator++ http://www.cyberforum.ru/cpp-beginners/thread986585.html
Пожалуста, обьясните про оператор operator++. честно написать, я вобще почти ничего не понял. Как он действует? Для чего он нужен? #include <iostream> // для объекта cout using namespace std; #include<iomanip> //Этот файл содержит большую часть манипуляторов C++. Если вы не знаете, что такое манипулятор, не беспокойтесь. Просто подключите это файл смело и не раздумывая вместе с...
C++ Обмен между приложениями Есть два приложения в ОС Windows , одно консольное которое ждет ввода трех чисел std::cin , второе диалоговое , диалоговое запускает консольное с помощью ShellExecuteEx , у нас есть хэндл консольного окна , как теперь туда ввести три числа наиболее простым способом? http://www.cyberforum.ru/cpp-beginners/thread986573.html
C++ Программа для проверки тела .exe файла
Можете дать программу где можно посмотреть код скомплированной программы на c++ или .net
Найти произведение элементов массива, которые больше его первого элемента C++
Всем здраствуйте! Помогите пожайлуста написать код с помощью массивов. Задание - Найти произведение элементов , которые больше за первый элемент массива. Огромная просьба, сам не понимаю.
C++ Рекурсия: скопировать первую строку в конец второй http://www.cyberforum.ru/cpp-beginners/thread986560.html
День добрый. Задачка попалась не из лёгких как по мне. Условие вот: Функция принимает две строки. С помощью рекурсии нужно скопировать первую, в конец второй.
C++ Преобразование кода Друзья, помогите преобразовать код. Создавал в КодБлокс, а препод требует в Визуалке(((, а с визуалкой я не работал... #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int n; //количество элементов int i, j; int negativeCounter = 0; //кол-во отрицательных подробнее

Показать сообщение отдельно
Kostya_Zh
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 11

Из Pascal в C++ - C++

24.10.2013, 14:14. Просмотров 279. Ответов 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.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru