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

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

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

> Массивы(с модулем), нужно исправить ошибки, не могу разобраться с формальными переменными
Ursula
сообщение 20.05.2006 3:08
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Женский
Реальное имя: Sveta

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


Когда запускаю программу, максимальный и миним. элементы не находятся! я наверное формальные переменные не так написала!

Код
program obrabotkamassivov;
uses WinCrt, My_ZS;
var i, j, minimum, maximum, r, minX, maxX: integer;{индексы элеметов, где i-сттрока, j-столбец}
     k, m, n, w: integer;
     name: string;
    A: mas2r_i; {2мерный массив}
    x: mas1r_x;{сформированный 1мерный массив}
    f: boolean;
procedure mas_x( n: integer; var x: mas1r_x);
var s: word;
begin writeln; writeln('массив, сформиpованный из сумм положительных элементов строк исходного массива');
n:=1;
for i:=1 to m do
   begin S:=0;
   for j:=1 to k do
      begin
      if a[i,j]>0 then
     S:=S+a[i,j];
      end;
      x[n]:=s; writeln('  x[',n,']=',s:3);
      n:=n+1;
   end; writeln;
end;
Procedure MxL(n:integer; x:mas1r_x);
var max:integer;
begin
max:=x[1];
for i:=1 to n do
begin
if x[i]>max then
max:=x[i];
writeln('максимальный элемент равен',max);
end;
end;
Procedure MnL(n:integer; x:mas1r_x);
var min:integer;
begin
min:=x[1];
for i:=1 to n do
begin
if x[i]<min then
min:=x[i];
writeln('максимальный элемент равен',min);
end;
end;
Procedure Zadanie;
begin
writeln('      И С Х О Д Н Ы Е  Д А Н Н Ы Е');
Writeln('Прямоугольная целочисленная матрица С, состаящая из');
Writeln('М строк по К элементов');
Writeln('            З А Д А Н И Е');
Writeln('Сформировать массив Х из сумм положительных элементов');
Writeln('строк матрицы С; В массиве Х найти максимальный и минимальный элементы');
end;
BEGIN
zastavka(5,'Массивы'); ClrScr;
Zadanie;
writeln;
writeln;
vvod_mas2r(max,'A', m, k,  A);{ввод 2мерного масссива}
       vivod_mas2r(m, k, 'A', a);readln;
       mas_x(n, x);readln;
        MxL(n,x);
        MnL(n,x);
        povtorka(f);
end.


мой Модуль
Код
Unit My_ZS;
interface
Uses winCrt, windos;
const max=50;
type mas1r_x=array[1..max] of integer;{тип 1мерного массива целочисленного типа}
     mas1r_i=array[1..max] of string[50];{тип 1мерного массива целочисленного типа}
     mas2r_i=array[1..max,1..max] of integer;{тип 2мерного массива целочисленного типа}
     mas2r_r=array[1..max,1..max] of real;   {тип 2мерного массива вещественного типа}
var i, j: integer;{индексы элеметов, где i-сттрока, j-столбец}
procedure vvod_mas2r(max: byte;  name: string;var m, k: integer;
               var a:  mas2r_i);{ввод 2мерного масссива}
procedure vvod_mas1r(max: byte;  name: string; var m: integer;
               var x:  mas1r_x);{ввод 2мерного масссива}
procedure vivod_mas2r(m,k: integer; name: string;a: mas2r_i);
procedure vivod_1r(n:integer; name:string; x:mas1r_x);
procedure In_Real(g:char; var x:real);
procedure Out_real(g: char;var a: real);
Procedure WaitDos (WaitTime :word);
procedure In_integer(g: char; var a: integer);
procedure wait;
procedure In_real_comment(g: string; var a: real);
procedure chetnost ( var a: integer);
procedure In_integer_comment(g: string; var a: integer);
procedure Out_real_comment(g: string; var a: real);
procedure Out_integer_comment(g: string; var a: integer);
procedure povtor(var f: boolean);
procedure povtorka(var f: boolean);
implementation
procedure vvod_mas2r(max: byte;name: string;  var m, k: integer;
               var a:  mas2r_i);
label L;
var f: boolean;
begin
repeat
writeln('введите количество строк массива ',name,'< ',max);
readln(m);
writeln('введите количество столбцов массива ',name,'< ',max);
readln(k);
f:=((m>=0)and(m<max))and((k>=0)and(k<max));
if not f then
writeln('Вы ошиблись. Максимальное кол-во строк  ',max,
      '  Максимальное кол-во столбцов  ',max);
until f;
    for i:=1 to m do
      begin
    for j:=1 to k do
      begin {$I-}
      L: write (name,'[', i:2,',',j:2,']=');
       read(a[i,j]); {$I+}
  if IOResult<>0 then   begin
      writeln('вы ошиблись, повторите ввод'); goto L; end; end;  writeln;
    end;
end;
procedure vvod_mas1r(max: byte;name: string;  var m: integer;
               var x:  mas1r_x);
label L;
var f: boolean;
begin
ClrScr;
repeat
writeln('введите количество строк массива ',name,'< ',max);
readln(m);
f:=((m>=0)and(m<max));
if not f then
writeln('Вы ошиблись. Максимальное кол-во строк  ',max);
until f;
    for i:=1 to m do
      begin
      {$I-}
      L: write (name,'[', i:2,']=');
       read(x[i]); {$I+}
  if IOResult<>0 then   begin
      writeln('вы ошиблись, повторите ввод'); goto L; end; end;  writeln;
    end;
procedure vivod_mas2r(m,k: integer; name: string;a: mas2r_i);
begin
for i:=1 to m do
   begin
   for j:=1 to k do
      begin
      write('  ',name,'[',i:2,',',j:2,']=', a[i,j]:3);
      end;
   writeln; end;  readln;
   end;
procedure vivod_1r(n:integer; name:string; x: mas1r_x);
var i:integer;
begin
for i:=1 to n do write ('  ',name,'[',i:2,']=',x[i]:3);
writeln;
end;
  {ввод переменной вщественного типа}
  PROCEDURE In_Real;
   Label 1;
  BEGIN
   1: Write('Введите значение ',g,'='); {$I-} Readln(x) {$I+};
   If Ioresult<>0 then
  BEGIN
   Writeln('Неверный ввод! повторите!   ');
   Goto 1
  END;
  end;
procedure Out_real(g: char;var a: real);
             begin
write(g,'= ', a:8:6);
end;
Procedure WaitDos;
   VAR House, Minute, Second, Sec100, Second_0:word;
   Begin
     GetTime(House, Minute, Second, Sec100);
     if WaitTime+Second >= 60 then Second_0:= WaitTime + Second-60
     else Second_0:= Second + WaitTime;
     repeat GetTime(House, Minute, Second, Sec100);
     until Second = Second_0;
   END;
    {ввод целочисленной переменной}
    procedure In_integer(g: char; var a: integer); label 1;
begin {$I-}
1: write ('введите значение ',g,' '); read (a); {$I+}
if IOResult <>0 then begin writeln('Вы ошиблись повторите ввод');goto 1; end
else
end;
procedure wait;
begin
write('Выход-ENTER'); readln;
donewincrt;
end;
{ввод переменной вещественного типа с комментарием}
procedure In_real_comment(g: string; var a: real); label  1;
begin {$I-}
1: write ('  ',g,' '); readln(a); {$I+}
if IOResult <>0 then begin writeln('Вы ошиблись!!! повторите ввод!');goto 1; end
else
end;
{процедура, определяющая перемиенную на четность}
procedure chetnost ( var a: integer);
var D: boolean;
begin
d:=odd(a);  If d=true then
writeln (a,' нечетное')
else writeln(a,' четное'); writeln; readln;
end;
procedure In_integer_comment(g: string; var a:integer); label 1;
begin {$I-}
1: write ('  ',g,' '); readln(a); {$I+}
if IOResult <>0 then begin writeln('Вы ошиблись, повторите ввод');goto 1; end
else end;
procedure Out_real_comment(g: string; var a: real);label 1;
             begin {$I-} writeln;
1: write(g,'= ', a:8:6);   {$I+}
if IOResult <>0 then begin writeln('Вы ошиблись, повторите ввод');goto 1; end;
end;
procedure Out_integer_comment(g: string; var a: integer);
begin
write(g,'= ', a); end;
procedure povtor(var f: boolean);
var x: char;
begin  REPEAT ClrEol; writeln('Хотите перейти к выбору работ? Y или N?'); readln(x);
f:=(x='y')or(x='n');
if not f then
    begin writeln('Вы ошиблись. Повторите ввод');
    end;
UNTIL f;
if (x='y') or (x='Y') then f:=true else begin F:=false; donewincrt;
end;
end;
procedure povtorka(var f: boolean);
var x: char;
begin  REPEAT ClrEol; writeln('Хотите повторить? Y или N?'); readln(x);
f:=(x='y')or(x='n');
if not f then
    begin writeln('Вы ошиблись. Повторите ввод');
    end;
UNTIL f;
if (x='y') or (x='Y') then f:=true else begin F:=false; donewincrt;
end;
end;
end.


Сообщение отредактировано: volvo - 20.05.2006 9:13
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 

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