Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка Пузырьком, Помогите задачу решыть  
:(
    Опции темы
ddosDns
  Дата 4.7.2010, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.7.2010

Репутация: нет
Всего: нет



Задача:
Дана последовательность не более 100 чисел,вводятся все числа пользователем
0-конец файла (программы)
Отсортировать все введенные числа по возрастанию 
Вводится число ,нужно вставить его в последовательность не нарушая сортировку и дать номер позиции числа!
Помогите пожалуйста 

PM MAIL   Вверх
ddosDns
Дата 4.7.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.7.2010

Репутация: нет
Всего: нет



начало зделал немного
Код

program sort;
uses crt;
const EOF=0;
type dataA=array [1..100] of integer;
var a:dataA;
i,j,n:integer;
begin
clrscr;
for i:=1 to 100 do
begin
write ('input ',i,' element of sequance');
readln (a[i]);
if a[i]=EOF then break;
end;
end.

дальше не знаю как отсортировать по возрастанию+ввести число и что бы мне показало позицию на какою оно вставлено и что вставлялось не нарушая сортировки по возрастанию помогите   

Это сообщение отредактировал(а) ddosDns - 4.7.2010, 12:47
PM MAIL   Вверх
~FoX~
Дата 4.7.2010, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 1
Всего: 68



Вот тебе пузырек:
Код

var
  i, j, TEMP: integer;
begin
  for i := 1 to 99 do begin
    for j := i to 100 do begin
      if a[i] > a[j] then begin 
        TEMP := a[i];
        a[i] := a[j];
        a[j] := temp;
      end; //if
    end; // j
  end; //i
end;

На счет вставки, тут на самом деле проще использовать указатели нежели массив

Это сообщение отредактировал(а) ~FoX~ - 4.7.2010, 23:06


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
LoveMeCozImBLONDE
Дата 10.7.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 27.5.2009

Репутация: нет
Всего: нет



Код

uses crt;
type 
mass=array[1..100] of integer;

procedure sort(var a:mass;n:integer;);
var
  i, j, TEMP: integer;
begin
for i := 1 to n-1 do begin
    for j := i to n do begin 
      if a[i] > a[j] then begin 
        TEMP := a[i];
        a[i] := a[j];
        a[j] := temp;
          end; 
end;
  end; 
end;
var
b,c:mass;
k,l:integer;
begin
clrscr;
write('VVedite kol-vo elementov - ');
readln(n);
for k:=1 to n do 
readln(b[k]);
sort(b,n);
write('Enter number which u want to add - ');
readln(l);
a[n+1]:=l;
sort(b,n+1);
for i:=1 to n+1 do
write(a[k]:3:2);
readln;
end.


написал на коленке, проверить надобы может дето чото напутал, т.к. делфи уже давно не включал=)

Это сообщение отредактировал(а) LoveMeCozImBLONDE - 10.7.2010, 18:24
PM MAIL   Вверх
Somewho
Дата 11.7.2010, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.7.2010

Репутация: нет
Всего: нет



Во-первых, по-моему тут надо не 
Код
procedure sort(var a:mass;n:integer;);
var
  i, j, TEMP: integer;
begin
for i := 1 to n-1 do begin
    for j := i to n do begin 
      if a[i] > a[j] then begin 
        TEMP := a[i];
        a[i] := a[j];
        a[j] := temp;
          end; 
end;
  end; 
end;
, а 
Код
procedure sort(var a:mass;n:integer;);
var
  i, j, TEMP: integer;
begin
for i := 1 to n-1 do begin
    for j := i+1 to n do begin 
      if a[i] > a[j] then begin 
        TEMP := a[i];
        a[i] := a[j];
        a[j] := temp;
          end; 
end;
  end; 
end;


Во-вторых, зачем писать 
Код
a[k]:3:2
, если число целое?
И в-третьих, собственно говоря, почему 
Код
write(a[k]:3:2);
 в конце? Ведь a[k] - это вообще левое число, это максимальный элемент в массиве до вписывания нового числа ;)

Если ошибаюсь - прошу обьяснить.
PM MAIL   Вверх
LoveMeCozImBLONDE
Дата 11.7.2010, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 27.5.2009

Репутация: нет
Всего: нет



там тоесть a[i]
ето мог бы и сам догадатся)
PM MAIL   Вверх
Somewho
Дата 11.7.2010, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.7.2010

Репутация: нет
Всего: нет



LoveMeCozImBLONDE, с меня плохой телепат smile

У меня вот вопрос по самой задаче: нам же не нужно выводить сам отсортированный массив, да? Тогда почему мы не можем просто посчитать кол-во элементов в массиве, которые меньше заданного числа, прибавить единицу - и мы получим ответ?

P.S. Зачем ты делаешь две подряд сортировки, если можно сразу добавить элемент, а потом уже всё сортировать? ;)

Это сообщение отредактировал(а) Somewho - 11.7.2010, 21:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1071 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.