Var os,t,s: string;
I,l,m,k,j:byte;
begin
readln(s);
s:=' '+s+' ';
{пропустимо пробіли в кінці речення}
i:=length(s);
while (s[i]=' ') or (s[i]='.') do
dec(i);
l:=i;
{знаходимо початок останнього слова}
while s[i]<>' ' do
dec(i);
m:=i;
os:=copy(s,m+1,l-m);{виділяємо останнє слово}
i:=1;
while i<length(s) do
begin
if (s[i]=' ') and(s[i+1]<>' ') then
begin
t:='';i:=i+1;
while (s[i]<>' ') and (s[i]<>'.') do
begin
t:=t+s[i];
inc(i);
end;
if (os<>t) then
begin
k:=0;
for j:=1 to length(t) do
if t[j]=’i’ then k:=k+1;
if k>2 then writeln(t);
end;
dec(i);
end;
i:=i+1;
end;
end.
Контрольні запитання.
-
Що таке рядкова змінна?
-
Який розмір може мати рядкова змінна?
-
Що знаходиться в нульовому символі рядкової змінної?
-
Чим відрізняється використання рядкової змінної від масиву символів?
-
Які стандартні функції та процедури для рядкової змінної Ви знаєте?
Тести для підсумкового контролю.
Для заданого рядка s визначити значення індексу останнього символа:
1. 255 2. length(s) 3. pos(s,i) 4. s-i
2. Чому дорівнює значення функції pos(‘и’,s), де s=’великий’:
1. 6 2. 4 3. 0 4. 4 та 6
3. Яким чином вводиться рядок:
1. read(s); 2.readln(s); 3. readln(s[i]); 4. for i:=1 to n do read(s[i]);
4. Для заданого рядка t=’казначей’ визначити результат виконання операції
delete(t, 2, 3);
-
‘’ 2. качей 3. казчей 4. казна
4. Для заданого рядка t=’печаль’ визначити результат виконання операції
insert(‘ит’,t, 6);
-
‘’ 2. печалить 3. печальит 4. печалит
6. Який результат має str(s, 2578):
-
2578
-
‘2578’
-
двадцять п’ять сімдесят вісім
-
дві тисячі п’ятсот сімдесят вісім
7. Який результат має val(‘3,1415’, x, c):
-
х=3,1315, с=1
-
х=3,1315, с=0
-
х не визначене, с=1
-
х не визначене, с=2
8. Видалення зайвих прогалин у рядку:
1. while s[i]=’ ‘ do delete(s,i,1);
2. if s[i]=’ ‘ then delete(s[i]);
3. if s[i]=’ ‘ then while s[i]=’ ‘ do delete(s,i,1);
4. if s[i]=’ ‘ then while s[i+1]=’ ‘ do delete(s,i+1,1);
9. Як визначити кількість слів у рядку:
1. k:=0; For i:=1 to n do if t[i]<>’ ’ then k:=k+1;
2. k:=0; For i:=1 to pos(‘ ‘,t) do if t[i]<>’ ’ then k:=k+1;
3. k:=0; For i:=1 to length(t) do if t[i]<>’ ’ then k:=k+1;
4. k:=0; For i:=1 to length(t) do if (t[i]=’ ’) and (t[i+1]<>’ ’) then k:=k+1;
10. Яка програма неправильна:
1) var x : array [1..20] of char; 2) var x : array [1..20] of char;
i:integer;
i:integer; b:boolean; b:boolean;
begin readln(x); begin for i:=1 to 20 do read(x[i]);
if pos(‘f’,x)<>0 then write(‘yes!!!’); for i:=1 to 20 do if x[i]=’f’ then
end. b:=true;
If b=true then write(‘yes!!!’);
end.
3) var x : string[20]; 4) var x :string; i:integer;
i:integer; b:boolean; b:boolean;
begin readln(x); begin readln(x);
if pos(‘f’,x)<>0 then write(‘yes!!!’); for i:=1 to length(x) do if x[i]=’f’ then
end. b:=true;
If b=true then write(‘yes!!!’);
end.