Новые сообщения · Правила  
Страница 1 из 11
Форум ПРОГРАММИСТОВ » КУРС ОПР - ПАСКАЛЬ » Лабораторные работы » Лабораторная работа №8 (работа со строками и символами)
Лабораторная работа №8
Цель работы: изучаем строковые типы данных и данные типа Char. Отчет о выполнении должен содержать код программы, скрин результатов выполнения (два-три примера) и ссылку на онлайн-версию программы.

1. Дано предложение. Вывести новое предложение, в котором каждое слово напечатано в обратном порядке (справа налево).

2. Дано предложение. Посчитать частоту всех входящих в него букв. Результат вывести в виде таблицы.

3. Дано предложение. В нем могут встречаться числа. Найти сумму этих чисел.

4. Дана строка, в которой записано целое число, например: триста двадцать один. Найти сумму цифр этого числа. В приведенном примере это 6.

5. Даны два предложения. Составить новое предложение из слов, которые не встречаются одновременно в первом и втором предложении.

6. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить длину самого короткого и самого длинного слова. Вывести эти слова.

7. Дано предложение, состоящее из слов, разделенных пробелами (одним или несколькими). Подсчитать число слов в предложении. Обратите внимание на то, что пробелы могут быть и в начале и в конце предложения.

8. Дано предложение. Удалить из него все гласные буквы.

9. Дана строка-предложение. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы.

10. Дано предложение. Посчитать число знаков препинания в предложении. Результат вывести в виде таблицы.

11. Дано предложение. Посчитать частоту использования гласных. Результат вывести в виде таблицы.

12. Дано предложение. Подсчитать число слов разной длины. Результат вывести в виде таблицы.

13. Дано предложение. Поменять в каждом слове буквы местами произвольным образом, оставляя на своем месте первую и последнюю буквы.

14. Дана строка, содержащая несколько круглых скобок. Если скобки расставлены правильно (то есть каждой открывающей соответствует одна закрывающая), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число –1.

15. Дано предложение. Найти в нем короткие слова (длина не больше четырех букв) и заменить их числами, указывающими их длину.

16. Дано предложение. В тексте могут встречаться цифры. Заменить цифры словами. Например: Вчера было 3 градуса тепла --> Вчера было три градуса тепла.

17. Дано два предложения. Найти в них одинаковые слова и вывести эти слова на экран.
1 | Автор: admin | 2014-10-19, 19:17   |  Репутация: [ + 21 ]
14. Дана строка, содержащая несколько круглых скобок. Если скобки расставлены правильно (то есть каждой открывающей соответствует одна закрывающая), то вывести число 0. В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число –1.


Код
program bf_laba_8;
{********************************************}
*       Laba#8 file: bf_laba_8.pas ver 1.0     *
*                 Text Image               *
* (c) $.$.$. Group I-14-1 Date: 20.10.2014 *
********************************************}
uses crt;
var
       s:string;
       i,sk,d:integer;
begin
         clrscr;
         readln(s);
         sk:=0;
         for i:=1 to length(s) do
             begin
                  if (s[i]='(') and (sk>=0) then
                     inc(sk);
                  if s[i]=')' then
                     dec(sk); d:=i;
             end;
         if sk=0 then
            writeln('0')
         else if sk>0 then
            writeln('-1')
         else
            writeln('Лишняя закрывающая скобка расположена на ',d,' месте в строке');
end.


2 | Автор: Bun_Frith | 2014-10-20, 13:08 | Изменено: Bun_Frith - Вт, 2014-10-21, 19:49   |  Репутация: [ + 4 ]
8. Дано предложение. Удалить из него все гласные буквы.

