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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2012, 21:38   #1
EDK
 
Регистрация: 09.10.2012
Сообщений: 7
По умолчанию Упорядочить по фамилии (методом пузырька) в делфи

Создать массив, структура которого фамилия и номер телефона, упорядочить по фамилии.
Так так проходим тему сортировки пузырьком, нужно это сделать именно этим методом.
Желательно это сделать в StringGrid, и запрограмировать кнопку на вывод результата в StringGrid.
Нужно это же задание выполнить методами: минимального элемента и вставки.
Помогите кто знает.
EDK вне форума Ответить с цитированием
Старый 09.10.2012, 21:41   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

а с чем именно у вас трудности ... с объявлением типа структуры, или же сортировать это все?....
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 09.10.2012, 21:46   #3
EDK
 
Регистрация: 09.10.2012
Сообщений: 7
По умолчанию Наверное со всем.

Не знаю, даже с чего начать.
Так уж вышло, что полный ноль.
Есть задача аналогичная, только сортирует числа, а вот переделать на имена не знаю как.

Вод код (запрограмированой кнопки):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,k,c,x:integer;
    ss:string;
begin
k:=1;
for i:=1 to stringgrid1.RowCount do begin
 m.MNam[i]:=stringgrid1.cells[1,i];
 val(stringgrid1.Cells[2,i],m.MBal[i],c);
 end;
while k>0 do begin
 k:=0;
  for i:=1 to stringgrid1.rowcount do begin
  if m.MBal[i]<m.MBal[i+1] then begin
   k:=1;
   x:=m.MBal[i];
   m.MBal[i]:=m.MBal[i+1];
   m.MBal[i+1]:=x;
   ss:=m.MNam[i];
   m.MNam[i]:=m.MNam[i+1];
   m.MNam[i+1]:=ss;
   end;
  end;
  end;
for i:=1 to stringgrid1.RowCount do begin
 str(m.MBal[i],ss);
 stringgrid1.cells[2,i]:=ss;
 stringgrid1.cells[1,i]:=m.MNam[i];
 end;
end;

Последний раз редактировалось EDK; 09.10.2012 в 23:45.
EDK вне форума Ответить с цитированием
Старый 09.10.2012, 22:20   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

по сути вам лишь переписать структуру... и немного модификаций в коде... начните со структуры... попытайтесь сделать что либо сами...
если что то делали САМИ... то представляйте... поможем разобраться... не нужно бросать задание своего соседа... вам же этим заниматься... если не по окончании учебного заведения, то во всяком случае во время нахождения в нем...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 09.10.2012, 23:34   #5
EDK
 
Регистрация: 09.10.2012
Сообщений: 7
По умолчанию

Вы не могли бы поподробнее написать, о модификациях в коде.
И о переводе числительных и текстовых значений ?

Заглядывая на перёд, не могли бы вы помочь разобраться с этим примером методами: минимального элемента и вставки.

Последний раз редактировалось Stilet; 10.10.2012 в 08:18.
EDK вне форума Ответить с цитированием
Старый 10.10.2012, 00:41   #6
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

написал код в паскале...
немного упрощен.... но работает...
Код:
type
struc = record
  Famil : string[50];
  number : string[15];
end; 
var
i,j,n :integer;
mas : array [1..20] of struc;
buf : struc;
begin
mas[1].famil := 'Сидоров';
mas[1].number := '+743392462';
mas[2].famil := 'Арсеньев';
mas[2].number := '+823473547';
mas[3].famil := 'Петров';
mas[3].number := '+823473547';
mas[4].famil := 'Иванов';
mas[4].number := '+823473547';
n := 4; // т.к. записей у нас всего 4
for i:=1 to n -1 do
  for j:= 1 to n - i do
    if mas[j].famil > mas[j+1].famil then
      begin
        buf.famil := mas[j].famil;
        buf.number := mas[j].number;
        mas[j].number := mas[j + 1].number;
        mas[j].famil := mas[j+1].famil;
        mas[j+1].number := buf.number;
        mas[j+1].famil := buf.famil;
      end;
  for i:= 1 to n do
    writeln(mas[i].famil, ' :-> ', mas[i].number);
end.
вам лишь сделать свой ввод данных, подсчет количества записей и собственно вывод

сортировки
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 10.10.2012, 11:05   #7
EDK
 
Регистрация: 09.10.2012
Сообщений: 7
По умолчанию

VIK_aka_TOR, огромное спасибо, буду работать над этой темой.
EDK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива методом пузырька SashaBogush Помощь студентам 0 11.08.2012 15:08
C++, убывание методом пузырька STIFLER32 Общие вопросы C/C++ 2 07.02.2011 01:40
курсач по С++ на тему сортировок методом пузырька и челночным методом ffocus Фриланс 13 05.01.2010 20:20
Сортировка методом пузырька fygas1991 Общие вопросы C/C++ 5 15.11.2009 21:39
Упорядочить данные по фамилии автора-PASCAL Newnata Помощь студентам 2 20.11.2007 16:59