
- •Требования к выполнению и оформлению лабораторных работ по дисциплине «Информатика и программирование»
- •Лабораторная работа № 2
- •Москва 2012
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •If ( not (st[I] in razd))
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •I, {номер обрабатываемого символа }
- •Inv_wrd {инвертированное слово }
I, {номер обрабатываемого символа }
kol_sl, { количество слов в строке }
dl_sl { длина очередного слова в строке }
:integer;
st :string; { исходная строка }
fl : Boolean; {индикатор – слово найдено или нет }
begin
{ задание символов-разделителей слов в строке }
razd:=[' ',',','.',':','!'];
writeln(‘Введите строку для обработки ’);
Readln (st);
i:=1; { обработка начинается с первого символа строки}
kol_sl:=0; {до обработки строки количество слов = 0 }
while ( i<=length(st)) do {обеспечение перебора всех
символов строки }
begin
fl := false; {пока слово не обнаружено }
{ цикл перебора символов текущего слова }
while (i<=length(st)) and (not (st[i] in razd)) do
begin
fl := true; {слово обнаружено }
i:=i+1; {переход к очередному символу строки }
end;
if fl = true
then kol_sl:= kol_sl+1;
i:=i+1; {переход к очередному символу строки }
end;
writeln (‘ В строке ‘ , st ,
‘ обнаружено ‘, kol_sl, ‘слов’);
readln;
end.
{ Определение количества слов в строке. Использование длины слова}
Program Strings_2a;
var
razd:set of char; {множество предполагаемых
разделителей слов в строке }
I, {номер обрабатываемого символа }
kol_sl, { количество слов в строке }
dl_sl { длина слова }
:integer;
st,st1,max,min:string;
begin
{ задание символов-разделителей слов в строке }
razd:=[' ',',','.',':','!'];
writeln(‘Введите строку для обработки ’);
Readln (st);
i:=1; { обработка начинается с первого символа строки}
kol_sl:=0; {до обработки строки количество слов = 0 }
while ( i<=length(st)) do {обеспечение перебора всех
символов строки }
begin
dl_sl:=0; {длина текущего слова}
{ цикл перебора символов текущего слова }
while (i<=length(st)) and (not (st[i] in razd)) do
begin
dl_sl:= dl_sl+1;
i:=i+1; {переход к очередному символу строки }
end;
if dl_sl > 0
then {было слово} kol_sl:= kol_sl+1;
i:=i+1; {переход к очередному символу строки }
end;
writeln (‘ В строке ‘ , st ,
‘ обнаружено ‘, kol_sl, ‘слов’);
readln;
end.
{ Распечатка в столбик слов заданной строки с их номерами}
Program Strings_3;
var
razd:set of char;
I, {номер обрабатываемого символа }
kol_sl, { количество слов в строке,
оно же – порядковый номер }
dl_sl {длина очередного слова}
: integer;
st, {исходная строка }
wrd {текущее слово }
: string;
begin
razd:=[' ',',','.',':','!'];
writeln(‘Введите строку для обработки ’);
Readln (st);
i:=1; { обработка начинается с первого символа строки}
kol_sl:=0; {до обработки строки количество слов = 0 }
while ( i<=length(st)) do {обеспечение перебора всех
символов строки }
begin
dl_sl:=0; {длина текущего слова}
wrd := ‘’; { нач. значение – пустая строка}
{ цикл перебора символов текущего слова }
while (i<=length(st)) and (not (st[i] in razd)) do
begin
dl_sl:= dl_sl+1;
wrd := wrd + st[ i ]; {формирование текущего
слова из букв}
i:=i+1; {переход к очередному символу строки }
end;
if dl_sl > 0
then begin
kol_sl:= kol_sl+1;
writeln ( kol_sl, ‘ ‘, wrd);
end;
i:=i+1; {переход к очередному символу строки }
end;
readln;
end.
{ Поиск палиндромов среди слов заданной строки }
Program Strings_3;
var
razd:set of char;