Задача 3: Поддержка переменных, организация их хранения

<Digit> ::= [0-9]
<UnsignedInteger> ::= "0" | [1-9] <Digit>*
<Integer> ::= "-"? <UnsignedInteger> | [a-z]
<Multiplier> ::= <Integer> | "-" <Multiplier> | "(" <Expression> ")" | "=" <Expression>
<Term> ::= <Multiplier> ( "*" <Multiplier> | "/" <Multiplier> | "=" <Expression>  )*
<Expression> ::= <Term> ( "+" <Term> | "-" <Term> )*

Решение на гитхабе

Задача 1: Реализуйте поддержку унарного минуса

Задача 1: Реализуйте поддержку унарного минуса

Как именно выполнять:

1. Составить ФБН для выражения поддержку которого требуется реализовать, основываясь на той схеме, которая уже реализована в репозитории, пришлите получившуюся схему на проверку
2. Создаем в своем репозитории новую ветку, подходящем названием напр. unminus
3. Проверьте, что тесты для унарного минуса изначально не проходят (код и команда изначально есть в репозитории, для последующих задач мы уже будем добавлять их сами):

Задача 2: Реализуйте поддержку выражений со скобками

<Digit> ::= [0-9]
<UnsignedInteger> ::= "0" | [1-9] <Digit>*
<Integer> ::= "-"? <UnsignedInteger>
<Multiplier> ::= <Integer> | "-" <Multiplier> | "(" <Expression> ")"
<Term> ::= <Multiplier> ( "*" <Multiplier> | "/" <Multiplier> )*
<Expression> ::= <Term> ( "+" <Term> | "-" <Term> )*

Решение на гитхабе

Задача 9 Урок 17

Задача 9 Урок 17

Пользователь вводит исходную строку s.
Ваша программа должна вернуть другую строку, в которой все смежные (соседние) повторяющиеся символы должны быть "удалены" (т.е. повторов в новой строке быть не должно).

var s, n:string; i:integer;
begin
  writeln('Vvedite stroky');
  readln(s);
  for i:=1 to length(s)-1 do
    if s[i]<>s[i+1] then
      n+=s[i];
  writeln('poiycheno: ',n);
  readln();
end.   

Задача 8 Урок 17

Задача 8 Урок 17

Проверить можно ли строки из m перестановкой символов получить строку n.

Задача 7 Урок 17

Задача 7 Урок 17

Пользователь вводит произвольную строку, перестройте её в "ёлочку".
Например, если он ввел:
?
1

rewt34t54346t566

то в ответ программа должны вывести:
?
1
2
3
4
5
6

r
ew
t34
t543
46t56
6

Задача 6 Урок 17

Задача 6 Урок 17

Пользователь вводит строку произвольных символов, выделите из неё массив первых 8 строковых литералов, которые являются числами. И выведите эти числа на экран.

Например, из строки:

?
1

rew2@#$$#435tr353453t4er4

должны быть выделены подстроки:

?
1
2
3
4
5

2
435
353453
4
4

Задача 5 Урок 17

Задача 5 Урок 17

Пользователь вводит строку символов, в которой есть два числа, разделенные другими символами, т.е. строка имеет вид:

?
1

какиетосимволыЧИСЛО1какиетосимволыЧИСЛО2какиетосимволы

необходимо считать данные числа в две строковые переменные s1 и s2.

Задача 4 Урок 17

Задача 4 Урок 17

Пользователь вводит строку произвольных символов, запишите первые 8 символов цифр в массив и выведете этот массив на экран.
Подсказка: массив должен быть "of char".

var i,k:integer; s:string; a:array [1..10] of char;
begin
  readln(s);
  k:=0;
  for i:=1 to Length(s) do
  begin
    if (s[i]>='0')and(s[i]<='9') then
    begin
      inc(k);
      a[k]:=s[i];
    end;
  end;
  for i:=low(a) to k do
    write(a[i]);
  readln();
end.   

Задача 3 Урок 17

Задача 3 Урок 17

Пользователь вводит строку произвольных символов, посчитайте количество цифр в ней.

var i,k:integer; s:string;
begin
  readln(s);
  k:=0;
  for i:=1 to Length(s) do
    if (s[i]>='0')and(s[i]<='9') then inc(k);
  write(k);
  readln();
end.

Pages

Subscribe to fkn+antitotal RSS