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

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

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

> Рекурсия
Alex J'Root
сообщение 1.06.2008 3:11
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

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


Помогите с одной задачей:

Написать программу, которая по заданной "Сумме" вычисляет и выводит значение этой суммы.

<Сумма>::=<Целое>|(<Cумма><Знак_операции><Целое>)
<Целое>::=<Цифра>{<Цифра>}
<Знак_операции>::=+|-

Пример правильной "суммы": 24; 34+45; 7-121+32.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Alex J'Root
сообщение 1.06.2008 20:59
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

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


Что-то "немножко" не получилось.

Program Rek;
Uses Crt;
Var
i,j,rez,rez0,rezN,rez1,rezul,perem:integer;
strok,x:string;
p:array[1..20] of integer;
fl:boolean;
Procedure rekyrs(var strok:string);
Begin
For i:=1 to length(strok) do
Begin
If (strok[i]<>'+') or (strok[i]<>'-') then
Begin
Val(strok,rez0,rezul);
perem:=3;
End
else
Begin
x:=Copy(strok,1,i-1);
Val(x,rez1,rezul);
end;
rez1:=rezN;
case perem of
1: begin rez:=rezN+rez+rez1; fl:=true end;
2: begin rez:=(rezN+rez)-rez1; fl:=true end;
end;
If strok[i]='+' then perem:=1;
If strok[i]='-' then perem:=2;
If fl then rezN:=0;
Delete(strok,1,i);
If perem<>3 then rekyrs(strok);
End;
end;
End;
Begin
clrscr;
j:=1;
writeln('Vvedite virazhenie');
readln(strok);
rekyrs(strok);
rez:=rez+rez0;
writeln(rez);
readln;
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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