Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

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

10 видов монет достоинством a1..a10 - Turbo Pascal

15.05.2015, 05:51. Просмотров 827. Ответов 17
Метки нет (Все метки)

Даны натуральные числа, a1..a10. Предположим, что имеются 10 видов монет достоинством a1..a10. Обозначим через Bk-это число решения уравнений a1x1+..+a10x10=R, где Xi может принимать целые неотрицательные значения. Получить B1...B10... решение на паскаль
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2015, 05:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 10 видов монет достоинством a1..a10 (Turbo Pascal):

У покупателя есть n монет достоинством H(1),..., H(n). У продавца есть m монет достоинством B(1),...,B(m) - Turbo Pascal
У покупателя есть n монет достоинством H(1),..., H(n). У продавца есть m монет достоинством B(1),...,B(m). Может ли купить покупатель вещь...

Определить сколько монет достоинством в 20 и 50 рублей и каковы их порядковые номера - Turbo Pascal
В коллекции нумизмата не более чем 90 монет всех возможных достоинств.Определить сколько монет достоинством в 20 и 50 рублей и каковы их...

Как наименьшим количеством монет можно выплатить N копеек?Предполагается,что в достаточном количестве имеются монеты достоинством 1,2.3.5.10,15,20,50 - Turbo Pascal
Дано натуральное число N.Как наименьшим количеством монет можно выплатить N копеек?Предполагается,что в достаточном количестве имеются...

Найти минимальное число монет достоинством в 50, 10, 5, и 1 копейку, необходимое для представения некоторой суммы - Pascal
Найти минимальное число монет достоинством в 50, 10, 5, и 1 копейку, необходимое для представения некоторой суммы, меньшей 1-го рубля. ...

В озере водится несколько видов рыб. Три рыбака поймали рыб, представляющих некоторые из имеющихся видов - Turbo Pascal
В озере водится несколько видов рыб. Три рыбака поймали рыб, представляющих некоторые из имеющихся видов. Определить: какие виды рыб есть у...

Массив: Определить, сколько видов товара имеют стоимость меньшую, чем средняя стоимость всех видов товара. - Turbo Pascal
В массиве записана информация о стоимости 20 видов товара. Определить, сколько видов товара имеют стоимость меньшую, чем средняя стоимость...

17
Joy
Эксперт Pascal/Delphi
2078 / 1118 / 840
Регистрация: 29.08.2014
Сообщений: 4,071
15.05.2015, 11:05 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
rechehvt, а задание точно корректно написано?
Цитата Сообщение от rechehvt Посмотреть сообщение
a1x1+..+a10x10=R
тут может равно k вместо R?

Добавлено через 37 минут
решал не я:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
label 1;
var
  a,b,c:array[1..10] of integer;
  i,j,n,s,k:integer;
begin
  write('R=');readln(k);
  write('a1,a2...a10=');
  for i:=1 to 10 do begin read(a[i]);b[i]:=k div a[i];end;
1:s:=0;
  for i:=1 to 10 do s:=s+a[i]*c[i];
  n:=n+ord(s=k);
  for i:=10 downto 1 do begin
    if c[i]=b[i] then for j:=i to 10 do c[j]:=0
  else begin c[i]:=c[i]+1;goto 1;end;
  end;
  writeln(n);
end.
1
Никита4502
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 12
24.11.2017, 05:04 #3
он ошибку выдает

Добавлено через 25 секунд
ошибку выдает
0
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
3642 / 2629 / 1796
Регистрация: 05.06.2014
Сообщений: 12,570
24.11.2017, 11:11 #4
Никита4502, проверено в fpc в режиме совместимости. Нет никаких ошибок.
0
Никита4502
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 12
25.11.2017, 13:07 #5
ZX Spectrum-128, в Pascal ABC выдаёт ошибку в 11 строке "функция ORD с параметрами указанных типов не найдена".
0
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
3642 / 2629 / 1796
Регистрация: 05.06.2014
Сообщений: 12,570
25.11.2017, 16:53 #6
Никита4502, раздел Турбо Паскаля!!!
А вы работаете в Pascal ABC!!!
0
Никита4502
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 12
26.11.2017, 04:46 #7
ZX Spectrum-128, а как тогда ее записать в паскале abc?
0
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
3642 / 2629 / 1796
Регистрация: 05.06.2014
Сообщений: 12,570
27.11.2017, 10:25 #8
Никита4502, именно в pabc? В pabc.net работает.
0
Никита4502
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 12
27.11.2017, 11:43 #9
ZX Spectrum-128, мне в abc надо
0
Cyborg Drone
Модератор
4981 / 3039 / 1239
Регистрация: 17.08.2012
Сообщений: 9,766
28.11.2017, 00:21 #10
Никита4502, в Pascal ABC тип boolean порядковым не является. Замените
Pascal
11
  if s = k then inc(n);
0
Никита4502
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 12
28.11.2017, 12:24 #11
Cyborg Drone, goto 1; и label 1 можно убрать? зачем мне метка? что значит downto?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
label 1;
var
  a,b,c:array[1..10] of integer;
  i,j,n,s,k:integer;
begin
  write('R=');
  readln(k);
  write('a1,a2...a10=');
  for i:=1 to 10 do begin read(a[i]);
  b[i]:=k div a[i];
  end;
