Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 135
1

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

07.07.2011, 19:43. Показов 3498. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У покупателя есть n монет достоинством H(1),..., H(n). У продавца есть m монет достоинством B(1),...,B(m). Может ли купить покупатель вещь стоимости S так, чтобы у продавца нашлась точная сдача (если она необходима).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2011, 19:43
Ответы с готовыми решениями:

10 видов монет достоинством a1..a10
Даны натуральные числа, a1..a10. Предположим, что имеются 10 видов монет достоинством a1..a10....

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

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

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

4
79 / 51 / 46
Регистрация: 30.09.2010
Сообщений: 138
08.07.2011, 05:27 2
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
uses crt;
const
    Max = 100;
type 
    MyType = array [1..Max]of integer;
procedure CreatArr(var TheArr:MyType;Size:integer);
var
        i:integer;
begin
        for i:=1 to Size do
        begin
                TheArr[i]:=random(max);
        end;
end;
{}
//вывод массива
procedure PrintArr(TheArr:MyType;Size:integer);
var
        i:integer;
begin
        for i:=1 to Size do
        begin
                write(TheArr[i],' ');
        end;
        writeln;
end;
{}
function Final(H,B:MyType;S:integer;n,m:integer):boolean;
var
    i,j:integer;
    Clon_Price:boolean;
    Temp:integer;
begin
    Final:=True;
    Clon_Price:=False;
    for i:=1 to n do
    begin
        if(H[i] = S)then
        begin
            Clon_Price:=True;
        end;
    end;
    if(Clon_Price=False)then
    begin
        for i:=1 to n do
        begin
            if(H[i]>20)then 
            begin
                Temp:=H[i]-S;
                for j:=1 to m do
                begin
                    if(B[i]=Temp)then
                    begin
                        Clon_Price:=True;
                    end;
                end;
            end;
        end;
    end;
    Final:=Clon_Price;
end;
var
    n,m:integer;
    S:integer;
    H,B:MyType;
begin
    repeat
        write('Введите количество монет у продавца и покупателя:');
        readln(n,m);
    until(n<Max)and(m<Max);
    write('введите сумму товара:');
    readln(S);
    CreatArr(H,n);
    CreatArr(B,m);
    {}
    PrintArr(H,n);
 
    PrintArr(B,m);
    {}
    if(Final(H,B,S,n,m) = True)then
    begin
        write('Купит!!');
    end
    else
    begin
        write('Нет сдачи');
    end
end.
1
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 135
08.07.2011, 06:21  [ТС] 3
Цитата Сообщение от ZevsNet Посмотреть сообщение
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
uses crt;
const
    Max = 100;
type 
    MyType = array [1..Max]of integer;
procedure CreatArr(var TheArr:MyType;Size:integer);
var
        i:integer;
begin
        for i:=1 to Size do
        begin
                TheArr[i]:=random(max);
        end;
end;
{}
//вывод массива
procedure PrintArr(TheArr:MyType;Size:integer);
var
        i:integer;
begin
        for i:=1 to Size do
        begin
                write(TheArr[i],' ');
        end;
        writeln;
end;
{}
function Final(H,B:MyType;S:integer;n,m:integer):boolean;
var
    i,j:integer;
    Clon_Price:boolean;
    Temp:integer;
begin
    Final:=True;
    Clon_Price:=False;
    for i:=1 to n do
    begin
        if(H[i] = S)then
        begin
            Clon_Price:=True;
        end;
    end;
    if(Clon_Price=False)then
    begin
        for i:=1 to n do
        begin
            if(H[i]>20)then 
            begin
                Temp:=H[i]-S;
                for j:=1 to m do
                begin
                    if(B[i]=Temp)then
                    begin
                        Clon_Price:=True;
                    end;
                end;
            end;
        end;
    end;
    Final:=Clon_Price;
end;
var
    n,m:integer;
    S:integer;
    H,B:MyType;
begin
    repeat
        write('Введите количество монет у продавца и покупателя:');
        readln(n,m);
    until(n<Max)and(m<Max);
    write('введите сумму товара:');
    readln(S);
    CreatArr(H,n);
    CreatArr(B,m);
    {}
    PrintArr(H,n);
 
    PrintArr(B,m);
    {}
    if(Final(H,B,S,n,m) = True)then
    begin
        write('Купит!!');
    end
    else
    begin
        write('Нет сдачи');
    end
end.
На С++ сделать сможешь
0
79 / 51 / 46
Регистрация: 30.09.2010
Сообщений: 138
08.07.2011, 11:59 4
вроде так

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
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
#include <iostream.h>
 
