ответ:var a, b: real; s: string; begin readln(a); readln(b); readln(s); if s = '+' then write(a + b); if s = '-' then write(a - b); if s = '/' then if b <> 0 then write(a / b) else write('Деление на 0!'); if s = '*' then write(a * b); if s = 'mod' then if b <> 0 then write(Round(a) mod Round(b)) else write('Деление на 0!'); if s = 'pow' then write(power(a, b)); if s = 'div' then if b <> 0 then write(Round(a) div Round(b)) else write('Деление на 0!'); end.Пояснение:
В pascal операции mod и div к вещественным типам недоступны, поэтому округляем их через Round. Можно поменять на Trunc - он возвратит только целую часть.
Однако правильнее будет делать через case:var a, b: real; s: string; begin readln(a); readln(b); readln(s); case s of char.ToString('+'): write(a + b); char.ToString('-'): write(a - b); char.ToString('/'): if b <> 0 then write(a / b) else write('Деление на 0!'); char.ToString('*'): write(a * b); 'mod': if b <> 0 then write(Round(a) mod Round(b)) else write('Деление на 0!'); 'pow': write(power(a, b)); 'div': if b <> 0 then write(Round(a) div Round(b)) else write('Деление на 0!'); end; end.Пояснение:
В case '+', '-', '/', '*' воспринимаются как char, поэтому переводим их в string через стандартный метод класса char: char.ToString( )
В pascal операции mod и div к вещественным типам недоступны, поэтому округляем их через Round. Можно поменять на Trunc - он возвратит только целую часть.
Однако правильнее будет делать через case:var a, b: real; s: string; begin readln(a); readln(b); readln(s); case s of char.ToString('+'): write(a + b); char.ToString('-'): write(a - b); char.ToString('/'): if b <> 0 then write(a / b) else write('Деление на 0!'); char.ToString('*'): write(a * b); 'mod': if b <> 0 then write(Round(a) mod Round(b)) else write('Деление на 0!'); 'pow': write(power(a, b)); 'div': if b <> 0 then write(Round(a) div Round(b)) else write('Деление на 0!'); end; end.Пояснение:В case '+', '-', '/', '*' воспринимаются как char, поэтому переводим их в string через стандартный метод класса char: char.ToString( )
Примеры работ:1) Program Massiv1;
Uses Crt;
var k:array[1..12] of real;
i,c:integer;
begin
clrscr;
write('Введите элементы массива k:');
c:=0;
for i:=1 to 12 do
begin
readln(k[i]);
if (k[i]<0) then Inc(c);
end;
writeln;
writeln;
for i:=1 to 12 do write(k[i]:4:4);
writeln;
writeln('Количество элементов <0:',c);
readkey;
end.
2) Program Massiv2;
Uses Crt;
var m:array[1..10] of integer;
i,c:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0;
for i:=1 to 10 do
begin
readln(m[i]);
if (m[i]=3) then Inc(c);
end;
writeln;
writeln;
for i:=1 to 12 do write(m[i]:4);
writeln;
writeln('Количество элементов =3:',c);
readkey;
end.
В третьем задании видимо имеется ввиду номер элемента этого массива, т.к по условию задачи массив у нас один.
3) Program Massiv3;
Uses Crt;
var m:array[1..8] of integer;
i,c,max:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0;
for i:=1 to 8 do readln(m[i]);
writeln;
writeln;
max:=m[1]
for i:=1 to 8 do
begin
if (m[i]>max) then
begin
max:=m[i];
c:=i
end;
write(m[i]:4);
end;
writeln('Индекс максимального элемента =:',c);
readkey;
end.
4) Program Massiv4;
Uses Crt;
var m:array[1..12] of integer;
i,c,max,sum:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0; sum:=0;
for i:=1 to 12 do readln(m[i]);
writeln;
writeln;
max:=m[1]
for i:=1 to 12 do
begin
if (m[i]>max) then
begin
max:=m[i];
c:=i
end;
write(m[i]:4);
end;
for i:=1 to c-1 do sum:=sum+m[i];
writeln('Количество элементов расположенных до max :',с-1);
writeln('Сумма элементов расположенных до max :',sum);
readkey;
end.
В пятом задании видимо имеется ввиду значения элементов массива меньшие чем сумма первого и последнего
5) Program Massiv5;
Uses Crt;
var k:array[1..15] of real;
sum:real;
i,c:integer;
begin
clrscr;
write('Введите элементы массива k:');
c:=0;
for i:=1 to 15 do readln(k[i]);
sum:=k[1]+k[15];
writeln;
writeln;
for i:=1 to 15 do
begin
write(k[i]:4:4);
if (k[i]<sum) tnen Inc(c);
end;
writeln;
writeln('Количество элементов :',c);
readkey;
end.