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

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

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

> Баг
сообщение
Сообщение #1


Новичок
*

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

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


Ребят, помогите пожалуйста с прогой, не знаю в чем проблема, вроде написано всё верно, а вылетает. Програмка маленькая mega_chok.gif

Цитата
Найти номер и значение минимального положительного элемента массива. Рассматривать элементы массива, имеющие четные значения.


Uses Crt ;
Var
A: Array[1..20] of Integer;
I,min,n: Integer;
Begin
ClrScr;
Writeln('Лабораторная работа 1');
Writeln('Найти номер и значение минимального положительного элемента массива.');
Writeln('Рассматривать элементы массива, имеющие четные значения.');
Writeln('Количество элементов массива - целое число <=20');
Writeln('Введите n');
Readln (N);
If (N>=1) and ( N<=20) then
begin
Writeln('Значения элементов массива - целые числа');
For I := 1 to N do
Begin
Write('A[',I,']=');
Readln(A[I]);
End;
Writeln('В исходном массиве ', N, ' элементов');
Writeln('Исходный массив');
For I:=1 to N do
Write(A[I]:4);
Writeln;
i:=2;
min:=a[2];
while a[i]<=n do
If (a[i]<=min) and (a[i]>0) Then
begin
A[i]:=min;
i:=i+2;
End;
writeln('Минимальный положительный элемент равен ',min);
readln;
end
Else
Writeln('Ошибка ! Число элементов массива от 1 до 20');
readln;
End.


while a[i]<=n do
If (a[i]<=min) and (a[i]>0) Then
begin
A[i]:=min;
i:=i+2;
End;

в этом месте что-то происходит не так sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

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

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


Цитата(мисс_граффити @ 7.01.2007 23:04) *

а во втором месте исправил?
тебе же Bokul написал, как должно быть

так я не понял begin ставить после do или после if .у вас по-разному написано.в любом случае и так и так получается ,что 2ой элемент всегда считается отрицательным sad.gif

Цитата(Malice @ 7.01.2007 23:08) *

Bokul тоже накосячил чуть-чуть smile.gif

   while i<=n do begin
If (a[i]<=min) and (a[i]>0) Then
min:=i;
i:=i+2;
End;
writeln('Минимальный положительный элемент равен ',a[min]);
writeln('Индекс равен ',min);


да .попробовал вот так .прога проходит больше тестов smile.gif , но неполностью . например ввожу n=4 . дальше ввожу элементы 1,5,2,3 . то есть четные элементы - это 5 и 3. минимальный из низ 3. а прога напишет что 5 sad.gif blink.gif


может не надо перед циклом min:=a[2] . может в этом проблема ? непонимаю sad.gif

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


Профи
****

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

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


Цитата(fr33m @ 7.01.2007 23:21) *

может не надо перед циклом min:=a[2] . может в этом проблема ? непонимаю sad.gif

Это потому, что я тоже накосячил smile.gif
Вариант №2:
   min:=2;
while i<=n do begin
If (a[i]<=a[min]) and (a[i]>0) Then
min:=i;
i:=i+2;
End;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
fr33m   Баг   8.01.2007 2:48
Bokul   Должно быть так: while i<=n do begin …   8.01.2007 2:51
мисс_граффити   зацикливается или выходит за границы массива? …   8.01.2007 2:51
fr33m   while a[i]<=n do {почему a[i], а не i?} да , з…   8.01.2007 3:02
Malice   Bokul тоже накосячил чуть-чуть :) while i<=…   8.01.2007 3:08
мисс_граффити   а во втором месте исправил? тебе же Bokul написал,…   8.01.2007 3:04
fr33m   а во втором месте исправил? тебе же Bokul написал…   8.01.2007 3:21
Malice   может не надо перед циклом min:=a[2] . может в эт…   8.01.2007 3:26
Bokul   Uses Crt ; Var A: Array[1..20] of Integer; I,min,…   8.01.2007 3:25
Bokul   Malice, опять косяк, смотри мою прогу.. :wink:   8.01.2007 3:30
Malice   Malice, опять косяк, смотри мою прогу.. :wink: Т…   8.01.2007 3:34
fr33m   Malice, опять косяк, смотри мою прогу.. :wink: с…   8.01.2007 3:35
мисс_граффити   все понакосячили :)) давайте, что ли, определимся:…   8.01.2007 3:33
Bokul   В авторской версии - он сам. Это Malice обозвал ег…   8.01.2007 3:35
Bokul   fr33m, посмотри еще раз - я вносил изменения .. …   8.01.2007 3:46
Malice   [b] min:=0; ind:=0; while …   8.01.2007 3:49
fr33m   просто если будет хоть один отрицательный четный э…   8.01.2007 3:50
Bokul   Это ты видел? if min>0 then …   8.01.2007 4:01
fr33m   я конечно понимаю что всех за%%ал на этом форуме н…   8.01.2007 4:09
мисс_граффити   это потому что самый минимальный - отрицательный. …   8.01.2007 4:13
fr33m   это потому что самый минимальный - отрицательный.…   8.01.2007 4:23
Bokul   :blink: :blink: :blink:   8.01.2007 4:14


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

 





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