![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
cxt |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача:
В одномерно массиве состоящем из n целых чисел вычеслить номер максемального элемента массива Не подскажите как подправить код чтобы массив нужно было бы вводить самому , а не при помощи randomize Код programm xxx; const count=10; var m:array [1..count] of integer; max,i:integer; begin randomize; for i:=1 to count do begin m[i]:=random(count*2)+1; writeln(m[i], ' '); end; writeln; max:=m[1]; for i:=2 to count do begin if m[i]>max then begin max:=m[i]; end; end; writeln('Максимальный элемент ' , max); end. |
![]() ![]() |
FreeMan |
![]()
Сообщение
#2
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата if m[i]>max then begin max:=m[i]; end; сделай Код if m[i]>m[max] then begin max:=i; end; -------------------- бб
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата как подправить код чтобы массив нужно было бы вводить самому Код for i:=1 to count do begin m[i]:=random(count*2)+1; writeln(m[i], ' '); end; поменяй на Код for i:=1 to count do begin write('m[', i, '] = '); readln(m[i]); end; |
cxt |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не поможете еще раз :D
Пунк Б в этой задаче. Вычеслить произведение элементов массива расположенным между первым и вторым нулевыми элементами. |
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Код i:=1; while (i<=n)and(k=0) do begin if x[i]=0 then k:=i; inc(i); end; if not((k=0)or(k=n)) then begin i:=succ(k); while(i<=n)and(x[i]<>0) do begin p:=p*x[i]; inc(i); if x[i]=0 then flag:=true; end; if flag then writeln('p=',p:2:3) else writeln('No') end; Сообщение отредактировано: klem4 - 9.04.2005 17:21 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
klem4, все проще гораздо
![]() Код const n = 10; a: array[1 .. n] of integer = (1, 2, 0, 4, 5, 6, 0, 8, 9, 10); count: integer = 0; var ix: array[1 .. n] of integer; i, p: integer; begin count := 0; for i := 1 to n do if a[i] = 0 then begin inc(count); ix[count] := i; end; { вот тут можно устроить проверку, "а есть ли вообще 2 нулевых элемента?" } p := 1; for i := ix[1] + 1 to ix[2] - 1 do p := p * a[i]; writeln(p); end. |
cxt |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо за помощь
![]() Но мне не нужен готовый массив Цитата (1, 2, 0, 4, 5, 6, 0, 8, 9, 10) его нужно вводить самому... Это как бы одна задача первую нужно подредактировать чтобы получилась вторая. |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
cxt, я до последней цифры переделывать не буду. Тебе показали, как это делается, дальше - самостоятельно.
|
cxt |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну не как немогу сделать... на верно все перепробовал не получается...
Щас массив вводится но щетает не верно Код program xxx; const n=10; var a:array[1..n] of integer; ix:array[1..n] of integer; i,p,count:integer; begin for i:=1 to n do begin writeln('a[',i,']='); readln(a[i]); end; for i:=1 to n do if a[i]=0 then begin inc(count); ix[count]:=i; end; p:=1; for i:=ix[i]+1 to ix[2]-1 do p:=P*a[i]; writeln('Произведение равно' ,p); end. |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Ну, во-первых, где обнуление Count? (в моем варианте оно все-таки было). А второй вопрос - я НЕ ЗНАЮ, какие данные вводятся, может быть во вводимом массиве просто нет двух нулей? Я не телепат.
Кстати, ИМЕННО поэтому я и делаю задачу так, чтобы были видны данные, с которыми она работает. Да и вот этой строчки у меня не было: Цитата for i:=ix[i]+1 to ix[2]-1 do У меня было так: Цитата for i := ix[1] + 1 to ix[2] - 1 do |
cxt |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хех стоило поставить 1 и заработало...
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:40 |