Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2009, 12:14   #1
QWR
 
Аватар для QWR
 
Регистрация: 04.03.2009
Сообщений: 8
Смущение Люди добрые (програмисты), помогите решить задачку на Паскале!

Помогите, пожалуста!!!
Буду очень благодарен

Тема: Работа с множествами
Дано N монет номиналами M1, M2, M3, ... , Mn. Определить можно ли из них составить сумму S и как же
QWR вне форума Ответить с цитированием
Старый 07.03.2009, 12:20   #2
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

Код:
var
i,sum,n:integer;
m: array[1..100] of integer;
begin
sum:=0;
writeln('vvedite kolichestvo monet');
readln(n);
for i:=0 to n do
sum:=sum+m[i];
readln;
end.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 07.03.2009, 12:23   #3
QWR
 
Аватар для QWR
 
Регистрация: 04.03.2009
Сообщений: 8
По умолчанию

Smarik

Спасибочко!!!
Ща посмотрим...
QWR вне форума Ответить с цитированием
Старый 07.03.2009, 12:55   #4
QWR
 
Аватар для QWR
 
Регистрация: 04.03.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от [Smarik] Посмотреть сообщение
Код:
var
i,sum,n:integer;
m: array[1..100] of integer;
begin
sum:=0;
writeln('vvedite kolichestvo monet');
readln(n);
for i:=0 to n do
sum:=sum+m[i];
readln;
end.
Smarik, она работает несовсем так, как задано в задаче, но всёровно, спасибо. Я попытаюсь ее немножко переделать \ дополнить, может что-то получится!
QWR вне форума Ответить с цитированием
Старый 07.03.2009, 14:37   #5
Evolution
 
Регистрация: 07.03.2009
Сообщений: 3
По умолчанию

Помогите, пожалуста с задачкой=)
Тема: Использование модулей System и CRT.
Найти максимальный и минимальный элемент матрицы, их индексы. Для вывода элементов матрицы составить процедуру, которая обеспечивает ввод элементов в виде таблицы.
Использовать не менее 5 процедур и функций!
Evolution вне форума Ответить с цитированием
Старый 07.03.2009, 16:15   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

QWR
Ищет все возможные комбинации и выводит их, а также их количество.

Код:
uses crt;
var
N : integer;
M : array[1..100] of integer;
S,cnt : longint;
i : integer;

procedure fun(k : integer; tekS : longint; st : string);
 var i : integer;
 bf,ss : string;
begin
if k>N then
 begin
 if tekS = S then
   begin
   writeln(st);
   inc(cnt);
   end;
 exit;
 end;
{--}
i := 0;

while (M[k]*i + tekS)<=S do
  begin
  ss := st;
  if i = 1 then
    begin
    Str(M[k],bf);
    if st<>'' then ss := ss + ' + ';
    ss := ss + bf;
    end
  else if i>1 then
    begin
    Str(i,bf);
    if ss<>'' then ss := ss + ' + ';
    ss := ss + bf;
    Str(M[k],bf);
    ss := ss + '*' + bf;
    end;
  fun(k+1,(tekS + M[k]*i),ss);
  inc(i);
  end;  {while}
end;
{----------}

begin
clrscr;
write('Enter N: ');
readln(N);
writeln;
for i:=1 to N do
 begin
 write('Enter M[',i,']: ');
 readln(M[i]);
 end;
writeln;
write('Enter S: ');
readln(S);
writeln;
{----------}
cnt := 0;
fun(1,0,'');
writeln('------');
writeln('Vsego sposobov: ',cnt);

readln;
end.
Пример ввода:
Код:
Enter N: 2

Enter M[1]: 1
Enter M[2]: 3

Enter S: 7

1 + 2*3
4*1 + 3
7*1
------
Vsego sposobov: 3
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.03.2009, 16:52   #7
QWR
 
Аватар для QWR
 
Регистрация: 04.03.2009
Сообщений: 8
По умолчанию

Sazary большое спасибо=)
QWR вне форума Ответить с цитированием
Старый 07.03.2009, 16:57   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Пардон.. Немного не так понял условие...наверное.
Дано ровно N монет (где каждая своего достоинства)? Или есть куча монет с заданными достоинствами?

В общем, если есть ровно N монет, то код такой:
Код:
uses crt;
var
N : integer;
M : array[1..100] of integer;
S,cnt : longint;
i : integer;

procedure fun(k : integer; tekS : longint; st : string);
 var i : integer;
 bf,ss : string;
begin
if k>N then
 begin
 if tekS = S then
   begin
   writeln(st);
   inc(cnt);
   end;
 exit;
 end;
{--}

i := 0;
while ((M[k]*i + tekS)<=S) and (i<2) do
  begin
  ss := st;
  if i = 1 then
    begin
    Str(M[k],bf);
    if st<>'' then ss := ss + ' + ';
    ss := ss + bf;
    end;

  fun(k+1,(tekS + M[k]*i),ss);
  inc(i);
  end;  {while}
end;
{----------}

begin
clrscr;
write('Enter N: ');
readln(N);
writeln;
for i:=1 to N do
 begin
 write('Enter M[',i,']: ');
 readln(M[i]);
 end;
writeln;
write('Enter S: ');
readln(S);
writeln;
{----------}
cnt := 0;
fun(1,0,'');
writeln('------');
writeln('Vsego sposobov: ',cnt);

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 07.03.2009 в 17:04.
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить интересную математическую задачку на Паскале. skl1f Помощь студентам 9 04.12.2008 01:10
Люди помоги решить задачку плиззззз!!!! mad777 Фриланс 3 03.06.2008 12:34
Люди добрые,помогите пожалуйста решить задачки!!! Мартышонок Паскаль, Turbo Pascal, PascalABC.NET 4 22.05.2008 08:00
Помогите решить задачку на строки в Паскале. TakeR Помощь студентам 8 26.12.2007 00:09