![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Lexa15 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Женский Реальное имя: Алена Репутация: ![]() ![]() ![]() |
Подскажите где ошибка и как ее исправить
Условие:Поменять местами минимальный и максимальный элементы массива размера 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. |
Lexa15 |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 9 Пол: Женский Реальное имя: Алена Репутация: ![]() ![]() ![]() |
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. Так верно будет? проверяю работает ![]() Сообщение отредактировано: Lexa15 - |
Krjuger |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Зачем же столько циклов,чтобы поменять местами 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 - |
IUnknown |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: ![]() ![]() ![]() |
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? |
Krjuger |
![]()
Сообщение
#5
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Проще,но время было позднее...
Begin
if M[I]>M[NMax] then Nmax:=I;
if M[I]<M[NMin] then Nmin:=I; { '["вместо '(' }
end;
Чтобы уж совсем все было шикарно) Сообщение отредактировано: Krjuger - |
![]() ![]() |
![]() |
Текстовая версия | 19.04.2025 4:42 |