1:s:=0;
  for i:=1 to 10 do s:=s+a[i]*c[i];
  if s = k then inc(n);
  for i:=10 downto 1 do begin
    if c[i]=b[i] then for j:=i to 10 do c[j]:=0
  else begin c[i]:=c[i]+1;
  goto 1;
  end;
  end;
  writeln(n);
end.
0
Cyborg Drone
Модератор
4981 / 3039 / 1239
Регистрация: 17.08.2012
Сообщений: 9,766
28.11.2017, 15:02 #12
goto и label убрать можно. Однако, замечу, что в данном случае применение goto оправдано. Без него, если не перерабатывать алгоритм, придётся вводить лишнюю переменную:
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
var
  a, b, c: array[1..10] of integer;
  i, j, n, s, k: integer;
  q: boolean;
begin
  write('R = ');
  readln(k);
  write('a1 a2 ... a10 = ');
  for i := 1 to 10 do
    begin
      read(a[i]);
      b[i] := k div a[i];
    end;
  readln;
  repeat
    s := 0;
    for i := 1 to 10 do s := s + a[i] * c[i];
    if s = k then inc(n);
    for i := 10 downto 1 do
      begin
        q := c[i] = b[i];
        if q
          then for j := i to 10 do c[j] := 0
          else begin
            inc(c[i]);
            break
          end
      end
  until q;
  writeln(n);
  readln
end.
Что значит downto? Ну, во-первых, оно значит, что Вы не потрудились прочитать хотя бы 50 страниц любой книжки по любом паскалю. А вообще, for ... downto ... do - это предопределённый цикл с автодекрементом параметра цикла. Короче, если написано to, значит, к i прибавляется 1 на каждой итерации цикла, если написано downto, значит, от i вычитается 1 на каждой итерации цикла.
0
Никита4502
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 12
29.11.2017, 04:49 #13
Cyborg Drone, да мне до лампочки, лишь бы сдать, но спасибо.
0
Никита4502
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 12
06.12.2017, 13:13 #14
Cyborg Drone, простите меня пожалуйста, сидел разбирался с этой задачей и не до конца ее понял. Вы бы не могли бы поставить к ней комментарии? Или объясните мне с 15 по 29 строчку.
0
Cyborg Drone
Модератор
4981 / 3039 / 1239
Регистрация: 17.08.2012
Сообщений: 9,766
06.12.2017, 17:30 #15
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
С комментариями:
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
//a[i] - достоинство i-й монеты
//b[i] - максимальное количество монет достоинством a[i],
//       сумма которых не превышает заданную стоимость k
//с[i] - текущее количество каждой монеты
//i, j - счётчики
//n    - количество найденных наборов
//s    - текущая сумма
//k    - целевая сумма
//q    - факт того, что текущее количество монет текущего достоинства достигло максимума
var
  i, j, n, s, k: integer;
  q: boolean;
begin
  write('R = ');
  readln(k); //ввод целевой суммы
  write('a1 a2 ... a10 = ');
  for i := 1 to 10 do //цикл ввода достоинств монет
    begin
      read(a[i]); //ввод достоигства i-й монеты
      b[i] := k div a[i]; //расчёт максимального количества монет a[i], помещающихся в целевую сумму
    end;
  readln;
  repeat //цикл перебора вариантов выплаты
    s := 0; //текущая сумма пока равна 0
    for i := 1 to 10 do s := s + a[i] * c[i]; //цикл подсчёта текущей суммы: к сумме добавляются цены текущих количеств монет
    if s = k then inc(n); //если текущая сумма достигла целевой суммы, то инкрементируем количество найденных
    for i := 10 downto 1 do //цикл формирования наборов
      begin
        q := c[i] = b[i]; //факт достижения максимального значения текущего количества i-й монеты
        if q //если количество i-х монет максимально
          then for j := i to 10 do c[j] := 0 //то обнуляем текущие количества от i-й монеты до последней
          else begin //иначе (если не максимально)
            inc(c[i]); //инкрементируем количество i-й монеты
            break //и досрочно выходим из цикла формирования наборов
          end
      end
  until q; //если последняя монета включена в сумму максималльным количеством, прекращаем формировать наборы
  writeln(n); //печатаем количество наборов
  readln
end.
0
06.12.2017, 17:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2017, 17:30
Привет! Вот еще темы с ответами:

Определить, сколько видов товара имеют стоимость меньшую, чем средняя стоимость всех видов товара. - Pascal
В массиве записана информация о стоимости 20 видов товара. Определить, сколько видов товара имеют стоимость меньшую, чем средняя стоимость...

Даны два массива а(10) и b(10). Вычислить a1*b10+a2*b9+...+a10*b1 - Turbo Pascal
даны два массива а(10) и b(10) вычислить a1*b10+a2*b9+...+a10*b1

Наборы монет. - Pascal
Не судите строго, за наглость, если таковая наблюдается), но не могли бы вы помочь ещё и с этой задачкой: Составить алгоритм, сколько...

Все отрицательные компоненты вещественного вектора a(a1,a2,…,a10) заменить их квадратами - Pascal
Помогите написать программу Все отрицательные компоненты вещественного вектора a(a1,a2,…,a10) заменить их квадратами.


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

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

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