Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.06.2012, 19:31
Sersgant Sersgant вне форума
Прохожий
 
Регистрация: 07.06.2012
Сообщения: 2
Репутация: 10
Радость Проблема с кодом

Только начал изучать Delphi
Возникла проблема с кодом((
Помогите пожалуйста.
Условие задачи:
Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся более двух раз, и вывести размер полученного массива и его содержимого.

Вот мой код

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..99] of integer;
i,j,m,n,z,k,p,l:integer;
begin
p:=0;
N:=strtoint(Edit1.Text);
for i:=1 to n do
 begin
  a[i]:=random(100)-50;
  k:=0;
for j:=1 to n do
 begin
  if a[i]=a[j] then k:=k+1;
  if i=j then k:=k-1;
  if k=2 then
             begin
               for z:=1 to n do
                begin
                 a[i]:=a[n];
                 n:=n-1;
                end;
             end;

  end;
  label1.caption:=label1.caption+IntToStr(a[i])+' ';
end;
for i:=1 to n do
 begin
  p:=p+1;
end;
Edit2.text:=inttostr(p);
end;
Ответить с цитированием
  #2  
Старый 07.06.2012, 19:36
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

В чем проблема?
Сделаю несколько предположений:
1) Массив еще не заполнен, а уже начинается поиск. Как следствие - на выходе бред.
2) В конце последнего цикла всегда будет p=n. Зачем тогда этот цикл?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 07.06.2012, 19:42
Sersgant Sersgant вне форума
Прохожий
 
Регистрация: 07.06.2012
Сообщения: 2
Репутация: 10
По умолчанию

Т.е нужно сделать отдельным цикл присваивания элементам массива рандомного числа?
А лишь потом искать элементы подходящие под условие задачи?
И почему p=n?
Я просто самоучка)
Ответить с цитированием
  #4  
Старый 07.06.2012, 19:51
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

1) Разумеется отдельным. Сначала массив надо заполнить, а потом с ним работать.
2) Почему P=N - проанализируй.
Код:
p:=0;
...
for i:=1 to n do
begin
  p:=p+1;
end;
N раз P увеличиваем на 1, изначально p = 0.
Следовательно, цикл бесполезен.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
Sersgant (07.06.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter