Задача №8 Урок №22

"Калькулятор":
Напишите функцию, которая получает на вход произвольную строку вида:

5*(3+4)-7*9+3*(2+(2-7))

(арифметическое выражение со скобками любого уровня вложенности и операциями умножения, вычитания и сложения)

и в качестве ответа возвращает результат этого выражения.

Рекомендация: сначала убедитесь, что число открывающих скобок, равно числу закрывающих.

Решение:

Задача №12 Урок №18

Задана последовательность символов, имеющая следующий вид: p1q1p2q2p3...qn–1pn
, где pi
— число, а qi
— знак арифметического действия из набора {+, –, *}. Вычислите значение выражения, предполагая, что действия выполняются согласно правилам арифметики.
Входные данные: На вход программе подается строка указанного вида, состоящая не более чем из 9 чисел, разделенных символами арифметических операций.
Выходные данные: Выведите значение арифметического выражения.

Решение:

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

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

Пользователь вводит строку произвольных символов, посчитайте количество цифр в ней
var s:string;  i,n:Integer;
begin
    readln(s);
    n := 0;
    for i:=1 to Length(s) do begin // обходим строку в цикле
        if (s[i]>='0')and(s[i]<='9') then inc(n);
    end;

    writeln('This string contains ',n,' digits.'); // выводим массив
    readln();
end.
        

Вывод консоли:

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

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

Пользователь вводит произвольную строку, выведите на экран каждый пятый символ или сообщение об ошибке, если строка состоит менее чем из 5 символов.
var s: string;
    i, n: integer;
begin
  write('enter an arbitrary string ');
  readln(s);
  writeln();
  n := length(s);
  if n < 5 then
   writeln('ERROR')
  else
   for i := 1 to n do
    if i mod 5 = 0 then write(s[i], ' ');
  readln();
end.    

Вывод консоли:

Pages

Subscribe to fkn+antitotal RSS