Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ ЗАдача с массивами

Автор: qwerty) 13.05.2007 22:45

Помогите пожалуста бедному студенту,прога не пашет,точнее пашет но неправильно,задали с подпрограммами.Выводит всегда Т,равному у(1)

Даны массивы x(25) и y(25).Найти :

Max(x),eсли min(x) <0
T=
Min(y) иначе
Вот текст моей проги

 program zachita;
type vect=array[1..25] of integer;
var x,y:vect;t,i,minx,miny,min,max:integer;
Procedure wwod (n:integer;var z:vect;q:string);
var i:integer;
begin
For i:=1 to n do begin write (q,'[',i,']=');readln(z[i]);
end;end;
Procedure minimum (z:vect;k:integer;var min:integer);
var i:integer;
begin
min:=z[1];
For i:=2 to k do
If z[i]< min then z[i]:=min;
end;
Procedure shet (z:vect;k:integer;var max:integer);
var i:integer;
begin
max:=z[1];
For i:=2 to k do
If z[i]>max then max:=z[i];
end;
begin
wwod (5,x,'x');
wwod (5,y,'y');
minimum (x,5,min);
minimum (y,5,min);
minx:=min;
miny:=min;
shet (x,5,max);
shet (y,5,max);
t:=0;
If minx<0 then t:=max else t:=miny;
writeln ('t=',t);
readln;readln;
end.
.



Пы.сы,вводил 5,чтоб меньше набивать

Добавлено через 14 мин.
никто не поможет....(

Автор: nesh 13.05.2007 23:12

Пашет, но неправильно, да?!
А что она тогда выдает место верного ответа???

Автор: qwerty) 13.05.2007 23:14

Выводит всегда Т,равному у(1)

Автор: Артемий 13.05.2007 23:22

Procedure minimum (z:vect;k:integer;var min:integer);
var i:integer;
begin
min:=z[1];
For i:=2 to k do
If z[i]< min then min:=z[i];
end;

А там ты массив зачем-то изменял!

Автор: Sto 13.05.2007 23:27

Разбирайся

program zachita;
type vect=array[0..25] of integer;
var x,y:vect;t,i,minx,miny,min,max:integer;
Procedure wwod (n:integer;var z:vect;q:string);
var i:integer;
begin
For i:=0 to n do begin write (q,'[',i,']=');readln(z[i]);
end;end;
Procedure minimum (z:vect;k:integer;var min:integer);
var i:integer;
begin
min:=z[0];
For i:=1 to k do
If z[i]< min then z[i]:=min;
end;
Procedure shet (z:vect;k:integer;var max:integer);
var i:integer;
begin
max:=z[0];
For i:=1 to k do
If z[i]>max then max:=z[i];
end;
begin
wwod (5,x,'x');
wwod (5,y,'y');
minimum (x,5,minx);
minimum (y,5,miny);
shet (x,5,max);
If minx<0 then t:=max else t:=miny;
writeln ('t=',t);
readln;
end.


Номерация элементов масива начинается с 0.

Автор: qwerty) 13.05.2007 23:29

Спасибо тебе большое sto щас буду разбираться

Автор: Sto 13.05.2007 23:35

Цитата(qwerty) @ 13.05.2007 18:45) *

...
minimum (x,5,min);
minimum (y,5,min);
minx:=min;
miny:=min;
shet (x,5,max);
shet (y,5,max);
...

minx и miny у тебя равны минимальному значению масива y.
Вместо максимума масива x получал максимум масива y.
И напутал с масивами.

Автор: qwerty) 13.05.2007 23:40

Цитата(Sto @ 13.05.2007 20:35) *

minx и miny у тебя равны минимальному значению масива y.
Вместо максимума масива x получал максимум масива y.
И напутал с масивами.

огромное спасибо