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

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

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

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

Паскаль, подпрограммы функции

hamchuk250894

Новые
Регистрация
9 Дек 2012
Сообщения
45
Реакции
0
Баллы
0
Паскаль, подпрограммы функции

Помогите пожалуйста написать код к такой вот задачки. Условие: дан вектор состоящий из любых чисел Vn, и как я понял нужно, вводя n, чтобы он находил максимальную цифру в векторе и писал числа по убыванию. То есть например вектор состоит из таких чисел как на фото 39205 и программа должна выводить ответ 920, то есть в этом векторе максимальное число 9 и он пишет числа по убыванию после него, то бишь 2 и 0.
 

Вложения

  • ABCD0001.webp
    ABCD0001.webp
    17.6 KB · Просмотры: 47
Помогите пожалуйста написать код к такой вот задачки. Условие: дан вектор состоящий из любых чисел Vn, и как я понял нужно, вводя n, чтобы он находил максимальную цифру в векторе и писал числа по убыванию. То есть например вектор состоит из таких чисел как на фото 39205 и программа должна выводить ответ 920, то есть в этом векторе максимальное число 9 и он пишет числа по убыванию после него, то бишь 2 и 0.
Пожалуйста. Единственное, что мне не вполне ясно - состоит ли вектор из однозначных чисел (цифр) или это не обязательно. У Вас в условии то "цифры", то "числа" - вот и поди пойми.
И еще. Программа учитывает, что элементов, равных максимальному, может быть в исходном массиве больше одного, поэтому выводятся цепочки от каждого из максимальных.
Код:
Const
 Nm=100;
Var
 N,i,j,N_max:Byte;
 i_max:Array[1..Nm] of Byte;
 A:Array[1..Nm] of Integer;
 Max:Integer;
Begin
 Write('N= ');
 Readln(N);
 Randomize;
 For i:=1 to N do
  begin
   A[i]:=50-Random(100);
   Write(A[i]:4);
  end;
 Writeln;
 Max:=A[1];
 For i:=2 to N do
  If A[i]>Max then Max:=A[i];
 N_max:=0;
 For i:=1 to N do
  If A[i]=Max then
   begin
    Inc(N_max);
    i_max[N_max]:=i;
   end;
 For j:=1 to N_max do
  begin
   Write(A[i_max[j]]:4);
   i:=i_max[j];
   repeat
    Inc(i);
    if (i<=N) and (A[i]<A[i-1]) then Write(A[i]:4);
   until (A[i]>=A[i-1]) or (i>N);
   writeln;
  end;
 Readln
End.
 
Вектор состоит из любых чисел
 
программа должна отыскать в векторе максимальное число допустим 9 и после него записать числа которые идут по убыванию. То есть в случае как на фото ответ должен быть таков 9 2 0.
 
программа немножко неверно написана(
 
программа немножко неверно написана(
Значит так, юноша. Благодарю за повторное разъяснение, из которого следует, что Вы меня за полного придурка держите. По сути же вот что. Я не имею обыкновения выкрадывать неоттестированных программ. И если Вас не устраивает - пишите сами. А что касается программы, то ниже приведен результат по Вашему примеру, после того, как в программе (и это ЕДИНСТВЕННОЕ изменение) ввод через случайные числа был заменен ручным. Выведен исходный вектор и результат. Какого рожна Вас не устраивает, не ведаю. На этом - всех благ!
 

Вложения

  • AAA01.webp
    AAA01.webp
    3.3 KB · Просмотры: 92
Извените, я не хотел вас никак оскорбить просто у меня программа вот так работает. Я просто не могу понять почему у меня работает не так как у вас.
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    4.6 KB · Просмотры: 71
Извените, я не хотел вас никак оскорбить просто у меня программа вот так работает. Я просто не могу понять почему у меня работает не так как у вас.
Решительно не понимаю, что Вас не устраивает! Найден максимум (50), и от него последовательность убывающих элементов до первого, который это убывание нарушает. Всё как в условии. И что не так?
 
всё, извините меня пожалуйста) у меня просто голова уже не работает, устал сегодня очень. Ещё раз примите мои глубочайшие извинения. Спасибо большое за программку.
 
всё, извините меня пожалуйста) у меня просто голова уже не работает, устал сегодня очень. Ещё раз примите мои глубочайшие извинения. Спасибо большое за программку.
Ладно, извините и меня за излишнюю резкость. Удачи!
 
Владимир, а вы можете мне скинуть код где в ручную нужно вводить числа? Пожалуйста.
 
Владимир, а вы можете мне скинуть код где в ручную нужно вводить числа? Пожалуйста.
Без проблем:
Код:
Const
 Nm=100;
Var
 N,i,j,N_max:Byte;
 i_max:Array[1..Nm] of Byte;
 A:Array[1..Nm] of Integer;
 Max:Integer;
Begin  
 Write('N= ');
 Readln(N);
 For i:=1 to N do
  begin
   Write('A[',i,']= ');
   Readln(A[i]);
  end;
 Writeln;
 For i:=1 to N do Write(A[i]:4);
 Writeln;
 Writeln;
 Max:=A[1];
 For i:=2 to N do
  If A[i]>Max then Max:=A[i];
 N_max:=0;
 For i:=1 to N do
  If A[i]=Max then
   begin
    Inc(N_max);
    i_max[N_max]:=i;
   end;
 For j:=1 to N_max do
  begin
   Write(A[i_max[j]]:4);
   i:=i_max[j];
   repeat
    Inc(i);
    if (i<=N) and (A[i]<A[i-1]) then Write(A[i]:4);
   until (A[i]>=A[i-1]) or (i>N);
   writeln;
  end;
 Readln
End.
 
Назад
Сверху