Розв’язок задач на мові програмування Pascal

Розробка програмних засобів в професійному програмуванні. Використання простих і гнучких структур розгалужень, циклів. Фундаментальні ідеї алгоритмів. Стандартні функції і процедури. Алгоритми з розгалуженням. Загальна форма запису циклу з лічильником.

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык украинский
Дата добавления 15.12.2012
Размер файла 227,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Begin

prugolosna[1]:='б';

prugolosna[2]:='в';

prugolosna[3]:='г';

prugolosna[4]:='д';

prugolosna[5]:='ж';

prugolosna[6]:='з';

prugolosna[7]:='й';

prugolosna[8]:='к';

prugolosna[9]:='л';

prugolosna[10]:='м';

prugolosna[11]:='н';

prugolosna[12]:='п';

prugolosna[13]:='р';

prugolosna[14]:='с';

prugolosna[15]:='т';

prugolosna[16]:='ф';

prugolosna[17]:='х';

prugolosna[18]:='ц';

prugolosna[19]:='ч';

prugolosna[20]:='ш';

prugolosna[21]:='щ';

prugolosna[22]:='ь';

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=Pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

delete(s,1,r);

dov:=length(s);

for j:=1 to 22 do

if s1[1]=prugolosna[j] then

write(s1,' ');

і:=і+1

end

else

begin

s1:=s;

dov1:=length(s1);

for j:=1 to 22 do

if s1[1]=prugolosna[j] then

write(s1,' ');

dov:=0;

end;

end;

readln;

End.

Program z_13_61;

Const n=126;

Var

S,s1,s2:string;

R,dov,і,j,k,dov1:integer;

golosna:array[1..10] of char;

prugolosna:array[1..22] of char;

Begin

golosna[1]:='а';

golosna[2]:='е';

golosna[3]:='є';

golosna[4]:='и';

golosna[5]:='і';

golosna[6]:='ї';

golosna[7]:='о';

golosna[8]:='у';

golosna[9]:='ю';

golosna[10]:='я';

prugolosna[1]:='б';

prugolosna[2]:='в';

prugolosna[3]:='г';

prugolosna[4]:='д';

prugolosna[5]:='ж';

prugolosna[6]:='з';

prugolosna[7]:='й';

prugolosna[8]:='к';

prugolosna[9]:='л';

prugolosna[10]:='м';

prugolosna[11]:='н';

prugolosna[12]:='п';

prugolosna[13]:='р';

prugolosna[14]:='с';

prugolosna[15]:='т';

prugolosna[16]:='ф';

prugolosna[17]:='х';

prugolosna[18]:='ц';

prugolosna[19]:='ч';

prugolosna[20]:='ш';

prugolosna[21]:='щ';

prugolosna[22]:='ь';

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=Pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

for j:=1 to 22 do

begin

if s1[dov1]=prugolosna[j] then

begin

for k:=1 to 10 do

if s[1]=golosna[k] then

write(s1,' ');

end;

end;

delete(s,1,r);

dov:=length(s);

і:=і+1

end

else

begin

s1:=s;

dov1:=length(s1);

for j:=1 to 22 do

begin

if s1[dov1]=prugolosna[j] then

begin

for k:=1 to 10 do

if s[1]=golosna[k] then

write(s1,' ');

end;

end;

dov:=0;

end;

end;

readln;

End.

Program z_13_62;

Const n=126;

Var

S,s1,s2:string;

R,dov,і,j,k,dov1:integer;

golosna:array[1..10] of char;

prugolosna:array[1..22] of char;

Begin

golosna[1]:='а';

golosna[2]:='е';

golosna[3]:='є';

golosna[4]:='и';

golosna[5]:='і';

golosna[6]:='ї';

golosna[7]:='о';

golosna[8]:='у';

golosna[9]:='ю';

golosna[10]:='я';

prugolosna[1]:='б';

prugolosna[2]:='в';

prugolosna[3]:='г';

prugolosna[4]:='д';

prugolosna[5]:='ж';

prugolosna[6]:='з';

prugolosna[7]:='й';

prugolosna[8]:='к';

prugolosna[9]:='л';

prugolosna[10]:='м';

prugolosna[11]:='н';

prugolosna[12]:='п';

prugolosna[13]:='р';

prugolosna[14]:='с';

prugolosna[15]:='т';

prugolosna[16]:='ф';

prugolosna[17]:='х';

prugolosna[18]:='ц';

prugolosna[19]:='ч';

prugolosna[20]:='ш';

prugolosna[21]:='щ';

prugolosna[22]:='ь';

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

End;

r:=Pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

for j:=1 to 22 do

begin

if s1[1]=prugolosna[j] then

begin

for k:=1 to 10 do

if s[dov1]=golosna[k] then

write(s1,' ');

end;

end;

delete(s,1,r);

dov:=length(s);

і:=і+1

end

else

begin

s1:=s;

dov1:=length(s1);

for j:=1 to 22 do

