15.04.2012, 17:21 | #1 (permalink) |
Новичок
Регистрация: 19.12.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Написать данную задачу в виде подпрограммы. Дан одномерный массив X(N) .Найти наибольший элемент (MAX), Преобразовать исходный массив таким образом ,чтобы все элементы по модулю не равные (MAX) заменились нулями,остальные единицами. pascal!!!! |
15.04.2012, 17:21 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Не стоит напрасно тратить время, лучше посмотрите аналогичные темы Как преобразовать BMP в doc? элемент декора Что за элемент? Не понимаю как, в Паскале найти второй нечетный элемент двумерного массива Приобрести элемент Пельтье |
15.04.2012, 17:46 | #2 (permalink) |
Студент БГПУ
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
|
ну вот как-то так! только я не пойму почему нельзя сделать самому?
Код:
const n=10; var x:array [1..n] of integer; max,i:integer; begin randomize; for i:=1 to n do begin x[i]:=random(15); if x[i]>max then max:=x[i]; write(x[i],' '); end; writeln; writeln('max=',max); for i:=1 to n do begin if abs(x[i])=max then x[i]:=1 else x[i]:=0; write(x[i],' '); end; readln end. |
15.04.2012, 18:10 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Миша, не стОит усилий. Эту задачку господин Dextel выкладывал еще месяц назад, и тогда же были указаны ошибки в выложенном коде и предложено решение:
http://www.tehnari.ru/f43/t70465/ Однако вышеуказанный господин очевидно так занят распихиванием своих заданий по форумам, что недосуг ему ответы смотреть. Так что зря старался - как и я. |
15.04.2012, 23:36 | #4 (permalink) |
Новичок
Регистрация: 19.12.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вообще-то, если вы заметили, то это совершенно разные задания в первом нужно было решить задачу, а во втором написать по задаче подпрограмму.
К тому же сам я могу написать это, но почему-то при проверке всё время ставят минус и говорят, что всё выполнено не верно. Вот мой пример,который оказался не верным. uses crt; const n=100; var a: array[1..n] of integer; max,i,s: integer; begin max:=-32768; write('Введите кол-во элементов массива (не больше 100): '); repeat read(s); until s in [1..100]; for i:=1 to s do begin write('a[',i,'] = '); read(a[i]); if a[i]>max then max:=a[i]; end; writeln; for i:=1 to s do begin if abs(a[i])<>max then a[i]:=0 else a[i]:=1; write(a[i]); end; end. |
16.04.2012, 10:04 | #5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Procedure Dirty_pig; (без параметров), а снизу вместо точки после завершающего end поставьте точку с запятой - вот и будет "подпрограмма". Не нравится? Тогда уточняйте у преподавателя требования к процедуре, например - передать массив из тела программы и т.п. А так, извините, это просто гадание на кофейной гуще.А вот здесь мой Вам совет - требуйте (именно требуйте!) у преподавателя объяснений. Надо иногда за себя постоять и укоротить преподскую дурость. Потому что, заявляю со всей ответственностью - Ваша программа составлена абсолютно грамотно, безупречно, поставленную задачу решает - так что же именно там "всё неверно"? Единственная мелочь - при выводе нового массива лучше пробелы втыкать, чтобы числа не сливались, хотя, учитывая, что там только нули и единицы, - и это не обязательно. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|