IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записать выражение.
reill
сообщение 16.04.2003 10:19
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Записать выражение :
1 операция 2 операция 3 операция 4 операция 5 операция 6 операция 7 операция 8 операция 9 операция =100, т.е. цифры, от 1 до 9 соединить арифметическими операциями +,-,*,/ так, чтобы результат получился равным 100.Есть восемь вариантов такой записи, например, 1*2+3*4*5-6+7+8-9=100.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
___ALex___
сообщение 20.04.2003 19:55
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 282

Репутация: -  0  +


а вот и сам код:

Код
program ForForum;
{$APPTYPE CONSOLE}
uses
SysUtils;

procedure WriteAllCombinations;
const
IndStr = '+-*/';
var
a, b, c, d, e, f, g, h: Byte;
S: String;

function Calc(S: String): Real;
var
i: Byte;
Res, PromRes: Real;
F, Fl: Boolean;
begin

Res := 0;
i := 1;
repeat
 F := False;
 Fl := False;
 while S[i] in ['*', '/'] do begin
  Fl := True;
  case S[i] of
   '*': if not F then begin
         PromRes := (Sqr(i) + i);
         if i > 1 then begin
          if S[i - 1] = '-' then PromRes := -1 * PromRes;
          S[i - 1] := ' ';
         end;
        end else PromRes := PromRes * (i + 1);
   '/': if not F then begin
         PromRes := i / (i + 1);
         if i > 1 then begin
          if S[i - 1] = '-' then PromRes := -1 * PromRes;
          S[i - 1] := ' ';
         end;
       end else PromRes := PromRes / (i + 1);
  end;
  Inc(i);
  F := True;
 end;
 Inc(i);
 if Fl then Res := Res + PromRes;
until i > 8;

for i := 1 to 8 do
case S[i] of
 '+': if i = 1 then begin
       Res := Res + 3;
      end else begin Res := Res + i + 1; end;
 '-': if i = 1 then begin
       Res := Res - 1;
      end else Res := Res - i - 1;
end;

if S[1] = ' ' then Result := Res + 1 else Result := Res

end;

begin

S := '12345678';
for a := 1 to 4 do begin
S[1] := IndStr[a];
for b := 1 to 4 do begin
S[2] := IndStr[b];
for c := 1 to 4 do begin
S[3] := IndStr[c];
for d := 1 to 4 do begin
S[4] := IndStr[d];
for e := 1 to 4 do begin
S[5] := IndStr[e];
for f := 1 to 4 do begin
S[6] := IndStr[f];
for g := 1 to 4 do begin
S[7] := IndStr[g];
for h := 1 to 4 do begin
S[8] := IndStr[h];
if Calc(S) = 100 then WriteLn(S);
end; end; end; end; end; end; end; end;

end;

begin

WriteAllCombinations;
WriteLn('With the best regards...');
ReadLn

end.


будут вопросы спрашивай(

Сообщение отредактировано: volvo - 17.12.2004 11:51
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
reill   Записать выражение.   16.04.2003 10:19
reill   Re: Записать выражение( помогите сделать лабу)!!!!   19.04.2003 11:37
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 16:46
GLuk   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 16:50
trminator   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 17:09
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 19:12
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 19:34
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 19:55
reill   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 10:48
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 16:45
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 17:17
AlaRic   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 17:25
Slam   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 17:47
reill   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 20:27
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 21:12
___ALex___   Re: Записать выражение.   22.04.2003 11:59
Slam   Re: Записать выражение( помогите сделать лабу)!!!!   22.04.2003 18:53
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   22.04.2003 19:15
reill   Re: Записать выражение( помогите сделать лабу)!!!!   29.04.2003 13:53
AlaRic   Re: Записать выражение( помогите сделать лабу)!!!!   29.04.2003 18:35
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   29.04.2003 20:40
reill   Re: Записать выражение( помогите сделать лабу)!!!!   30.04.2003 4:33
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   30.04.2003 15:54


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 30.07.2025 19:23
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"