1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Vsem privet! Zada4a takova: Najti v massive element s minimaljnim pozitivnim zna4eniem i jego indeks. Analizirovatj toljko elementi s neparnim indeksom!
u menja 4to-to ne idjot...
program massiv; var i,num : integer; min : real; ms : array[1..6] of real; begin writeln ('Vvedite znachenie elementov: '); for i := 1 to 6 do begin readln(ms[i]); i := i+1; end; min := ms[1]; for i := 2 to 6 do begin if (ms[i] > 0) then begin if (ms[i] < min) then begin min := ms[i]; num := i; end; end; end; writeln(min:2:2); writeln(num); readln; end.
I jesho vapros, kak sdelatj 4tobi koli4estvo elementov v massive vvodilosj s klaviaturi v samom na4ale programmi ??
for i := 1 to 6 do begin readln(ms[i]); i := i+1; end;
нельзя менять счетчик внутри цикла - первя и основная ошибка. Правильно будет так:
for i := 1 to 6 do readln(ms[i]);
2-ое, ты и не намериваешься делать проверку на не четность элемента массива Делается это так:
if (i mod 2)=1 then
3-ое, ты запоминаешь еще перед циклом минимальный элемент, почему не делаешь тоже самое с его индексом? 4-ое, хоть это не ошибка, но все-таки: для чего ты пихаешь повсюду begin..еnd? Они обязательны только, если после требуется выполнить как минимум два оператора, в других случаях их можна опустить.
Вот правильный код:
program massiv; var i,num : integer; min : real; ms : array[1..6] of real; begin writeln ('Vvedite znachenie elementov: '); for i := 1 to 6 do readln(ms[i]); min := ms[1]; num:=1; for i := 2 to 6 do if (i mod 2)=1 then if (ms[i] > 0) then if (ms[i] < min) then begin min := ms[i]; num := i; end; writeln(min:2:2); writeln(num); readln; end.
Можно заменить три if на
if ((i mod 2)=1) and (ms[i] > 0) and (ms[i] < min) then begin {---------} end;
Цитата
I jesho vapros, kak sdelatj 4tobi koli4estvo elementov v massive vvodilosj s klaviaturi v samom na4ale programmi ??
Если динамических массивов ты еще не учил, то так:
program massiv; var i,num,n : integer; min : real; ms : array[1..200] of real; begin writeln('Vvedite koli4estvo elementov v massive<200'); readln(n); writeln ('Vvedite znachenie elementov: '); for i := 1 to n do readln(ms[i]); min := ms[1]; num:=1; for i := 2 to n do if (i mod 2)=1 then if (ms[i] > 0) then if (ms[i] < min) then begin min := ms[i]; num := i; end; writeln(min:2:2); writeln(num); readln; end.
--------------------
Лао-Цзы : Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
Вводим N = 10 Массив: (-2, 12, 15, 10, 11, -9, -3, -11, 5, 2) и что будет? Кто сказал, что первый элемент ВСЕГДА положительный? Положительный, извините, еще нужно найти...
Spasibo za otveti, no vot u menja jesho odin vapros!
V C/C++ cikl for mozhno zapisatj kak for (i=0; i<n; i += 2) Po4emu v pascale neljza kazhdij takt cikla podnimatj i, naprimer, na 2 a ne na 1 ??! ( i := i+2 ). Togda mozhno bilo bi bez etoj stro4ki "if (i mod 2)=1 then"
У меня тоже вопрос: тебе удобно читать на транслите? А ты уверен, что ВСЕМ это удобно?
A esli vot tak poprobovat'
(Теги [TRАNSLIT]A esli vot tak poprobovat'[/TRАNSLIT])
Кстати, в Паскале кроме For есть еще и While:
i := 1; While i <= n do begin ... inc(i, 2); end;
Не забывай, что первый элемент может быть отрицательным, делай проверку... Ты, как я погляжу, пропустил это, и заинтересовался другой "оптимизацией"...
Кто сказал, что первый элемент ВСЕГДА положительный?
Есть ли константа для real, показывающая максимально возможное значения этого типа? Вроде maxint для integer.
--------------------
Лао-Цзы : Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
Sofo4ka, что ты хотела сказать? Пожалуйста, высказывайся подробнее, не заставляй других ломать голову над смыслом твой криптограммы. Прочти свое предложение, делая ударение на разные слова, и ты сама увидишь, что смысл неоднозначен. Обрати внимание на то, как пишут отвечающие (особенно лучшие из них). Ты думаешь, у них просто времени больше? Нет, они просто хотят, чтобы их поняли. Краткость не всегда сестра таланта.
Если ты хотела спросить "а как заполнять массив случайными чисоами?", то так и спроси. Только не в этой теме...
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой
Вообще-то (если ты не заметила) в программе из первого поста ясно указано, что значения задаются с клавиатуры, и С НИМИ уже нужно что-то сделать... Так что никакого отношения к случайным числам это задание не имеет...