Вторник, 23.04.2024, 16:51
Блог учителя информатики и математики
О блогеМой профильРегистрацияВыходВход
Вы вошли как Гость · Группа "Гости" Приветствую Вас, Гость · RSS
Меню блога
Погода в нашем районе.

НАГРАДА

Как Вы считаете, должны ли дети ходить в школу в школьной форме?
Всего ответов: 2806
 
 Блог учителя
Главная » Статьи » Информатика » В помощь ученику

Строки типа string (22 урок)..

Строки типа string – это одномерные массивы! Заранее известен тип массива – это char, то есть это символы. Или по-другому, есть строка с определённым количеством слов, которые разделаны между собой пробелом. Строка может иметь длину от 0 до 255, которая также может меняться в ходе выполнения программы. Обращение к элементам строки возможно посредством индекса - аналогично символьным массивам: str[3]. Алгоритмизировать строки намного проще, и в языке программирования есть многие полезные функции, упрощающие работу с ними. Осталось только с ними познакомиться, если вы их ещё не знаете.

Ну например:

Элемент строки с нулевым индексом (первый байт в строке) хранит в себе длину строки. Второй способ получения длины - функция "length", использование которой осуществляется следующим образом: length(str).

Строки можно складывать между собой посредством оператора "+". Если результирующая строка превысит максимально допустимую для неё длину, то лишние символы будут просто отброшены. Также для складывания строк можно использовать процедуру "concat", в которую может быть передано сразу несколько строк: concat(str1, str2, str3).(Выбирайте, что проще.)

Для полного копирования (дублирования) строки используется оператор присваивания ":=". Если необходимо скопировать только часть строки, то используется процедура "copy", в которую передаются три параметра: строка, стартовая позиция и длина копируемого отрезка. Пример использования функции copy:

str:=’ В нашем классе все программируют’

str2:=copy(str,28,3);

В результате во вторую переменную запишется слово "мир". Для удаления подстроки используется аналогичная процедура "delete", вызов которой осуществляется следующим образом: delete(str, 17,3) - результатом работы будет удаление 5 символов из строки str начиная со второй позиции. В результате во вторую переменную запишется слово " В нашем классе программируют ".

Для вставки подстроки используется процедура "insert", в которую передаются три параметра: вставляемый сегмент, строка, в которую будет производиться вставка и позиция вставляемой строки. В качестве вставляемого сегмента может передаваться как переменная, так и сразу набор символов (строка). Пример использования данной процедуры:

insert("замечательном", str, 9);

В результате в строку str начиная с 5 позиции будет вставлена подстрока " В нашем замечательном классе все программируют ".

Полезно, для облегчения решения задач, знать процедуры и создавать свои подпрограммы, а также знать некоторые дополнительные функции для работы со строками в Паскале:

 

 Например  length(st:string):integer;   функция, возвращающая значение текущей длины строки.

Пример:

 

 

 

  copy(st:string; ind:integer; col:integer):string;                функция, возвращающая подстроку (имеет длину col символов), которая выделяется из исходной первой строки st , начиная с символа с номером ind.

Пример:

 

 

 

delete(var st:string; ind,col:integer);     процедура, удаляющая из строки-параметра st подстроку (имеет длину col символов), начиная с определенного под номером ind символа.

Пример  готовых процедур:

  insert (st2:string; var st:string;ind:integer);      подпрограмма вставляющая строку st2 в строку st, начиная с определенного под номером ind символа строки st.

 

 

pos(podsr,st:string):byte;   функция, осуществляющая поиск подстроки podst в строке st. В результате выполнения этой функции выделяется номер 1-й позиции подстроки в первоначальной строке. Если подстрока отсутствует, то функция возвращает значение 0.

 

 

str(y: арифметическое выражение; var strk: string); процедура, преобразующая численное представление y в строковое и помещающая результат работы в строку strk.

 

  val(strk: string; y: числовая переменная; var kod: integer);   процедура, преобразующая строковую запись числа, которая содержится в строке strk, в число, помещая результат в переменную y. y может оказаться как действительной, так и целой переменной. В случае, когда в strk встретится недопустимый символ (принимая во внимание правила записи числа) символ, то не происходит преобразования, а в kod при этом фиксируется позиция 1-го недопустимого символа. В результате этого процесс выполнения программы не приостанавливается, диагностика не выдается. Если в результате процедуры kod примет значение 0, это говорит об отличном прошедшем преобразовании.

 

  chr(m: byte): char;       функция, возвращающая символ по коду, который равен значению выражения m. Если m представима в качестве числовой константы, то пользуются также записью #m.

 

 ord(m: char): byte;        функция, возвращающая код символа m.

 

  UpCase(sym: char): char;          функция, обеспечивающая возвращение соответствующей прописной латинской буквы (если sym является строчной латинской буквой), иначе происходит возвращение символа sym без изменения.

 

