Перейти к содержанию

Помогите с программой на паскале


Рекомендуемые сообщения

Помогите !! в языках программирования я не очень, но обещаю исправиться, а пока не могу отладить прогамму!

Задание В вещественном векторе А(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 do
read(A[i]);
max:=A[i]; num:=1;
for i:=1 to n do
begin
if maxmax:=A[i];num:=i;
end;
end;
A[num]:=A[1];
A[1]:=max;
for i:=1 to n do
write(' ', A[i]);
writeln
end.

помогите уважаемые гуру!!

Ссылка на комментарий

эхх, давно не занимался( паскаля нету

но вижу ошибку

вводишь массив, у тебя переменная i остаётся равным 30, соотвественоо мах = 30-му элементу массива, а номер элемента num ты присваиваешь 1.

сделай мах:=А[1]

max:=A[1]; num:=1;
for i:=2 to n do
if A[i]>max then
begin
max:=A[i];
num:=i;
end;
A[num]:=A[1];
A[1]:=max;

Добавлено спустя 1 минуту 42 секунды:

а может и я сам где то ошибаюсь, проверить не чем

ну хоть вспомнил чуть-чуть ;)

Ссылка на комментарий

aspirin спасибо за предложение, но всё же, 3 элемент вектора остаётся без изменений!! может ещё где ошибка в записи ?

Ссылка на комментарий

в смысле третий без изменений?

программа должна поменять местами первый элемент с максимальным, и всё, больше ничего в массиве меняться не должно

Добавлено спустя 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-м

Ссылка на комментарий

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

Ссылка на комментарий

У меня нормально работает в исправленном варианте:

program vector;
var A:array [1..30] of real;
num,i,n:byte;
max:real;
begin
writeln('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 do
begin
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 20

OUT:

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

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...