Розв’язок задач на мові програмування 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

  • Стандартні розміри чисел при програмуванні на мові Асемблера. Робота з дробовими числами, використання математичного сопроцесора або його емулятора. Створення програми, яка б перетворювала ціле число в дробове і навпаки, а також функції [x], {x}, |X|.

    курсовая работа [22,0 K], добавлен 12.08.2009

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

    контрольная работа [587,3 K], добавлен 21.04.2011

  • Розв’язок багатокритеріальної задачі лінійного програмування з отриманням компромісного рішення (для задач з кількома функціями мети) за допомогою теоретико-ігрового підходу. Матриця мір неоптимальності та рядок функції мети. Модуль опису класу.

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

  • Редагування за допомогою текстового редактора NotePad вхідного файлу даних. Програмна реалізація основного алгоритму з використанням засобів об'єктно-орієнтованого програмування. Об’ява та опис класів і об'єктів. Розробка допоміжних програмних засобів.

    курсовая работа [69,4 K], добавлен 14.03.2013

  • Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.

    лекция [445,0 K], добавлен 24.07.2014

  • Розробка програми, яка б дозволяла протестувати знання з дисципліни "Програмування на мові С", виставити оцінку. Опис та обґрунтування методу організації вхідних та вихідних даних, вибору складу технічних та програмних засобів. Проведення лістингу.

    курсовая работа [11,0 K], добавлен 08.08.2009

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

    курсовая работа [1,0 M], добавлен 25.01.2016

  • Лінійне програмування як один з найбільш популярних апаратів математичної теорії оптимального управління рішень. Опис існуючих методів розв’язку задач лінійного програмування. Завдання, основні принципи, алгоритми і головна мета лінійного програмування.

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

  • Поняття черги в програмуванні, основні операції з чергою і їх реалізація. Опис алгоритму й специфікація програми. Розробка додатку з використанням задачі Ларсона по опису зв'язного неорієнтованого графа. Алгоритм розв’язку і результати виконання програми.

    курсовая работа [1,1 M], добавлен 14.09.2012

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

    лабораторная работа [197,2 K], добавлен 16.12.2010

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