1 Востаннє редагувалося Chemist-i (04.09.2016 00:59:22)

Тема: Задача "Сходинки"

Мова програмування - Pascal


Середовище - PascalABC.NET

Ось умова задачі - https://www.e-olymp.com/uk/problems/7669

Ось мій код:

var n,m:integer;
    q,a:char;

    f1,f2:text;
begin
assign(f1,'input.txt');
assign(f2,'output.txt');
reset(f1);
rewrite(f2);
readln(f1,n,m,q,a);
if (m+2)<=n then
 begin
  if a='S'then writeln(f2,m+2) else writeln(f2,m+1);
 end else
  begin
   writeln(f2,m);
  end;
close(f1);
close(f2);
end.

Проблема в тому, що я не можу зрозуміти, чому мій код не проходить на 100%

Chemist-i: Використовуйте теґ code, поважайте тих, хто читає.

2 Востаннє редагувалося leofun01 (03.09.2016 21:42:30)

Re: Задача "Сходинки"

В чому сенс існування змінної q:char ?
Якщо це тільки для того щоб зчитати пробіл, то так робити не можна.
Використайте цикл, який буде читати по одному символу доки не натрапить на потрібний символ (S|s|W|w).

Подякували: FakiNyan1

3

Re: Задача "Сходинки"

О ні! Наче в школу вернувся! Оці змінні - a,b,c,k,s і т.д. Як же досі неправильно вчать. Змінні повинні чітко говорити про те, що вони означають. А також, Ви передбачили, що m+2 може вийти за межі n, але немає такого ж для m+1.

Подякували: FakiNyan, leofun012

4

Re: Задача "Сходинки"

Ви переплутали m і n у випадку, коли не виконується умова m+2 <= n.

Подякували: koala, leofun012

5

Re: Задача "Сходинки"

Master_Sergius написав:

О ні! Наче в школу вернувся! Оці змінні - a,b,c,k,s і т.д. Як же досі неправильно вчать. Змінні повинні чітко говорити про те, що вони означають. А також, Ви передбачили, що m+2 може вийти за межі n, але немає такого ж для m+1.

Це просто задача. І тут важливий не зміст, а результат. І взагалі він порушив правила. Хоч і не цього сайту, то сайту e-olymp.com.