- •3. Система программитрования турбо паскаль
- •3.1 Окно среды разработчика
- •3.2. Элементы диалоговой среды
- •3.3. Команды редактора
- •3.4. Модули
- •4. Общие сведения о языке паскаль
- •4.1 Алфавит языка
- •4.2. Типы данных в TurboPascal 7.0
- •4.3. Операции и выражения в языке Паскаль
- •4.4 Стандартные функции в языке Паскаль
- •5. Линейные алгоритмы
- •5.1. Структура программы на языке Паскаль
- •5.2. Конструкция «следование»
- •6. Разветвляющиеся алгоритмы
- •And, * (умножение), / (деление), div, mod;
- •6.1. Операторы условных переходов
- •Var a, b, c : Real; lv : Boolean;
- •Var a, b, c : Real; lv : Boolean;
- •Var X, y : Real;
- •6.2. Оператор безусловного перехода
- •Var n, p, X : Real;
- •20: WriteLn('Факториал числа ' , n:4:2,' равен ' ,p:4:2);
- •7. Циклические алгоритмы
- •7.1. Цикл с предусловием While
- •X, xn, xk, dx, y, s, p: real;
- •7.2. Цикл с постусловием repeat
- •X1, x0, X, eps: real;
- •7.3. Цикл с параметром for
- •I: integer; c: char;
- •7.4. Принудительное завершение цикла
- •X, xn, xk, dx: real;
- •8. Символьный тип
- •8.1. Особенности символьного типа
- •8.2. Объявление символьной переменной
- •8.3. Операции с символами
- •Строковые переменные
- •9.1. Определение и типы строк
- •9.2. Упакованный строковый тип
- •9.3. Строковый тип
- •9.5. Примеры работы со строками
- •9.6. Индивидуальные задания по работе со строками и символами
- •10. Массивы
- •10.1. Организация данных в массиве
- •10.2. Объявление массивов
- •10.3. Ввод и вывод значений элементов массива
- •10.4. Подсчет количества элементов по заданному условию
- •10.5. Поиск минимального элемента массива
- •10.6. Вычисление произведения ненулевых элементов массива
- •10.7. Сортировка элементов массива
- •10.8. Заполнение массива случайными числами
- •10. 9. Индивидуальные задания по работе с массивам
- •11. Процедуры и функции
- •11.1. Понятие подпрограммы
- •11.2. Описание процедуры
- •11.3. Описание функции
- •11.4. Области действия имен
- •11.5. Индивидуальные задания по разработке процедур и функций
- •Var k,l; real;
9.5. Примеры работы со строками
Пример 1. С целью повышения читабельности и облегчения анализа программы строки пронумерованы.
Строки 11-14 демонстрируют присваивание значений элементам массива.
Строка 15 – массиву присваивается значение символьной константы.
Строка 16 – печать массива и символьной константы, разделенных пробелом.
Строка 17 – символьному массиву присваивается значение другого символьного массива .
Строка 19 – запись символа с использованием его шестнадцатеричного номера.
Строка 21 – использование второго способа записи символа.
Строка 23 – использование первого способа записи символа.
Строка 27 – строковой переменной (переменной типа string) присваивается значение символьного массива.
Строка 28 - присваивание и операция слияния (конкатенации).
Строка 29 – сравнение строк и операция присваивания.
Строка 30 – присваивание и операция стирания подстроки.
1 PROGRAM STROKI;
CONST STR3:ARRAY[1..4] OF CHAR = (‘A’,’S’,’D’,’F’);
STR4 = ‘FFFF’;
STR5:ARRAY[1..10] OF CHAR = ‘ABC’#68#69’FGHIJ’;
VAR
STR: STRING[6];
STR1,STR2: STRING;
M,N:ARRAY[1..4] OF CHAR;
S: CHAR;
I: INTEGER;
BEGIN
FOR I: =1 TO 4 DO BEGIN
M[I]: = ‘G’;
END;
N: = STR4;
WRITELN(N,’ ‘, STR4); {БУДЕТНАПЕЧАТАНО ‘FFFF FFFF’}
N: = M;
WRITELN(N); {БУДЕТ НАПЕЧАТАНО ‘GGGG’}
S: = #$5A;
WRITELN(S); {БУДЕТ НАПЕЧАТАНО ‘Z’}
S: = #97;
WRITELN(S); {БУДЕТ НАПЕЧАТАНО ‘A’}
S: = ‘A’;
WRITELN(S); {БУДЕТ НАПЕЧАТАНО ‘A’}
S: = #$97;
WRITELN(S); {БУДЕТ НАПЕЧАТАНО ‘Ч’}
STR: = M; WRITELN(STR); {БУДЕТ НАПЕЧАТАНО ‘GGGG’}
STR1:=M; STR2:=STR1+‘YES’; WRITELN(STR2); {БУДЕТ}
{НАПЕЧАТАНО ‘GGGGYES’}
STR1:=’KEMN’; STR2:=’KEM’; IF STR1>STR2 THEN WRITELN(‘ДА’); {БУДЕТ НАПЕЧАТАНО ‘ДА’}
STR1:=’ГРУППА 5211’; DELETE(STR1,8,2); WRITELN(STR1);
{БУДЕТ НАПЕЧАТАНО ‘ГРУППА 11’}
END.
Пример 2. Программа обеспечивает формирование массива, элементами которого являются фамилии, имена и отчества, после чего процедура FORM формирует строки с фамилиями и инициалами (первыми буквами имен и отчеств). В программе использованы стандартные процедуры и функции.
PROGRAMFNAME;
VAR
N,I : INTEGER;
LIST : ARRAY [1. .10] OF STRING;
PROCEDURE FORM(VAR STR: STRING); {ПОДПРОГРАММА}
{ФОРМИРОВАНИЯ СТРОК С ФА-}
VARK1, K2, L, I : INTEGER; {МИЛИЕЙ И ИНИЦИАЛАМИ}
BEGIN
L: = LENGTH(STR);
I : = 1;
WHILE STR[I]<>’ ‘ DO I : = I + 1;
STR[I + 2] : = ‘ . ‘;
K1 : = I + 2;
FOR I : = K1 + 1 TO 1 DO
IF STR[I] = ‘ ‘ THEN BEGIN STR[I + 2] : = ‘ . ‘; K2 : = I + 2; END;
STR : = CONCAT(COPY(STR,1,K1),COPY(STR,K2-1,2));
WRITELN(STR);
END;
BEGIN
WRITELN(‘ВВЕДИТЕСПИСОКФИО’);
N : = 0;
WHILE(NOT EOF(INPUT)) AND (N<10) DO
BEGIN
INC(N); {УВЕЛИЧЕНИЕ ЗНАЧЕНИЯ N НА ЕДИНИЦУ}
READLN(LIST[N]);
END;
FOR I : = 1 TO 10 DO {ВЫДАЧАНАПЕЧАТЬСФОРМИРО-}
FORM(LIST[I]); {ВАННОГО СПИСКА}
READLN;
END.