Const nn=100; var a:array[1..nn] of integer; i,n,s1,s2:integer; begin Write('Введите размер массива n: '); Read(n); Randomize; Writeln('Исходный массив'); for i:=1 to n do begin a[i]:=Random(3000)+1000; Write(a[i]:5) end; Writeln; Writeln('Результаты'); for i:=1 to n do begin s1:=(a[i] div 1000)+(a[i] div 100) mod 10; s2:=(a[i] div 10) mod 10+a[i] mod 10; if s1=s2 then Write(a[i]:5) end end.
Начинаем разбор исходной строки. "25" - первый операнд (за ним следует символ-терминатор Т); "12" - второй операнд (за ним терминирующий знак операции -); "-" - знак операции. Можно вычислять: 25 - 12 = 13 Теперь "13" подставляем на место первого операнда и продолжаем читать строку. "T" - терминирующий символ, он тут для соблюдения синтаксиса; "2" - второй операнд (за ним терминирующий знак операции +); "+" - знак операции. Можно вычислять: 13 + 2 = 15 Теперь "15" подставляем на место первого операнда и продолжаем читать строку. "T" - терминирующий символ, он тут для соблюдения синтаксиса; "45" - второй операнд (за ним терминирующий знак операции +); "+" - знак операции. Можно вычислять: 15 + 45 = 60
Исходное выражение просмотрено до конца, алгоритм разбора закончен. ответ: б) 60
это четные и нечетные
var
a: integer;
even,odd: byte;
begin
readln(a);
even := 0;
odd := 0;
while a > 0 do begin
if (a mod 2) = 0 then
even := even + 1
else
odd := odd + 1;
a := a div 10;
end;
writeln('even: ', even);
writeln('odd: ', odd);
end.
Объяснение: