Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 14:42   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

BDA, спасибо. доходчиво.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.10.2012, 15:11   #12
badnum23
Пользователь
 
Регистрация: 10.10.2012
Сообщений: 22
По умолчанию

Serge_Bliznykov, я не особо её тестировал, но разумеется можно подправить и учесть такой вариант.
Есть и ещё одно решение: один внешний цикл и один внутренний. Во внутреннем будет сдвигаться массив на единицу. Потом сравниваться с максимумом текущим. Внешний цикл будет до тех пор, пока n раз не сдвинется на 1. Второй вариант кажется более затратным, нежели чем описанный в моём предыдущем посте.
badnum23 вне форума Ответить с цитированием
Старый 11.10.2012, 15:59   #13
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

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

Не имею среды Pascal — но, насколько мне помнится, это было красиво.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 11.10.2012, 19:34   #14
Chaang
Новичок
Джуниор
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

program task3d;
var
a,r,s,st,i:longint;
b:array [1..31] of longint;
begin
writeln('Введите число ');
readln(a);
if a mod 2=0 then
writeln('Невозможно')
else
begin
r:=0;
st:=1;
s:=0;
while s<a do
begin
r:=r+1;
s:=s+st;
if s<a then st:=st*2;
end;
writeln('Минимальное число шагов ',r);
end;
s:=(s-a) div 2;
st:=1;
for i:=1 to r do
begin
if (s mod 2=0) then
write('+',st)
else
write('-',st);
if i<r then st:=st*2;
s:=s div 2;
end;
readln;
end.
Chaang вне форума Ответить с цитированием
Старый 12.10.2012, 20:41   #15
Вера 13666
Новичок
Джуниор
 
Регистрация: 12.10.2012
Сообщений: 1
Радость

Цитата:
Сообщение от badnum23 Посмотреть сообщение
Решение второй задачи:
Код:
program Project2;

type
  TArray = array [1..100] of Byte;
var
  a: TArray;
  lenA, i, j, max, j1: Integer;
  t: Boolean;

begin
  Randomize;
  lenA := random(90) + 10;
//lenA := 7;

  {a[1] := 1;
  a[2] := 7;
  a[3] := 3;
  a[4] := 0;
  a[5] := 3;
  a[6] := 8;
  a[7] := 2; }

  for i := 1 to lenA do
  begin
    a[i] := random(9)+1;
    write(a[i]);
  end;

  writeln;

  max := 1;
  for i := 2 to lenA do
    if a[i] > a[max] then
      max := i
    else if a[i] = a[max] then
    begin
      j := i+1;
      if j > lenA then j := 1;
      j1 := max+1;
      t := true;
      while t do
      begin
        if a[j] > a[j1] then
        begin
          max := i;
          t := false;
        end
        else if a[j] = a[j1] then
        begin
          inc(j);
          inc(j1);
          if (j > lenA) then
            j := 1;
          if (j1 > lenA) then
            j1 := 1;
        end
        else
          t := false;

      end;
    end;

  i := max;
  while i <> max-1 do
  begin
    write(a[i]);
    inc(i);
    if i > lenA then i := 1;
  end;
  writeLn(a[max-1]);
  readln;

end.
Если требуется, то вы сможете переделать под ввод из файла сами.
Сори за глупый вопрос, но подскажите данный язык программирования)
Вера 13666 вне форума Ответить с цитированием
Старый 12.10.2012, 20:48   #16
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Вера, не надо выделять полностью всё сообщение (особенно с кодом) (это нарушение правил форума (оверквотинг)).
А программа написана на добром Pascal'e.
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cоздать класс жидкость. определить конструкторы деструкторы и функцию печати. создать публик производный класс. (С++) Динар Габбасов Помощь студентам 0 28.05.2012 18:44
Добавить класс в проект2,похожий на класс из проекта1!оба проекта есть! xeops C# (си шарп) 0 15.05.2012 20:31
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
Программирование или web-программирование? Дмитрий Батогов Помощь студентам 3 23.06.2011 14:14
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42