![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Агри |
![]()
Сообщение
#1
|
Гость ![]() |
Обидно будет, если не сдам одну-единственную задачу и не получу автомата.
Помогите, пожалуйста. В упор не доходит, как делать. Задача: Есть файл, содержащий текст программы на Паскале. Преобразовать его в файл слов. Проверить в нём соответствие begin и end, case и end. Подсчитать кол-во соответствующих операторов. Вот программка, которую я написала. Работает, но неправильно. Считает кол-во букв почему-то. ? Код program Pascal; {$APPTYPE CONSOLE} uses SysUtils; var fst: file of shortstring; m,n,k, st_l, p,x,y,z,c: Integer; s, word_t: shortstring; begin k:=0; m:=0; n:=0; p:=1; assignfile (fst, 'c:\bykva'); rewrite(fst); Writeln('vvedite stroki'); readln(s); write(fst,S); closefile(fst); assignfile (fst, 'c:\bykva'); reset(fst); while not eof(fst) do begin read(fst,s); x:=pos('begin', s); y:=pos('end', s); z:=pos('case', s); st_l:=length(s); while p<=st_l do begin p:=p+1; if not (s[p] in [' ', ',', '.']) then begin if x>0 then begin n:=n+1; end ELSE if y>0 then begin m:=m+1; end else if z>0 then begin k:=k+1; end; end; end; end; writeln(n:2, m:2, k:2); c:=n+k; If c=m then Writeln('kol-vo operetorov sootvetstvyushee') else writeln('Ne pravilno!'); Closefile(fst); Readln; end. Задачу несколько упростила- лишь бы работала. Просто написала, чтобы нужные слова вводились, и они же считались. Я понимаю, что здесь рассматриваются задачи, написанные в Паскале, но из Паскаля легко можно преобразовать в Делфи, и наоборот. |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 20:50 |