Код
Program Mr_Pozitiv;
//('*****************************************************');
//('*        laba #8  file: laba8.pas == ver.1.0        *');
//('*                     exercise                      *');
//('*   Malevanny V. A.  Group I-14-1 Date: 20/10/14    *');
//('*****************************************************');
const let=['а','о','э','и','у','ы','е','ё','ю','я'];
var s:String; p,i:Integer;
      begin
       p:=0;
      while p=0 do
        begin
        Writeln('Введите строку:');
        Readln(s);
        i:=0;
         while i<Length(s) do
          begin
           inc(i);
           if LowerCase(s[i]) in let then
            begin      
             Delete(s,i,1);
             dec(i);
            end;
          end;
        Write('Полученная строка: ');
        Writeln(s);
        Writeln('');
        end;
      end.


perfect ;)
3 | Автор: Mr_Pozitiv | 2014-10-20, 22:51 | Изменено: Mr_Pozitiv - Пн, 2014-10-20, 22:54   |  Репутация: [ + 6 ]
6. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить длину самого короткого и самого длинного слова. Вывести эти слова.
Код
program ELMpr_La8;
{
OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOo
o░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░o
O░░Lab░work░#8░░file:ELMpr_La8.pas░==░ver.1.0░░O
o░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░o
O░░░░░░░░░░░░░Laboratory work #8.░░░░░░░░░░░░░░O
o░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░o
O░░©░Grankin░V.I.░Group░І-14-1░Date:░21/10/14░░O
o░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░o
OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOo
}
var
   S, Min_S, S_Temp, Max_S : string;                    
   S_Len, Min_S_Len, Max_S_Len, Len_S_Temp : integer;

{Trim: удаление пробелов в начале и конце строки}
function Trim(S: string): string;
var
   i, L: Integer;
