Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
-5 / 0 / 1
Регистрация: 04.03.2014
Сообщений: 68

Необходимо перевести задачу из C++ В Паскаль

16.06.2015, 14:30. Показов 1368. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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;
 
char sp5[]="               ";
int x5[20], n5, nrsol5=0, nr[20], val[20], sum[20], S;
 
int Valid5(int k)
{  sum[k]=sum[k-1]+val[k]*x5[k];
   if (sum[k]>S) return 0;
   if (k==n5 && sum[k]!=S) return 0;
   return 1;
}
 
void Afisare5()
{ int i,j;
  cout<<sp5;
  for(i=1;i<=n5;i++)
   if (x5[i]!=0) cout<<x5[i]<<"*"<<val[i]<<" lei + ";
  cout<<endl;
  nrsol5++;
}
 
void Back5()
{  int k=1, cand;
   x5[1]=-1;
   while (k>0)
    { cand=0;
      while (cand==0 && x5[k]<nr[k])
    { x5[k]++;
      cand=Valid5(k);
    }
      if (cand==0) k--;
      else if (k==n5) Afisare5();
       else {k=k+1; x5[k]=-1;}
   }
}
 
int main()
{ int i;
  cout<<endl<<endl<<sp5<<"Plata unei sume de bani"<<endl;
  cout<<endl<<sp5<<" Numarul tipuri monezi: "; cin>>n5;
  cout<<sp5<<" Dati suma de plata: "; cin>>S;
  cout<<endl;
  for (i=1;i<=n5;i++)
     { cout<<sp5<<" Valoare moneda tip "<<i<<": "; cin>>val[i];
       cout<<sp5<<" Numar monezi tip "<<i<<"  : "; cin>>nr[i];
     }
  cout<<endl<<"Solutiile sunt: "<<endl;
  Back5();
  cout<<endl<<sp5<<"Numar solutii: "<<nrsol5;
  return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.06.2015, 14:30
Ответы с готовыми решениями:

Нужно перевести задачу с С на Паскаль
Помогите перевести задачу с С в паскаль. Заранее спасибо #include &lt;stdio.h&gt; int main() { int i, j, n; ...

Откомпилировать задачу ( или перевести с СИ на Паскаль )
Задача звучит так : Вводятся поочередно данные о росте студентов группы. определить средний рост студентов. На языке С написал кое как,...

Перевести код из паскаль АБС в фри паскаль
Необходимо перевести этот код из паскаля АБЦ в фрипаскаль Спасибо! program test; const n=20; var ...

9
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
16.06.2015, 20:27
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

вроде ничего не потерял...
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
const
    sp5 = '               ';
    n = 20;
 
var
    i: Byte;
    n5, s, nrsol5: Integer;
    x5, nr, val, sum: Array[1..20] Of Integer;
 
function Valid5(const k: Byte): Boolean;
begin
    sum[k] := sum[k - 1] + val[k] * x5[k];
    Valid5 := ((sum[k] > s) Or ((k = n5 ) And (sum[k] <> s)));
end;
 
procedure Afisare5();
begin
    Write(sp5);
    for i := 1 to n5 do
        if (x5[i] <> 0)
        then
            Write(x5[i], '*', val[i], ' lei + ');
    WriteLn;
    Inc(nrsol5);
end;
 
procedure Back5();
var
    cand: Boolean;
begin
    i := 1;
    x5[1] := -1;
    while (i > 0) do
    begin
        cand := False;
        while ((Not cand) And (x5[i] < nr[i])) do
        begin
            Inc(x5[i]);
            cand := Valid5(i);
        end;
        if (Not cand)
        then
            Dec(i)
        else
            if (i = n5)
            then
                Afisare5()
            else
            begin
                Inc(i);
                x5[i] := -1;
            end;
    end;
end;
 
begin
    nrsol5 := 0;
    WriteLn; WriteLn; WriteLn(sp5, 'Plata unei sume de bani'); WriteLn;
    WriteLn; Write(sp5, 'Numarul tipuri monezi: '); ReadLn(n5);
    Write(sp5, 'Dati suma de plata: '); ReadLn(s); WriteLn;
    for i := 1 to n5 do
    begin
        Write(sp5, 'Valoare moneda tip ', i, ': '); ReadLn(val[i]);
        Write(sp5, 'Numar monezi tip ', i, ': '); ReadLn(nr[i]);
    end;
    WriteLn; WriteLn('Solutiile sunt:');
    Back5();
    WriteLn; Write(sp5, 'Numar solutii: ', nrsol5);
end.
0
-5 / 0 / 1
Регистрация: 04.03.2014
Сообщений: 68
17.06.2015, 10:34  [ТС]
Компиллер говорит что в первом цикле for есть ошибка, говорит что переменная цикла должна описывться в нем самом, хотя у вас по идее оно в порядке, можете посмотреть, а то я ошибку не понимаю.?

Добавлено через 20 минут
Все нашел, перед циклом необходимо добавить var i:integer; и все работает, спасибо
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.06.2015, 10:36
Цитата Сообщение от pentelika007 Посмотреть сообщение
переменная цикла должна описывться в нем самом,
Ну и напиши в каждой процедуре
Pascal
1
2
var
    j:byte;
и замени i на j
0
-5 / 0 / 1
Регистрация: 04.03.2014
Сообщений: 68
17.06.2015, 14:28  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
замени i на j
я конечно извиняюсь, но совсем не понимаю зачем менять i на j ?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.06.2015, 14:30
Ну раз уж зачем-то переменная i объявлена глобально, заведите в подпрограммах где это нужно переменную-счетчик j
0
-5 / 0 / 1
Регистрация: 04.03.2014
Сообщений: 68
17.06.2015, 14:34  [ТС]
и еще одно, оставляя эту строку
Pascal
1
x5, nr, val, sum: Array[1..20] Of Integer;
компиллер при выполнении в конце говорит что выходит за границу массива, соответственно насколько я знаю нужно поменять параметр [1..20] на [0..20], но в таком случае ответ выдает 0.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.06.2015, 14:38
Я хрен знает что эта программа должна делать, о чем она где ты это содрал...
Дуй на форум экстрасенсов.
0
-5 / 0 / 1
Регистрация: 04.03.2014
Сообщений: 68
17.06.2015, 14:43  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
зачем-то
пошел немного другим путем, сделал ее локальной для каждого цикла, а верху уже поменял 1 на 0 и все заработала в штатном режиме, спасибо =)

Добавлено через 45 секунд
Цитата Сообщение от Puporev Посмотреть сообщение
где ты это содрал...
а вот не надо тут, в си++ я ее сам сделал =)

Добавлено через 1 минуту
Цитата Сообщение от Puporev Посмотреть сообщение
хрен знает что эта программа должна делать
а это уже потому что я не на русском языке учусь =)
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
17.06.2015, 19:55
pentelika007, вот поэтому нужно для начала описывать о чём задача и какой компилятор.

Не по теме:

с индексами массива да, фейл немного вышел.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2015, 19:55
Помогаю со студенческими работами здесь

Снова перевести с Турбо Паскаля на Паскаль АВС или Паскаль АВС.Нет
program derevo; uses crt, graph; function cx(length, angle:real):integer; begin cx:=round(length*cos(angle)); end; ...

задачу в паскаль
Нужно решить 1 задачу

переделать задачу из паскаль в делфи
Дана последовательность из N вещественных чисел. Первое число в последовательности нечетное. Найти сумму всех идущих подряд в начале...

Нужно переписать задачу с с (c++) на паскаль
int ans = a + b + c; ans = max(ans, (a + b) * c); ans = max(ans, a * (b + c)); ans = max(ans, a * b * c); cout &lt;&lt; ans &lt;&lt;...

Переведите задачу с С++ на язык Паскаль
long long a , b , c , d ; cin &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d; for (int i = 0; i &lt;= 1000 ; i++) if ( a*i*i*i + b*i*i + c*i + d == 0) ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта 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. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru