Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 7

Баланс BEGIN-END

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

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

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

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

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

6
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
19.06.2012, 00:29
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  [ТС]
при много благодарен.

Добавлено через 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
Цитата Сообщение от клим Посмотреть сообщение
assign(f,'*.pas');
это?! на любителя =) в условии уточнений не было =)
более того, в условии
Цитата Сообщение от клим Посмотреть сообщение
Дан текстовый файл
0
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 7
20.06.2012, 08:59  [ТС]
основная ошибка была в том, что были перепутаны (inc) и (dec).Программа выдавала не правильный результат. А так препод сказал, что программа идеальная,то что надо.
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
20.06.2012, 09:23
клим, а, ну это возможно, внимательность - не моя сильная сторона =)
1
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 7
20.06.2012, 09:31  [ТС]
бывает=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2012, 09:31
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru