IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> сортировка пузырьком, помогите найти ошибку
gin
сообщение 23.12.2006 0:44
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Женский

Репутация: -  0  +


здравствуйте, помогите найти ошибку в коде. всего то надо отсортировать масив из файла по возрастанию, а результат неправильный.
например, в файле записано:
10
1 2 12 3 8 9 1 5 40 14
а выдает:
1 1 2 0 5 8 9 0 14 40.
а где ошибка - не вижу.


program sort;
const nmax = 100;
var a : array [1..nmax] of integer;
n : integer;
i, j, k : integer;
dat, rez : text;
begin
assign(dat, 'data.txt');
reset(dat);
assign(rez, 'rezultat.txt');
rewrite(rez);
read(n);
for i := 1 to n do read(a[i]);
for i := 1 to n-1 do
begin
k := i;
for j := i+1 to n do
if a[j] <= a[k] then k := j;
a[i] := a[i] + a[k];
a[k] := a[i] - a[k];
a[i] := a[i] - a[k];
end;
for i := 1 to n do
write(a[i], ' ');
close(dat);
close(rez);
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
мисс_граффити
сообщение 23.12.2006 0:58
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


покажи мне, пожалуйста, строку, где ты читаешь элементы из файла.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
gin
сообщение 23.12.2006 1:16
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Женский

Репутация: -  0  +


Цитата

покажи мне, пожалуйста, строку, где ты читаешь элементы из файла.



read(n);
for i := 1 to n do read(a[i]);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.12.2006 1:19
Сообщение #4


Гость






gin, разве ЭТО - из файла? По-моему, с клавиатуры...
 К началу страницы 
+ Ответить 
gin
сообщение 23.12.2006 1:26
Сообщение #5





Группа: Пользователи
Сообщений: 6
Пол: Женский

Репутация: -  0  +


не тот код взяла unsure.gif

read(dat, n);
for i := 1 to n do read(dat, a[i]);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.12.2006 1:35
Сообщение #6


Гость






Угу.. Продолжаем... А где здесь, собственно, "пузырек"? В "пузырьке" ведь сравниваются соседние элементы, правда? А у тебя?

Вот ЭТО - "пузырек":
  for i := 1 to n - 1 do begin

for j := i + 1 to n do
if a[j] <= a[j - 1] then begin
a[j] := a[j] + a[j-1];
a[j-1] := a[j] - a[j-1];
a[j] := a[j] - a[j-1];
end;

end;
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 17:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"