Case понимает только integer, т.е можно написать: case A of 1 : bla 2 : bla-bla end; такое выражение выдаст ошибку: case A of 'sin' : bla 'cos' : bla-bla end; т.к в данном случае используется string вместо integer; если делается калькулятор в одно действие (число - знак - число, пример: 2 + 3), то можно сделать так: if znak = 'sin' then result := sin(number) else if znak = 'cos' then result := cos(number) ... (другие условия) Если же создаётся калькулятор с неограниченным числом параметров (2 + 5 * 4 / 5), то имеет смысл найти парсинга математических выражений Вроде всё
var num : integer; begin readln(num); case num of 1 : bla (понедельник) 2 : bla-bla (вторник) ... 6 : bla-bla-bla (суббота) end; end.
Var i, j, n, kolPol, kolOtr, sum, p, ch, k :integer; a :array of integer;
begin
readln(n); SetLength(a,n+1); randomize; for i:= 1 to n do a[i]:= random(100)-50;
sum:= 0; p:= 1; for i:= 1 to n do begin if a[i] > 0 then begin inc(kolPol); sum:= sum + a[i]; end; if a[i] > 0 then begin inc(kolOtr); p:= p * a[i]; end; end;
i:= 1; p:= 1; ch:= 0; while (a[i] >= 0) and (i <> n+1) do begin p:= p * a[i]; inc(ch); inc(i); end;
if ch <> 0 then writeln('Произведение до первого отрицательного элемента: ',p) else writeln('Первый элемент массива отрицательный!');
for i:= 1 to n-1 do for j:= 1 to n-i do if a[j] > a[j+1] then begin k:= a[j]; a[j]:= a[j+1]; a[j+1]:= k; end; writeln('Массив отсортирован по возрастанию:'); for i:= 1 to n do write(a[i],' ');
Человек воспринимает информацию из окружающего мира с органов чувств; их пять :осязание, обоняние, зрение, вкус, слух.