begin
   L := Length(S);
   i := 1;
   while (i <= L) and (S [i]= #32) do Inc(i);
   if i > L then S := '' else
   begin
     while S [L]<= #32 do Dec(L);
     S := Copy(S, i, L - i + 1);
   end;

   Trim := S;
end;

{решение}
procedure Res;
var
   K : integer;
begin
   S := Trim(S);                        {удаление пробелов в начале и конце строки}
   S_Len := Length(S);                  {вычисляем длину строки}

   if S_Len = 0 then
   begin
     Min_S := '';
     Max_S := '';
     Min_S_Len := 0;
     Max_S_Len := 0;
     Exit;
   end;

   K := Pos(#32, S);
   if K = 0 then                        {если строка состоит из одного слова, без пробелов (код пробела: #32)}
   begin
     Min_S := S;
     Max_S := S;
     Min_S_Len := S_Len;
     Max_S_Len := S_Len;
     Exit;
   end;

   while Pos(#32#32, S) <> 0 do Delete(S, Pos(#32#32, S), 1);    {преобразуем все двойные пробелы в одинарные}
    
   {теперь строка, состоит из слов, разделенных одним пробелом}

   Min_S_Len := 255;                    {предполагаем, что слово минимальной длины
                    имеет максимально возможный размер}
   Max_S_Len :=   0;                    {предполагаем, что слово максимальной длины
                    имеет минимально возможный размер}

   while Pos(#32, S) <> 0 do            {пока в строке есть хотя бы один пробел}
   begin
     K := Pos(#32, S);                  {вычисляем позицию первого пробела}
     S_Temp := Copy(S, 1, K-1);         {выделяем первое слово}
     Delete(S, 1, K);                   {удаляем первое слово}
     Len_S_Temp := Length(S_Temp);      {вычисляем длину слова}

     if Min_S_Len > Len_S_Temp then     {если длина слова меньше текущей минимальной длины, то}
     begin
       Min_S := S_Temp;                 {запоминаем слово}
       Min_S_Len := Len_S_Temp;         {запоминаем минимальную длину}
     end;

     if Max_S_Len < Len_S_Temp then     {если длина слова больше текущей максимальной длины, то}
     begin
       Max_S := S_Temp;                 {запоминаем слово}
       Max_S_Len := Len_S_Temp;         {запоминаем максимальную длину}
     end;
   end;
    
{обработка последнего слова}
     S_Temp := S;                       {выделяем слово}
     Len_S_Temp := Length(S_Temp);      {вычисляем длину слова}

     if Min_S_Len > Len_S_Temp then     {если длина слова меньше текущей минимальной длины, то}
     begin
       Min_S := S_Temp;                 {запоминаем слово}
       Min_S_Len := Len_S_Temp;         {запоминаем минимальную длину}
     end;

     if Max_S_Len < Len_S_Temp then     {если длина слова больше текущей максимальной длины, то}
     begin
       Max_S := S_Temp;                 {запоминаем слово}
       Max_S_Len := Len_S_Temp;         {запоминаем максимальную длину}
     end;

end;
begin
   ReadLn(S);
   Res;
   WriteLn('Слово минимальной длины:  ', Min_S, '  его длина: ', Min_S_Len);
   WriteLn('Слово максимальной длины:  ', Max_S, '  его длина: ', Max_S_Len);
end.




El_Magnifico with <3
4 | Автор: El_MAgnifico | 2014-10-21, 21:13 | Изменено: El_MAgnifico - Вт, 2014-10-21, 22:41   |  Репутация: [ + 8 ]
5. Даны два предложения. Составить новое предложение из слов, которые не встречаются одновременно в первом и втором предложении.  
Код
Program lab8;
var a: array [1..100] of string;
b: array [1..100] of integer;
i,j,k,l: integer;
s,sl,s1,s2: string;
begin
write('Первое предложение: '); readln(s1);
write('Второе предложение: '); readln(s2);
s:=s1+' '+s2;
j:=1;
sl:='';
if s[length(s)]<>'.' then s:=s+'.';
for i:=1 to length(s) do
if (s[i]<>' ') and (s[i]<>'.')
then sl:=sl+s [i]else
begin
a[j]:=sl;
sl:='';
inc(j);
end;
k:=j;
writeln('Не повторяющиеся слова: ');
for j:=1 to k do
for l:=1 to k do
if a[j]=a [l]then
inc(b[j]);
for j:=1 to k do
if b[j]=1 then write(a[j],' ');
end.



Selena
5 | Автор: Selena | 2014-10-22, 14:14   |  Репутация: [ + 2 ]
Код
Program torres;
                     
           { *************************************************************
            *         laba#8 file: misha_shabelnik 97 pas == ver.1.0    *
            *         Shabelnik M.V. Group I-14-1 Date: 22\10\14        *
            *************************************************************}
var s,sn: string;
       i: integer;
begin
write('Введите предложение:');
readln(s);
sn:='';
for i:=1 to length(s) do
       begin
       case s [i]of
       '0': sn:=sn+' ноль ';
       '1': sn:=sn+' один ';
       '2': sn:=sn+' два ';
       '3': sn:=sn+' три ';
       '4': sn:=sn+' четыре ';
       '5': sn:=sn+' пять ';
       '6': sn:=sn+' шесть ';
       '7': sn:=sn+' семь ';
       '8': sn:=sn+' восемь ';
       '9': sn:=sn+' девять ';
       else sn:=sn+s[i];
       end;
       end;
write('Исправленное предложение:',sn);
end.


16. Дано предложение. В тексте могут встречаться цифры. Заменить цифры словами. Например: Вчера было 3 градуса тепла --> Вчера было три градуса тепла.
6 | Автор: torres | 2014-10-22, 22:07 | Изменено: torres - Ср, 2014-10-22, 22:08   |  Репутация: [ + 0 ]
6 | Автор: torres | 2014-10-22, 22:07 | Изменено: torres - Ср, 2014-10-22, 22:08   |  Репутация: [ + 0 ]
Код
program ira_butenko97;
var b:string; i,res,temp: integer;
a: array[1..28] of string;

begin
writeln ('Введите число->');
Readln (b);

a[1]:='один';
a[2]:='два';
a[3]:='три';
a[4]:='четыре';
a[5]:='пять';
a[6]:='шесть';
a[7]:='семь';
a[8]:='восемь';
a[9]:='девять';
a[10]:='десять';
a[11]:='одинадцать';
a[12]:='двенадцать';
a[13]:='тринадцать';
a[14]:='четырнадцать';
a[15]:='пятнадцать';
a[16]:='шестнадцать';
a[17]:='семнадцать';
a[18]:='восемнадцать';
a[19]:='девятнадцать';
a[20]:='двадцать';
a[21]:='тридцать';
a[22]:='сорок';
a[23]:='пятьдесят';
a[24]:='шестьдесят';
a[25]:='семьдесят';
a[26]:='восемьдесят';
a[27]:='девяносто';
a[28]:='сто';

res:=0;

for i:=1 to 9 do
begin
         temp:=pos(a[i],b);
         if temp>0 then res:=res+i;
end;
temp:=pos(a[10],b);
if temp>0 then res:=res+1;

temp:=pos(a[11],b);
if temp>0 then res:=res+1;

temp:=pos(a[12],b);
if temp>0 then res:=res+3;

temp:=pos(a[13],b);
if temp>0 then res:=res+1;

for i:=14 to 19 do
begin
         temp:=pos(a[i],b);
         if temp>0 then res:=res+i-9;
end;

temp:=pos(a[22],b);
if temp>0 then res:=res+4;

temp:=pos(a[26],b);
if temp>0 then res:=res-7;

temp:=pos(a[27],b);
if temp>0 then res:=res+8;

temp:=pos(a[28],b);
if temp>0 then res:=res+1;

writeln('Сумма = ',res);
readln;
end.


4. Дана строка, в которой записано целое число, например: триста двадцать один. Найти сумму цифр этого числа. В приведенном примере это 6.

7 | Автор: ira_butenko97 | 2014-10-23, 00:46 | Изменено: ira_butenko97 - Чт, 2014-10-23, 00:50   |  Репутация: [ + 4 ]
10. Дано предложение. Посчитать число знаков препинания в предложении. Результат вывести в виде таблицы.
Код

var
  s:string;
  i,r,a,b,c,d,e:integer;
begin
  readln(s);
  writeln('┌─┬─┐');
  for i:=1 to length(s) do if (s[i]='.') then r:=r+1;
  writeln('│.│',r,'│');
  writeln('┼─┼─┼');
  for i:=1 to length(s) do if (s[i]=',') then a:=a+1;
  writeln('│,│',a,'│');
  writeln('┼─┼─┼');
  for i:=1 to length(s) do if (s[i]='!') then b:=b+1;
  writeln('│!│',b,'│');
  writeln('┼─┼─┼');
  for i:=1 to length(s) do if (s[i]='?') then c:=c+1;
  writeln('│?│',c,'│');
  writeln('┼─┼─┼');
  for i:=1 to length(s) do if (s[i]=';') then d:=d+1;
  writeln('│;│',d,'│');
  writeln('┼─┼─┼');
  for i:=1 to length(s) do if (s[i]=':') then e:=e+1;
  writeln('│:│',e,'│');
  writeln('┼─┼─┼');
  writeln('└─┴─┘');
  readln;
  end.

http://195.208.237.170/WDE/?shared=Awesome15/awesomelaba8.pas
8 | Автор: Awesome | 2014-11-02, 23:34   |  Репутация: [ + 2 ]
9. Дана строка-предложение. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы.

Код
Program qwerty159;
const rb=['а'..'я','ё'];
function Up(c:char):char;
Begin
if c in ['а'..'я'] then Up:=chr(ord(c)-32)
else if c='ё' then Up:='Ё';
end;
Var a:string;
     i:byte;
Begin
Writeln('Введите строку-предложение:');
Readln (a);
for i:=1 to length(a) do
if (a [i]in rb)and((i=1)or(a[i-1]=' ')) then a[i]:=Up(a[i]);
Writeln('Преобразованная строка:');
Write(a);
Readln
end.






9 | Автор: @qwerty159 | 2014-11-05, 21:34   |  Репутация: [ + 0 ]

Код
uses crt;
var
text,gl:string;
s,i,j,n:integer;
count:Array[1..20] Of Integer;
  begin
  gl:='ауоыиэяюёе';
  s:=length(gl);
  writeln('Введите предложение');
  readln(text);
  n:=length(text);
  for j := 1 to s do
begin
count[j]:=0;
for i:=1 to n do
if text[i]=gl [j]then count[j]:=count[j]+1;
end;
writeln('┌─┬──┐');
for j:=1 to s do
Begin
writeln('│',gl[j],'│',count[j]:2,'│');
writeln('┼─┼──┼');
end;
writeln('└─┴──┘');
readln;
end.


 11.Дано предложение. Посчитать частоту использования гласных. Результат вывести в виде таблицы.
10 | Автор: Forzorezor | 2014-11-09, 18:36   |  Репутация: [ + 4 ]
1. Дано предложение. Вывести новое предложение, в котором каждое слово напечатано в обратном порядке (справа налево).
Код
program dimeshion;
     {('**************************************************');
      ('*      laba #8 file: di_8.pas == ver1.0          *');
      ('*                   laba #8                      *');
      ('*    Bazaliy E.V. Group: I-14-1 Date: 09/11/14   *');
      ('**************************************************');}
uses crt;
var str,str2: string; i: integer;
begin
clrscr;
writeln('Введите предложение: ');
readln(str);
for i:=length(str) downto 1 do str2:=str2+str[i];
writeln(str2);
readln;
end.


11 | Автор: dimeshion | 2014-11-09, 18:39   |  Репутация: [ + 2 ]
3. Дано предложение. В нем могут встречаться числа. Найти сумму этих чисел.
Код
program AlenaKit8;
var s,n:string;
i,sum:integer;
begin
writeln('Введите предложение');
readln(s);
n:='';
sum:=0;
s:=s+' ';
for i:=1 to length(s) do   
if s [i]in ['0'..'9'] then n:=n+s [i]else
if length(n)<>0 then   
begin
sum:=sum+StrToInt(n);
n:='';
end;
writeln('Сумма=',sum);
end.



AlenaKit♥
12 | Автор: AlenaKit | 2014-11-10, 20:40 | Изменено: AlenaKit - Пн, 2014-11-10, 20:40   |  Репутация: [ + 12 ]


AlenaKit♥
12 | Автор: AlenaKit | 2014-11-10, 20:40 | Изменено: AlenaKit - Пн, 2014-11-10, 20:40   |  Репутация: [ + 12 ]
17. Дано два предложения. Найти в них одинаковые слова и вывести эти слова на экран.

Код
Program ProjectX;
{*************************************************
   *       Laba#8 file: Px8.pas==ver.7.0           *   
   *      Vyvid na ekran odnakovih sliv            *
   *       Shkurenko Anton I-14-1 20.11.14         *
   *************************************************}
   var mas1: array [1..100] of string;
       mas2: array [1..100] of integer;
       a,b,c,d: integer;
       st,stl,st1,st2: string;
   begin
       write('Первое предложение: '); readln(st1);
       write('Второе предложение: '); readln(st2);
       st:=st1+' '+st2;
       b:=1;
       stl:='';
       if st[length(st)]<>'.' then st:=st+'.';
       for a:=1 to length(st) do
       if (st[a]<>' ') and (st[a]<>'.')
       then stl:=stl+st [a]else
   begin
       mas1[b]:=stl;
       stl:='';
       inc(b);
       end;
       c:=b;
       writeln('Повторяющиеся слова: ');
       for b:=1 to c do
       for d:=1 to c do
       if mas1[b]=mas1 [d]then
       inc(mas2[b]);
       for b:=1 to c do
       if mas2[b]<>1 then write(mas1[b],' ');
end.




http://195.208.237.170/WDE....na8.pas
13 | Автор: stx | 2014-11-20, 20:57 | Изменено: stx - Чт, 2014-11-20, 21:00   |  Репутация: [ + 2 ]

Код
var
text,alfavit:string;
s,i,j,n:integer;
count:Array[1..33] Of Integer;
begin
alfavit:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
s:=length(alfavit);
writeln('введите предложение');
readln(text);
n:=length(text);
for j := 1 to s do
begin
count[j]:=0;
for i:=1 to n do
if text[i]=alfavit [j]then count[j]:=count[j]+1;
end;
writeln('┌─┬──┐');
for j:=1 to s do
Begin
writeln('│',alfavit[j],'│',count[j]:2,'│');
writeln('┼─┼──┼');
end;
writeln('└─┴──┘');
readln;
end.

 
Завдання 2. Дано предложение. Посчитать частоту всех входящих в него букв. Результат вывести в виде таблицы.  

14 | Автор: beznoschenko | 2014-11-23, 21:10   |  Репутация: [ + 2 ]
. Дано предложение, состоящее из слов, разделенных пробелами (одним или несколькими). Подсчитать число слов в предложении. Обратите внимание на то, что пробелы могут быть и в начале и в конце предложения.
Код
program Iren456
{***********************************}
{* laba#8 file iren456.pas==ver1.0 *}
{* Zaznoba Irina I-14-1 25.11.14   *}
{***********************************};
var  s:string;
i, count: integer;
begin
writeln('Введите строку...');
readln(s);
While s[1]=' ' do Delete(s,1,1);
while s[length(s)]=' ' do  delete(s,length(s),1);

while pos('  ',s)>0 do
delete(s,pos('  ',s),1);
writeln('Результат:');
i := length(s);
if i > 0 then begin
count := 1;
while i > 0 do begin
if s = ' ' then
count := count + 1;
i := i - 1;
end;
end
else
count := 0;
writeln('Число слов: ', count);
end.

 
http://195.208.237.170/WDE/?shared=iren4562/laba8.pas


Ирина Зазноба
15 | Автор: iren456 | 2014-11-25, 20:05 | Изменено: iren456 - Вт, 2014-11-25, 20:20   |  Репутация: [ + 0 ]
Код
Program OlgaFrolova;
var s: string;
     len, i, j: integer;
      l:byte;
  word:string;
begin
write('Введите предложение:',' ');
readln(s);
len:= length(s);
  i:= 1; {начинаем с первого символа в строке}
  j:= 0; {сначала длина слова ровна нулю}
   while i<=len do begin
    if s[i] <> ' ' then begin {если очередной символ не пробел}
    j:=j+1; {увеличиваем длину слова}
    i:=i+1; {переходим к следующей букве}
     end
      else begin
        if j > 4 then begin  {если длинна слова > 4}
                 i:= i+1;
                 j:= 0; {обнуляем длину слова}
             end
             else begin {если длина слова < 4}
                 i:=1; {переходим к следующей букве}
                 j:= 0; {обнуляем длину слова}
  repeat
  word:=copy(s,1,pos(' ',s)); delete(s,1,pos(' ',s));
  l:=Length(word)-1;
  write(' ',l);
until pos(' ',s)=0;
  write(' ',Length(s));
readln;
           end;
         end;
     end;
end.

15. Дано предложение. Найти в нем короткие слова (длина не больше четырех букв) и заменить их числами, указывающими их длину.


25101996
16 | Автор: OlgaFrolova | 2014-11-25, 23:22   |  Репутация: [ + 0 ]
1. Дано предложение. Вывести новое предложение, в котором каждое слово напечатано в обратном порядке (справа налево). 

Код
program dimeshion;
uses crt;
var
   str:string;
   s:array[1..20] of string;
   i,k:integer;
begin
    writeln('Введите предложение: ');
    readln (str);
    k:=1;
    s[k]:=s[k]+' ';
  for i:=length(str) downto 1 do
   begin
    if str[i]<>' ' then
    s[k]:=s[k]+str [i]else
    begin
     k:=k+1;
     s[k]:=' ';
    end;
   end;
  for i:=k downto 1 do
  write(s[i]);
  readln;
end.


17 | Автор: dimeshion | 2014-11-27, 21:36   |  Репутация: [ + 2 ]
15. Дано предложение. Найти в нем короткие слова (длина не больше четырех букв) и заменить их числами, указывающими их длину.
Код
Program OlgaFrolova;
   var s,s1: string;
     
       len, i, j: integer;
        l:byte;
    word:string;
   begin
   write('Введите предложение:',' ');
   readln(s);
   len:= length(s);
    i:= 1; {начинаем с первого символа в строке}
    j:= 0; {сначала длина слова ровна нулю}
     while i<=len do begin
      if s [i]<> ' ' then begin {если очередной символ не пробел}
      j:=j+1; {увеличиваем длину слова}
      i:=i+1; {переходим к следующей букве}
       end
        else begin
          if j > 4 then begin  {если длинна слова > 4}
                   i:= i+1;
                   j:= 0; {обнуляем длину слова}
               end
               else begin {если длина слова < 4}
                   i:=1; {переходим к следующей букве}
                   j:=0; {обнуляем длину слова}
    repeat
    word:=copy(s,1,pos(' ',s)); delete(s,1,pos(' ',s));
    l:=Length(word)-1;
   if l<=4 then begin
     str(l,s1);
    write(' ',s[j]+s1)
    end
    else write(' ',word);
   until pos(' ',s)=0;
    write(' ',Length(s));
   readln;
     
             end;
           end;
       end;
   end.


http://195.208.237.170/WDE/?shared=OlgaFrolova/Program8.pas


25101996
18 | Автор: OlgaFrolova | 2014-11-27, 23:55 | Изменено: OlgaFrolova - Пт, 2014-11-28, 00:15   |  Репутация: [ + 0 ]
Код
program Bonyasik;
  var s,b:string; f,i,a:integer;
    begin
    randomize;
    writeln('Исходное слово');
    readln(s);
    writeln('Полученое слово');  
    write(s[1]);  
    f:=length(s);
    for i:=2 to f-1 do begin  
    s[i]:=chr(ord('а')+random(33));
    write(s[i]);
    end;
    write(s[f]);
    end.


http://195.208.237.170/WDE/?shared=Bonyasik/Bonyasik8.pas
19 | Автор: Бонясик | 2014-11-30, 22:34   |  Репутация: [ + 0 ]
15. Дано предложение. Найти в нем короткие слова (длина не больше четырех букв) и заменить их числами, указывающими их длину.
Код
Program OlgaFrolova;
    var s,s1: string;

        len, i, j: integer;
         l:byte;
     word:string;
    begin
    write('Введите предложение:',' ');
    readln(s);
    len:= length(s);
     i:= 1; {начинаем с первого символа в строке}
     j:= 0; {сначала длина слова ровна нулю}
      while i<=len do begin
       if s [i]<> ' ' then begin {если очередной символ не пробел}
       j:=j+1; {увеличиваем длину слова}
       i:=i+1; {переходим к следующей букве}
        end
         else begin
           if j > 4 then begin  {если длинна слова > 4}
                    i:= i+1;
                    j:= 0; {обнуляем длину слова}
                end
                else begin {если длина слова < 4}
                    i:=1; {переходим к следующей букве}
                    j:=0; {обнуляем длину слова}
     repeat
     word:=copy(s,1,pos(' ',s)); delete(s,1,pos(' ',s));
     l:=Length(word)-1;
    if l<=4 then begin
      str(l,s1);
      word:=s1;
     write(' ',word )
     end
     else write(' ',word);
    until pos(' ',s)=0;
     write(' ',Length(s));
    readln;

              end;
            end;
        end;
    end.

http://195.208.237.170/WDE/?shared=OlgaFrolova/Program8.pas


25101996
20 | Автор: OlgaFrolova | 2014-12-01, 13:48   |  Репутация: [ + 0 ]
Форум ПРОГРАММИСТОВ » КУРС ОПР - ПАСКАЛЬ » Лабораторные работы » Лабораторная работа №8 (работа со строками и символами)
Страница 1 из 11
Поиск: