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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2016, 11:42   #11
NikiToZz_
Пользователь
 
Регистрация: 23.04.2016
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я бы написал так:
[CODE]


NikiToZz_, если Вы сдаёте программу через систему автоматического тестирования, то Вы не забыли сделать открытие файла INPUT.TXT на чтение и выходного файла OUTPUT.TXT на запись?

т.е. если речь идёт про https://acmp.ru/asp/do/index.asp?mai...id_problem=242

то добавьте в начало программы:
Код:
  reset(input, 'input.txt');
  rewrite(output, 'output.txt');
2 варианта может быть использовано: Это с файлами и консольно.. я предпочитаю консольно.

А вообще, да, проверяет меня этот сайт.

==================================

И да, ваш код он принял! Отличие от моего - это лишь строчка

Код:
if (length(s)=5)

Последний раз редактировалось NikiToZz_; 04.06.2016 в 11:46.
NikiToZz_ вне форума Ответить с цитированием
Старый 04.06.2016, 11:47   #12
NikiToZz_
Пользователь
 
Регистрация: 23.04.2016
Сообщений: 75
По умолчанию

Цитата:
Сообщение от FPaul Посмотреть сообщение
Код:
if length(st)=5 then
Похоже, именно здесь была ошибка, спасибо!
NikiToZz_ вне форума Ответить с цитированием
Старый 04.06.2016, 11:48   #13
NikiToZz_
Пользователь
 
Регистрация: 23.04.2016
Сообщений: 75
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
чот я увлёкся...
кто-нить скажет мне, дураку, чего я тут понаписал, а?

Код:
function TryStrToCell(const s: string; var cell: byte): Boolean;
begin
  Result:= (s.Length = 2) and 
    CharInSet(s[1], ['A'..'H']) and 
    CharInSet(s[2], ['1'..'8']);
    
  if not Result  
    then exit;
    
  cell:= ((byte(s[1]) - $41) shl 4) or (byte(s[2]) - $31);
end;

function CellToStr(const cell: byte): string;
begin
  Result:= Char($41 + (cell shr 4)) + 
           Char($31 + (cell and $F));
end;

{ cell: буква кодируется ст. тетрадой 
        (A <--> 0, B <--> 1, ..., H <--> 7)
        цифра кодируется мл. тетрадой 
        (1 <--> 0, 2 <--> 1, ..., 8 <--> 7)
        биты 3 и 7 используются для проверки диапазонов.
  Пример: "G2" <---> 6:1 = bin(0110:0001). }

function ValidMoves(const cell: byte): TByteSet;
const
  SHIFT_H: array[0..7] of int8 = (+2, +1, -1, -2, -2, -1, +1, +2);
  SHIFT_V: array[0..7] of int8 = (+1, +2, +2, +1, -1, -2, -2, -1);
var
  x, y, mx, my, idx: int8;  
begin
  Result:= [];
  x:= 7 and (cell shr 4);
  y:= cell and 7;
  
  for idx:= 0 to 7 do
    begin
      mx:= x + SHIFT_H[idx];
      my:= y + SHIFT_V[idx];
      if (mx or my) in [0..7]
        then include(Result, (mx shl 4) or my);
    end;  
end;
Чот сложнааа... Без функций же можно.
NikiToZz_ вне форума Ответить с цитированием
Старый 04.06.2016, 12:00   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Без функций же можно.
функции сильно упрощают и ускоряют отладку, а главное - так надёжней.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверить правильность программы. JellyFilled Паскаль, Turbo Pascal, PascalABC.NET 4 21.10.2014 08:28
Проверить правильность скобок (С++) Cheat Помощь студентам 24 03.02.2013 19:34
вторая олимпиадная задача-проверить наличие номера в телефонной книге Руслан666 Паскаль, Turbo Pascal, PascalABC.NET 1 02.12.2012 16:02
"Задача о ходе коня" на языке С Student2012 Помощь студентам 0 02.01.2012 14:21
Задача о ходе коня McFrey Помощь студентам 2 22.12.2011 23:26