СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Строки в Pascal

Категория: Информатика

Нажмите, чтобы узнать подробности

Строки

в Pascal.  Строка -  это массив символов,  т.е.  элементов типа char.  В Паскале строке соответствует тип данных String.

Просмотр содержимого документа
«Строки в Pascal»

Теория 1 Строка - это массив символов, т.е. элементов типа char . В Паскале строке соответствует тип данных String . var  Имя : string [ Длина ]; Если длина не указана, выделяется память под строку до 255 символов.  строка 255 символов var  s1:string;  строка 2 0 символов var  s2:string[20];

Теория 1

Строка - это массив символов, т.е. элементов типа char . В Паскале строке соответствует тип данных String .

var Имя : string [ Длина ];

Если длина не указана, выделяется память под строку до 255 символов.

строка 255 символов

var s1:string;

строка 2 0 символов

var s2:string[20];

S2, " width="640"

Теория 2

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

Правила:

  • строки равны только при одинаковом наборе символов и

одинаковой длине;

Например: 'ABC'='ABC' и 'ABC' ≠'abc'

  • иначе происходит поэлементное сравнение символов

по их кодам:

'0'

Например: 'ADS' АДС '

65+68+83 192+196+209 (По таблице ASCII)

Сумма кодов строки S1

Сумма кодов строки S1S2,

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

Теория 3

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

s 1:= '2011 ' + ' год';

Writeln(s1);

s1:='10';

s2:=' класс ';

s3:=s1+' '+s2;

Writeln(s 3 );

Теория 4 Функция  Length Задача 1.  Составить программу подсчитывающую количество букв в слове . Функция Length ( S ) определяет текущую длину строки S . Результат — значение целого типа .  PROGRAM Dlina_2; VAR S : STRING; BEGIN  Writeln(’ введите  слово ’) ; Readln(S);  Writeln (’слово состоит из ’, Length ( S )  ,’букв. ’); END . Записываем длину строки в переменную целого типа PROGRAM Dlina_ 1 ; VAR S : STRING;  n:INTEGER; BEGIN  Writeln( введите  слово ') ; Readln(S);  n:= Length (S) ;  Writeln( ‘ введите  слово ', n:5 ,' букв..'); END. Выводим на экран длину строки, как результат выполнения функции

Теория 4

Функция Length

Задача 1. Составить программу подсчитывающую количество букв в слове .

Функция Length ( S ) определяет текущую длину строки S .

Результат — значение целого типа .

PROGRAM Dlina_2;

VAR S : STRING;

BEGIN

Writeln(’ введите слово ’) ; Readln(S);

Writeln (’слово состоит из ’, Length ( S ) ,’букв. ’);

END .

Записываем длину строки в переменную целого типа

PROGRAM Dlina_ 1 ;

VAR S : STRING;

n:INTEGER;

BEGIN

