алексей555 Опубликовано 16 декабря, 2013 Жалоба Поделиться Опубликовано 16 декабря, 2013 Помогите !! в языках программирования я не очень, но обещаю исправиться, а пока не могу отладить прогамму! Задание В вещественном векторе А(n) найти наибольший элемент и поменять его с первым элементом. Вывести преобразованный вектор!:Программа работает только на первых 2 элемента вектора, а остальные не корректно заменяет вообщем вот кодprogram vector;var A:array [1..30] of real;num,i,n:byte;max:real; begin writeln('Введите размерность вектора '); read(n);writeln('введите элементы вектора через пробел ');for i:=1 to n doread(A[i]);max:=A[i]; num:=1;for i:=1 to n dobeginif maxmax:=A[i];num:=i;end;end;A[num]:=A[1];A[1]:=max;for i:=1 to n dowrite(' ', A[i]);writelnend.помогите уважаемые гуру!! Цитата Ссылка на комментарий
aspirin Опубликовано 16 декабря, 2013 Жалоба Поделиться Опубликовано 16 декабря, 2013 эхх, давно не занимался( паскаля нетуно вижу ошибкувводишь массив, у тебя переменная i остаётся равным 30, соотвественоо мах = 30-му элементу массива, а номер элемента num ты присваиваешь 1.сделай мах:=А[1]max:=A[1]; num:=1;for i:=2 to n doif A[i]>max thenbeginmax:=A[i];num:=i;end;A[num]:=A[1];A[1]:=max;Добавлено спустя 1 минуту 42 секунды:а может и я сам где то ошибаюсь, проверить не чемну хоть вспомнил чуть-чуть Цитата Ссылка на комментарий
алексей555 Опубликовано 16 декабря, 2013 Автор Жалоба Поделиться Опубликовано 16 декабря, 2013 aspirin спасибо за предложение, но всё же, 3 элемент вектора остаётся без изменений!! может ещё где ошибка в записи ? Цитата Ссылка на комментарий
aspirin Опубликовано 16 декабря, 2013 Жалоба Поделиться Опубликовано 16 декабря, 2013 в смысле третий без изменений?программа должна поменять местами первый элемент с максимальным, и всё, больше ничего в массиве меняться не должноДобавлено спустя 14 минут 1 секунду:массив:11 5 24 52 12 47 23 15 6 10 54 99 13 41 65 12 15 45 65 32 21 22 44 55 74 65 20 12 31 20на выходе программы:99 5 24 52 12 47 23 15 6 10 54 11 13 41 65 12 15 45 65 32 21 22 44 55 74 65 20 12 31 20поменяли 1-й с 12-м Цитата Ссылка на комментарий
алексей555 Опубликовано 16 декабря, 2013 Автор Жалоба Поделиться Опубликовано 16 декабря, 2013 aspirin так вот я получил11 5 24 52 12 47 23 15 6 10 54 99 13 41 65 12 15 45 65 32 21 22 44 55 74 65 20 12 31 20на выходе 24 5 11 52 12 47 23 15 6 10 54 99 13 41 65 12 15 45 65 32 21 22 44 55 74 65 20 12 31 20 Цитата Ссылка на комментарий
ArtyomK Опубликовано 16 декабря, 2013 Жалоба Поделиться Опубликовано 16 декабря, 2013 У меня нормально работает в исправленном варианте:program vector;var A:array [1..30] of real;num,i,n:byte;max:real;beginwriteln('enter dimension -> ');read(n);writeln('enter elements -> ');for i:=1 to n do read(A[i]);max:=A[1]; num:=1;for i:=1 to n dobegin if max begin max:=A[i]; num:=i; end;end;A[num]:=A[1];A[1]:=max;for i:=1 to n do write(' ', A[i]);writeln;end.IN:11 5 24 52 12 47 23 15 6 10 54 99 13 41 65 12 15 45 65 32 21 22 44 55 74 65 20 12 31 20OUT:99 5 24 52 12 47 23 15 6 10 54 11 13 41 65 12 15 45 65 32 21 22 44 55 74 65 20 12 31 20 Цитата Ссылка на комментарий
aspirin Опубликовано 16 декабря, 2013 Жалоба Поделиться Опубликовано 16 декабря, 2013 я видимо операторные скобки не поставил Цитата Ссылка на комментарий
алексей555 Опубликовано 16 декабря, 2013 Автор Жалоба Поделиться Опубликовано 16 декабря, 2013 ArtyomK премного благодарен!! Хорошо кода есть люди которые могут помочь, ещё раз спасибо Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.