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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2011, 14:57   #1
Nvd
 
Регистрация: 12.03.2011
Сообщений: 9
Вопрос Динамические массивы

Задан одномерный массив целых чисел.
Найти наименьшее натуральное число, не представимое суммой никаких элементов массива.
Сумма может состоять и из одного слагаемого, но каждый элемент массива может входить в нее не более одного раза.(в Delphi)
Код:

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b:array of integer;
  k,i,n,c,ch:integer;
  procedure vivod(b:array of integer);
  var c:integer;
  begin
  for c:=low(b) to high(b) do
  write(b[c]:4);
  writeln;
  end;
begin
  randomize;
  write('N= ');
  readln(n);
  setlength(a,n);
  for i:=low(a) to high(a)  do
  a[i]:=random(100);
  for i:=low(a) to high(a) do
  for k:=low(a) to high(a)do
  for ch:=a[1] to a[i] do
  begin
  if ch<>a[i] then
  begin
  c:=c+1;
  setlength(b,c);
  b[c-1]:=ch;
  end
  else write('');
  end;
  vivod(b);

  readln;


end.

Последний раз редактировалось Stilet; 14.03.2011 в 07:33.
Nvd вне форума Ответить с цитированием
Старый 13.03.2011, 18:19   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

ну и? что требуется от нас?
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 14.03.2011, 07:30   #3
Nvd
 
Регистрация: 12.03.2011
Сообщений: 9
Сообщение

[QUOTE=RUSt88;756159]ну и? что требуется от нас?[/QU
Довести этот код до ума!!!
Nvd вне форума Ответить с цитированием
Старый 14.03.2011, 12:13   #4
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
Довести этот код до ума!!!
эмоций поменьше своими восклиц. знаками

что не работает, в чем проблема, какие ошибки, или ты думаешь, что сейчас все побегут смотреть твой код? написал утвердительное предложение с точкой и желаешь ответа на него, ответы даются на вопросы
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 14.03.2011, 14:10   #5
Nvd
 
Регистрация: 12.03.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
эмоций поменьше своими восклиц. знаками

что не работает, в чем проблема, какие ошибки, или ты думаешь, что сейчас все побегут смотреть твой код? написал утвердительное предложение с точкой и желаешь ответа на него, ответы даются на вопросы
Как сделать так, чтобы элементы массива при выводе не повторялись?
Nvd вне форума Ответить с цитированием
Старый 14.03.2011, 15:45   #6
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

проверять часть массива до текущего на предмет совпадений
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 14.03.2011, 16:28   #7
Nvd
 
Регистрация: 12.03.2011
Сообщений: 9
Восклицание

Цитата:
Сообщение от Zer0 Посмотреть сообщение
проверять часть массива до текущего на предмет совпадений
напиши???!!!
Nvd вне форума Ответить с цитированием
Старый 15.03.2011, 08:12   #8
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

у меня то уже все готово, Вы оставляли пост и в разделе фриланс, я отписывался
http://programmersforum.ru/showpost....73&postcount=7
http://programmersforum.ru/showpost....74&postcount=9
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 15.03.2011, 14:52   #9
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
c:=c+1;
откуда c, переменные всегда надо инициализировать
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b:array of integer;
  k,i,n,c,ch:integer;
  procedure vivod(b:array of integer);
  var c:integer;
  begin
  for c:=low(b) to high(b) do
  write(b[c]:4);
  writeln;
  end;
begin
  randomize;
  write('N= ');
  readln(n);
  setlength(a,n);
  c:=0;
  for i:=low(a) to high(a)  do
  a[i]:=random(100);
  for i:=low(a) to high(a) do
  for k:=low(a) to high(a)do
  for ch:=a[1] to a[i] do
  begin
  if ch<>a[i] then
  begin
  c:=c+1;
  setlength(b,c);
  b[c-1]:=ch;
  end
  else write('');
  end;
  vivod(b);

  readln;


end.
А вообще те надо удаить все повторяющиеся значения так?
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы в c++ kosteck Помощь студентам 1 19.12.2010 18:08
Динамические массивы в с++ Metallica Помощь студентам 0 23.11.2010 18:32
Динамические массивы с++ maxsept Общие вопросы C/C++ 2 27.10.2010 20:16
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09