begin

if s1[1]=prugolosna[j] then

begin

for k:=1 to 10 do

if s[dov1]=golosna[k] then

write(s1,' ');

end;

end;

dov:=0;

end;

end;

readln;

End.

Program z_13_7;

Const n=126;

Var

S,s1,s2:string;

R,dov,і,j,dov1:integer;

litera:array[1..30] of char;

Begin

litera[1]:='А';

litera[2]:='Б';

litera[3]:='В';

litera[4]:='Г';

litera[5]:='Д';

litera[6]:='Е';

litera[7]:='Є';

litera[8]:='Ж';

litera[9]:='З';

litera[10]:='І';

litera[11]:='Ї';

litera[12]:='Й';

litera[13]:='К';

litera[14]:='Л';

litera[15]:='М';

litera[16]:='Н';

litera[17]:='О';

litera[18]:='П';

litera[19]:='Р';

litera[20]:='С';

litera[21]:='Т';

litera[22]:='У';

litera[23]:='Ф';

litera[24]:='Х';

litera[25]:='Ц';

litera[26]:='Ч';

litera[27]:='Ш';

litera[28]:='Щ';

litera[29]:='Ю';

litera[30]:='Я';

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=Pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

for j:=1 to 30 do

if s1[1]=litera[j] then

write(s1,' ');

delete(s,1,r);

dov:=length(s);

і:=і+1

end

else

begin

s1:=s;

dov1:=length(s1);

for j:=1 to 30 do

if s1[1]=litera[j] then

write(s1,' ');

dov:=0;

end;

end;

readln;

End.

Program z_13_81;

Const n=126;

Var

S,s1,s2:string;

R,dov,і,j,dov1,k:integer;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=Pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

if (dov1 mod 2)=0 then

write(s1,' ');

delete(s,1,r);

dov:=length(s);

і:=і+1

end

else

begin

s1:=s;

dov1:=length(s1);

if (dov1 mod 2)=0 then

write(s1,' ');

dov:=0;

end;

end;

readln;

End.

Program z_13_82;

Const n=126;

Var

S,s1,s2:string;

R,dov,і,j,dov1,k:integer;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=Pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

if (dov1 mod 2)<>0 then

write(s1,' ');

delete(s,1,r);

dov:=length(s);

і:=і+1

end

else

begin

s1:=s;

dov1:=length(s1);

if (dov1 mod 2)<>0 then

write(s1,' ');

dov:=0;

end;

end;

readln;

End.

Program z_13_9;

Const

n=126;

n1=5;

Var

S,s2:string;

R,dov,і,j,dov1,d,max,n_max ,min,n_min:integer;

d1:array[1..n1] of integer;

s1:array[1..n1] of string;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=Pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

dov1:=length(s1[і]);

d1[і]:=dov1;

delete(s,1,r);

dov:=length(s);

і:=і+1

end

else

begin

s1[n1]:=s;

dov1:=length(s1[n1]);

d1[n1]:=dov1;

dov:=0;

end;

end;

for j:=1 to n1 do

Write( d1[j]:4 );

WriteLn;

min:=d1[1];

max:=d1[1];

n_max:=1;

n_min:=1;

for j:=2 to n1 do

if d1[j]>max then

begin

max:=d1[j];

n_max:=j;

end;

for j:=2 to n1 do

if d1[і]<min then

begin

min:=d1[j];

n_min:=j;

end;

writeln('Najdovshe slovo: ',s1[n_max]);

writeln('Najkorotshe slovo: ',s1[n_min]);

readln;

End.

Program z_13_9;

Const

n=126;

n1=5;

Var

S,s2:string;

R,dov,і,j,dov1,d,syma,min,n_min,A_ser:integer;

d1:array[1..n1] of integer;

s1:array[1..n1] of string;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=Pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

dov1:=length(s1[і]);

d1[і]:=dov1;

delete(s,1,r);

dov:=length(s);

і:=і+1

end

else

begin

s1[n1]:=s;

dov1:=length(s1[n1]);

d1[n1]:=dov1;

dov:=0;

end;

end;

syma:=0;

for j:=1 to n1 do

Write( d1[j]:4 );

WriteLn;

for j:=1 to n1 do

syma:=syma+d1[j];

A_ser:=round(syma/n1);

WriteLn( A_ser );

min:=abs(d1[1]-A_ser);

n_min:=1;

for j:=2 to n1 do

if abs(d1[j]-A_ser)<min then

begin

min:=abs(d1[j]-A_ser);

n_min:=j;

end;

writeln(' Slovo, dovghuna jakogo najblughcha do serednoj : ',s1[n_min]);

readln;

End.

Задача 14

Для заданого тексту

1. Видаліть задане слово;

2. Видаліть кожне парне (непарне) слово;

