IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> подскажите,пожалуйста, где здесь ошибка!, Программирование с использованием массивов
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Женский
Реальное имя: Алена

Репутация: -  0  +


Подскажите где ошибка и как ее исправить

Условие:Поменять местами минимальный и максимальный элементы массива размера 10..

Program Mas;
Var
M:Array[1..10] of real;
Max, Min, MN:real;
I:integer;
begin
for I:=1 to 10 Do real (M[I]);
Max:=M[1]; K:=1;
Min:=M[1]; N:=1;
for I:=2 To 10 Do;
Begin
If M[1]>Max then
begin
Max:=M[1];
K:=1;
end;
if M[I]<min then
begin
Min:=M[I];
N:=I;
end;
end;
MN:=M[K];
M[K]:=M[N];
M[N]:=MN;
For I:=1 to 10 do writeln(M[I]);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 9
Пол: Женский
Реальное имя: Алена

Репутация: -  0  +


Uses Crt;
var i,j,n,m,S:integer;
min,max:real; A:array [1..10] of word;
BEGIN
CLRSCR;
max:=0; for i:=1 to 10 do
begin
write('A[',i,']=');
readln(A[i]); if A[i]>max then
begin
max:=A[i]; n:=i;{надо запомнить наш максимальный элемент}
end;
end;
min:=max+1;
for i:=1 to 10 do begin if A[i]<min then
begin
min:=A[i]; m:=i;{запоминаем наш минимальный}
end;
end;
if m-1>=n+1 then
begin
for i:=n+1 to m-1 do A[i]:=0;
end
else
begin
for i:=m+1 to n-1 do A[i]:=0;
end;
for i:=1 to 10 do write(A[i],' ');
Writeln; Writeln('min = ',max);
Writeln('max = ',min);
Writeln;
Readln;
END.




Так верно будет? проверяю работает rolleyes.gif

Сообщение отредактировано: Lexa15 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Зачем же столько циклов,чтобы поменять местами 2 элемента.....

Program Mas;
Var M:Array[1..10] of real;
Max, Min, Temp:real;
I,Nmin,Nmax:integer;
begin
Nmin:=1;
Nmax:=1;
for I:=1 to 10 Do
readln (M[I]);

Max:=M[1];
Min:=M[1];
for I:=2 To 10 Do
Begin
If M[I]>Max then
begin
Max:=M[I];
Nmax:=I;
end;
if M[I]<min then
begin
Min:=M[I];
Nmin:=I;
end;
end;

Temp:=M[Nmax];
M[Nmax]:=M[Nmin];
M[Nmin]:=Temp;
For I:=1 to 10 do
writeln(M[I]: 3 : 3);

readln;
end.


Проверьте только,а то паскаля под рукой нету,я исправил ваш первый пост)

P.S.Все таки пришлось проверить и поменять, как совет буд те внимательней и не путайте константы и переменные)Я про первый пост,второй даже не интересовал,уж слишком много циклов.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


for I:=1 to 10 Do
readln (M[I]);

NMin:=1; NMax:=1;
for I:=2 To 10 Do
Begin
if M[I]>M[NMax] then Nmax:=I;
if M[I]<M(NMin] then Nmin:=I;
end;
// ...
Не проще, чем вести еще и переменную Min/Max?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Проще,но время было позднее...

Begin
if M[I]>M[NMax] then Nmax:=I;
if M[I]<M[NMin] then Nmin:=I; { '["вместо '(' }
end;


Чтобы уж совсем все было шикарно)

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 6:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name