• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Найти наибольший элемент, преобразовать массив

  • Автор темы Автор темы Dextel
  • Дата начала Дата начала

Dextel

Ученик
Регистрация
19 Дек 2011
Сообщения
6
Реакции
0
Баллы
0
Помогите сделать!
Написать данную задачу в виде подпрограммы.
Дан одномерный массив X(N) .Найти наибольший элемент (MAX), Преобразовать исходный массив таким образом ,чтобы все элементы по модулю не равные (MAX) заменились нулями,остальные единицами.

pascal!!!!
 
ну вот как-то так! только я не пойму почему нельзя сделать самому?
Код:
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.
 
Миша, не стОит усилий. Эту задачку господин Dextel выкладывал еще месяц назад, и тогда же были указаны ошибки в выложенном коде и предложено решение:
http://www.tehnari.ru/f43/t70465/
Однако вышеуказанный господин очевидно так занят распихиванием своих заданий по форумам, что недосуг ему ответы смотреть. Так что зря старался - как и я.
 
Вообще-то, если вы заметили, то это совершенно разные задания в первом нужно было решить задачу, а во втором написать по задаче подпрограмму.
К тому же сам я могу написать это, но почему-то при проверке всё время ставят минус и говорят, что всё выполнено не верно.
Вот мой пример,который оказался не верным.
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);
if a>max then max:=a;
end;

writeln;
for i:=1 to s do begin
if abs(a)<>max then a:=0
else a:=1;
write(a);
end;
end.
 
Вообще-то, если вы заметили, то это совершенно разные задания в первом нужно было решить задачу, а во втором написать по задаче подпрограмму.
Нет, не заметил. Потому что никакой принципиальной разницы между программой и подпрограммой нет - только оформление. А помочь Вам ни я, ни Shrek не можем по одной простой причине: задание неконкретно. Что значит "написать подпрограмму"? Какие из параметров считать локальными, а какие - глобальными? В конце концов, ну напишите сверху
Procedure Dirty_pig; (без параметров),
а снизу вместо точки после завершающего end поставьте точку с запятой - вот и будет "подпрограмма". Не нравится? Тогда уточняйте у преподавателя требования к процедуре, например - передать массив из тела программы и т.п. А так, извините, это просто гадание на кофейной гуще.
К тому же сам я могу написать это, но почему-то при проверке всё время ставят минус и говорят, что всё выполнено не верно. Вот мой пример,который оказался не верным.
А вот здесь мой Вам совет - требуйте (именно требуйте!) у преподавателя объяснений. Надо иногда за себя постоять и укоротить преподскую дурость. Потому что, заявляю со всей ответственностью - Ваша программа составлена абсолютно грамотно, безупречно, поставленную задачу решает - так что же именно там "всё неверно"? Единственная мелочь - при выводе нового массива лучше пробелы втыкать, чтобы числа не сливались, хотя, учитывая, что там только нули и единицы, - и это не обязательно.
 
Назад
Сверху