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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 30.01.2009, 00:23   #1
LOVELY
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 10
По умолчанию две задачи!!!

дана строка символов (длина <256), которая содержит арифметическое выражение, состоящее из натуральных чисел (<1000) и знаков + и - . Составьте программу, которая вычислит значение выражения.
Input: выражение вводится с клавиатуры
Output: значение выражения выводится на экран

и ещё одна (в переводе):

последовательности созданы из элементов С, разница межжу любыми двумя элементами констнтна...нотируемая Р...написать прогу которая найдеёт все последовательности с максимальным количеством терменов, уточняя Р и первый термен
Инпут: значение н вводиццо с клавы
аутпут: инфа про каждую последовательность будут показываццо на каждой линии отдельно: Р и первый термен через пробел

буду очень благодарна спасителю)))
LOVELY вне форума
Старый 30.01.2009, 01:28   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Первая:
В выражении не должно быть пробелов (раз уж в условии не обговорено, то и не стал заморачиваться)

Код:
uses crt;
var s,tt : string;
i,len,RESL,tmp : integer;
z : boolean;

function getnum(str : string) : integer;
 var gl,gi,rez : integer;
 begin
 rez := 0;
 gl := length(str);
 for gi:=gl downto 1 do
   rez := rez + (ord(str[gi])-48)*round(exp((gl-gi)*ln(10)));
 getnum := rez;
 end;

begin
clrscr;
writeln('Enter string:');
readln(s);

i:=1;
len := length(s);
RESL := 0;
tt := '';
while s[i] in ['0'..'9'] do
 begin
 tt := tt + s[i];
 inc(i);
 end;
RESL := getnum(tt);
while i<len do
  begin
  if s[i]='+' then z := true
   else z := false;
  inc(i);
  tt := '';
  while (s[i] in ['0'..'9']) and (i<=len) do
    begin
    tt := tt + s[i];
    inc(i);
    end;
  tmp := getnum(tt);
  if z then RESL := RESL + tmp
  else RESL := RESL - tmp;
  end;

writeln('Result= ',RESL);
readln;
end.
Пример ввода:
Код:
Enter string:
1+2+3-2+12-4
Result= 12
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 30.01.2009, 01:35   #3
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Код:
program capta1n;
uses crt;
var
 s,x : string[80];
 i,k : byte;
 flag : boolean;
 x1,z,er : integer;
begin
  clrscr;
  writeln ('Input: ');
  writeln ('For example, 34+12-24+2-9 and press the button <ENTER>: ');
  readln(s);
  flag:=true;
  for i:=1 to length(s) do
   if not (s[i] in ['0'..'9','+','-']) then flag:=false;
  if flag then
  begin
    x:='';
    i:=1;
    while (i<=length(s)) and (s[i]<>'+') and (s[i]<>'-') do
    begin
      x:=x+s[i];
      inc(i)
    end;
    writeln (x);
    val (x,z,er);
    repeat
      x:='';
      k:=i+1;
      while (k<=length(s)) and (s[k]<>'+') and (s[k]<>'-') do
      begin
        x:=x+s[k];
        inc(k)
      end;
      val (x,x1,er);
      writeln (x1);
      if s[i]='+' then z:=z+x1
                  else z:=z-x1;
      i:=k
    until i>=length(s);
    writeln ('Value of expression is ',z);
  end
  else writeln ('Error');

  readln

end.
capta1n вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две задачи на массивы. Nadi Помощь студентам 4 25.04.2011 16:58
Две задачи на ассемблере stalker87 Помощь студентам 3 03.10.2010 13:31
две задачи на С++ ELL Помощь студентам 0 01.06.2008 01:28
Две задачи операторам цила Exact Паскаль, Turbo Pascal, PascalABC.NET 3 06.03.2008 18:30