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

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

Форум «Всё о Паскале» _ Задачи _ Оператор For

Автор: Vic 3.11.2003 22:01

Помогите решить задачу. Использовать можно только For ...To...Do
Дано десять целых чисел. Найти разницу между минимальным из положительных и максимальным из отрицательных. ???

Автор: Nightmare 3.11.2003 22:40

Извиняйте за тупоумие, но что здесь непонятного?
2 цикла: поиск минимального положительного и поиск максимального отрицательного элементов массива (можно, кстати и объединить в один), а потом найти разность 2-х значений...

Автор: Kolan 6.11.2003 23:51

Вот:

Код
program raz;
uses crt;
type
 mas = array[1..10] of integer;
const
 n=10;

{***}
procedure vvod(var a:mas);
var
i:integer;
begin
 randomize;
 for i:=1 to n do
   a[i]:=random(10)-4;
end;
{***}
procedure vivod(a:mas);
var
i:integer;
begin
 for i:=1 to n do
 writeln(a[i]:3);
end;
{***}
procedure findraz(a:mas; var raz:integer);
var
i:integer;
minp,maxot:integer;
begin

 minp:=1000;
 maxot:=-1000;
 for i:=1 to n do
 begin
   if a[i]>0 then
     if a[i]<minp then minp:=a[i];
  if a[i]<0 then
     if a[i]>maxot then maxot:=a[i];
 end;
raz:=minp-maxot;

end;
{***}

var
a:mas;
rez:integer;
begin
clrscr;
Writeln('press <Enter>');
readln;
vvod(a);
vivod(a);

readln;
findraz(a,rez);
writeln('Raznops t= ',rez);
readln;
end.
;)

Автор: fkhhj 2.12.2003 18:44

Элементарно

Код
Program z219;
   Var max,min,a,i,x,y:Integer;
Begin
    min:=32767;
    max:=-32768;
    For i:=1 To 10 Do
 begin
      Read(a);
      IF a>0 Then
                 IF a<min Then
                 begin
                      min:=a;
                      x:=min;
                 end;
      IF a<0 Then
                 IF a>max Then
                 begin
                      max:=a;
                      y:=max;
                 end;
 end;
Writeln(x-y);
END.