Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
alexander996
0 / 0 / 0
Регистрация: 28.12.2014
Сообщений: 5
1

Объяснить, почему программа для подсчёта скобок в тексте работает не так, как ожидается

04.06.2015, 21:51. Просмотров 266. Ответов 1
Метки нет (Все метки)

я ввожу текст в блокноте с скобками, мне нужно подсчитать количество скобок в программе, но у меня выходит текст вместо количества скобок, почему?


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
program kurs1;
var str,st:string;
s:string[1];
f1:text;
i,k,n:integer;
begin
Assign (f1, 'f1.txt');
Reset (f1);
While Not Eof (f1) Do
begin
 Read (f1, s);
 str:=concat(str,s);
 end;
close(f1);
st:=str;
writeln(st);
i:=0;
if   pos('(', st)<> pos(')', st) then
begin
while pos('(', st)<>0 do begin
i:=i+1;
n:= pos('(', st);
k:= pos(')', st);
If n<k then
 begin
 If n<>0 then st:=copy(st, n+1, length(st)-n)
 else if  k<>0 then st:=copy(st, n+1, length(st)-k);
 end;
end;
end;
writeln (i);
end.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2015, 21:51
Ответы с готовыми решениями:

Почему при вводе элементов массива, программа прекращает работу или работает не так, как ожидается?
При вводе элементов массива, программа прекращает работу или не правильно работает. Например если...

Почему malloc работает не так, как ожидается?
int main() { int* p =malloc(sizeof(int)); p=5; printf(&quot;%s\n&quot;,strerror(errno)); ...

Почему цикл работает не так, как ожидается?
Двумя способами реализовал цикл, который увеличивает годовую зарплату на 10% при нажатии 'y' до тех...

Нюансы работы с массивами: почему программа ведёт себя не так, как ожидается?
// ConsoleApplication20.cpp: определяет точку входа для консольного приложения. // #include...

1
ZX Spectrum-128
Модератор
Эксперт Pascal/Delphi
5699 / 3882 / 4342
Регистрация: 05.06.2014
Сообщений: 19,310
05.06.2015, 15:31 2
Так надо было?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program kurs1;
var
  st:string;
  s:char;
  f1:text;
  i,k,n:integer;
begin
  st:='';
  Assign (f1, 'f1.txt');
  Reset (f1);
  While Not Eof (f1) Do
    begin
      Read (f1, s);
      st:=st+s;
    end;
  close(f1);
  writeln(st);
  n:=0;
  k:=0;
  for i:=1 to length(st) do
    begin
      if st[i]='(' then
       inc(n);
      if st[i]=')' then
       inc(k);
    end;
  writeln('"(" = ',n);
  writeln('")" = ',k);
  if n=k then
    writeln ('Пар скобок: ',n)
  else
    begin
      i:=n-abs(n-k);
      writeln ('Пар скобок: ',i)
    end;
  readln;
end.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2015, 15:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нюансы работы с оператором ветвления if else: почему программа ведёт себя не так, как ожидается?
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; void check_weekday(string day) { if...

Нюансы работы с оператором ветвления if else: почему программа ведёт себя не так, как ожидается?
Имеется код: int a; char q; for (;;) { cout &lt;&lt; &quot;Введите число: &quot;; cin &gt;&gt; a;

Прочитать символы из файла, используя eof() (программа работает не так, как ожидается)
Здравствуйте, мне нужно прочитать символы из файла(желательно с пробелами). Использую eof(), но...

#define работает не так, как ожидается
Здравствуйте. Подскажите, пожалуйста, почему в таком случае некорректно использовать #define: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.