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

Баланс BEGIN-END

18.06.2012, 23:27. Показов 2719. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru