Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2011, 20:25   #1
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию уравнение

.Разработать программу, которая будет находить корень уравнения вида x + 5 = 12, и выводить ответ в виде: x = 7. Переменная может быть обозначена любой строчной латинской буквой. Переменная может быть либо первым, либо вторым операндом в левой части уравнения. В левой части уравнения может быть либо операция сложения либо вычитания. Константы и в левой и в правой части уравнения - целые числа. Примеры:

-10 - y = 3 Ответ: y = -13
a + 4 = 12 Ответ: a = 8

И может быть только одна строка!!
Poma][a вне форума Ответить с цитированием
Старый 11.10.2011, 20:36   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

сам я пытался :
зделал цикл чтоб удалил все пробелы, затем

Код:
k  := 1;
Val (s [k], i, err);
if  err <> 0 then begin
          Val (s[k+2], i, err);
           k := k +2;
           end;
Inc (k);
d := i;
Val (s [k], i, err);
l :=Pos ('=', s);
While err = 0 do begin
           d := d + 1;
           val (s [k], i, err);
           end;
WriteLn (d)
end.
знаю что программa не всz (там даже половины нет)) но в последнем цикле ошибка, я её не вижу помогите плиз

Последний раз редактировалось Poma][a; 12.10.2011 в 17:19.
Poma][a вне форума Ответить с цитированием
Старый 12.10.2011, 20:38   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

ну блин!! люди помогите !!!
Poma][a вне форума Ответить с цитированием
Старый 12.10.2011, 23:16   #4
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

Вот, написано кривовато, но работает)
Код:
uses crt;
var
	str, num, num2 : string;
	ch : char;
	i, k, x : integer;
	subz, ravno : boolean;
procedure DelSpace(var s : string);
var
	i : integer;
begin
	i := 1;
	while i <= length(s) do
	begin
		if str[i] = ' ' then Delete(s, i, 1);
		Inc(i);
	end;
end;

begin
           clrscr;
	ReadLn(str);
	DelSpace(str);
	i := 1;
	k := 1;
	subz := false;
	ravno := false;
	while i <= length(str) do
	begin
		if (str[i] >= 'a') and (str[i] <= 'z') then
		begin
			ch := str[i];
		end;
		if ((str[i] >= '0') and (str[i] <= '9')) or ((str[i] = '-') and (str[i + 1] >= '0') and (str[i + 1] <= '9')) then
		begin
			if not ravno then
			begin
				num[k] := str[i];
				num[0] := Chr(k);
				Inc(k);
			end;	
		end;
		if (str[i] = '-') and (str[i + 1] >= 'a') and (str[i] <= 'z') and (not ravno) then
		begin
			subz := true;
		end
		else if ravno = true then
		begin
			num2[k] := str[i];
			num2[0] := Chr(k);
			Inc(k);
		end
		else if (str[i] = '=') then
		begin
			ravno := true;
			k := 1;
		end;
		Inc(i);
	end;
	val(num, k, i);
	val(num2, x, i);
	i := 1;
	x := x - k;
	if subz then
		x := x * (-1);
	WriteLn(ch, ' = ', x);
	readln
end.

Последний раз редактировалось _Alerter_; 12.10.2011 в 23:26.
_Alerter_ вне форума Ответить с цитированием
Старый 13.10.2011, 20:30   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Сообщение от _Alerter_ Посмотреть сообщение
Вот, написано кривовато, но работает)
Код:
uses crt;
var
	str, num, num2 : string;
	ch : char;
	i, k, x : integer;
	subz, ravno : boolean;
procedure DelSpace(var s : string);
var
	i : integer;
begin
	i := 1;
	while i <= length(s) do
	begin
		if str[i] = ' ' then Delete(s, i, 1);
		Inc(i);
	end;
end;

begin
           clrscr;
	ReadLn(str);
	DelSpace(str);
	i := 1;
	k := 1;
	subz := false;
	ravno := false;
	while i <= length(str) do
	begin
		if (str[i] >= 'a') and (str[i] <= 'z') then
		begin
			ch := str[i];
		end;
		if ((str[i] >= '0') and (str[i] <= '9')) or ((str[i] = '-') and (str[i + 1] >= '0') and (str[i + 1] <= '9')) then
		begin
			if not ravno then
			begin
				num[k] := str[i];
				num[0] := Chr(k);
				Inc(k);
			end;	
		end;
		if (str[i] = '-') and (str[i + 1] >= 'a') and (str[i] <= 'z') and (not ravno) then
		begin
			subz := true;
		end
		else if ravno = true then
		begin
			num2[k] := str[i];
			num2[0] := Chr(k);
			Inc(k);
		end
		else if (str[i] = '=') then
		begin
			ravno := true;
			k := 1;
		end;
		Inc(i);
	end;
	val(num, k, i);
	val(num2, x, i);
	i := 1;
	x := x - k;
	if subz then
		x := x * (-1);
	WriteLn(ch, ' = ', x);
	readln
end.
спасибо щас буду разбираться
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
уравнение Екатерина Воробей Паскаль, Turbo Pascal, PascalABC.NET 2 03.10.2011 18:42
Уравнение werser Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 18.11.2010 21:50
Квадратное уравнение LuBuMaster Общие вопросы C/C++ 0 24.03.2010 18:19
уравнение A*X=B CyberOrcX Помощь студентам 4 14.10.2009 16:12
Уравнение Paul_AG Общие вопросы C/C++ 19 10.05.2009 22:50