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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2016, 12:46   #1
dvpvitas
Пользователь
 
Регистрация: 07.02.2015
Сообщений: 22
По умолчанию Не получается сортировка методом пузырька

1.Описать массив записей, содержащий следующие поля:
 номер планеты по удалению от Солнца;
 название планеты;
 диаметр;
сортировка по диаметру методом пузырька.
Код:
uses crt;
type mas=record
nazv:string[30];
     nom,dim:integer;
     end;
     mass=array [1..20] of mas;
var a:mass;
    i,n,j:integer;
procedure puz(a:mass;n:integer);
var flag:boolean;
    tmp:mas;
 begin
                   for i:=1 to n do begin
                   flag:=false;
                   for j:=1 to i do
                   if A[j].dim>a[j+1].dim then
                   begin
                   tmp:=a[j];
                   a[j]:=a[j+1];
                   A[j+1]:=tmp;
                   flag:=true;
                   end;
                   if flag=false then
                   break;
                   end;
                   end;
procedure vivod(a:mass;n:integer);
begin
for i:=1 to n do
writeln(a[i].dim);
end;
begin
clrscr;
writeln('Заполните данные о планетах');
write('Введите кол-во планет: ');
read(n);
for i:=1 to n do
begin
writeln(i,'-я планета');
write('-номер планеты:');
readln(a[i].nom);
write('-название планеты:');
readln(a[i].nazv);
write('-диаметр:');
readln(a[i].dim);
end;
writeln;
puz(a,n);
vivod(a,n);
readln;
end.
Сортировка методом пузырька не получается

Последний раз редактировалось Аватар; 07.02.2016 в 13:28.
dvpvitas вне форума Ответить с цитированием
Старый 07.02.2016, 13:32   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
for i:=1 to n-1 do
  for j:=i+1 to n do
    if a[i].dim>a[j].dim then begin
      tmp:=a[i];
      a[i]:=a[j];
      a[j]:=tmp;
    end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.02.2016, 13:53   #3
dvpvitas
Пользователь
 
Регистрация: 07.02.2015
Сообщений: 22
По умолчанию

uses crt;
type mas=record
nazv:string[30];
nom,dim:integer;
end;
mass=array [1..20] of mas;
var a:mass;
i,n,j:integer;
procedure puz(a:mass;n:integer);
var flag:boolean;
tmp:mas;
begin
for i:=1 to n-1 do
begin
flag:=false;
for j:=i+1 to n do
begin
if a[i].dim>a[j].dim then
begin
tmp:=a[i];
a[i]:=a[j];
A[j]:=tmp;
flag:=true;
end;
if flag=false then;
break;
end;
i:=i+1;
end;
end;
procedure vivod(a:mass;n:integer);
begin
for i:=1 to n do
writeln(a[i].dim);
end;
begin
clrscr;
writeln('Заполните данные о планетах');
write('Введите кол-во планет: ');
read(n);
for i:=1 to n do
begin
writeln(i,'-я планета');
write('-номер планеты:');
readln(a[i].nom);
write('-название планеты:');
readln(a[i].nazv);
write('-диаметр:');
readln(a[i].dim);
end;
writeln;
puz(a,n);
vivod(a,n);
readln;
end.
не работает
dvpvitas вне форума Ответить с цитированием
Старый 07.02.2016, 13:57   #4
dvpvitas
Пользователь
 
Регистрация: 07.02.2015
Сообщений: 22
По умолчанию

uses crt;
type mas=record
nazv:string[30];
nom,dim:integer;
end;
mass=array [1..20] of mas;
var a:mass;
i,n,j:integer;
procedure puz(a:mass;n:integer);
var flag:boolean;
tmp:mas;
begin
for i:=1 to n-1 do begin
flag:=false;
for j:=i+1 to n do
if A[i].dim>a[j].dim then
begin
tmp:=a[i];
a[i]:=a[j];
A[j]:=tmp;
flag:=true;
end;
if flag=false then
break;
end;
end;
procedure vivod(a:mass;n:integer);
begin
for i:=1 to n do
writeln(a[i].dim);
end;
begin
clrscr;
writeln('Заполните данные о планетах');
write('Введите кол-во планет: ');
read(n);
for i:=1 to n do
begin
writeln(i,'-я планета');
write('-номер планеты:');
readln(a[i].nom);
write('-название планеты:');
readln(a[i].nazv);
write('-диаметр:');
readln(a[i].dim);
end;
writeln;
puz(a,n);
vivod(a,n);
readln;
end.
не работает программа

Последний раз редактировалось dvpvitas; 07.02.2016 в 14:04.
dvpvitas вне форума Ответить с цитированием
Старый 07.02.2016, 15:11   #5
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Цитата:
не работает программа
Потому, что ошибка
FPaul вне форума Ответить с цитированием
Старый 07.02.2016, 16:55   #6
dvpvitas
Пользователь
 
Регистрация: 07.02.2015
Сообщений: 22
По умолчанию

я знаю что там ошибка нужно её исправить
dvpvitas вне форума Ответить с цитированием
Старый 07.02.2016, 20:38   #7
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Это правильно. И ещё правильнее - ограничиться фразой "не работает программа".
FPaul вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива методом пузырька ХардХэви Общие вопросы C/C++ 9 03.06.2013 18:24
Сортировка методом пузырька marina12 Помощь студентам 1 13.04.2013 16:04
сортировка методом пузырька в делфи7 dragodar Помощь студентам 2 05.11.2012 19:25
Сортировка методом пузырька fygas1991 Общие вопросы C/C++ 5 15.11.2009 21:39
сортировка методом двухпроходного пузырька. Net* Общие вопросы C/C++ 3 26.05.2008 07:17