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

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

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

> задача на массивы, с наименьшим и наибольшим
nutty
сообщение 24.01.2007 18:51
Сообщение #1





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

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


всем дорого времени суток)
пожалуйста помогите исправить что бы норм работало,а то я что то уже запутался...
условие: дан массив А1...А40 заменить все элементы стоящие между Амах и Амин или Амин и Амах на 0
вот что у меня имеется...

program masminmax;
uses crt;
var A: array[1..10] of integer;
Amax,Amin,i,mini,maxi: integer;
begin
clrscr;
Amin:=1;
Amax:=1;
for i:=1 to 10 do
begin
readln(A[i]);
If i=1 then
begin
Amin:=A[i];
Amax:=A[i];
end;
if A[i]<Amin then
mini:=i;
if A[i]>Amax then
maxi:=i;
end;
if mini>maxi then
for i:=maxi to mini do
A[i]:=0;
if mini<maxi then
for i:=mini to maxi do
A[i]:=0;
writeln('result');
for i:=1 to 10 do
write(A[i],' ');
readln;
end.


вот...он как то неправильно считает...буду оч признателен если кто нибудь подскажет)

Теги не забываем...

Сообщение отредактировано: volvo - 24.01.2007 18:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
volvo
сообщение 24.01.2007 19:03
Сообщение #2


Гость






Ты не совсем правильно находишь min/max...

mini := 1; maxi := 1;
for i:=1 to 10 do
begin
readln(A[i]);

if A[i]<A[mini] then mini:=i;
if A[i]>A[maxi] then maxi:=i;
end;


Вот так будет лучше... Кстати, почему 10? В условии говорится про 40 ...
 К началу страницы 
+ Ответить 
nutty
сообщение 24.01.2007 19:28
Сообщение #3





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

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


да я так тоже пробывал,но многого это не изменило,а преподавателю почему та не понравилось...
а 10 чтобы быстрее проверять было :-[
там просто нужно самому вводить,а каждый раз 40 чисел лень))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.01.2007 20:57
Сообщение #4


Гость






Не знаю, что там НЕ понравилось твоему преподавателю... Программа (с моим исправлением) выходит рабочая... Единственное, что надо исправить - это то, что сейчас на нули заменяются все элементы между мин/макс, ВКЛЮЧАЯ мин/макс... Небольшое исправление:

program masminmax;
uses crt;
var
A: array[1..10] of integer;
i, mini, maxi: integer;
begin
clrscr;
mini := 1; maxi := 1;

for i:=1 to 10 do begin
readln(A[i]);

if A[i]<A[mini] then mini:=i;
if A[i]>A[maxi] then maxi:=i;
end;

if mini>maxi then
for i:=maxi + 1 to mini - 1 do A[i]:=0
else
if mini<maxi then { <--- Можно и без этого... }
for i:=mini + 1 to maxi - 1 do A[i]:=0;

writeln('result');
for i:=1 to 10 do write(A[i],' ');
readln;
end.
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 17:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"