Writeln( введите слово ') ; Readln(S);

n:= Length (S) ;

Writeln( введите слово ', n:5 ,' букв..');

END.

Выводим на экран длину строки, как результат выполнения функции

n) then writeln(' Первая больше '); if (m Вторая больше '); End. Сравниваем длины и выводим соответствующие пояснения Вычисляем длину строк " width="640"

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

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

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 (mn) then writeln(' Первая больше ');

if (m Вторая больше ');

End.

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

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

Теория 6 Функция Сору  Функция Сору( S , P , N) выделяет из строки S подстроку длиной N символов, начиная с позиции P . Здесь N и P – целочисленные выражения.  В фразе МАМА МЫЛА РАМУ слово РАМУ начинается с 11 буквы и состоит из 4 букв COPY(s1,11,4)

Теория 6

Функция Сору

Функция Сору( S , P , N) выделяет из строки S подстроку длиной N символов, начиная с позиции P . Здесь N и P – целочисленные выражения.

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

COPY(s1,11,4)

Задача на составление строк 7 Задача 3. Составить программу осуществляющую вырезку из слова ИНФОРМАТИКА букв так,  что бы из них получилось слово ТОРТ. Program n 3 _1 ; Uses crt; var a,b,c,d:string; Begin   Clrscr ;  a :='информатика';  b :='';  c:=copy(a,8,1);   d:=copy(a,4,2);   b:=c+d+c;  writeln(b); End. Второй вариант: Program n3_2; Uses crt; var a,b:string; Begin  Clrscr;  a:=‘информатика';  b:=a[8]+a[4]+a[5]+a[8];  writeln(b); End. Используем определение строки как массива символов Используем функцию работы с символьными переменными COPY

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

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

Program n 3 _1 ;

Uses crt;

var a,b,c,d:string;

Begin

Clrscr ;

a :='информатика';

b :='';

c:=copy(a,8,1);

d:=copy(a,4,2);

b:=c+d+c;

writeln(b);

End.

Второй вариант:

Program n3_2;

Uses crt;

var a,b:string;

Begin

Clrscr;

a:=‘информатика';

b:=a[8]+a[4]+a[5]+a[8];

writeln(b);

End.

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

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

COPY

Преобразование типов 8 Функция STR Задача 4 . Составьте программу которая выводит первую и последнюю цифру натурального числа, введенного с клавиатуры. Str(x, S)  преобразует число x в строковый формат. Где x – любое числовое выражение, S – строковая переменная. PROGRAM Primer; uses Crt; VAR S: STRING;  n:INTEGER; BEGIN  Write( ' Введи число ');readln(n);  Str(n,S);  Writeln( ' Первая цифра -', S[1] );  Writeln( ' Последняя цифра - ', S[length(S)] ); END. Преобразуем натуральное число в строку

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

Функция STR

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

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

PROGRAM Primer;

uses Crt;

VAR S: STRING;

n:INTEGER;

BEGIN

Write( ' Введи число ');readln(n);

Str(n,S);

Writeln( ' Первая цифра -', S[1] );

Writeln( ' Последняя цифра - ', S[length(S)] );

END.

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

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

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

Процедура VAL

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

VAL ( Строка, Число, Код ) ;

где С трока – строковая константа или переменная, содержащая изображение числа;

Ч исло переменная целого или дробного типа, которой должно быть присвоено значение

Код возвращаемый процедурой код ошибки (целое число )

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

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

BEGIN

s1:=' 123456789 ';

val(s1,n,code);

Writeln(n);

END.

BEGIN

s1:=' 123456789 ABCDE ';

val(s1,n,code);

Writeln(n);

END.

Преобразование типов 11 В PascalABC есть более развитый арсенал преобразований  как в DELPHI :  S:= IntToStr( N ) - преобразует целое число к строке ; n:= StrToInt( S )  - преобразует строку в целое число S:= FloatToStr(r)  - преобразует вещественное число к строке R:= StrToFloat(s) преобразует строку в вещественное число. Если преобразование невозможно, то возникает ошибка времени выполнения s1:=' ABCDE 123456789 '; val(s1,n,code); Writeln(n);

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

В PascalABC есть более развитый арсенал

преобразований как в DELPHI :

S:= IntToStr( N ) - преобразует целое число к строке ;

n:= StrToInt( S ) - преобразует строку в целое число

S:= FloatToStr(r) - преобразует вещественное число к строке

R:= StrToFloat(s) преобразует строку в вещественное число.

Если преобразование невозможно, то возникает ошибка времени выполнения

s1:=' ABCDE 123456789 ';

val(s1,n,code);

Writeln(n);

Преобразование типов 12 Задача 5 .  Дано строка символов а 1 +а 2 =. Где 1 1 и а 2  VAR S: STRING;  a,b,c:real;  code:INTEGER; BEGIN  Write(‘ Введи выражение = ');read(s);  val(s[1],a,code);  val(s[3],b,code);  if (s[2]='+') then c:=a+b;  if (s[2]='-') then c:=a-b;  if (s[2]='*') then c:=a*b;  if (s[2]='/') then c:=a/b;  clrscr;  Writeln(s,c); END. Из строки берем первый и третий символ и преобразуем в число

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

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

VAR S: STRING; a,b,c:real;

code:INTEGER;

BEGIN

Write(‘ Введи выражение = ');read(s);

val(s[1],a,code);

val(s[3],b,code);

if (s[2]='+') then c:=a+b;

if (s[2]='-') then c:=a-b;

if (s[2]='*') then c:=a*b;

if (s[2]='/') then c:=a/b;

clrscr;

Writeln(s,c);

END.

Из строки берем первый и третий символ и преобразуем в число

Символы и их коды 13 Функции ORD и CHR Функция Ord(S) – определяет порядковый номер символа. Функция Chr(i) – определяет символ с порядковым номером i По номеру 255 выводим символ из кодовой таблицы Я

Символы и их коды 13

Функции ORD и CHR

Функция Ord(S) определяет порядковый номер символа.

Функция Chr(i) определяет символ с порядковым номером i

По номеру 255 выводим символ из кодовой таблицы Я

Символы и их коды 14 Задача 6.  Составьте программу, которая по символу введенному с клавиатуры, выводит его номер в кодовой таблице. Функция ORD работает только символьным типом данных PROGRAM Primer; uses Crt; VAR S: char;  n,code:INTEGER; BEGIN  Write( ' Введи символ ');readln(s);  Writeln( ' Символ ', s , ' имеет код -', ord(s) ); END.

Символы и их коды 14

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

Функция ORD работает только символьным типом данных

PROGRAM Primer;

uses Crt;

VAR S: char;

n,code:INTEGER;

BEGIN

Write( ' Введи символ ');readln(s);

Writeln( ' Символ ', s , ' имеет код -', ord(s) );

END.

Подсчет символов в строке 15 Задача 7. Дана строка символов. Определить сколько раз в ней встречается буква А (русская).  Program n 5 ; Uses Crt; Var s:string;  i,k:integer; begin  ClrScr;  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

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

Program n 5 ;

Uses Crt;

Var s:string;

i,k:integer;

begin

ClrScr;

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

Замечание 16 Замечание. Если требуется поиск нескольких символов в строке, то условия заключаем в программные скобки BEGIN … END for i:=1 to length(s) do  begin  if (s[i]=……  if (s[i]=……  end;

Замечание 16

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

for i:=1 to length(s) do begin

if (s[i]=……

if (s[i]=……

end;

Подсчет символов в строке 17 Начало Ввод S Блок-схема к задаче подсчета букв А в строке К=0 i,1,length(s) S i ='A' Нет Да К=К+1 Вывод К Конец

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

Начало

Ввод S

Блок-схема к задаче подсчета букв А в строке

К=0

i,1,length(s)

S i ='A'

Нет

Да

К=К+1

Вывод К

Конец

Замена символов в строке 18 Задача 8.  Дана строка символов. Заменить в ней все буквы А на букву О. Перебираем от 1 до последней буквы Program n 6 ; Uses Crt; Var s:string;  i:integer; begin  ClrScr;  Write(' ВВеди  строку '); readln(s);  for i:=1 to length(s)  do if (s[i]='A') then s[i]:='O';  writeln(s); end. Если на i -ом месте стоит А ставим на i -е место О.

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

Задача 8. Дана строка символов. Заменить в ней все буквы А на букву О.

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

Program n 6 ;

Uses Crt;

Var s:string;

i:integer;

begin

ClrScr;

Write(' ВВеди строку '); readln(s);

for i:=1 to length(s) do if (s[i]='A') then s[i]:='O';

writeln(s);

end.

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

Замена символов в строке 19 Начало Ввод S Блок-схема к задаче замен буквы А на О i,1,length(s) S i ='A' Нет Да S i ='O' Вывод S Конец

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

Начало

Ввод S

Блок-схема к задаче замен буквы А на О

i,1,length(s)

S i ='A'

Нет

Да

S i ='O'

Вывод S

Конец

Удаление символов из строки 20 Задача 9 Удалить из строки введенной с клавиатуры все буквы R  (латинские, заглавные).  Подготавливаем дополнительную переменную Program n 7 ; 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. Если на i -ом месте не стоит R то прибавляем эту букву к тому, что есть в B Перебираем от 1 до последней буквы То, что получилось в В перемещаем обратно в А

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

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

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

Program n 7 ;

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.

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

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

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

Удаление символов из строки 21 Начало Ввод A Блок-схема к задаче удаления букв R из строки B = '' i,1,length(A) A i 'R' Нет Да B=B+ A i A = B Вывод А Конец

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

Начало

Ввод A

Блок-схема к задаче удаления букв R из строки

B = ''

i,1,length(A)

A i 'R'

Нет

Да

B=B+ A i

A = B

Вывод А

Конец

Вложенные условия. 22 Задача 10 . В заданном тексте везде букву

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

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

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

begin

clRscr;

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.

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

Вложенные условия 23 Начало S i =' а ' или S i =' б '  Ввод S  i, 1, length(S)  Да Нет S i =' а ' Да Нет S i =' б ' S i =' а ' Вывод S  Блок-схема к задаче замены А на Б и наоборот Конец

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

Начало

S i =' а ' или S i =' б '

Ввод S

i, 1, length(S)

Да

Нет

S i =' а '

Да

Нет

S i =' б '

S i =' а '

Вывод S

Блок-схема к задаче замены А на Б и наоборот

Конец

Вложенные циклы 24 Задача 11. Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка. Внешний цикл, осуществляющий перебор знаков записанных в S1  begin  ClrScr;  Write(' ВВеди  строку '); readln(s);  s1:=',.;:

Вложенные циклы 24

Задача 11. Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка.

Внешний цикл, осуществляющий перебор знаков записанных в S1

begin

ClrScr;

Write(' ВВеди строку '); readln(s);

s1:=',.;:"!?-';

for i:=1 to length(s1) do begin

k:=0;

for j:=1 to length(s) do if (s[j]=s1[i]) then k:=k+1;

if (k0) then writeln(s1[i],' - ',k:5,' раз ');

end;

end.

Тело внешнего цикла содержит цикл, отвечающий за перебор символов введенной строки

Вложенные циклы 25 Начало Ввод S  s1=',.;:

Вложенные циклы 25

Начало

Ввод S

s1=',.;:"!?-'

i, 1, length(S1)

K=0

j, 1, length(S)

Конец

S j = S1 i

Да

K=K+1

Нет

Блок-схема к задаче подсчета знаков препинания

K0

Да

Нет

Вывод S 1 i ,K


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!