Строковые константы и переменные
Оценка 4.8

Строковые константы и переменные

Оценка 4.8
Рабочие тетради
doc
информатика +1
10 кл—11 кл +1
25.04.2017
Строковые константы и переменные
Занятие строится таким образом, что после прослушивания теоретического материала (10 –15 мин.), учащимся предлагается практическое задание, которое выполняется ими за 20 - 30 мин. и корректируется в процессе изучения материала в более сложную задачу по изучаемой теме. Автор сознательно избегал сложных примеров, будучи убежденными, в том, что гораздо важнее для учащихся понимание алгоритмов предлагаемых задач, приобретение навыков разработки алгоритмов, их программирования и выполнения на компьютере в течение одного занятия. Такой подход к изучению языка программирования позволяет сосредоточить внимание на самом процессе программирования, который в данном случае более важен для изучения языка, чем решение сложной задачи, наверняка трудной большинству учащихся. Такие задачи, по мнению авторов, неоправданно занимают большое количество учебного времени, превращая учителя из инициатора процесса обучения в диктатора.
Занятие 16ч1.doc
Строковые константы и переменные     Занятие 16 1. Урок 1.  Строковые константы  и  переменные. 2. Урок 2.  Операции         над         строковыми          переменными (присваивание, сцепление,  отношения). 3. Урок 3.  Встроенные функции и процедуры для обработки строк. 4. Контрольные вопросы и упражнения.  Урок 1. Строковые константы и переменные 1.1. Первый способ реализации строк. 1.2. Строковые константы и переменные. 1.3. Второй способ реализации строк. Строка представляет собой набор символов некоторого алфавита, которая имеет определенное смысловое значение. Строку можно представить как  особую форму одномерного массива символов, которая определяется в программе при описании и имеет две разновидности длины: заданную длину строки, которая определяет размер памяти, выделяемый строке при описании; ­ ­ фактическую   длину строки,  которая   всегда  меньше  или  равна    заданной  длине  строки  и  показывает количество смысловых символов в каждый конкретный момент времени. К каждому  символу строки можно обратиться по его  номеру, присвоить  в программе некой  символьной переменной и вывести на экран дисплея или принтер  с помощью стандартных процедур  Write, WriteLn.   Строковые переменные могут быть введены в программу с клавиатуры стандартной процедурой ReadLn. При этом строка вводится целиком и заканчивается клавишей  Enter, а не поэлементно,  как  массивы данных. 1.1. Первый способ реализации строк В этом случае  фактическая  длина строки  указывается    в   нулевом  элементе строки.  В этот  элемент записывается символ, код которого указывает длину строки. Нулевой элемент строки не видим для пользователя, но его значение  можно посмотреть  или  присвоить  какой либо переменной.  Максимальная  фактическая длина строки меньше или равна 255 символов. Такой способ записи имеет преимущество в том, что информация о длине строки всегда доступна (см. рис. 1). К недостатку следует отнести ограничение в максимальной длине строки. 1.2. Строковые константы и переменные Строковые константы  – это последовательность символов, заключенная в апострофы, например:   ‘Turbo Pascal’,  ‘Строка’. Строковые константы могут быть объявлены в описательной части программы в разделе констант в формате: или записаны в теле программы оператором присваивания строки некой строковой переменной в формате: Const  <Имя  строковой константы> = ‘Строка символов’; <Имя  строковой переменной> := ‘Строка символов’; Строковые переменные – это аналогия символьным массивам (тип   char). Их отличием является то, что число   символов  (фактическая   длина   строки)   может  динамически   меняться  от     0   до  заданного    количества символов в строке.   Строковая переменная имеет тип   string   и определяется в описательной части программы в формате:  Var  <Имя  строковой переменной> : string [<Заданная длина строки>]; где <Заданная длина строки> ­ указывается в   квадратных   скобках   со значениями от 1 до 255. Реально, длина строки может принимать меньшее или равное значение, чем указанное в скобках. Если длина строки не указывается, то по умолчанию принимается равной  255 символов. Например: по умолчанию. Var  str1: string[30]; str2: string;   где заданная длина строки   str1 ­  30 символов, а  str2 ­ 255 Фактическая   длина   строки   определяется   в   процессе   выполнения   программы   и   не   может   быть  больше заданной длины. В противном случае ошибка не индицируется, а строка  обрезается  до заданной  длины.  В программе  vv67 показано все, что было описано выше. Program V1L17P1; {Определение заданной и фактической длинны строк} Uses Crt;                Var nstr1,nstr2,vnstr1,vnstr2:byte;     str1:string[10];str2:string[5];     vstr1,vstr2:string; {} begin {Вызов стандартного модуля} {Определение переменных} {Определение  строк} {Определение вводимых строк} 97 Строковые константы и переменные.  Операции над строковыми переменными.  Встроенные функции и процедуры для обработки строк ClrScr; WriteLn('Введи первую строку'); ReadLn(vstr1); vnstr1:=Ord(vstr1[0]); {Стирание экрана} {Ввод первой строки} {Заданная длина первой строки} WriteLn('Заданная длина первой строки',vnstr1:6); WriteLn; WriteLn('Введи вторую строку'); ReadLn(vstr2);           {Перевод строки} {Ввод второй строки} vnstr2:=Ord(vstr2[0]);   {Заданная длина второй строки} WriteLn('Заданная длина второй строки',vnstr2:6); str1:=vstr1;     str2:=vstr2;     {Присвоение заданной 1­ой строке фактической} {Присвоение заданной 2­ой строке фактической} nstr1:=Ord(str1[0]);     nstr2:=Ord(str2[0]);     {Фактическая длина 1­ой строки} {Фактическая длина 2­ой строки} WriteLn; WriteLn('Фактическая длина первой строки',nstr1:4); if vnstr1>10 then WriteLn(', обрезана до длины в 10 символов, указанных в описании.'); WriteLn('Фактическая длина второй строки',nstr2:4); if vnstr2>5 then WriteLn(', обрезана до длины в 5 символов, указанных в описании.'); {} ReadKey               end. {Ожидание нажатия любой клавиши} Результаты решений могут быть следующими: Вариант 1 Введи первую строку 1234567890­= Заданная длина первой строки    12 Введи вторую строку 12345678 Заданная длина второй строки     8 Фактическая длина первой строки 10, обрезана до длины в  10  символов, указанных в описании. Фактическая длина второй строки 5, обрезана до длины в  5  символов, указанных в описании. Вариант 2 Введи первую строку 1234567 Заданная длина первой строки     7 Введи вторую строку 123 Заданная длина второй  строки     3 Фактическая длина первой строки   7 Фактическая длина второй строки   3 На рис. 1 представлена структура первого способа реализации строк. Заданная длина строки задана размером в 14 символов в блоке описания переменных программы.  Фактическая длина строки равна  6­ти символам.    0        1       2       3        4       5       6       7       8       9       10     11     12     13    14         ♠ P A L S C A Рис. 1. Структура первого способа реализации строк в языке Turbo Pascal 7.0. В нулевой позиции стоит символ,  код которого равен 6  по   расширенной таблице кодов  ASCII. Для того,   чтобы узнать количество символов в фактической строке, необходимо преобразовать символ в нулевой позиции в его код с помощью функции   Ord  (см. программу  V2L02P1). 1.3. Второй способ реализации строк 98 В этом способе реализации строк  фактическая длина строки фиксируется специальным символом­ признаком, который ставится  после последнего  символа строки.    В   Turbo  Pascal  это символ с нулевым кодом, который называется   “ноль­символ”   и обозначается или   NULL  или  \0.   Этот способ ограничивает длину строки размером  64 K  байт (65534 символа). Строки с завершающим нулем называют  также  ASCIIZ­строками. На рис. 2 представлена  структура  второго способа реализации строк. Заданная  длина строки определена размером в 14 символов в блоке описания переменных программы.  Фактическая длина строки равна  6­ти символам.    0        1       2       3        4       5       6       7       8       9       10     11     12     13    14         P \0 A S C A L Рис. 2. Структура второго способа реализации строк  в языке Turbo Pascal 7.0. Строки в этом способе хранятся в виде символьных массивов с нулевой базой, то есть, нижняя граница которых равна нулю, и заканчиваются  ноль­символом  (\0). Кроме   того,   в   языке  TP  7.0   имеется   тип    Pchar,   который   представляет   собой  указатель   на   строку   с завершающим   нулем.   При   этом   символьный   массив   с   нулевой   базой   совместим   с   указанным   типом  Pchar. Переменные типа   Pchar    допускается  индексировать  аналогично  символьному  массиву с нулевой базой,  что показано в  программе V2L02P1. В программе переменная  str   описана как символьный массив.   Переменная   s,   как   указатель на строку с завершающим нулем (тип   Pchar). В цикле по переменной цикла   i   происходит вывод на экран дисплея каждого символа  строки в отдельную строку, т.е. исходная горизонтальная строка  печатается как вертикальная.   Program V1L17P2; {Печать введенной строки с завершающим нулем} Uses Crt; Var str:array[0..12] of char; i,dstr:byte;                    s:pchar;                        {} begin ClrScr; WriteLn('Введи строку'); ReadLn(str);                     {Ввод строки} s:=str; {Описание символьного массива} {Описание целых переменных} {Описание указателя на строку} dstr:=Length(str); {Присвоение переменной "s" введенного строчного значения} {Вычисление длины строки} WriteLn('Длина строки',dstr:5); for i:=0 to dstr do              {Цикл печати символов строки} WriteLn(s[i]); {Печать символа строки} {} ReadKey end. Урок 2. Операции над строковыми переменными 2.1. Операция присваивания. 2.2. Операция сцепления. 2.3. операции отношения. Строковые данные могут участвовать в строковых выражениях, которые состоят из  строковых констант, переменных  типа    string    и    char,  знаков   операций  и  встроенных   функций.   Над   строковыми   переменными производятся операции  присваивания,  сцепления и отношения. 2.1. Операция присваивания Эта операция предназначена для присваивания некоторой строковой переменной определенного строкового выражения в формате: <Имя строковой переменной> := ’Строковое выражение’; Операция  неоднократно  была использована в предыдущих программах (V1L17P1,  V1L17P2),  где строка символов вводилась   с   клавиатуры   стандартной   процедурой   ввода    ReadLn.     При   этом     ввод   строки   осуществляется    без апострофов. 2.2. Операция сцепления 99 Строковые константы и переменные.  Операции над строковыми переменными.  Встроенные функции и процедуры для обработки строк Операция   сцепления   применяется   для  сцепления  нескольких   строк   в  одну  результативную   строку.   Для обозначения   операции   сцепления   используется   знак    +  (плюс)   или   функция   конкатенации  Concat,  которая   имеет следующий формат: Concat(<Строка 1>, <Строка 2>, …, <Строка N>); Program V1L17P3; {Сцепление строк} Uses Crt; Var str1,str2:string[6];str3:string[12]; {} begin ClrScr; str1:='Turbo ';                     str2:='Pascal';                     {} WriteLn('Первая строка, записанная в теле программы'); WriteLn(str1);                      WriteLn('Вторая строка, записанная в теле программы'); WriteLn(str2);                      {} WriteLn('Результативная строка'); {Описание строк} {Значение первой строки} {Значение второй строки} {Вывод первой строки} {Вывод второй строки} str3:=str1+str2;                    WriteLn(str3);            {} ReadKey end. или {Сцепление строк} {Вывод результативной строки} Program V1L17P4; {Сцепление строк} Uses Crt; Var str1,str2:string[6];str3:string[12];  {} begin ClrScr; str1:='Turbo ';                     str2:='Pascal';                     {} WriteLn('Первая строка, записанная в теле программы'); WriteLn(str1);                      WriteLn('Вторая строка, записанная в теле программы'); WriteLn(str2);                      {} WriteLn('Результативная строка'); {Описание строк} {Значение первой строки} {Значение второй строки} {Вывод первой строки} {Вывод второй строки} str3:=Concat(str1,str2);            {Сцепление строк} {Вывод результативной строки} WriteLn(str3);            {} ReadKey end. 2.3. Операции отношения Операции отношения: ­ ­ ­ ­ ­ ­ равно         =; неравно  <>; больше      >; меньше     <; больше, равно  >=; меньше, равно  <=. Эти   операции   производят   сравнение   двух   строковых   операндов   и   имеют   более  низкий  приоритет,   чем операция сцепления.  Сравнение строк производится слева направо до первого несовпадающего символа.  Строка считается  большей, в которой  первый несовпадающий символ  имеет  больший номер  в кодовой таблице   ASCII. Результат выполнения операций отношения всегда имеет логический тип (Boolean)  и принимает значение (true) или (false).     Строки   считаются  равными,     если   они   полностью   совпадают   по  фактической,     а   не  заданной  длине, 100 объявленной в описательной части программы, и содержат одни и те же символы. Обязательно следует учитывать регистр символов строки. Приведенная   в   качестве   примера   программа,   демонстрирует   сказанное   выше.   В   программе   происходит сравнение двух введенных с клавиатуры строк и вывод на экран дисплея сообщений об этом. Program V1L17P5; {Операции отношения} Uses Crt;                     Var nstr1,nstr2,nvstr1,nvstr2:byte;      vstr1,vstr2:string;       {} begin ClrScr; WriteLn('Введи первую строку'); ReadLn(vstr1);               nvstr1:=Ord(vstr1[0]);   WriteLn('Общая длина первой строки',nvstr1:6); WriteLn; {} WriteLn('Введи вторую строку'); ReadLn(vstr2);           nvstr2:=Ord(vstr2[0]);   WriteLn('Общая длина второй строки',nvstr2:6); {} {Вызов стандартного модуля} {Переменные длин строк} {Определение вводимых строк} {Стирание экрана} {Ввод первой строки} {Определение заданной длины 1­ой строки} {Ввод второй строки} {Определение заданной длины 2­ой строки} nstr1:=Ord(vstr1[0]);   nstr2:=Ord(vstr2[0]);   {Определение фактической длины 1­ой строки} {Определение фактической длины 2­ой строки} WriteLn; WriteLn('Фактическая длина первой строки',nstr1:4); WriteLn('Фактическая длина второй строки',nstr2:4); {Логическое условие равенства строк} if vstr1=vstr2 then WriteLn('Строки равны') else WriteLn('Строки неравны'); {Логическое условие неравенства строк} if vstr1>vstr2 then WriteLn('Первая строка больше второй')  else WriteLn('Вторая строка больше первой'); {} ReadKey      end. {Ожидание нажатия любой клавиши клавиатуры} Результаты работы программы могут быть следующими: Вариант 1 Введи первую строку Turbo Pascal Заданная длина первой строки     12 Введи вторую строку Turbo Pascal Заданная длина второй строки     12 Фактическая длина первой строки  12 Фактическая длина второй строки  12 Строки равны Вариант 2 Введи первую строку Turbo Pascal 7.0 Заданная длина первой строки     16 Введи вторую строку Turbo Pascal Заданная длина второй строки     12 Фактическая длина первой строки  16 Фактическая длина второй строки  12 Строки неравны Первая строка больше второй Вариант 3 Введи первую строку Turbo Pascal 101 Строковые константы и переменные.  Операции над строковыми переменными.  Встроенные функции и процедуры для обработки строк Заданная длина первой строки     12 Введи вторую строку Turbo pascal Заданная длина второй строки     12 Фактическая длина первой строки  12 Фактическая длина второй строки  12 Строки неравны Вторая строка больше первой В данном случае во второй строке слово pascal начинается с символа малого регистра, код которого больше чем код символа   P (большой регистр), следовательно, по определению вторая строка больше первой (см.  таблицу кодов ASCII).  Урок 3. Встроенные функции и процедуры для обработки строк 3.1. Функция  Length. 3.2. Функция  Copy. 3.3. Функция  Pos. 3.4. Процедура  Delete. 3.5. Процедура  Insert. 3.6. Процедура  Str. 3.7. Процедура  Val. Встроенные функции и процедуры являются удобным и, в некоторой степени, достаточным сервисом для работы со строковыми данными.  Рассмотрим стандартные функции и процедуры  TP 7.0. 3.1. Функция  Length – определяет длину фактической текстовой строки. При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.  Формат функции: <Имя целой переменной> := Length(<Имя строковой переменной>); где,  Имя целой переменной – идентификатор, объявленный в блоке описания, должен иметь целочисленный тип. Грамотнее объявить типом Byte или Word, т.к. отрицательной длины строки не бывает.  Имя строковой переменной, может быть объявлено в виде константы в блоке описания или в теле программы.  Program V1L17P6; {Определение фактической длины строки} Uses Crt;    Var vstr:string;           str: string[20];       vlen,len:byte;     {} begin ClrScr; WriteLn('      Введи исходную строку'); ReadLn(vstr);          {}    {Стирание экрана} {Вызов библиотечного модуля} {Определение исходной строки} {Определение заданной строки} {Определение длин строк} {Ввод исходной строки} vlen:=Length(vstr);    {Длина исходной строки} WriteLn('      Длина  исходной   строки',vlen:4,'символов.'); WriteLn; {} str:=vstr;             {} WriteLn('      Фактическая строка'); WriteLn(str);          {} {Печать заданной строки} {Присвоение исходной строки заданной} len:=Length(str);      {Длина заданной строки} {} WriteLn('      Длина фактической строки',len:4,' символов.'); {} if vlen>20 then WriteLn('Исходная строка обрезана до 20 заданных символов.'); {} 102 ReadKey end. Результаты работы программы могут быть следующими. Вариант 1. Введи исходную строку qwertyuiop Длина исходной строки 10 символов. Фактическая строка qwertyuiop Длина фактической строки 10 символов. Вариант 2. Введи исходную строку 1234567890­=йцукенгшщзхъфывапр Длина исходной строки 30 символов. Фактическая строка 1234567890­=йцукенгш Длина фактической строки 20 символов. Исходная строка обрезана до 20 заданных символов. 3.2. Функция   Copy  – копирует выделяемую из исходной  фактической  строки   подстроку   в  другую  строчную переменную. Формат функции: <Имя подстроки> := Copy(<Имя строки>, <Позиция начала подстроки><Длина подстроки>); где, < Длина подстроки>  и  <Позиция начала подстроки > должны иметь целочисленный тип. В случае   если   <Позиция начала подстроки>    будет больше чем   <Длина строки>, то  результатом копирования будет пробел. Program V1L17P7; {Определение подстроки} Uses Crt; Var vstr,pstr:string;             p,d,len:byte;         {} begin ClrScr; WriteLn('      Введи исходную строку'); ReadLn(vstr);               Write('      Введи позицию первого символа подстроки '); Read(p); Write('      Введи длину подстроки '); Read(d); {Ввод исходной строки} {Определение исходной строки} {Определение переменных} pstr:=Copy(vstr,p,d);       {Выделение подстроки} WriteLn('      Выделенная подстрока'); WriteLn(pstr);              len:=Length(pstr);      WriteLn('      Длина подстроки',len:4,' символов.'); {} ReadKey end. {Печать заданной строки} {Длина подстроки} Возможный результат работы программы. Введи исходную строку 123 456 789 0 Введи позицию первого символа подстроки  3 Введи длину подстроки  7 Выделенная подстрока 3 456 7 Длина подстроки 7 символов 3.3. Функция   Pos – определяет    наименьший     номер     позиции     начала подстроки, входящей в некую строку как подстрока. Если  подстрока в строке не найдена, то результат равен  нулю. 103 Строковые константы и переменные.  Операции над строковыми переменными.  Встроенные функции и процедуры для обработки строк Формат функции: <Наименьший номер позиции строки> := Pos(<Имя подстроки>,<Имя строки>); где, <Наименьший номер позиции строки>  должен иметь целочисленный тип  Byte или Word. {Определение строки и подстроки} {Определение переменных} Program V1L17P8; {Определение наименьшего номера позиции начала подстроки в строке} Uses Crt; Var str,pstr:string;        p,len:byte;     {} begin ClrScr;               WriteLn('      Введи строку str'); ReadLn(str);          len:=Length(str);     Write('      Длина строки',len:4,' символов.'); WriteLn;WriteLn;      {} WriteLn('      Введи  подстроку pstr'); ReadLn(pstr);         len:=Length(pstr);    Write('      Длина подстроки',len:4,' символов.'); WriteLn; {} {Ввод подстроки} {Вычисление длины подстроки} {Стереть экран} {Ввод строки} {Вычисление длины строки} {Два перевода строк} p:=Pos(pstr,str);  {Опред. позиции начала подстроки в строке} {} WriteLn; Write('      Позиция начала подстроки в строке'); WriteLn(p:4);      {} ReadKey           {Ожидание нажатия любой клавиши клавиатуры} end. {Печать позиции} Возможные результаты работы программы. Вариант 1. Введи строку  str asdfghjkl Длина строки  9 символов. Введи подстроку  pstr dfghj Длина подстроки  5 символов. Позиция начала подстроки в строке 3 Вариант 2. Введи строку  str 1234567890 Длина строки  10 символов. Введи подстроку  pstr qwer Длина подстроки  4 символа. Позиция начала подстроки в строке  0 3.4. Процедура  Delete  – удаляет в исходной строке  фрагмент  определенной длины, начинающийся с  указанной позиции. Результатом является новая строка, которая записывается в исходную строку без удаленного фрагмента. Формат процедуры: Delete(<Исходная строка>,<Позиция начала подстроки>,<Длина подстроки>); где, <Позиция начала подстроки>, и < Длина строки>  имеют целочисленный тип Byte  или Word.  Program V1L17P9; {Удаление подстроки из строки} Uses Crt; Var str,pstr:string;  {Определение строки и подстроки} 104 {Определение переменных}      d,p,len:byte;    {} begin ClrScr;               WriteLn('      Введи строку str'); ReadLn(str); len:=Length(str);     Write('      Длина строки',len:4,' символов'); WriteLn;WriteLn;      Write('      Введи позицию первого символа подстроки  '); Read(p); Write('      Введи   длину   удаляемой     подстроки  '); Read(d); {Перевод строк} {Стереть экран} {Ввод строки} {Вычисление длины строки} Delete(str,p,d);  {Удаление подстроки с позиции "p". Количество символов "d"} WriteLn; WriteLn('      Преобразованная строка'); WriteLn(str);         len:=Length(str);     Write('      Длина строки',len:4,' символов'); {} ReadKey           {Ожидание нажатия любой клавиши клавиатуры} end. {Печать преобразованной строки} {Вычисление длины преобразованной строки} Результат работы программы может быть следующим. Введи строку  str 1234567890 Длина строки 10 символов. Введи позицию первого символа подстроки  3 Введи   длину   удаляемой     подстроки  2 Преобразованная строка 12567890 Длина строки  8 символов. 3.5. Процедура  Insert  –  вставляет    строку 1  в  строку 2,  начиная  с некоторой  указанной  позиции в строке 2. Результатом является новая строка, которая записывается во вторую строку. Если результат будет строкой размером больше 255 символов, то все символы, начиная с 256, будут удалены.    Формат процедуры: Insert(<Имя строки 1>, <Имя строки 2>, <Позиция в строке 2>); Program V1L17P10; {Вставка строки в строку} Uses Crt; Var str1,str2:string;       p,len:byte;     {} begin ClrScr; WriteLn('      Введи первую строку'); ReadLn(str1); WriteLn('      Введи вторую строку'); ReadLn(str2); Write('      Введи позицию строки str2 для вставки str1  ');Read(p);  {Ввод позиции строки  str2} {Определение исходных строк длиной в 255 символов} {Определение переменных} {Ввод первой строки} {Ввод второй строки} Insert(str1,str2,p); WriteLn('      Результат'); WriteLn(str2); len:=Length(str2);   {Длина результативной строки} WriteLn('  Длина результативной строки',len:4,' символов.'); {} ReadKey end. {p ­ позиция вставки  str1 в строку str2} {Печать результативной строки} Результат работы программы может быть следующим. Введи первую строку 123456 asd Введи вторую строку Введи позицию строки str2 для вставки str1  3 Результат as123456d Длина результативной строки  9 символов. 105 Строковые константы и переменные.  Операции над строковыми переменными.  Встроенные функции и процедуры для обработки строк 3.6.  Процедура  Str   ­  преобразует   числовое    значение    в    строковое      представление.      Формат      процедуры         следующий: Str(<Числовая переменная>:<Общее кол.  цифр>:<Кол. цифр дробной части числа>,<Строковая переменная>); где,  <Общее количество цифр>  обозначает их общее количество, включая десятичную точку. Преобразованное число в виде  цифровых  символов  записывается  в  <Строковую переменную>. Например, Str(1020:4,str1); возвращает в   переменную  str1 строку "1020",   Str(1020.56:7:2,str2); возвращает  в переменную  str2 строку "1020.56". 3.7. Процедура   Val  ­ преобразует строку цифровых символов “0 ­:­ 9”, символы   “E”, “+” и   “­”   в их численное представление.  Формат процедуры следующий: Val(<Строка цифровых символов>, <Численное представление строки>, <Код>); где  в <Код>  возвращается признак ошибки. Если  <Код> <>  0, то при записи результирующего числа  наблюдается переполнение или обнаруживается недопустимый символ. В этом случае <Код> равен номеру недопустимого символа. Program V1L17P11; {Преобразование числа в цифровую строку и и цифровой строки в число} Uses Crt;           {Использование модуля работы с дисплеем} Var nstr:string;                {Длина строковой переменной 255 символов по умолчанию} n,v:real; c,f,d,len:word;  {} begin {Очистить экран} ClrScr;          WriteLn('       Введи число  '); Read(n); {Ввод числа} WriteLn('       Введи  общее  количество  цифр в числе,'); WriteLn('       включая  десятичную   точку'); Read(f);  {Ввод общего количества цифр в числе} WriteLn('       Введи количество  чисел дробной  части'); Read(d);         {Ввод количества чисел дробной части числа} {Определение числовых переменных} Str(n:f:d,nstr); {Преобразование числа в строку символов} WriteLn('       Строка   цифровых   символов'); WriteLn(nstr);           len:=Length(nstr);       WriteLn('       Количество символов в строке'); WriteLn(len);   {Печать длины строки} {Печать строки символов} {Вычисление длины строки} Val(nstr,v,c); {Преобразование строки nstr в число v} WriteLn('       Числовое значение строки цифровых символов'); WriteLn(v:f:d);  ReadKey         {Ожидание нажатия любой клавиши клавиатуры} end. {Печать числа в заданном при вводе формате} Возможный результат  работы программы. Введи число  123.78 Введи  общее  количество  цифр в числе, включая   десятичную   точку  6 Введи количество  чисел дробной  части  2 Строка   цифровых   символов  123.78 Количество символов в строке  6 Числовое значение строки цифровых символов  123.78 1. Ввести с клавиатуры строку символов и подсчитать, сколько раз в данной строке встречается символ, введенный с Контрольные вопросы и упражнения клавиатуры. 2. Ввести с клавиатуры некий текст и подсчитать, сколько раз встречается символ, введенный с клавиатуры в каждой строке. 3. Ввести с клавиатуры строку символов и сосчитать количество гласных букв в ней. 4. Удалить из введенной с клавиатуры строки средний символ, если количество символов в строке нечетное и удалить два средних символа, если количество символов в строке четное. Заменить все символы  Ch1 в строке на символы Ch2. Строку и символы вводить с клавиатуры. 5. 6. Дана последовательность слов. Вывести на экран эту последовательность в алфавитном порядке. 7. Дана последовательность слов. Вывести на экран дисплея все слова, которые встречаются в ней по одному разу. 8. Дано  целое число  n > 2 31. Подсчитать сумму   его цифр. 9. Даны две строки. Если они начинаются с одинаковых символов, то напечатать  “Да” и вывести  эти символы. В противном случае напечатать “Нет”. Количество рассматриваемых символов вводить с клавиатуры. 106 10. Ввести   с  клавиатуры   некий  текст.  Напечатать   этот  текст  словами  –   перевертышами,   оставив  на  месте   знаки препинания   и  пробелы.  Например,   текст:     “Печатаю   текст   словами   ­   перевертышами   ”   .    Вывести   на   экран: “Юатачеп  тскет имаволс ­ имашытревереп”. Для заметок, вопросов и ответов ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ 107

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные

Строковые константы и переменные
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
25.04.2017