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 ??
Thxx...
Bokul
30.10.2006 7:06
Цитата
u menja 4to-to ne idjot...
Цитата
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.
volvo
30.10.2006 13:49
Вводим N = 10 Массив: (-2, 12, 15, 10, 11, -9, -3, -11, 5, 2) и что будет? Кто сказал, что первый элемент ВСЕГДА положительный? Положительный, извините, еще нужно найти...
Sam
30.10.2006 16:19
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"
volvo
30.10.2006 16:28
У меня тоже вопрос: тебе удобно читать на транслите? А ты уверен, что ВСЕМ это удобно?
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;
Не забывай, что первый элемент может быть отрицательным, делай проверку... Ты, как я погляжу, пропустил это, и заинтересовался другой "оптимизацией"...
Bokul
31.10.2006 5:21
Цитата
Кто сказал, что первый элемент ВСЕГДА положительный?
Есть ли константа для real, показывающая максимально возможное значения этого типа? Вроде maxint для integer.
Sofo4ka
31.10.2006 20:47
а заполнять массив случайными чисоами?
Lapp
1.11.2006 9:13
Цитата(Sofo4ka @ 31.10.2006 17:47)
а заполнять массив случайными чисоами?
Sofo4ka, что ты хотела сказать? Пожалуйста, высказывайся подробнее, не заставляй других ломать голову над смыслом твой криптограммы. Прочти свое предложение, делая ударение на разные слова, и ты сама увидишь, что смысл неоднозначен. Обрати внимание на то, как пишут отвечающие (особенно лучшие из них). Ты думаешь, у них просто времени больше? Нет, они просто хотят, чтобы их поняли. Краткость не всегда сестра таланта.
Если ты хотела спросить "а как заполнять массив случайными чисоами?", то так и спроси. Только не в этой теме...
Sofo4ka
1.11.2006 20:50
я умею заполнять. я имела ввиду эту задачу решить спомощью заполнения случайными числами
volvo
1.11.2006 21:46
Вообще-то (если ты не заметила) в программе из первого поста ясно указано, что значения задаются с клавиатуры, и С НИМИ уже нужно что-то сделать... Так что никакого отношения к случайным числам это задание не имеет...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.