- •Министерство образования российской федерации
- •Var X,y: real;
- •Var X,y: real;
- •Var t:integer; p:char;
- •0..17: Write('детство');
- •20..30: Write('молодость');
- •31..54: Write('зрелость');
- •Var s:char;
- • Оператор цикла с предусловием имеет вид
- •Program p5_8;
- •Var y,X,z: integer;
- •Var I,j:integer; X,y,r:real;
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var I,j,n,m: integer;
- •X:array [1..10] of integer;
- •Var n,I,j,st,kl,k:integer;
- •Var st: char; sm: string[32]; ss: string;
- •Var n:integer;y:string;
- •Var k,I:integer; X: string;
- •Var X:string[1]; d:string; I:integer;
- •Var X:vr; y:array [1..5] of vr;
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •X,y:real;
- •X,y:real; I:integer;
- •Im: string[4];
- •I: integer;
- •Im: string[4];
- •I: integer;
- •Im:string[4]
- •Im:string;
- •Var d,I,m,rx,ry:integer;
- •Var d,m,rx,ry:integer;
- •X,y,xn,xk,ymin,ymax,dx:real;
- •Ответы на тестовые задания, имеющиеся в тексте пособия:
- •& Тесты по курсу
- •Тираж: 150. Заказ №
Var n:integer;y:string;
begin;
n:=pos(' ',x); {n=7}
y:=copy(x,n+1,length(x))'; {y=Саша}
y:=y+’ ‘+copy(x,1,n-1);
writeln(y); {y=Саша Петров}
end.
Пример 7-2. В символьной строке Х подсчитать количество K слов. Считаем, что число слов равно числу пробелов +1. Первый вариант программы P7_2 имеет недостаток. Если перед первым словом предложения или после последнего имеются пробелы, или внутри фразы встречается более одного пробела разом, число найденных слов окажется больше фактического. Исправим программу с учетом этих обстоятельств. Во втором варианте добавлен просмотр начала фразы до первого не пробела (j – номер первого значащего символа). Затем просматривается остаток фразы, где подсчитываются только одиночные пробелы (после пробела в i-ой позиции не должен стоять другой пробел). Дополните программу выдачей по отдельности всех слов предложения и их (справа) длин.
PROGRAM P7_2; {первый вариант}
Var k,I:integer; X: string;
begin
writeln(‘введите предложение’); readln (x);
k:=0;
for i:=1 to length(x) do if x[i]=' ' then k:=k+1;
коды |
символы |
0..32 |
управляющие |
65..90 |
A..Z |
97..122 |
a..z |
128..159 |
А..Я (кроме Ё) |
160..175 |
а..п (кроме ё) |
224..239 |
р..я |
240,241 |
Ё,ё |
end.
PROGRAM P7_2; {второй вариант}
. . .
j:=1;
{пропускаем начальные пробелы}
while x[j]=' ' do j:=j+1;
for i:=j to length(x)-1 do
if (x[i]=' ')and(x[i+1]<>' ') then k:=k+1;
writeln('найдено слов=',k+1);
end.
Представление символьных данных. Каждому символу ПК сопоставлен код (целое число от 0 до 255) из ASCII-таблицы (см. выше). Первые 128 символов включают цифры, знаки, латинские символы. Из них символы с кодами 0..31 являются служебными (возврат каретки, перевод строки и т.д.). Латинские буквы A..Z имеют коды 65..90, a..z – 97..122. Следующие 128 позиций заняты символами псевдографики и буквами национального алфавита. В кириллице буквы A..Я имеют коды 128..159, a..п – 160..175, р..я – 224..239, буквы Ё – 240, ё – 241. Замечаем, что коды заглавных и строчных букв a..п различаются на 32, а букв р..я – на 80. Очевидно, что на клавиатуре нет всех 256 знаков. Тем не менее, они могут быть отражены в программе с помощью своего кода в форме: #код. Так, оператор write(#65, #177,#201,#205,#187); выведет строку: “A▒╔═╗”. Символы, отсутствующие на клавиатуре, можно найти в справочнике, а можно и вывести вместе с их кодами на экран с помощью операторов: for i:=0 to 255 do write(chr(i),i:3,' ');. Отметим, что коды от 0 до 31 являются управляющими и, хотя многие из них имеют экранное отображение, использовать эти символы для непосредственного вывода нельзя.
Символьные данные можно сравнивать между собой. При этом более короткая строка дополняется символами с кодом 0 до размеров более длинной строки. Далее последовательно слева направо коды символов сравниваются попарно из обеих строк (чей код больше – тот символ больше). Например: ‘а’<’б’; ‘а’=’а’; ’а’>’А’ (заглавные буквы имеют меньший код); ‘ВАЛЯ’<’ВАСЯ’ (расхождение в третьем символе, где ‘Л’<’C’); ‘ЯША’>’ПETP’ (буква Я больше П).
Пример 7-3. В строке S содержатся русские и латинские символы (заглавные и строчные), цифры и знаки препинания. Преобразовать все символы S в заглавные. Результат занести в D. В программе Х – строка размером в один символ, куда заносятся поочередно все символы из S для преобразования. В результате получим D= 'абвxyz123ABC'. Преобразование здесь осуществляет оператор вида X:=chr(ord(x[1])-32). Здесь сначала выясняется код ord(x[1]) текущего символа, из него вычитается 32 (т.е. вычисляется код соответствующей заглавной буквы), и, наконец, этот код снова преобразуется в символ.
PROGRAM P7_3;