Розв’язок задач на мові програмування 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.2013BMP як формат зберігання растрових зображень, огляд структури файлу. Створення програми для запису та перегляду графічних 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