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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2011, 17:01   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию Процедуры. Паскаль

Написал программу, без процедур она работает, а с процедурами нет.
Помогите разобраться, в чём причина.
Необходимо было заменить элементы стоящие перед минимальным заменить 0, а после максимального 1.
Мне кажется на работает та часть, которая выделена красным.
Вот программа:
Код:
Program дд;
Uses CRT;
Type mas=array[1..9] Of Real;
 Const y:mas=(-1.2,-0.1,8.3,-9.5,6.3,-2.7,9.9,-3.6,-2.8);
 Const n=9;
Var v,a:mas;
    min, max:real;
    minj,maxj:integer;
    j:integer;
    
{Preobrazovyvaem massiv Y v massiv V po formule Vj=cos3Yj}
Procedure Transform(j:integer; Var a:mas; Var v:mas);
begin
 Write(' Preobrazovanny massiv:');
 For j:=1 to n do
  begin
  v[j]:=cos(3*y[j]);
  a[j]:=v[j];
  Write(v[j]:6:1);
  end;
  writeln;
end;

{Nahozdenie indeksa minimalnogo elementa}
Procedure niM(j:integer; min:real; minj:integer; Var a:mas);
begin
  min:=a[1];
  minj:=1;
  For j:=1 to n do
  If a[j]<min then
  minj:=j;
  end;

{Nahozdenie indeksa maksimalnogo elementa}
Procedure xaM(j:integer; max:real; maxj:integer; Var a:mas);
begin
  Maxj:=1;
  For j:=1 to n do
  begin
  If a[j]>max then
  maxj:=j;
  end;
end;

Zamenyaem elementy do min. na "0", a posle max. na "1"}
Procedure Change(j:integer; min:real; max:real; minj:integer; maxj:integer; Var a:mas);
Begin
  Write(' Massiv s "0" pered min:');
  For j:=1 to n do begin
  If minj>j then a[j]:=0
            else a[j]:=a[j];
  Write(a[j]:6:1);
  end;
  writeln;
  writeln;
  {Write(' Massiv s "1" posle max:');
  For j:=1 to n do begin
  If maxj<j then a[j]:=1
            else a[j]:=a[j];
  write(a[j]:6:1);
  end;            
end;

  
Begin
CLRSCR;
Transform(j,v,a);
nim(j,min,minj,a);
Writeln;
Change(j,min,max,minj,maxj,a);
readln;
end.
Женька Good вне форума Ответить с цитированием
Старый 28.12.2011, 17:42   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Код:
uses
SysUtils;
Type mas=array[1..9] Of Real;
 Const y:mas=(-1.2,-0.1,8.3,-9.5,6.3,-2.7,9.9,-3.6,-2.8);
 Const n=9;
Var v,a:mas;
    min, max:real;
    minj,maxj:integer;
    j:integer;

{Preobrazovyvaem massiv Y v massiv V po formule Vj=cos3Yj}
Procedure Transform(j:integer; Var a:mas; Var v:mas);
begin
 Write(' Preobrazovanny massiv:');
 For j:=1 to n do
  begin
  v[j]:=cos(3*y[j]);
  a[j]:=v[j];
  Write(v[j]:6:1);
  end;
  writeln;
end;

{Nahozdenie indeksa minimalnogo elementa}
Procedure niM(var minj:integer;  a:mas);
var
  j:integer;
  min:real;
begin
  min:=a[1];
  minj:=1;
  For j:=1 to n do
    If a[j]<min then
    begin
      minj:=j;
      min:=a[j];
    end;
end;

{Nahozdenie indeksa maksimalnogo elementa}
Procedure xaM(var maxj:integer;  a:mas);
var
  j:integer;
  max:real;
begin
  Max:=a[1];
  maxj:=1;
  For j:=1 to n do
    If a[j]>max then
    begin
      maxj:=j;
      max:=a[j];
    end;
end;

//Zamenyaem elementy do min. na "0", a posle max. na "1"}
Procedure Change(minj:integer; maxj:integer; Var a:mas);
var
  b:mas;
  j:integer;
Begin
  for j:=1 to n do b[j]:=a[j];

  Write(' Massiv s "0" pered min:');
  For j:=1 to n do begin
    If j<minj then a[j]:=0;
//            else a[j]:=a[j];  wtf?
    Write(a[j]:6:1);
  end;
  writeln;
  writeln;
  Write(' Massiv s "1" posle max:');
  For j:=1 to n do begin
  If j>maxj then b[j]:=1;
//            else a[j]:=a[j];
  write(b[j]:6:1);
  end;
end;


Begin
//CLRSCR;
Transform(j,v,a);
nim(minj,a);
xam(maxj,a);     //Сотонист чтоле? О_о
Writeln;
Change(minj,maxj,a);
readln;
end.
Все тривиальное просто

Последний раз редактировалось whatever; 28.12.2011 в 17:56.
whatever вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры. Паскаль Ilovesport Помощь студентам 0 02.05.2011 12:22
процедуры в паскаль кусака Паскаль, Turbo Pascal, PascalABC.NET 1 09.06.2010 23:16
Паскаль.Процедуры uropb992 Помощь студентам 10 09.06.2010 21:13
Паскаль.Процедуры! uropb992 Помощь студентам 1 09.06.2010 19:28
Паскаль. Процедуры AndrewPl Помощь студентам 11 16.05.2010 15:24