//using namespace std;
const int max = 100;
//procedure Enter Array
int CreatArr (int _Arr[],int _Size)
{
    for (int i=0;i<_Size;i++)
    {
        cin >> _Arr[i];
    }
    cout << "\n";
    return 0;
}
//{}
//procedure Print
int PrintArr(int Arr[],int _Size)
{
    for (int i=0;i<_Size;i++)
    {
        cout << Arr[i];
    }
    cout << "\n";
    return 0;
}
//{}
int Final(int H[],int B[],int S,int n,int m)
{
    int i,j;
    int Clon_Price;
    int Temp;
    Clon_Price = 0;
    for (i=0; i<n;i++)
    {
        if(H[i] == S)
        {
            Clon_Price = 1;
        }
    }
    if(Clon_Price == 0)
    {
        for (i=1;i<n;i++)
        {
            if(H[i]>S) 
            {
                Temp = H[i]-S;
                for (j=1;j<m;j++)
                {
                    if(B[i] == Temp)
                    {
                        Clon_Price = 1;
                    }
                }
            }
        }
    }
    return Clon_Price;
}
int main()
{
    int n,m;
    int S;
    int H[max],B[max];
 
    do{     
        cout << "\nÂâåäèòå êîëè÷åñòâî ìîíåò ó ïðîäàâöà è ïîêóïàòåëÿ:";
        cin >> n ;
        cin >> m;
    }while(n>max);
    cout << "\nââåäèòå ñóììó òîâàðà:";
    cin >> S;
    CreatArr(H,n);
    CreatArr(B,m);
    //{}
    PrintArr(H,n);
 
    PrintArr(B,m);
    //{}
    if(Final(H,B,S,n,m) == 1)
    {
        cout << "Êóïèò!!!";
    }
    else
    {
        cout << "Íåò ñäà÷è";
    }
    return 0;
    getchar();
}
Добавлено через 1 минуту
Цитата Сообщение от povtiasd051 Посмотреть сообщение
if(H[i]>20)then
здесь нужно за место 20 поставить переменную S. просто опечатался когда тестировал
Это 47 строка на паскале
0
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
12.02.2014, 23:35 5
Цитата Сообщение от ZevsNet Посмотреть сообщение
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
uses crt;
const
    Max = 100;
type 
    MyType = array [1..Max]of integer;
procedure CreatArr(var TheArr:MyType;Size:integer);
var
        i:integer;
begin
        for i:=1 to Size do
        begin
                TheArr[i]:=random(max);
        end;
end;
{}
//вывод массива
procedure PrintArr(TheArr:MyType;Size:integer);
var
        i:integer;
begin
        for i:=1 to Size do
        begin
                write(TheArr[i],' ');
        end;
        writeln;
end;
{}
function Final(H,B:MyType;S:integer;n,m:integer):boolean;
var
    i,j:integer;
    Clon_Price:boolean;
    Temp:integer;
begin
    Final:=True;
    Clon_Price:=False;
    for i:=1 to n do
    begin
        if(H[i] = S)then
        begin
            Clon_Price:=True;
        end;
    end;
    if(Clon_Price=False)then
    begin
        for i:=1 to n do
        begin
            if(H[i]>20)then 
            begin
                Temp:=H[i]-S;
                for j:=1 to m do
                begin
                    if(B[i]=Temp)then
                    begin
                        Clon_Price:=True;
                    end;
                end;
            end;
        end;
    end;
    Final:=Clon_Price;
end;
var
    n,m:integer;
    S:integer;
    H,B:MyType;
begin
    repeat
        write('Введите количество монет у продавца и покупателя:');
        readln(n,m);
    until(n<Max)and(m<Max);
    write('введите сумму товара:');
    readln(S);
    CreatArr(H,n);
    CreatArr(B,m);
    {}
    PrintArr(H,n);
 
    PrintArr(B,m);
    {}
    if(Final(H,B,S,n,m) = True)then
    begin
        write('Купит!!');
    end
    else
    begin
        write('Нет сдачи');
    end
end.
Хмм, а ведь подпрограмма не обрабатывает тот случай, когда сдачу можно дать несколькими монетами
0
12.02.2014, 23:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2014, 23:35
Помогаю со студенческими работами здесь

У покупателя есть n монет достоинством H(1)...H(n)
У покупателя есть n монет достоинством H(1)...H(n). У продавца есть m монет достоинством...

Способы выплаты суммы n с помощью монет достоинством 1,2,5,10 рублей
нужно составить програлу в делфи. в консольном окне. получить все способы выплаты суммы n с...

Определить число способов выплаты суммы n руб. с помощью монет достоинством 1, 2, 5 рублей
22. Дано натуральное число n(n&lt;100). a) Определить число способов выплаты суммы n руб. с помощью...

Сколько существует способов набора одного рубля при помощи монет достоинством 50коп., 20коп., 5коп. и 2коп
Составить алгоритм, определяющий, сколько существует способов набора одного рубля при помощи...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru