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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2013, 17:41   #1
AnutaPr
 
Регистрация: 16.08.2013
Сообщений: 6
По умолчанию Паскаль. Условный оператор if

Решила задачу на паскале, но при проверки ее через сайт выдается статус "Частичное решение". При этом программа работает. Подскажите как решить задачу полностью, что я упустила при решении?

Мой вариант решения:
Program Metro511;
Код:
var N,i,j,k,z1,z2,rez:integer;
    inp,outp:text;
begin
     assign(inp,'input.txt');
     reset(inp);
     assign(outp,'output.txt');
     rewrite(outp);
     readln(inp,N,i,j);
     if (k<>j)and(N<=100) then begin
     z1:=j-i-1;
     z2:=N-z1-2;
     if z1<z2 then rez:=z1
                  else rez:=z2;
     end;
     writeln(outp,rez);
     close(inp);
     close(outp);
end.
Программа мне выдает:

Последний раз редактировалось Stilet; 25.08.2013 в 18:33.
AnutaPr вне форума Ответить с цитированием
Старый 25.08.2013, 18:31   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

1) Необходимым качеством программиста является умение отлаживать программы (ну это на будущее).
2) Мой вариант:
Код:
var
  N, i, j, k: integer;

function min(a, b: integer): integer;
begin
  if a < b then
    min := a
  else
    min := b;
end;

begin
  readln(N, i, j);
  k := abs(i - j);
  writeln(min(k - 1, N - k - 1));
end.
Второй вариант (без if - так гораздо интереснее):
Код:
var
  N, i, j: integer;

begin
  readln(N, i, j);
  writeln((N - abs(N - 2 * abs(i - j))) div 2 - 1);
end.
3) Используйте кнопочку Решетка # для оформления кода.
4) Если Вам интересно разобраться в своей программе, а не просто получить правильное решение, то введите для проверки числа 10 1 3 и 10 3 1 и сравните результат.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 25.08.2013 в 18:39.
BDA на форуме Ответить с цитированием
Старый 25.08.2013, 18:36   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Фраза "А должно быть 100 баллов" убивает наповал
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2013, 18:57   #4
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

BDA, вам ТС спасибо то сказал(а)?
kta87 вне форума Ответить с цитированием
Старый 25.08.2013, 19:39   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
А должно быть 100 баллов
Чего уж мелочиться. Лучше - а должно быть 1000 баллов. Или больше, в зависимости от уровня самооценки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.08.2013, 19:48   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Фраза "А должно быть 100 баллов" убивает наповал
Да
Цитата:
Сообщение от kta87 Посмотреть сообщение
BDA, вам ТС спасибо то сказал(а)?
ТС еще на заходил(а)
UPD От ее имени поставили плюсик.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 25.08.2013, 19:52   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Эллипсис

Должно быть сколько заработали! А у ТС просто выражено стремление к идеалу.
Цитата:
Сообщение от kta87 Посмотреть сообщение
BDA, вам ТС спасибо то сказал(а)?
Тот кустик черники, что в углу поста, лично я, наверно, месяца через 3 опознал как весы, и то по подсказке. Так что вы хотите от новобранцев!
Sasha_Smirnov вне форума Ответить с цитированием
Старый 26.08.2013, 12:57   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
без if - так гораздо интереснее
Math и Min, не? Конечно градус "интересности" понизится, зато (возможно) по красивше будет..
Poma][a вне форума Ответить с цитированием
Старый 26.08.2013, 13:50   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Math и Min, не? Конечно градус "интересности" понизится, зато (возможно) по красивше будет..
1) Поскольку "сидел" на turbo pascal, то min писал всегда руками (вроде модуля math нет в TP).
2) Что считать "красивше" - в последнее время, при решении олимпиадных задач, стоит цель (приятно попасть в топ на АЦМП) получения наиболее короткого кода в угоду простоте понимания (добавление uses сразу "раздуло" код).
3) Не знаю, как реализовывается min в библиотеке, но там он должен быть защищен от переполнения, а я всего лишь использовал формулу (-|a - b| + a + b) / 2, которая высчитывает тот самый минимум, но не защищена от переполнений.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 27.08.2013, 13:57   #10
AnutaPr
 
Регистрация: 16.08.2013
Сообщений: 6
По умолчанию

Спасибо большое) Выбрала первый вариант решения с min. Со вторым пока не очень разобралась... но разбираюсь))
И за разъяснение как код вставлять то же спасибо, теперь буду знать)
AnutaPr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Линейные и разветвляющиеся алгоритмы. Условный оператор.На паскаль димон4ик_ Паскаль, Turbo Pascal, PascalABC.NET 5 24.02.2013 20:55
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Условный оператор(паскаль) Lord123 Помощь студентам 3 03.05.2010 20:51