Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 02.12.2012, 18:43   #1 (permalink)
Vikki
Новичок
 
Регистрация: 02.12.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Подскажите, пожалуйста, как решить задачу на Turbo Pascal и что неверно в моем коде

Задача:
Вы начали составлять график дежурства для роты солдат, но вдруг столкнулись с одним очевидным фактом. Любые два солдата, побывавшие вместе на одном из дежурств, начинают раздражать друг друга. Если два солдата уже дежурили вместе три раза, на четвёртый раз они могут разозлить друг друга настолько сильно, что, очевидно, произойдёт непоправимое.
Поэтому вам нужно составить график дежурства на как можно большее количество дней таким образом, чтобы любые два солдата дежурили вместе не более трёх раз.

Исходные данные
В первой строке записано нечётное число n (3 ≤ n ≤ 99).
Результат
В первой строке выведите целое число k, максимальное количество дней, на которое можно составить график дежурств. В i-й из следующих k строк выведите через пробел номера трёх солдат, которые должны вступить на дежурство в i-й день. Солдаты занумерованы целыми числами от 1 до n.

Мой код:
Program Pr;
Uses CRT;
Var
n,i,j,t,k:integer;
A:array[1..100,1..100] of integer;
R:array[1..5000,1..3] of integer;
begin
CLRSCR;
Readln(n);

for i:=1 to N do
for j:=1 to N do
if i<>j then A[i,j]:=0 else A[i,j]:=3;

k:=0;
for i:=1 to N do
for j:=1 to n do
for t:=1 to n do

if (A[i,j]<3)and(A[i,t]<3) and(A[j,t]<3) then
begin
inc(k);
R[k,1]:=i;
R[k,2]:=j;
R[k,3]:=t;
inc(A[i,j]);
inc(A[i,t]);
inc(A[j,t]);
inc(A[j,i]);
inc(A[t,i]);
inc(A[t,j]);
end;
writeln(k);

for i:=1 to k do
writeln(R[i,1],' ',R[i,2],' ',R[i,3]);
Readln;
end.
Vikki вне форума   Ответить с цитированием

Старый 02.12.2012, 18:43
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Эти темы имеют некоторые сходства с вашей, советую пролистать

Помогите решить задачу Pascal
Помогите решить задачу Pascal
Помогите решить задачу в Pascal
Помогите решить задачу в Pascal ABC

Старый 02.12.2012, 20:19   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,287
Сказал(а) спасибо: 290
Поблагодарили 509 раз(а) в 167 сообщениях
Репутация: 92053
По умолчанию

Цитата:
Подскажите, пожалуйста, как решить задачу на Turbo Pascal и что неверно в моем коде
А что Вас не устраивает? Посмотрел Вашу программу - по-моему всё правильно, и метод остроумный. Что не так?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 02.12.2012, 20:49   #3 (permalink)
Vikki
Новичок
 
Регистрация: 02.12.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А что Вас не устраивает? Посмотрел Вашу программу - по-моему всё правильно, и метод остроумный. Что не так?
При отладке он выдает ошибку "Неизвестный идентификатор" при writeln(R[i,1],' ',R[i,2],' ',R[i,3]);. При попытке описать он выдает еще кучу ошибок и в итоге закрывает Паскаль. Пробовала решать другие задачи (думала, может с самим Паскалем, что-то случилось) все получается.
Vikki вне форума   Ответить с цитированием
Старый 02.12.2012, 20:54   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,287
Сказал(а) спасибо: 290
Поблагодарили 509 раз(а) в 167 сообщениях
Репутация: 92053
По умолчанию

Цитата:
Сообщение от Vikki Посмотреть сообщение
При отладке он выдает ошибку "Неизвестный идентификатор" при writeln(R[i,1],' ',R[i,2],' ',R[i,3]);. При попытке описать он выдает еще кучу ошибок и в итоге закрывает Паскаль. Пробовала решать другие задачи (думала, может с самим Паскалем, что-то случилось) все получается.
Ну что тут скажешь - запускал я Вашу программу, как есть, в своем DOS Free Pascal, так жрёт и не давится, и результат на экран выдает.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 02.12.2012, 20:57   #5 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,287
Сказал(а) спасибо: 290
Поблагодарили 509 раз(а) в 167 сообщениях
Репутация: 92053
По умолчанию

Попробуйте снизить границу массива 5000 в несколько раз: может быть, для Вашего Паскаля это многовато?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 02.12.2012, 21:16   #6 (permalink)
Vikki
Новичок
 
Регистрация: 02.12.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Попробуйте снизить границу массива 5000 в несколько раз: может быть, для Вашего Паскаля это многовато?
Действительно получилось. Спасибо большое!
Vikki вне форума   Ответить с цитированием
Старый 02.12.2012, 21:21   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,287
Сказал(а) спасибо: 290
Поблагодарили 509 раз(а) в 167 сообщениях
Репутация: 92053
По умолчанию

Цитата:
Сообщение от Vikki Посмотреть сообщение
Действительно получилось. Спасибо большое!
Ну и славно.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:25.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.