Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
07.02.2016
Размер:
70.66 Кб
Скачать

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.

Контрольні запитання.

  1. Що таке рядкова змінна?

  2. Який розмір може мати рядкова змінна?

  3. Що знаходиться в нульовому символі рядкової змінної?

  4. Чим відрізняється використання рядкової змінної від масиву символів?

  5. Які стандартні функції та процедури для рядкової змінної Ви знаєте?

Тести для підсумкового контролю.

Для заданого рядка 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);

  1. ‘’ 2. качей 3. казчей 4. казна

4. Для заданого рядка t=’печаль’ визначити результат виконання операції

insert(‘ит’,t, 6);

  1. ‘’ 2. печалить 3. печальит 4. печалит

6. Який результат має str(s, 2578):

  1. 2578

  2. ‘2578’

  3. двадцять п’ять сімдесят вісім

  4. дві тисячі п’ятсот сімдесят вісім

7. Який результат має val(‘3,1415’, x, c):

  1. х=3,1315, с=1

  2. х=3,1315, с=0

  3. х не визначене, с=1

  4. х не визначене, с=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.

Соседние файлы в папке конспект лекцій 1 паск