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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2010, 13:36   #1
kyop
Пользователь
 
Регистрация: 04.08.2010
Сообщений: 20
По умолчанию обработка массивов в модульном программирование

если у кого-нибудь есть свободное время, посмотрите, пожалуйста, мою задачу, сам я ошибки не вижу, модуль и программа компилируются и запускаются, но в процедуре shetab что-то идет не так… что именно, я понять не могу, возможно, обычная невнимательность.
Текст задачи: в нескольких массивах найти числа, попадающие в промежуток AB сравнить их вывести номер массива с наибольшим (наименьшим) числом, номер элемента сделать для программы меню.


программа:
Код:
program pr1;

uses crt,MAS1;

var mat:tmr1;
    rmas:tmr2;
    abmas:tmi1;
    kolmas,razmmas,nmin,nmax:integer;
    flkolmas,flrazmmas,flvvmat,flvvab,flshetab,flsrmas,flosrmas:boolean;
    a,b,min,max:real;

begin
clrscr;
vvodkolmas(kolmas,flkolmas);
vvodrazmmas(razmmas,flrazmmas);
vvab(a,b,flvvab);
vvodmat(mat,flvvmat,kolmas,razmmas);
clrscr;
shetab(abmas,flshetab,kolmas,razmmas,mat,a,b);
srmas(nmin,nmax,min,max,flsrmas,flosrmas,rmas,kolmas,razmmas);
prvivod(mat,rmas,flvvmat,flkolmas,flrazmmas,flsrmas,flosrmas,flvvab,flshetab,nmin,nmax,kolmas,razmmas,min,max,a,b);

end.
часть модуля(весь модуль 200 строк...)остальная часть, в прикрепленном файле.
Код:
procedure srmas;
{сравнивает значения в массиве,ищет максимальное, минимальное и их номера}
var i:integer;
begin;
nmin :=1;
nmax:=1;
max:=rmas[1];
min:=rmas[1];
flosrmas:=true;
for i:= 1 to razmmas do
  begin;
      if rmas[i]>max
      then
        begin;
          max:=rmas[i];
          nmax:=i;
        end;
      if rmas[i]<min
      then
        begin;
          min:=rmas[i];
          nmax:=i;
        end;
  end;
  if razmmas = 1 {хоть и громоздко но  должно работать}
     then
     begin
          flosrmas:=false;
          flsrmas:=true;
     end
     else
     begin
          if nmax = nmin
             then
             begin
                  if max = min
                  then
                  begin
                       flosrmas:=false;
                       flsrmas:=true;
                  end
                  else
                  begin
                       flosrmas:=true;
                       flsrmas:=false;
                  end
             end
             else
             begin
                  flosrmas:=false;
                  flsrmas:=true;
             end
     end
  end;
end.
программу пока и не начинал делать, а этот кусок нужен только для отлова косяков. Переменные, начинающиеся с FL будут использоваться в меню в качестве "защиты от дурака" хотя и не ясно когда я такими темпами до меню дойду...
p.s. программу чуток подправил, когда выложил заметил ошибку, но все равно не работает.
Вложения
Тип файла: rar MAS1.rar (1.5 Кб, 6 просмотров)

Последний раз редактировалось kyop; 16.12.2010 в 07:58. Причина: изменения в модуле
kyop вне форума Ответить с цитированием
Старый 16.12.2010, 13:25   #2
kyop
Пользователь
 
Регистрация: 04.08.2010
Сообщений: 20
По умолчанию

спасибо всем кто смотрел и пытался помочь, взял отгул и съездил в институт, там помогли найти проблемку, как я и думал своя не внимательность всему виной, потерял одну процедуру...
kyop вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка массивов vvioleta Помощь студентам 1 14.11.2009 13:10