Основы алгоритмизации и программирования. Часть третья. Структурированные типы данных. Асламова В.С - 33 стр.

UptoLike

65
writeln(k);
readln;
end.
Пример 18:
Сформировать строку из 26-ти символов, содержанием которой
является последовательность заглавных букв латинского алфавита.
Можно воспользоваться аналогией строки с символьным массивом.
Однако здесь требуется учитывать текущую длину строки.
var S:string[26]; i:byte;
begin
s:=a; for i:= 1 to 26 do
s[i]:=chr(ord(a)+ i-1);
writeln(s= ,s);
end. {будет напечатан лишь один символ А}
Почему?
Природа совершённой ошибки заключается в том, что присваивание
значений элементам строки не влияет
на её текущую длину, которая была
установлена равной 1 при первом присваивании s:=a, т.к. здесь получила
значение строка в целом.
Правильным будет следующий вариант:
var S:string[26]; i:byte;
begin
s:= _; {s- пустая строка}
for i:= 1 to 26 do
s:= s + chr(ord(a) + i-1);
writeln(s);
end.
Либо нужно было в предыдущий вариант программы перед оператором
вывода вставить s[0]:= chr(26).
Практические задания на тип String
Везде, где не указано, слова в тексте разделены пробелами.
1. Определить сколько раз в тексте встречается буква А.
2. В заданном тексте удалить часть текста, заключённую в скобки
(вместе со скобками).
3. Определить количество слов в тексте.
66
4. Указать минимальное количество первых букв, по которым можно
различить слова из заданного набора (слова разделены запятыми).
5. Текст задан следующим образом: первый символцифра,
указывающая длину первого слова, за первым словомвновь цифра,
указывающая длину второго слова (длина каждого слова <=9) и т.д.
Выписать k–е слово из текста.
6. Напечатать самое длинное (короткое) слово из заданного текста.
7. Определить, какой процент слов в тексте содержит удвоенную
согласную (слова разделены пробелами).
8. Сколько раз в тексте встречается заданное слово (слова разделены
пробелами).
9. В тексте убрать лишние пробелы между словами, оставив по
одному.
10. В тексте вставить между словами вместо одного пробела запятую
и пробел.
11. Определить, какой процент слов в тексте начинается на букву К
(слова разделены пробелами).
12. Сколько раз в тексте встречается заданное слово (в качестве
разделителей могут употребляться пробелы, знаки препинания и т.п.).
13. Ученики зашифровывают свои записи, записывая все слова
наоборот. Составить программу, зашифровывающую и расшифровывающую
сообщение.
14. В текст, содержащий меньше 50 символов, равномерно вставить
пробелы между словами, чтобы его длина составляла ровно 50 символов.
15. Задан текст, содержащий не более 255 символов. Определить
частоту, с которой встречаются в тексте различные буквы русского алфавита
(в долях от общего количества букв этого текста).
16. Зашифровать заданный текст (не более 255 символов), используя
один перемешанный алфавит (полученный случайной перестановкой всех
букв исходного алфавита).
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫБЮЯ
ЕЖЧБПКЛАОТДУГЦЯЙХЫВЪЮИФСЩНЬЭЗШРМ
     writeln(k);                                                                 4. Указать минимальное количество первых букв, по которым можно
     readln;                                                               различить слова из заданного набора (слова разделены запятыми).
   end.
                                                                                 5. Текст задан следующим образом: первый символ – цифра,
        Пример 18:
                                                                           указывающая длину первого слова, за первым словом – вновь цифра,
      Сформировать строку из 26-ти символов, содержанием которой           указывающая длину второго слова (длина каждого слова <=9) и т.д.
является последовательность заглавных букв латинского алфавита.            Выписать k–е слово из текста.
      Можно воспользоваться аналогией строки с символьным массивом.
Однако здесь требуется учитывать текущую длину строки.                           6. Напечатать самое длинное (короткое) слово из заданного текста.
   var S:string[26]; i:byte;                                                     7. Определить, какой процент слов в тексте содержит удвоенную
   begin                                                                   согласную (слова разделены пробелами).
       s:=′a′; for i:= 1 to 26 do
       s[i]:=chr(ord(′a′)+ i-1);                                                 8. Сколько раз в тексте встречается заданное слово (слова разделены
       writeln(′s= ′,s);                                                   пробелами).
   end.                            {будет напечатан лишь один символ А}
                                                                                 9. В тексте убрать лишние пробелы между словами, оставив по
         Почему?
                                                                           одному.
         Природа совершённой ошибки заключается в том, что присваивание
значений элементам строки не влияет на её текущую длину, которая была            10. В тексте вставить между словами вместо одного пробела запятую
установлена равной 1 при первом присваивании s:=′a′, т.к. здесь получила   и пробел.
значение строка в целом.
                                                                                  11. Определить, какой процент слов в тексте начинается на букву К
         Правильным будет следующий вариант:
                                                                           (слова разделены пробелами).
   var S:string[26]; i:byte;
   begin                                                                         12. Сколько раз в тексте встречается заданное слово (в качестве
       s:= ′_′;                      {s- пустая строка}                    разделителей могут употребляться пробелы, знаки препинания и т.п.).
       for i:= 1 to 26 do
       s:= s + chr(ord(′a′) + i-1);                                              13. Ученики зашифровывают свои записи, записывая все слова
       writeln(s);                                                         наоборот. Составить программу, зашифровывающую и расшифровывающую
   end.                                                                    сообщение.
Либо нужно было в предыдущий вариант программы перед оператором
вывода вставить s[0]:= chr(26).                                                  14. В текст, содержащий меньше 50 символов, равномерно вставить
                                                                           пробелы между словами, чтобы его длина составляла ровно 50 символов.

            Практические задания на тип String                                   15. Задан текст, содержащий не более 255 символов. Определить
                                                                           частоту, с которой встречаются в тексте различные буквы русского алфавита
Везде, где не указано, слова в тексте разделены пробелами.                 (в долях от общего количества букв этого текста).
      1. Определить сколько раз в тексте встречается буква А.
                                                                                 16. Зашифровать заданный текст (не более 255 символов), используя
      2. В заданном тексте удалить часть текста, заключённую в скобки      один перемешанный алфавит (полученный случайной перестановкой всех
(вместе со скобками).                                                      букв исходного алфавита).
                                                                                           АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫБЮЯ
      3. Определить количество слов в тексте.
                                                                                          ЕЖЧБПКЛАОТДУГЦЯЙХЫВЪЮИФСЩНЬЭЗШРМ
                                    65                                                                    66