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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2015, 16:17   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
function ListOfHouses(N,K: Integer): String; { 0<K<=N }
var i,j: Integer;
begin
  Result:=''; j:=2;
  for i:=1 to N do begin
    Result:=Result+Format('%d ',[K]);
    if ((j=2) and (K=N-1)) or ((j=-2) and (K=1)) then j:=1
    else if ((j=2) and (K=N)) or ((j=-2) and (K=2)) then j:=-1
    else if (((j=1) and (K=N)) or ((j=-1) and (K=N-1))) and (K>2) then j:=-2
    else if ((j=-1) and (K=1)) or ((j=1) and (K=2)) then j:=2;
    Inc(K,j);
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var i,j: Integer;
begin
  Memo1.Clear;
  for i:=1 to 10 do
    for j:=1 to i do
      Memo1.Lines.Add(Format('%d %d   -   %s',[i,j,ListOfHouses(i,j)]))
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.08.2015, 16:21   #12
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

evg_m, так лишние шаги цикла будут, и тем самым время работы программы увеличиться.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 06.08.2015, 16:28   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Аватар, круто выглядит, жалко только, что почтальон делает 2 перехода дороги.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.08.2015, 16:44   #14
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
и тем самым время работы программы увеличиться.
основное время работы это ВЫВОД (write), а их ровно столько сколько надо!(и изменение их невозможно)
Если конечно не рассматривать гипотетический случай с накоплением данных в буфере.
Код:
a: array[1..N] of integer;
writeln (a);
можно конечно уменьшить количество итераций, но тем самым мы увеличим число операций внутри (и не факт что их время будет меньше одной проверки + изменение счетчика).
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 06.08.2015 в 16:50.
evg_m вне форума Ответить с цитированием
Старый 06.08.2015, 16:44   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
жалко только, что почтальон делает 2 перехода дороги
Дык сделал вперед по стартовой стороне и по кругу. Минимальней путь не получится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.08.2015, 16:51   #16
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
основное время работы это ВЫВОД (write)
Согласен, что по сравнению с write, остальные операции это должны быть мелочи, но можно ж сделать цикл с шагом в 2, а не в 1.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 06.08.2015, 16:54   #17
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Дык сделал вперед по стартовой стороне и по кругу. Минимальней путь не получится
Насколько я понял пан BDA имел ввиду, что увеличив кол-во переходов (мол их минимальное кол-во будет равно 5), нужно будет существенно увеличить кол-во строк кода

Или что можно сделать один переход, сделав больше шагов
Poma][a вне форума Ответить с цитированием
Старый 06.08.2015, 17:51   #18
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
но можно ж сделать цикл с шагом в 2, а не в 1.
Цитата:
можно конечно уменьшить количество итераций, но тем самым мы увеличим число операций внутри (и не факт что их время будет меньше одной проверки + изменение счетчика).
Offtop: Бедный ТС я думаю уже боится зайти в эту тему, так "развили" тему.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.08.2015, 18:20   #19
metanol
 
Регистрация: 11.05.2015
Сообщений: 6
По умолчанию

Да нет,захожу и захожу)
Правда,мне кажется,что автор хотел,чтобы я решил эту задачку немного проще,т.к. это программа на повторение цикла for

Последний раз редактировалось metanol; 06.08.2015 в 18:23.
metanol вне форума Ответить с цитированием
Старый 06.08.2015, 18:29   #20
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от metanol Посмотреть сообщение
это программа на повторение цикла for


Тогда лучше всего подойдет вариант evg_m: #10
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана последовательность слов, между соседними словами запятая, за последним словом точка. Напечатать в алфавитном порядке все глас zirko_o Паскаль, Turbo Pascal, PascalABC.NET 11 23.03.2014 18:33
ФОРТРАН создать последовательность номеров в порядке возрастания елемента с номером vova_ Помощь студентам 0 09.12.2011 00:50
[C++] Напечатать последовательность слов, удалив повторно входящие слова rtpn Visual C++ 4 30.12.2010 11:24
Напечатать содержимое исходного файла и полученную заданным образом последовательность. Babur4iK Помощь студентам 3 17.04.2010 10:48
НАпечатать наибольшую последовательность состоящую gred Помощь студентам 6 23.03.2008 16:12