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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2014, 04:18   #1
#Dum-Dum#
 
Регистрация: 28.11.2014
Сообщений: 3
По умолчанию Работа с модулями. Сортировки. Pascal abc. Помогите.

Доброго времени суток.
Задали нам лабу по сортировкам и поискам на паскале. Все бы ничего, только я решила извратиться с модулями. Когда писала быструю сортировку и в основной программе вызывала ее, все работало, но когда я добавила еще сортировок, тут компилятор мой начал плакать и я не могу понять, почему. Подпрограммы проверяла - ошибок нет. Что-то с основной прогой.
Помогите пожалуйста, очень надо.
З. Ы. Если что - я дико буду тупить, так что в заранее прошу прощения за тормознутость и недопонимания, ибо я всего лишь 1 курс.
Вот сама программа:
Код:
Program Main;
Uses
  Fast_Sorting, Bubble_Sorting, Insert;
Var a: TVector;
    i: word;
    N: integer;
Procedure Line_Search(a:TVector; B:integer; N:integer);
  var i:integer;
begin
  for i:=1 to N do
  if a[i] = B then
  writeln('Элемент на позиции i',i)
  else
  writeln('Такого элемента нет в массиве.');
end;

begin
for i :=1 to Nmax do
      a[i]:=random(Nmax);
      
writeln('Количество элементов в массиве ');
read(N);      

for i :=1 to N do
      write(a[i]:8);

writeln();  
    
 
Q_Sort(a, 1, N);
for i:=1 to N do
write(a[i]:8);


B_Sort(a, N);
for i:=1 to N do
write(a[i]:8);


I_Sort(A, N);
for i:=1 to N do
write(a[i] : 8);
end.

Последний раз редактировалось #Dum-Dum#; 28.11.2014 в 04:37.
#Dum-Dum# вне форума Ответить с цитированием
Старый 28.11.2014, 04:20   #2
#Dum-Dum#
 
Регистрация: 28.11.2014
Сообщений: 3
По умолчанию

На всякий случай прилагаю еще подпрограммы:
Код:
Unit Bubble_Sorting;
  interface
const
  Nmax=20000;
type
  TVector=array[1..Nmax] of word;
Procedure Bubble(var a:TVector; N:integer);
var i,j:integer;
      r:integer; 
  implementation
Procedure Bubble(var a:TVector; N:integer);
var i,j:integer;
      r:integer;
begin
for i:=1 to N do
for j:= 1 to N-i do
if a[j]>a[j+1] then
begin
r:=a[j+1];
a[j+1]:=a[j];
a[j]:=r;
end;
Bubble(a, N);
end;
end.


Код:
Unit Fast_Sorting;
  interface
const
  Nmax=20000;
type
  TVector=array[1..Nmax] of word;
Procedure Q_Sort(Var a: TVector;
                      st, fn: word);
  implementation
Procedure Q_Sort(Var a: TVector;
                      st, fn: word);
  Var flag: boolean;
      i, j: word; c: word;
begin
  if st<fn then
    begin
     i:=st;
     j:=fn;
     flag:=true;
    while i<j do
      if flag then
        begin
        while a[i]<a[j] do dec(j);
        c:=a[i];
        a[i]:=a[j];
        a[j]:=c; 
        flag:=not flag;
        inc(i);
        end
  else
  begin
        while a[i]<a[j] do inc(i);
        c:=a[i];
        a[i]:=a[j];
        a[j]:=c; 
        flag:=not flag;
        dec(j);
        end;
 Q_Sort(a, st, i-1);
 Q_Sort(a, j+1, fn);
 end;
 end;
end.

Код:
Unit Insert;
  interface
  Const Nmax = 20000;
Type TVector = array[1..Nmax] of integer;
Var A: TVector;
    N: integer;
    i: integer;

implementation
Procedure I_Sort(var A:Tvector; N:integer);
 var i, j, r:integer;
begin
for i:=2 to N do
for j:= 1 to i-1 do
if a[i+1-j]<a[i-j] then
  begin
  r:=a[i-j];
  a[i-j]:=a[i+1-j];
  a[i+1-j]:=r;
  end;
end;

begin
for i:=1 to Nmax do
a[i]:=random(Nmax);
writeln('Введите размерность массива ');
read(N);
for i:=1 to N do
write(a[i] : 6);
writeln();
I_Sort(A, N);
for i:=1 to N do
write(a[i] : 8);
end.

Последний раз редактировалось #Dum-Dum#; 28.11.2014 в 04:27.
#Dum-Dum# вне форума Ответить с цитированием
Старый 28.11.2014, 05:11   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Так надо же писать, что сообщает компилятор..

-- У вас вызывается B_Sort, а она нигде не описана.
-- Вызывается I_Sort, и она не описана в разделе interface. А из раздела implementation она не видна.
-- И почему тип TVector описывается в каждом модуле? Ну ладно, так бы прокатило, только если одинаково. А он в двух модулях - массив of Word, а в третьем - массив of Integer
type_Oleg вне форума Ответить с цитированием
Старый 28.11.2014, 09:33   #4
#Dum-Dum#
 
Регистрация: 28.11.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Так надо же писать, что сообщает компилятор..

-- У вас вызывается B_Sort, а она нигде не описана.
-- Вызывается I_Sort, и она не описана в разделе interface. А из раздела implementation она не видна.
-- И почему тип TVector описывается в каждом модуле? Ну ладно, так бы прокатило, только если одинаково. А он в двух модулях - массив of Word, а в третьем - массив of Integer
О, спасибо большое) Это я исправила)))
Только он выделяет вот эту строчку
и говорит "неправильный тип параметров подпрограммы"...
Код:
Q_Sort(a, 1, N)
#Dum-Dum# вне форума Ответить с цитированием
Старый 28.11.2014, 12:38   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Только он выделяет вот эту строчку
и говорит "неправильный тип параметров подпрограммы"...
я сомневаюсь, что Вы исправили это:
Цитата:
Сообщение от type_Oleg
-- И почему тип TVector описывается в каждом модуле? Ну ладно, так бы прокатило, только если одинаково. А он в двух модулях - массив of Word, а в третьем - массив of Integer
у Вас ТОЧНО TVector описан ОДИН раз на все ваши программы/модули ?!

если да - выкладывайте исправленный текст, посмотрю, что не так..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с модулями с модулями DesignIntf и DesignEditors. Где найти их dcu? DrAndriy Общие вопросы Delphi 13 22.12.2017 20:55
Работа с файлами(Pascal ABC) Tanya-Manya Паскаль, Turbo Pascal, PascalABC.NET 2 13.03.2013 18:58
Работа с записями и модулями (pascal) L@ris@ Помощь студентам 0 23.05.2012 18:19
помогите написать программу в Pascal c модулями ...Dreamer... Помощь студентам 2 07.05.2009 13:58
Помогите пожалуйста в Pascal (Алгоритм сортировки) JayDe Помощь студентам 3 29.01.2009 19:13