3. Видаліть всі входження першого слова (слова, номер якого визначений користувачем;

4. Залиште лише одне входження кожного слова;

5. Видаліть слова, що зустрічаються в тексті більше одного разу;

6. Поміняйте місцями слова з заданими номерами;

7. Замініть кожне входження одного слова на інше слово (слово визначає користувач);

8. Для кожного зі слів визначте, скільки разів воно трапляється у тексті.

Program Z_14_1;

Const n=126;

Var

S,s1,s2:string;

R,dov,dov1,і:integer;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Write('Yvedit slovo, jake neobxidno vudalutu =>');

Readln(S2);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

delete(s,1,r);

dov:=length(s);

if s1=s2 then

delete(s1,1,dov1)

else

Write( s1,' ' );

і:=і+1;

end

else

begin

s1:=copy(s,1,dov);

dov1:=length(s1);

if s1=s2 then

delete(s1,1,dov1)

else

write(s1);

delete(s,1,dov);

dov:=0;

end;

end;

readln;

End.

Program Z_14_21;

Const n=126;

Var

S,s1,s2:string;

R,dov,dov1,і:integer;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

delete(s,1,r);

dov:=length(s);

if (і mod 2)=0 then

delete(s1,1,dov1)

else

Write( s1,' ' );

і:=і+1;

end

else

begin

s1:=copy(s,1,dov);

dov1:=length(s1);

if (і mod 2)=0 then

delete(s1,1,dov1)

else

write(s1);

delete(s,1,dov);

dov:=0;

end;

End;

Program Z_14_22;

Const

n=126;

Var

S,s1,s2:string;

R,dov,dov1,і:integer;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

delete(s,1,r);

dov:=length(s);

if (і mod 2)<>0 then

delete(s1,1,dov1)

else

Write( s1,' ' );

і:=і+1;

end

else

begin

s1:=copy(s,1,dov);

dov1:=length(s1);

if (і mod 2)<>0 then

delete(s1,1,dov1)

else

write(s1);

delete(s,1,dov);

dov:=0;

end;

end;

readln;

End.

Program Z_14_31;

Const n=126;

Var

S,s1,s2:string;

R,dov,dov1,і:integer;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

delete(s,1,r);

dov:=length(s);

if і=1 then

delete(s1,1,dov1)

else

Write( s1,' ' );

і:=і+1;

end

else

begin

s1:=copy(s,1,dov);

dov1:=length(s1);

if і=1 then

delete(s1,1,dov1)

else

write(s1);

delete(s,1,dov);

dov:=0;

end;

end;

readln;

End.

Program Z_14_32;

Const n=126;

Var

S,s1,s2:string;

R,dov,dov1,і,m:integer;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Write('Yvedit nomer slova =>');

Readln(m);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1:=copy(s,1,r-1);

dov1:=length(s1);

delete(s,1,r);

dov:=length(s);

if і=m then

delete(s1,1,dov1)

else

Write( s1,' ' );

і:=і+1;

end

else

begin

s1:=copy(s,1,dov);

dov1:=length(s1);

if і=m then

delete(s1,1,dov1)

else

write(s1);

delete(s,1,dov);

dov:=0;

end;

end;

readln;

End.

Program Z_14_4;

Const n=126;

Var

S,s2:string;

R,dov,dov1,і,k,m,l:integer;

s1:array[1..n] of string;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

k:=0;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

delete(s,1,r);

dov:=length(s);

і:=і+1;

end

else

begin

s1[і]:=s;

dov:=0;

end;

end;

for l:=1 to і-1 do

begin

for m:=l+1 to і do

begin

dov1:=length(s1[m]);

if s1[l]=s1[m] then

delete(s1[m],1,dov1);

end;

end;

for і:=1 to і do

write(s1[і],' ');

readln;

End.

Program Z_14_5;

Const n=126;

Var

S,s2:string;

R,dov,dov1,і,k,m,l:integer;

s1:array[1..n] of string;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

k:=0;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

delete(s,1,r);

dov:=length(s);

і:=і+1;

end

else

begin

s1[і]:=s;

dov:=0;

end;

end;

for l:=1 to і-1 do

begin

for m:=l+1 to і do

begin

dov1:=length(s1[m]);

if s1[l]=s1[m] then

delete(s1[m],1,dov1);

end;

end;

for і:=1 to і do

write(s1[і],' ');

readln;

End.

Program Z_14_6;

Const n=126;

Var

S,s2:string;

R,dov,dov1,і,k,p,m,l:integer;

s1:array[1..n] of string;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Write('Yvedit nomeru sliv, jaki bydemo minjatu =>');

Readln(k,p);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

delete(s,1,r);

dov:=length(s);

і:=і+1;

end

else

begin

s1[і]:=s;

dov:=0;

end;

end;

s2:=s1[k];

s1[k]:=s1[p];

s1[p]:=s2;

for і:=1 to і do

write(s1[і],' ');

readln;

End.

Program Z_14_7;

Const n=126;

Var

S,s2:string;

R,dov,dov1,і,k,m,l:integer;

s1:array[1..n] of string;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Write('Yvedit nomer slova, jake bydemo zminjvatu =>');

Readln(k);

Write('Yvedit slovo =>');

Readln(S2);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

delete(s,1,r);

dov:=length(s);

і:=і+1;

end

else

begin

s1[і]:=s;

dov:=0;

end;

end;

for l:=1 to і do

begin

if l=k then

begin

for m:=l+1 to і do

begin

if (s1[l]=s1[m]) then

begin

s1[m]:=s2;

s1[l]:=s2;

end;

end;

end;

end;

s1[k]:=s2;

for і:=1 to і do

write(s1[і],' ');

readln;

End.

Program Z_14_8;

Const n=126;

Var

S,s2:string;

R,dov,dov1,і,k,p,m,l:integer;

s1:array[1..n] of string;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(S);

і:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

delete(s,1,r);

dov:=length(s);

і:=і+1;

end

else

begin

s1[і]:=s;

dov:=0;

end;

end;

k:=1;

for l:=1 to і-1 do

begin

for m:=l+1 to і do

begin

dov1:=length(s1[m]);

if s1[l]=s1[m] then

begin

k:=k+1;

delete(s1[m],1,dov1);

end

end;

WriteLn( s1[l],' ',k );

k:=1;

end;

readln;

End.

Задача 15

Вводяться два числа, розділених символом арифметичної операції. Необхідно визначити:

1. які числа розміщено в тексті;

2. яку арифметичну операцію необхідно виконати;

3. результат виконання цієї дії.

Program text_calc;

Const n=20;

Var

S1:array[1..n] of string;

R,r1,dov,dov1,x,y,і,errcode:integer;

s:string;

z:real;

Begin

Write('Yvedit tekctovuj fragment =>');

Readln(S);

Dov:=length(s);

І:=1;

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

for і:=1 to dov do

begin

r:=pos(' ',s);

if r<>0 then

begin

delete(s,r,1);

dov:=length(s);

end;

end;

for і:=1 to dov do

if (s[і]='+')or(s[і]='-')or(s[і]='*')or(s[і]='/') then

r1:=і;

s1[1]:=copy(s,1,r1-1);

delete(s,1,r1-1);

dov:=length(s);

dov1:=length(s1[1]);

r1:=r1-dov1;

s1[2]:=copy(s,1,r1);

delete(s,r1,1);

dov:=length(s);

s1[3]:=s;

val(s1[1],x,errcode);

if errcode<>0 then

writeln('oshibka vvoda');

val(s1[3],y,errcode);

if errcode<>0 then

writeln('oshibka vvoda');

for і:=1 to 4 do

if s1[2]='+' then z:=x+y;

if s1[2]='-' then z:=x-y;

if s1[2]='*' then z:=x*y;

if s1[2]='/' then z:=x/y;

writeln('z=',z:4:2);

readln;

End.

Задача 16

Виведіть на екран ті слова, що трапляються в кожному з двох уведених користувачем речень.

Program dva_rechennja;

Const n=50;

Var

S1:array[1..n] of string;

s3:array[1..n] of string;

R,r1,dov,dov1,a,b,і,j:integer;

s,s2:string;

z:real;

Begin

Write('Yvedit pershuj tekctovuj fragment =>');

Readln(S);

Write('Yvedit dryguj tekctovuj fragment =>');

Readln(S2);

Dov:=length(s);

dov1:=length(s2);

i:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

a:=dov;

r:=pos(' ',s);

if r<>0 then

begin

s1[і]:=copy(s,1,r-1);

delete(s,1,r);

dov:=length(s);

і:=і+1;

end

else

begin

s1[і]:=s;

dov:=0;

end;

end;

j:=1;

while dov1<>0 do

begin

while (s2[dov1]=' ')and(dov1<>0) do

begin

Delete(S2,dov1-1,1);

Dov1:=length(S2);

end;

b:=dov1;

r1:=pos(' ',s2);

if r1<>0 then

begin

s3[j]:=copy(s2,1,r1-1);

delete(s2,1,r1);

dov1:=length(s2);

j:=j+1;

end

else

begin

s3[j]:=s2;

dov1:=0;

end;

end;

for і:=1 to і do

begin

for j:=1 to j do

if s1[і]=s3[j] then

write(s1[j],' ');

end;

readln;

End.

Задача 17

Задано два довільних текстових фрагменти. Подвойте кожен символ того тексту, у якому сумарна кількість українських голосних більша.

Programm Main;

Var

s,s1,s4,s5:string;

R,r1,dov,dov1,і,j,e,k,k1,l,l1,a,b:integer;

golosna:array[1..10] of char;

s2:array[1..n] of string;

s3:array[1..n] of string;

Begin

golosna[1]:='а';

golosna[2]:='е';

golosna[3]:='є';

golosna[4]:='и';

golosna[5]:='і';

golosna[6]:='ї';

golosna[7]:='о';

golosna[8]:='у';

golosna[9]:='ю';

golosna[10]:='я';

Write('Yvedit pershuj tekctovuj fragment =>');

Readln(S);

Write('Yvedit dryguj tekctovuj fragment =>');

Readln(S1);

Dov:=length(s);

dov1:=length(s1);

s4:=s;

a:=dov;

s5:=s1;

b:=dov1;

k:=0;

k1:=0;

i:=1;

while dov<>0 do

begin

while (s[dov]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos(' ',s);

if r<>0 then

begin

s2[і]:=copy(s,1,r);

for l:=1 to r-1 do

for j:=1 to 10 do

if s2[і][l]=golosna[j] then

k:=k+1;

delete(s,1,r);

dov:=length(s);

і:=і+1;

end

else

begin

s2[і]:=s;

for l:=1 to dov do

for j:=1 to 10 do

if s2[і][l]=golosna[j] then

k:=k+1;

WriteLn( k );

dov:=0;

end;

end;

e:=1;

while dov1<>0 do

begin

while (s1[dov1]=' ')and(dov1<>0) do

begin

Delete(S1,dov1-1,1);

Dov1:=length(S1);

end;

r1:=pos(' ',s1);

if r1<>0 then

begin

s3[e]:=copy(s1,1,r1);

for l1:=1 to r1-1 do

for j:=1 to 10 do

if s3[e][l1]=golosna[j] then

k1:=k1+1;

delete(s1,1,r1);

dov1:=length(s1);

e:=e+1;

end

else

begin

s3[e]:=s1;

for l1:=1 to dov1 do

for j:=1 to 10 do

if s3[e][l1]=golosna[j] then

k1:=k1+1;

WriteLn( k1 );

dov1:=0;

end;

end;

dov:=length(s2[і]);

delete(s2[і],1,dov);

dov1:=length(s3[e]);

delete(s3[e],1,dov1);

if k1<k then

begin

i:=1;

while a<>0 do

begin

while (s4[a]=' ')and(a<>0) do

begin

Delete(S4,a-1,1);

Dov:=length(S);

end;

r:=pos(' ',s4);

if r<>0 then

begin

s2[і]:=copy(s4,1,r-1);

l:=1;

while l<(r+r-2) do

begin

insert(s2[і][l],s2[і],l);

l:=L+2;

end;

write(s2[і],' ');

delete(s4,1,r);

a:=length(s4);

і:=і+1;

end

else

begin

s2[і]:=s4;

l:=1;

while l<(a+a-1) do

begin

insert(s2[і][l],s2[і],l);

l:=L+2;

end;

write(s2[і],' ');

a:=0;

end;

end;

end

else

begin

e:=1;

while b<>0 do

begin

while (s5[b]=' ')and(b<>0) do

begin

Delete(S5,b-1,1);

Dov:=length(S5);

end;

r1:=pos(' ',s5);

if r1<>0 then

begin

s3[e]:=copy(s5,1,r1-1);

l1:=1;

while l1<(r1+r1-2) do

begin

insert(s3[e][l1],s3[e],l1);

l1:=L1+2;

end;

write(s3[e],' ');

delete(s5,1,r1);

b:=length(s5);

e:=e+1;

end

else

begin

s3[e]:=s5;

l1:=1;

while l1<(b+b) do

begin

insert(s3[e][l1],s3[e],l1);

l1:=L1+2;

end;

write(s3[e],' ');

b:=0;

end;

end;

end;

readln;

End.

Задача 18

Текст складається з речень, розділених крапками. Після кожної крапки в кінці речення повинен бути один пропуск. Перше слово в реченні повинно починатися з великої літери.

Program rechennja;

Const n=50;

Var

s,s1:string;

R,dov,і:integer;

litera:char;

Procedure Vellit;

begin

Case litera Of

'a','b','c','d','e','f','g','h','і','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z':

write(Chr(Ord(litera)-32));

'а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','э','ю','я':

write(Chr(Ord(litera)-32));

'і':

write( Chr(Ord(litera)-1));

'ї','є','ё' :

write(Chr(Ord(litera)-16));

Else

write(Chr(Ord(litera)));

end;

end;

Begin

Write('Yvedit text =>');

Readln(S);

Dov:=length(s);

і:=1;

while dov<>0 do

begin

while (s[1]=' ')and(dov<>0) do

begin

Delete(S,1,1);

Dov:=length(S);

end;

r:=pos('.',s);

if r<>0 then

begin

s1:=copy(s,1,r);

litera:=s[1];

vellit;

for і:=2 to r do

write(s1[і]);

if s[r+1]<>' ' then

insert(' ',s,r+1);

write(' ');

delete(s,1,r+1);

dov:=length(s);

і:=і+1;

end

end;

readln;

End.

Задача 19

Необхідно створити поштову програму, яка самостійно визначає ім'я одержувача листа, виділивши його з електронної адреси, та розміщує це ім'я в тексті листа після вітання. Лист закінчується підписом, який поштова програма формує самостійно, визначивши ім'я відправника листа з його електронної адреси.

Program elektr_poshta;

Const n=50;

Var

s,s1,s2,s3,s4,s5,s6:string;

R,r1,r2,r3,r4,r5,r6,dov,dov1,dov2,dov3,dov4,і,j,k:integer;

a,b:char;

Begin

Write('Yvedit adresy oderghyvacha =>');

Readln(S1);

Dov1:=length(s1);

Write('Yvedit adresy avtora lusta =>');

Readln(S2);

Dov2:=length(s2);

Write('Yvedit texst povidomlennja =>');

Readln(S);

Dov:=length(s);

r1:=pos(':',s1);

delete(s1,1,r1);

r2:=pos('@',s1);

s3:=copy(s1,1,r2-1);

a:=s3[1];

a:=chr(ord(a)-32);

delete(s3,1,1);

insert(a,s3,1);

r3:=pos(':',s2);

delete(s2,1,r3);

r4:=pos('@',s2);

s4:=copy(s2,1,r4-1);

b:=s4[1];

b:=chr(ord(b)-32);

delete(s4,1,1);

insert(b,s4,1);

r:=pos(':',s);

delete(s,1,r);

insert('Електронний лист:',s,1);

r:=pos(':',s);

s5:='Вітаю, шановний ';

dov3:=length(s5);

insert(s3,s5,dov3+1);

dov3:=length(s5);

insert('!',s5,dov3+1);

insert(s5,s,r+1);

dov:=length(s);

s6:='З повагою, ';

dov4:=length(s6);

insert(s4,s6,dov4+1);

dov4:=length(s6);

insert('.',s6,dov4+1);

insert(s6,s,dov+1);

dov:=length(s);

for і:=1 to dov do

write(s[і]);

readln;

End.

Задача 20

Необхідно створити програму, яка формуватиме вітальну листівку. Прізвище та ім'я одержувача зазначені в списку. Побажання вибираються зі списку випадково. До листівки додається електронна адреса одержувача.

Program vital_lustivka;

Const n=50;

Var

s,s1,s2,s3,s4,s5,s6:string;

j,k, R,r1,r2,dov,dov1,dov2,dov4,dov5,dov6,і,m:integer;

a,b:char;

Begin

Write('Yvedit spusok oderghyvachachiv =>');

Readln(S1);

Dov1:=length(s1);

Write('Yvedit elektronni adresu oderghyvachiv =>');

Readln(S2);

Dov2:=length(s2);

Write('Yvedit spusok pobaghan =>');

Readln(S);

Dov:=length(s);

і:=1;

while dov1<>0 do

begin

r1:=pos(',',s1);

if r1<>0 then

begin

s3:=copy(s1,1,r1-1);

insert('Дорогий ',s3,1);

dov4:=length(s3);

Delete(s1,1,r1);

dov1:=length(s1);

for j:=1 to 3 do

begin

randomize;

s5:=s;

m:=random(6);

WriteLn(m);

r:=pos(',',s5);

k:=1;

while k<m do

begin

delete(s5,1,r);

r:=pos(',',s5);

k:=k+1;

end;

s4:=copy(s5,1,r);

end;

insert('Бажаю ',s4,1);

dov5:=length(s4);

delete(s4,dov5,1);

dov5:=length(s4);

insert('.',s4,dov5+1);

dov5:=length(s4);

r2:=pos(',',s2);

s6:=copy(s2,1,r2);

insert('Електронна адреса: ',s6,1);

dov6:=length(s6);

Delete(s2,1,r2);

dov2:=length(s2);

for і:=1 to dov6 do

write(s6[і]);

WriteLn;

for і:=1 to dov4 do

write(s3[і]);

WriteLn;

for і:=1 to dov5 do

write(s4[і]);

WriteLn;

end

else

begin

s3:=s1;

insert('Дорогий ',s3,1);

dov4:=length(s3);

for j:=1 to 3 do

begin

randomize;

s5:=s;

m:=random(6);

r:=pos(',',s5);

k:=1;

while k<m do

begin

delete(s5,1,r);

r:=pos(',',s5);

k:=k+1;

end;

s4:=copy(s5,1,r);

end;

insert('Бажаю ',s4,1);

dov5:=length(s4);

delete(s4,dov5,1);

dov5:=length(s4);

insert('.',s4,dov5+1);

dov5:=length(s4);

s6:=s2;

insert('Електронна адреса: ',s6,1);

dov6:=length(s6);

for і:=1 to dov6 do

write(s6[і]);

WriteLn;

for і:=1 to dov4 do

write(s3[і]);

WriteLn;

for і:=1 to dov5 do

write(s4[і]);

dov2:=0;

dov1:=0;

end;

end;

readln;

End.

Задача 21

Необхідно визначити, яка тема є найпопулярнішою на сайті. Форум сайту має таку структуруЖ кожне повідомлення або починає нову тему, або є відповіддю на певне попереднє повідомлення, тому належить тій самій темію Кількість повідомлень, призначених для аналізу, визначає користувач. Форум має такий вигляд:

· якщо повідомлення починає нову тему, воно складається з трьох рядків.

Перший рядок містить число 0(це ознакою нової теми на форумі).

Другий рядок містить назву теми (її довжина не перевищує 30 символів).

У третьому рядку розміщено саме повідомлення.

· якщо повідомлення є відповіддю на попереднє, то воно складається з двох рядків.

Перший рядок у цьому разі містить ціле число - номер повідомлення, відповіддю на яке воно є. Повідомлення нумерують, починаючи з одиниці.

Другий рядок містить текст повідомлення.

Програма повинна повідомляти найпопулярнішу тему форуму, зазначивши кількість повідомлень з цієї теми.

Program forym;

Const n = 100;

Var

m,і,nt,j,k,max:integer;

tema:array[1..n] of string;

t,p:string;

Begin

{Введення повідомлень}

Write( 'vedit kilkist povidomlen: ' );

ReadLn( m );

for і:=1 to m do

begin

WriteLn( '0 - nove povidomlennja, nomer - vidpovid');

ReadLn( k );

if k=0 then

begin

Write( 'Tema: ' );

ReadLn( t );

Write( 'Povidomlennja: ' );

ReadLn( p );

tema[і]:=t;

end

else

begin

Write( 'Povidomlennja: ' );

ReadLn( p );

tema[і]:=t;

end;

end;

{Знаходження кількості повідомлень}

max:=0;

nt:=0;

for і:=1 to m-1 do

begin

k:=1;

for j:=і+1 to m do

if tema[і]=tema[j] then

k:=k+1;

if k>max then

begin

max:=k;

nt:=і

end;

end;

WriteLn( 'Najpopyljarnisha tema' );

WriteLn( tema[nt] );

WriteLn( 'Kilkist povidomlen ' );

WriteLn( max );

readln;

End.

Задача 22

Перше слово в рядку є словом-донором, а всі інші слова - новими словами, що побудовані з літер початкового слова. Кожна літера в новому слові повинна використовуватись не більше того числа, що визначає кількість входжень літери в слово-донор. Необхідно визначити слова вірно створені із слова-донора.

Program Donor_slovo;

Const n=50;

Var

R, dov, і:integer;

strAll, strG, str2 : string;

Function virno(str1, str2:string):boolean;

Var

k1, k2 : integer;

nFlag : boolean;

begin

nFlag := False;

for k1:=1 to Length(str1) do

for k2:=1 to Length(str2) do

if str1[k1] = str2[k2] then

begin

Delete(str2, k2, 1);

break;

end;

if Length(str2) = 0 then nFlag := True;

virno := nFlag;

end;

Function FindWord():string;

Var

r : integer;

str1 : string;

begin

r:=Pos(',',strAll);

if r=0 then

begin

str1 := strAll;

dov := 0;

end

else

begin

str1 := Copy(strAll,1,r-1);

delete(strAll,1,r+1);

Dov := length(strAll);

end;

FindWord := str1;

end;

Begin

Write('Yvedit slova =>');

Readln(StrAll);

strG := FindWord;

і := 1;

while (dov<>0)or(і<>Length(strAll)) do

begin

if strAll[і] = ',' then

begin

str2 := FindWord;

if Virno(strG, str2) then Writeln(strG,' ',str2);

і:=1;

end;

і:=і+1;

end;

ReadLn;

End.

Задача 23

Необхідно розробити програму, що перетворює натуральне число, записане в римській нумерації, на десяткове число, записане арабськими числами.

Program rumski;

Var

s:string;

n,c,c1,і,a:integer;

Begin

writeln('Yvedit chuslo');

readln(s);

c:=0;n:=0;

for і:=1 to length(s) do

begin

c1:=c;

if s[і]='І' then c:=1;

if s[і]='V' then c:=5;

if s[і]='X' then c:=10;

if s[і]='L' then c:=50;

if s[і]='C' then c:=100;

if s[і]='D' then c:=500;

if s[і]='M' then c:=1000;

if c>c1 then a:=-2*c1

else a:=0;

n:=n+a+c

end;

writeln('Ze chuclo = ',n)

End.

Завдання для самостійної роботи

1. Запитайте у користувача числа, перетворіть їх у рядки, зробіть їх зчеплення в різних поєднаннях і виведіть на екран. Не забудьте поставити між рядками пробіл, в кінці крапку і почати з великої літери.

2. Запитайте у користувача кілька рядків і виведіть на екран їх довжину, результат конкатенації в деякому порядку і зробіть перевірку, чи можна перетворити ці рядки в числа.

3. Запитайте у користувача рядок, що складається з 5 символів, і перевірте чи є він прикладом, додаються два однозначних числа, кожне з яких менше п'яти, якщо є, то обчисліть його.

4. Запитайте у користувача рядок, що складається з декількох слів, розділених пробілом, і виведіть їх на екран так, щоб кожне слово починалося з нового рядка.

5. Запитайте у користувача два рядки і порівняйте їх довжину, перший і останній символ кожного рядка, а також виведіть на екран ці рядки з великої літери.

6. Визначте іменник 1-ої відміни, який закінчується на "а". Перевірте правильність введення. Надрукуйте це слово у всіх відмінках. Застосовуйте підпрограми.

7. Задані прізвище, ім'я та по батькові учня, розділені пропуском. Надрукуйте його прізвище та ініціали. Застосовуйте підпрограми.

8. Підрахуйте кількість цифр у наведеною рядку символів. Застосовуйте підпрограми.

9. Задані прізвище, ім'я та по батькові учня, розділені пропуском. Надрукуйте його прізвище та ініціали. Застосовуйте підпрограми.

10. Порахуйте кількість цифр у наведеною рядку символів. Застосовуйте підпрограми.

11. Складіть програму обчислення суми місць, на яких в слові Х стоять літери "в" і "п".

12. Написати (в порядку появи в тексті) усі слова, довжина яких потрапляє в інтервал [X, Y]. Тут X і Y цілі числа, задаються користувачем.

13. У даному реченні знайти кількість слів, що містять подвоєну приголосну (букви латинські). Слова в реченні розділяються пробілами, в кінці речення - крапка.

14. Складіть програму, викреслюйте кожну третю букву слова Х в заданому реченні.

15. Дана рядок символів до крапки. Групи символів у ній між групами прогалин вважаються словами. Визначити, скільки слів містять рівно 3 букви "е".

16. Дан текст. Підрахувати кількість слів, що закінчуються на задану літеру і перенести їх в інший рядок, написавши через кому. Вивести отриману рядок на екран.

17. Дано 2 текст. Знайти одне із загальних слів, що зустрічаються в текстах.

18. Для кожного заданого слова вказати кількість приголосних. Визначити слово в якому кількість приголосних максимальна.

Размещено на Allbest.ru


Подобные документы

  • Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.

    контрольная работа [742,9 K], добавлен 27.04.2010

  • Вирішення задач сортування в програмуванні та розробка ефективних алгоритмів сортування. Знайомство з теоретичним положенням, що стосуються методів сортування файлів, реалізації їх на мові програмування Turbo Pascal. Методи злиття впорядкованих серій.

    курсовая работа [46,9 K], добавлен 16.09.2010

  • Види рівнянь та методи їх розв’язань. Чисельні методи уточнення коренів, постановка задачі. Рішення нелінійного рівняння методом простих та дотичних ітерацій. Використання програмних засобів. Алгоритми розв’язку задач. Програми мовою С++, їх тестування.

    курсовая работа [232,2 K], добавлен 12.02.2013

  • Загальні відомості про процедури та функції. Характеристика, особливості і можливості мови Pascal, її використання для розробки наочних, компактних, структурованих програм, створення умов для систематичного і цілеспрямованого процесу програмування.

    реферат [30,0 K], добавлен 13.11.2010

  • Методика та порядок програмування алгоритмів циклічної структури із заданим числом повторень за допомогою мови програмування VAB. Алгоритм роботи з одновимірними масивами. Програмування алгоритмів із структурою вкладених циклів, обробка матриць.

    курсовая работа [27,7 K], добавлен 03.04.2009

  • Теоретичні аспекти програмування мовою Pascal. Основні поняття та елементи мови. Розділи оголошення сталих і змінних. Стандартні та нестандартні типи даних. Основні операції, стандартні функції та процедури, прості програми. Розгалуження, цикли, масиви.

    курсовая работа [122,5 K], добавлен 21.10.2012

  • Основні переваги програмування на мові Delphi. Використання стандартних операторів при створенні інтерфейсу користувача. Вибір складу технічних і програмних засобів, організація вхідних і вихідних даних. Розробка програми, блок-схеми та тексту програми.

    реферат [316,1 K], добавлен 22.01.2013

  • BMP як формат зберігання растрових зображень, огляд структури файлу. Створення програми для запису та перегляду графічних BMP-файлів на мові програмування Turbo Pascal 7.0, розробка функціональної схеми і алгоритмів, особливості проведення тестування.

    курсовая работа [325,8 K], добавлен 12.06.2011

  • Застосування циклічних алгоритмів для створення циклів за допомогою умовного або безумовного переходів. Цикли з параметром та умовою (приклади). Використання операторів мови програмування Паскаль для організації повторюваних послідовностей дій (циклів).

    контрольная работа [435,9 K], добавлен 02.06.2012

  • Побудова блок-схем алгоритмів програм. Створення блок схем алгоритмів за допомогою FCEditor. Експорт блок-схеми в графічний файл. Огляд програмних та апаратних засобів. Мови програмування високого рівня. Цикли та умовний оператор IF з лічильником.

    дипломная работа [1,4 M], добавлен 15.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.