ПРИМЕР: Работа со строками.

var s,x,y,z:string;

begin

x:='мне';

y:='нравится';

s:='pascal';

z:=x+' '+y+' '+s; { z= мне нравится pascal }

writeln(z);

end

Пустая строка меньше любой строки. Сравнение строк выполняется посимвольно в соответствии с их кодами до первого несовпадения. Если одна из строк закончилась до первого несовпадения, то она считается меньшей.

ПРИМЕР: Сравнение строк.

'abcd' > 'abcD' { 'd'>'D' }

'abcd' > 'abc' { 'd'>'' }

'abc' < 'axxc' { 'b'<'x' }

'abcd' = 'abcd'

ДЗ


1.Дано слово, состоящее из четного числа букв. Вывести на экран его вторую половину.


2.

  Дано предложение. Определить порядковый номер первой буквы 'р'. Если такой буквы нет, сообщить об этом.




Тренировочные задания.

 

1. Дано предложение. Определить число вхождений в него заданного пользователем символа.

2. Дано предложение. Заменить в нем все вхождения буквосочетания "удв" на "хор".

3. Дано слово. Проверить, является ли оно "перевертышем", т.е. читается одинаково как с начала, так и с конца.

4. Дано слово:

   a. удалить из него первую из букв "о", если такая буква есть;

   b. удалить из него последнюю из букв "т", если такая буква есть.

5. Дано предложение. Удалить из него все буквы "с".

 

 

 

 

Дан символ C. Вывести его код (то есть его номер в кодовой таблице).


Program stroka1;

Var a:byte;

b:char;

begin

b:='C';

a:=ord(b);

writeln('
код равен ',a);

readln;

end.

Дано целое число N (32 <= N <= 126). Вывести символ с кодом, равным N.


Program stroka2;

Var a:byte;

b:char;

begin

writeln ('введите код сивола- число больше 31 и меньше 127');

readln(a);

b:=Chr(a);

writeln(b);

readln;

end.

 

Дано символ С. Вывести два символа, первый из которых предшествует символу С в кодовой таблице, а второй – следует за символом С.


Program stroka3;

Var a:byte;

b:char;

begin

b:='C';

a:=ord(b);

writeln('код предшествующего символа равен',a-1);

writeln('код следующего символа равен',a+1);

readln;

end.

 

Дано целое число N (1 ? N ? 26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита.


Категория: В помощь ученику | Добавил: Harchev (11.02.2014)
Просмотров: 3617 | Комментарии: 16 | Рейтинг: 4.4/29
Всего комментариев: 7
1 Михаил  
uses crt;
var t,p:string; k:integer;
begin
Write('Введите слово с чётным количеством букв:');
readln(t);
k:=length(t) div 2;
p:=Copy(t,k+1,k);
write(p);
readln;
end.

2 Михаил  
задача № 2
Var t,d,k,f:byte;
a:string;
begin
writeln(Введите предложение'');
readln(a);
d:=length(a);
k:=0; t:=0; f:=0;
repeat
t:=t+1;
if a[t]<>'р' then k:=k+1 else f:=1;
until (t=d)or( a[t]='р' );
if f=1 then writeln(k) else writeln(' Нет такой буквы');
readln;
end.

3 андроид покердом  
На Лёню в натуре смахивает.

4 avenue17  
Поздравляю, замечательное сообщение

5 Некулицы Иван  
The excellent message gallantly)))


_ _ _ _ _ _ _ _ _ _ _ _ _ _
Некулицы Иван lsposed github

6 avenue17  
Весьма полезный топик

7 Walterter  
https://promosimple.com/ps/2b967/1xbet-official-site

Имя *:
Email *:
Код *:
Copyright MyCorp © 2024
Блог учителя Учительский портал