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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2008, 13:18   #1
Gaika
Пользователь
 
Аватар для Gaika
 
Регистрация: 02.07.2008
Сообщений: 11
По умолчанию Объясните,плизззззз)

Код:
procedure TForm1.Button1Click(Sender: TObject);
Var k,i,j,n,m:integer;
    f:Tfile;
begin
      AssignFile(f,Edit2.Text);
      Rewrite(f);
      Memo1.Lines.Clear;
      k:=random(StrToInt(Edit1.Text))+1;
      n:=StrToInt(Edit3.Text);
      m:=StrToInt(Edit4.Text);
      for i:=0 to k-1 do
      Begin
        j:=random(m-n+1)+n;
        Write(f,j);
        Memo1.Lines.Add(IntToStr(j));
      End;
      CloseFile(f);
end;

procedure TForm1.Button2Click(Sender: TObject);
var n:integer;
    f:Tfile;
begin
if OpenDialog1.Execute then
Begin
   AssignFile(f,OpenDialog1.FileName);
   Reset(f);
   Memo1.Lines.Clear;
   while not eof(f) do
   Begin
    read(f,n);
    Memo1.Lines.Add(IntToStr(n));
   end;
 end;
   CloseFile(f);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
    randomize;
end;

procedure TForm1.Button3Click(Sender: TObject);
var a,a1:array of integer;
    n,i,max,t:integer;
    f:Tfile;
begin
if OpenDialog1.Execute then
Begin
   AssignFile(f,OpenDialog1.FileName);
   Reset(f);
   Memo1.Lines.Clear;
   Setlength(a,1);
   Setlength(a1,1);
   while not eof(f) do
   begin
    read(f,n);
    Memo1.Lines.Add(IntToStr(n));
    if n>high(a) then
    Begin
      Setlength(a,n+1);
      Setlength(a1,n+1);
     a1[n]:=1;End
    else
a1[n]:=a1[n]+1;
    end;
    max:=a1[n];
    t:=n;
    for i := 0 to n do
       if (a1[i]<>0) and (a1[i]>max) then
       begin
         max:=a1[i];
         t:=i;
       end;
    Label10.Caption:=IntToStr(t);
    Label8.Caption:=IntToStr(a1[t]);

    end;
    CloseFile(f);
end;
Вообщем процедура TForm1.Button3Click(Sender: TObject) обрабатывает ранее создаммый файл и ищет в нем число,которое встречается в нем чаще всего и сколько раз,скажите зачем делать это:
if n>high(a) then
    Begin
      Setlength(a,n+1);
      Setlength(a1,n+1);
     a1[n]:=1;                               ?
End 
    else
a1[n]:=a1[n]+1;                            ?
    end;

Последний раз редактировалось Stilet; 02.07.2008 в 13:43.
Gaika вне форума Ответить с цитированием
Старый 02.07.2008, 13:19   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Это операторы присваивания. Что в них непонятного?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 02.07.2008, 13:29   #3
Gaika
Пользователь
 
Аватар для Gaika
 
Регистрация: 02.07.2008
Сообщений: 11
По умолчанию

Я не совсем идиотка,знаю,что это операторы присваивания,зачем 1 присваиваем,что нам это дает?
Gaika вне форума Ответить с цитированием
Старый 02.07.2008, 13:38   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Это надо спросить у человека который писал этот алгоритм.
Ибо там какойто бред написанн.

Яб прошёлся тупо до конца мемо и набивал бы двумерный массив встречающимися цифрами и записывал их кол-во.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 02.07.2008, 13:44   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну-ну. Никто тут обзываться и не думал.
Просто такие вопросы либо к автору либо к Ктулху.
Может так новый элемент инициируется.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2008, 14:06   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

для каждого встретившегося числа,
если такого числа не было в массиве то массив расширяется до размера, равного встретившемуся числу, и счётчик (значение в массиве) присваивается единице (число встретилось первый раз).
Если это число уже было в массиве, то счётчик увеличивается на единицу.
И, кстати, алгоритм очень плохой... я бы даже сказал - отвратительный ;-((((
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.07.2008, 18:01   #7
Gaika
Пользователь
 
Аватар для Gaika
 
Регистрация: 02.07.2008
Сообщений: 11
По умолчанию

Ну уж какой есть)Спасибо большое))))
Gaika вне форума Ответить с цитированием
Старый 02.07.2008, 18:05   #8
Gaika
Пользователь
 
Аватар для Gaika
 
Регистрация: 02.07.2008
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Карась Посмотреть сообщение
Яб прошёлся тупо до конца мемо и набивал бы двумерный массив встречающимися цифрами и записывал их кол-во.
В задаче есть условие: считывать элементы фаила в массив нельзя!
Gaika вне форума Ответить с цитированием
Старый 02.07.2008, 21:26   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Gaika
В задаче есть условие: считывать элементы фаила в массив нельзя!
Опять очередная задача из серии "почешите-ка себе левое ухо правой ногой (пользоваться руками нельзя!)" :-(

Ну, не видя исходного условия задачи, трудно что-то предлагать/предполагать, но, я очень боюсь, что если Вы в файле напишете большое число (например 30000000000) - то программе может наступить кирдык...
и если встретится отрицательное число... попробуйте..

Впрочем, главное, чтобы Вас и Вашего преподавателя это решение устраивало (а в реальной жизни я бы за такие решения в дворники программеров переводил... ;-)

Последний раз редактировалось Serge_Bliznykov; 02.07.2008 в 21:29.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.07.2008, 21:40   #10
Gaika
Пользователь
 
Аватар для Gaika
 
Регистрация: 02.07.2008
Сообщений: 11
По умолчанию

Ну да,с отрицательными числами её глючи,но надеюсь особо придираться не будут)))А прога,для первого-то курса,помоему вполне сойдет!
Gaika вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните скрипт Bemby Фриланс 1 14.08.2008 10:08
объясните что и как (ВычМат) zinnyrik Помощь студентам 1 18.06.2008 13:38
объясните код Rend1 Общие вопросы Delphi 18 01.02.2008 14:52