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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 22:36   #1
Виндовс 7
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 12
По умолчанию Одномерный массив.Исправбте ошибки.

Половину задачи сделал,вторую не получается.Направьте на путь истинный.
Условие!В указанном массиве М(14) заменить все отрицательные елементы, что стоят на четных местах его mах елементом,а на нечётных его min елементом.Начальный и переделаннй массивы вывести к печати.
М(1.2,1.3,-0.2,2.0,4.8,-0.6,-1.1,7.2,3.5,-0.4,-1.7,3.1,2.8,-6.5)
Код!
Код:
uses Crt;
const  n=14;
       M:array[1..n] of real=
       (1.2,1.3,-0.2,2.0,4.8,-0.6,-1.1,7.2,3.5,-0.4,-1.7,3.1,2.8,-6.5);
var i:integer;
    min,max:real;
begin
writeln('Начальный массив:');
for i:=1 to n do
begin
write(M[i],'  ');
min:=M[i];
max:=M[i];
end;
  for i:=1 to n do
  begin
  if (M[i]<min)then min:=M[i];              
  if (M[i]>max)then max:=M[i];
  end;
    writeln;
    writeln('min=',min);
    writeln('max=',max);
    for i:=1 to n do
    begin
    if((i mod 2=0)and(M[i]<0)) then M[i]:=max;      <-     Ошибку здесь
    if((i mod 2<>0)and(M[i<0])) then M[i]:=min;     <-  выдаёт компилятор
    end;
      for i to n do
      write(M[i],' ');
end.

Последний раз редактировалось Виндовс 7; 18.12.2011 в 22:39.
Виндовс 7 вне форума Ответить с цитированием
Старый 18.12.2011, 23:18   #2
кумитэ
Новичок
Джуниор
 
Регистрация: 17.12.2011
Сообщений: 6
По умолчанию Вот примерно вот так, но вашу задачу очень тяжело прочесть

uses Crt;
const n=14;
M:array[1..n] of real=(1.2,1.3,-0.2,2.0,4.8,-0.6,-1.1,7.2,3.5,-0.4,-1.7,3.1,2.8,-6.5);
var i:integer;
min,max:real;
begin
writeln(n);
for i:=1 to n do
begin
write(M[i],' ');
min:=M[i];
max:=M[i];
end;
for i:=1 to n do
begin
if (M[i]<min)then min:=M[i];
if (M[i]>max)then max:=M[i];
end;
writeln;
writeln('min=',min);
writeln('max=',max);
for i:=1 to n do
begin
if((i mod 2=0)and(M[i]<0)) then M[i]:=max;
if((i mod 2<>0)and(M[i]<0)) then M[i]:=min;
end;
for i:=1 to n do
write(M[i],' ');
readln;
end.
кумитэ вне форума Ответить с цитированием
Старый 20.12.2011, 01:11   #3
Виндовс 7
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 12
По умолчанию

Ошибку уже сам нашел.Так, что помощь больше не нужна.
Виндовс 7 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив, исправте ошибки PROkaZZZniK Помощь студентам 2 08.12.2011 22:36
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40