Другие языки программирования и технологии
Помогите решить задачу.
Помогите решить задачу, пожалуйста Дано 3 числа. Между неми можно поставит математические операции: "+" " -" " *" "/" Сколько можно получить значени в результате этих вычислений Задачу нужно решить на паскале
Василий Назаров, все вами написанное падает с грохотом с трехметровой высоты, при b или c равным 0
вместо массива лучше использовать множество (set), тогда не нужно сортировать и считать количество разных элементов. Потому как во множестве не может быть одинаковых элементов.
вместо массива лучше использовать множество (set), тогда не нужно сортировать и считать количество разных элементов. Потому как во множестве не может быть одинаковых элементов.
var
a,b,c,i,j,k2,n:integer;
k:real;
m:array[0..63] of real;
begin
{просим ввести 3 числа}
writeln('vvedite 3 4isla');
readln(a,b,c);
{считаем и записываем варианты в массив}
for i:=0 to 3 do
for j:=0 to 3 do
begin
case i of
0:k:=a+b;
1:k:=a-b;
2:k:=a*b;
3:k:=a/b;
end;
case j of
0:k:=k+c;
1:k:=k-c;
2:k:=k*c;
3:k:=k/c;
end;
m[i*4+j]:=k;
end;
{сортируем массив}
for i:=0 to 62 do begin
k2:=i;
for j:=i+1 to 63 do
if m[k2]>m[j] then k2:=j;
k:=m[ i ];
m[ i ]:=m[k2];
m[k2]:=k;
end;
{считаем число разных чисел в массиве}
n:=1;
for i:=1 to 63 do
if m[i-1] <> m[ i ] then n:=n+1;
{пишем ответ}
writeln('poluchitsya ',n,' variantov')
end.
a,b,c,i,j,k2,n:integer;
k:real;
m:array[0..63] of real;
begin
{просим ввести 3 числа}
writeln('vvedite 3 4isla');
readln(a,b,c);
{считаем и записываем варианты в массив}
for i:=0 to 3 do
for j:=0 to 3 do
begin
case i of
0:k:=a+b;
1:k:=a-b;
2:k:=a*b;
3:k:=a/b;
end;
case j of
0:k:=k+c;
1:k:=k-c;
2:k:=k*c;
3:k:=k/c;
end;
m[i*4+j]:=k;
end;
{сортируем массив}
for i:=0 to 62 do begin
k2:=i;
for j:=i+1 to 63 do
if m[k2]>m[j] then k2:=j;
k:=m[ i ];
m[ i ]:=m[k2];
m[k2]:=k;
end;
{считаем число разных чисел в массиве}
n:=1;
for i:=1 to 63 do
if m[i-1] <> m[ i ] then n:=n+1;
{пишем ответ}
writeln('poluchitsya ',n,' variantov')
end.
Var a,b,c,i,j,n,k,f:integer;
S :real;
Rmas :array[1..96] of real;
Begin
{Vvod abc}
WriteLn('a,b,c=');
ReadLn(a,b,c);
k:=1;
for i:=0 to 3 do
for j:=0 to 3 do
begin
case i of
0:S:=a+b;
1:S:=a-b;
2:S:=a*b;
3:S:=a/b;
end;
case j of
0:S:=S+c;
1:S:=S-c;
2:S:=S*c;
3:S:=S/c;
end;
if (k=1) then Begin Rmas[k]:= S; k:=k+1; End
else
Begin
f:=k-1;
while (f>=1) and (S<>Rmas[f]) do f := f-1;
if (f = 0) then
Begin
Rmas[k]:= S; k:=k+1;
End;
End;
end;
writeln('Otvet - ',k-1);
readln;
End.
Смысл такой. Перебераем все возможные комбинации и записываем в массив, если там уже нет такого числа. Удачи...
S :real;
Rmas :array[1..96] of real;
Begin
{Vvod abc}
WriteLn('a,b,c=');
ReadLn(a,b,c);
k:=1;
for i:=0 to 3 do
for j:=0 to 3 do
begin
case i of
0:S:=a+b;
1:S:=a-b;
2:S:=a*b;
3:S:=a/b;
end;
case j of
0:S:=S+c;
1:S:=S-c;
2:S:=S*c;
3:S:=S/c;
end;
if (k=1) then Begin Rmas[k]:= S; k:=k+1; End
else
Begin
f:=k-1;
while (f>=1) and (S<>Rmas[f]) do f := f-1;
if (f = 0) then
Begin
Rmas[k]:= S; k:=k+1;
End;
End;
end;
writeln('Otvet - ',k-1);
readln;
End.
Смысл такой. Перебераем все возможные комбинации и записываем в массив, если там уже нет такого числа. Удачи...
Похожие вопросы
- Помогите решить задачу на Турбо паскале
- Помогите решить задачу на программирование!
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Помогите решить задачу на Basic
- Помогите решить задачи на Си! Пожалуйста!!!
- помогите решить задачи
- Помогите решить задачи по Паскалю
- Помогите решить задачу в паскале
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите решить задачу (Visual c++)