Строки в Pascal. Решение задач

Содержание

Слайд 2

Теория 3 Соединение двух строк. s1:='2011' + ' год'; Writeln(s1); s1:='10'; s2:='класс'; s3:=s1+' '+s2; Writeln(s3);

Теория 3

Соединение двух строк.

s1:='2011' + ' год';
Writeln(s1);

s1:='10';
s2:='класс';
s3:=s1+' '+s2;
Writeln(s3);

Слайд 3

Uses crt; var a,b:string; m,n:Integer; Begin Clrscr; Writeln('ВВеди первую строку ');Readln(a);

Uses crt;
var a,b:string;
m,n:Integer;
Begin
Clrscr;
Writeln('ВВеди первую строку ');Readln(a);
Writeln('ВВеди вторую

строку ');Readln(b);
m:=Length(a);
n:=Length(b);
if (m=n) then writeln('Строки равны');
if (m>n) then writeln('Первая больше');
if (mEnd.

Задача 2. Сравнить длину двух строк введенных с клавиатуры.

Вычисляем длину строк

Сравниваем длины и выводим соответствующие пояснения

Задача на сравнение строк 5

Слайд 4

Функция Сору Функция Сору(S, P, N) выделяет из строки S подстроку

Функция Сору

Функция Сору(S, P, N) выделяет из строки S подстроку

длиной N символов, начиная с позиции P. Здесь N и P – целочисленные выражения.

Теория 6

В фразе МАМА МЫЛА РАМУ слово РАМУ начинается с 11 буквы и состоит из 4 букв
COPY(s1,11,4)

Слайд 5

Задача 3. Составить программу осуществляющую вырезку из слова ИНФОРМАТИКА букв так,

Задача 3. Составить программу осуществляющую вырезку из слова ИНФОРМАТИКА букв так,

что бы из них получилось слово ТОРТ.

Program n3_1;
Uses crt;
var a,b,c,d:string;
Begin
a:='информатика';
b:='';
c:=copy(a,8,1);
d:=copy(a,4,2);
b:=c+d+c;
writeln(b);
End.

Задача на составление строк 7

Используем функцию работы с символьными переменными
COPY

Второй вариант:
Program n3_2;
Uses crt;
var a,b:string;
Begin
a:=‘информатика';
b:=a[8]+a[4]+a[5]+a[8];
writeln(b);
End.

Используем определение строки как массива символов

Слайд 6

Преобразование типов 8 Функция STR Str(x, S) преобразует число x в

Преобразование типов 8

Функция STR

Str(x, S) преобразует число x в строковый формат. Где

x – любое числовое выражение, S – строковая переменная.

Задача 4 . Составьте программу которая выводит первую и последнюю цифру натурального числа, введенного с клавиатуры.

PROGRAM Primer;
uses Crt;
VAR S: STRING;
n:INTEGER;
BEGIN
Write('Введи число ');readln(n);
Str(n,S);
Writeln('Первая цифра -',S[1]);
Writeln('Последняя цифра - ',S[length(S)]);
END.

Преобразуем натуральное число в строку

Слайд 7

Процедура val позволяет преобразовать цифровые символы (изображение числа) в число. В

Процедура val позволяет преобразовать цифровые символы (изображение числа) в число. В

общем виде обращение к процедуре выглядит так:
VAL (Строка, Число, Код) ;
где Строка – строковая константа или переменная, содержащая изображение числа;
Число – переменная целого или дробного типа, которой должно быть присвоено значение
Код – возвращаемый процедурой код ошибки (целое число)

Преобразование типов 9

Процедура VAL

Слайд 8

Преобразование типов 10 BEGIN s1:='123456789'; val(s1,n,code); Writeln(n); END. BEGIN s1:='123456789ABCDE'; val(s1,n,code); Writeln(n); END.

Преобразование типов 10

BEGIN
s1:='123456789';
val(s1,n,code);
Writeln(n);
END.

BEGIN
s1:='123456789ABCDE';
val(s1,n,code);
Writeln(n);
END.

Слайд 9

Преобразование типов 12 Задача 5. Дано строка символов а1+а2=. Где 1

Преобразование типов 12

Задача 5. Дано строка символов а1+а2=. Где 1<=а1 и

а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать «-», «*», «/».
Слайд 10

Задача 7. Дана строка символов. Определить сколько раз в ней встречается

Задача 7. Дана строка символов. Определить сколько раз в ней встречается

буква А (русская).

Program n5;
Uses Crt;
Var s:string;
i,k:integer;
begin
Write('ВВеди строку '); readln(s);
k:=0;
for i:=1 to length(s) do if (s[i]='А') then k:=k+1;
writeln('Буква А встречается = ', k:8,' раз');
end.

Перебираем от 1 до последней буквы

Если на i-ом месте стоит А увеличиваем К на 1

Подсчет символов в строке 15

Слайд 11

Замечание 16 for i:=1 to length(s) do begin if (s[i]=…… if

Замечание 16

for i:=1 to length(s) do begin
if (s[i]=……
if

(s[i]=……
end;

Замечание. Если требуется поиск нескольких символов в строке, то условия заключаем в программные скобки BEGIN … END

Слайд 12

Замена символов в строке 18 Задача 8. Дана строка символов. Заменить

Замена символов в строке 18

Задача 8. Дана строка символов. Заменить в

ней все буквы А на букву О.

Program n6;
Uses Crt;
Var s:string;
i:integer;
begin
Write('ВВеди строку '); readln(s);
for i:=1 to length(s) do if (s[i]='A') then s[i]:='O';
writeln(s);
end.

Перебираем от 1 до последней буквы

Если на i-ом месте стоит А ставим на i-е место О.

Слайд 13

Задача 9 Удалить из строки введенной с клавиатуры все буквы R

Задача 9 Удалить из строки введенной с клавиатуры все буквы R

(латинские, заглавные).

Program n7;
Uses Crt;
var a,b:String;
i:integer;
begin
ClrScr;
Write('ВВеди строку = ');readln(a);
b:='';
for i:=1 to length(a) do if (a[i]<>‘R') then b:=b+a[i];
a:=b;
writeln(a);
end.

Перебираем от 1 до последней буквы

Подготавливаем дополнительную переменную

Если на i-ом месте не стоит R то прибавляем эту букву к тому, что есть в B

То, что получилось в В перемещаем обратно в А

Удаление символов из строки 20

Слайд 14

Вложенные условия. 22 begin Readln(s); for i:=1 to length(s) do if

Вложенные условия. 22

begin
Readln(s);
for i:=1 to length(s) do
if (s[i]='а') or

(s[i]='б') then
if (s[i]='а') then s[i]:='б' else s[i]:='а';
writeln(s);
end.

Задача 10. В заданном тексте везде букву "а" заменить на букву "б",  а букву "б" - на букву "а".

Из всей строки нам нужно выбрать только А и Б

И только после осуществлять замену