0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 7
1

Баланс BEGIN-END

18.06.2012, 23:27. Показов 2316. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Баланс BEGIN-END. Дан текстовый файл, содержащий программу на языке Паскаль. Проверить в нем баланс служебных слов BEGIN и END. Учесть, что каждый оператор CASE и каждое описание типа RECORD требует дополнительно слова END. По результатам проверки вывести на экран соответствующее сообщение. При обнаружении ошибки указать, какого слова и сколько раз недостает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2012, 23:27
Ответы с готовыми решениями:

Дан массив строк. Напишите программу, проверяющую правильность вложения операторных скобок begin . end — каждому begin должен соответствовать end
Дан массив строк, представляющий собой фрагмент программы на языке Pascal. Напишите программу,...

Проверить правильность расстановки операторных скобок 'begin' и 'end'
Доброго времени суток )))) Помогите пожалуйста : проверка правильности расстановки операторных...

Оператор for. Для чего в коде дополнительные begin-end
Program DimanRu; Var name, surname: string; i:integer; Begin; Writeln('Введите имя...');...

Не получается сделать программу работоспособной. Скорее всего ошибка с Begin и End
Задание: найти индексы минимального элемента матриц (Одного элемента в каждой матрице),...

6
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
19.06.2012, 00:29 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
uses crt;
var  f: text;
     s: string;
     i,k: integer;
begin
assign(f,'D:\in.txt');
reset(f);
while not (eof(f)) do
      begin
      readln (f,s);
      for i:=1 to length (s)-2 do
          begin
          if copy(s,i,5)='BEGIN' then dec(k);
          if copy(s,i,4)='CASE' then dec(k);
          if copy(s,i,6)='RECORD' then dec(k);
          if copy(s,i,3)='END' then inc(k);
          end;
      end;
if k=0 then writeln ('Операторные скобки расставлены правильно') else
   if k>0 then writeln ('Отсутствует END в количестве ',k) else
      writeln ('Отсутствует BEGIN в количестве ',abs(k));
close(f);
end.
1
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 7
19.06.2012, 17:52  [ТС] 3
при много благодарен.

Добавлено через 8 часов 20 минут
почти идеальная программа, но есть один недачёт:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
uses crt;
var  f: text;
     s: string;
     i,k: integer;
begin
assign(f,'*.pas');
reset(f);
while not (eof(f)) do
      begin
      readln (f,s);
      for i:=1 to length (s)-2 do
          begin
          if copy(s,i,5)='BEGIN' then inc(k);
          if copy(s,i,4)='CASE' then inc(k);
          if copy(s,i,6)='RECORD' then inc(k);
          if copy(s,i,3)='END' then dec(k);
          end;
      end;
if k=0 then writeln ('Операторные скобки расставлены правильно') else
   if k>0 then writeln ('Отсутствует END в количестве ',k) else
      writeln ('Отсутствует BEGIN в количестве ',abs(k));
close(f);
end.
Добавлено через 1 минуту
но всё равно большое спасибо
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
19.06.2012, 18:05 4
Цитата Сообщение от клим Посмотреть сообщение
assign(f,'*.pas');
это?! на любителя =) в условии уточнений не было =)
более того, в условии
Цитата Сообщение от клим Посмотреть сообщение
Дан текстовый файл
0
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 7
20.06.2012, 08:59  [ТС] 5
основная ошибка была в том, что были перепутаны (inc) и (dec).Программа выдавала не правильный результат. А так препод сказал, что программа идеальная,то что надо.
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
20.06.2012, 09:23 6
клим, а, ну это возможно, внимательность - не моя сильная сторона =)
1
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 7
20.06.2012, 09:31  [ТС] 7
бывает=)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2012, 09:31
Помогаю со студенческими работами здесь

Записать текст паскаль-программы, разместив ключевые слова begin и end по одному на строку
Ребята помогите пожалуйста . Я студент на практике не могу решить поставленные задачи. 1....

Встречено 'end', а ожидалось begin
uses Crt; Const MaxRec = 4; Type String11 = String; String25 = String; ...

Встречено 'end', а ожидалось begin
Друзья спасайте В конце на последней строчке пишет Встречено 'end', а ожидалось begin не пойму в...

Встречено 'End', а ожидалось begin
Что-то не так с циклами видимо, может свежий взгляд обнаружит ошибку? В строку 48 ругается. ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru