Дан символьный файл f.группы символов,разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя,будем называть словами.удалить из файла все однобуквенные слова и лишние пробелы.результат записать в файл g.
250
337
Ответы на вопрос:
Function posblank(s: string; cursor: integer): integer; {возвращает позицию первого пробельного символа в строке s, начиная с позиции, указанной cursor. если такого символа нет, возвращает 0.} var n: integer; begin n : = length(s); while (s[cursor] < > ' ') and (cursor < n) do cursor : = cursor + 1; if cursor = n then if s[cursor] = ' ' then posblank : = n else posblank : = 0 else posblank : = cursor end; function posnonblank(s: string; cursor: integer): integer; {возвращает позицию первого непробельного символа в строке s, начиная с позиции, указанной cursor. если такого символа нет, возвращает 0.} var n: integer; begin n : = length(s); while (s[cursor] = ' ') and (cursor < n) do cursor : = cursor + 1; if cursor = n then if s[cursor] = ' ' then posnonblank : = 0 else posnonblank : = n else posnonblank : = cursor end; procedure getword(s: string; var cursor: integer; var wd: string); {процедура помещает в wd очередное слово из строки s начало слова указано в cursor, после завершения процедуры cursor будет указывать на первый пробельный символ, следующий за найденным словом. лидирующие и хвостовые пробельные символы усекаются. если слово не найдено, то в wd помещается пустая строка} var n, ibegin: integer; begin n : = length(s); if n> 0 then begin cursor : = posnonblank(s, cursor); if cursor > 0 then begin ibegin : = cursor; cursor : = posblank(s, cursor); if cursor > 0 then wd : = copy(s, ibegin, cursor - ibegin) else wd : = copy(s, ibegin, n - ibegin + 1) end else wd : = '' end else begin wd: =''; cursor: =0 end end; var c, cc, w: string; ic: integer; fin, fout: text; begin assign(fin, 'input.txt'); reset(fin); assign(fout, 'output.txt'); rewrite(fout); while not eof(fin) do begin ic : = 1; cc : = ''; readln(fin, c); while ic > 0 do begin getword(c, ic, w); if w < > '' then cc : = cc + ' ' + w end; cc : = copy(cc, 2, length(cc) - 1); writeln(fout, cc) end; close(fin); close(fout); end.
Program gt; var f,g: text; s,b: string; l,i: integer; begin assign(f,'c: \input.txt'); reset(f); assign(g,'c: \output.txt'); rewrite(g); while not eof(f)do begin readln(f,s); l: =length(s); b: =''; if (s[2]< > ' ') then b: =s[1]; i: =1; while i< l-1 do begin i: =i+1; if (s[i-1]=' ') and (s[i]< > ' ') and (s[i+1]=' ') then i: =i+1 else b: =b+s[i]; end; if (s[l-1]< > ' ') then b: =b+s[l]; writeln(g,b); end; close(f); close(g); end.
pascal:
program strings;
uses crt;
var i,open,close: integer;
a: string;
begin
open: =0;
end: =0;
clrscr;
write('введите строку: '); readln(a);
for i: =1 to length(a) do
begin
if a[i]='(' then open: =open+1;
if a[i]=')' then close: =close+1;
end;
writeln('открывающихся скобок: ', open, ' штук');
writeln('закрывающихся скобок: ', close, ' штук');
readln;
end.
Популярно: Информатика
-
LeraBelenko02.07.2022 20:08
-
mistermelya04.12.2020 04:09
-
0Snezhana022.05.2023 22:29
-
anntokarieva18.06.2021 06:57
-
grachikovaleksei07.12.2022 06:11
-
дильназ05айдархан18.09.2020 18:49
-
11Катя1111120.05.2020 23:37
-
lera0886220.01.2021 11:09
-
arihadid15.08.2021 19:25
-
2a0n0u5g28.03.2020 13:20