РефератыИнформатикаСтСтроковые переменные

Строковые переменные

Введение


Типы данных


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


Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание её типа данных. Тип данных

(
data
type
)
– множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип данных имеет свой диапазон значений и специальное зареверзированное слово для описания.


Строковый тип данных


Строка представляет собой последовательность символов кодовой таблицы персонального компьютера. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Идентификатор стро - кового типа данных – слово String . Примеры описания переменных типа String:


Var Str1: String [10];


Var Str2: String;


Var Str3: String [13];


В квадратных скобках указывается максимальный размер (длина) строки. Если он не указан (как в описании переменной Str 2), то длина строки считается равной 255 символам. Заметим, что строку можно рассматривать как одномерный массив символов – к любому символу строки можно обращаться по его номеру. Первый символ строки (с индексом 0) содержит фактическую длину строки. Для ввода и вывода переменных типа String используются процедуры Read ( Readln ) и Write ( Writeln ).Строки вводятся и выводятся не поэлементно, как массивы, а сразу целиком. Следующий простой пример иллюстрирует сказанное .


Program My14_5;


Var s: String; w: String [10]; v: String [5]; i, j:Integer;


Begin


Readln (v); Writeln (v);


Writeln (Integer (v [0]));


Readln (w); Writeln (w); Writeln (Ord (w [0]));


Readln(s); Writeln(s);


Writeln (Integer(s [0]));


For i: =1 to Ord(s [0]) do Begin


For j: = to i-1 do Write (‘ ‘);


Writeln(s [i]);


End;


Readln;


End .


Если ввести строки v и w большей длины, чем указано в описании, они «обрезаются». Операторы Writeln ( Integer ( v [0])) и Writeln ( Ord ( w [0])) обеспечивают вывод значения длины строки. Если изменить первый оператор на Writeln ( v [0]), то вместо цифрового значения на экран выводится «непонятный» символ. Попробуйте объяснить этот результат и понять смысл преобразования Integer ( v [0]). Последние операторы этого примера демонстрируют обращение к элементам строки. Вывод символов строки s на экран осуществляется «лесенкой».


Сравнение строк


Сравнение строк производится посимвольно слева направо: сравниваются коды соответствующих символов до тех пор, пока не нарушится равенство, при этом сразу делается вывод о знаке неравенства. Две строки называются равными, если они равны по длине и совпадают посимвольно.


Примеры


‘Balkon’ < ‘balkon’ (Ord (‘B’) < Ord (‘b’));


‘balkon’ > ‘balken’ (Ord (‘o’) > Ord (‘e’));


‘ balkon ’ > ‘ balk ’ (длина первой строки больше);


‘кошка’ > ‘кошка’ (длина первой строки больше);


‘Кот’» = ‘Кот’ (строки равны по длине и совпадают посимвольно).


Строковые константы, так же, как и отдельные символы, заключаются в апострофы. Например,


Str 1: = 'У Егорки’; Str 2: = ‘всегда отговорки’;


Процедуры и функции для работы с данными строкового типа данных приведены в таблице.















































Тип Вызов Параметры Действие
Процедура Delete ( s , p , n )

Var s: String;


P, n: Integer;


Удаляются n символов из строки s , начиная с позиции p
Процедура Insert (w, s, p)

W: String;


Var S: String;


P : Integer ;


В строку S , начиная с позиции p , вставляется строка w
Процедура Str ( v , s )

V: Integer или


V: real;


Var s: string;


Число v преобразуется в строку s
Процедура Val(s, v, w)

S: String;


Var v: Integer или


Var v: Real;


Var w: Integer;


Если строка s представляет собой правильную запись числа, то это число записывается в переменную v , при этом значение w = 0. В противном случае строка состоит не только из цифр – преобразование не выполняется, w <>0 – признак ошибки
Функция Concat ( s 1, s 2,…, sm ), функция возвращает значение типа String S1, s2, … sm: String; Строки s 1, s 2, …, sm записываются одна за другой. Результат не превышает 255 символов. Можно просто складывать строки s 1+ s 2+…+ sm
Функция

Copy ( s , p , n )


функция возвращает значение типа String


S: String;


P, n: Integer;


Из строки S , начиная с позиции P , выбираются n символов.
Функция

Length ( s )


функция возвращает значение типа Integer


S : String ; Определяется длина s , т.е. число символов, из которых она состоит
Функция

Pos ( w , s )


функция возвращает значение типа Integer


W, s: String; В строке s отыскивается первое вхождение строки w (номер позиции). Если вхождения нет, то функция возвращает значение 0.

Примеры.


В приведенных примерах переменные s 1, s 2, s 3 имеют тип String , p , g – тип Integer .


s 1: =’ У Егорки всегда отговорки ’;


Delete ( s 1, 9,7);


Результат: s 1=’У Егора отговорки’.


s 1: =’ У Егорки всегда отговорки ’;


s2:=’ Матрены и ’;


Insert (s2, s1, 3);


Результат:


S 1=’У Матрены и Егорки всегда отговорки’.


p:=1234; q:=34.5;


Str (p, s1); Str (q, s2);


Результат: s 1=’1234’, s 2= =’34.5’.


s1: = ‘555’; s2:=’23.345’; s3:=’34rr2’;


Val (s1, p, w); Val (s2, q, w); Val (s3, p, w);


Результат: в первом случае p =555, w =0; во втором случае q =23,345, w =0; в третьем случае w <>0, значение p не определено.


s 1: =’У Егорки всегда отговорки, ’;


s 2: =’У Миладки всегда шоколадки’;


s3: =Concat (s1, s2); ( или s3: =s1+s2);


Результат: s 3=’У Егорки всегда отговорки, у Миладки всегда шоколадки’;


s 1=’У Егорки всегда отговорки, у Миладки всегда шоколадки’


s 2: = Copy ( s , 27, 26);


Результат: s 2:=’У Миладки всегда шоколадки’.


s 1: =’У Егорки всегда отговорки ’;


p: =Length (s1);


Результат : p=25.


s 1:=’У Егорки всегда отговорки ’;


p : = Pos (‘0’, s );


Результат: p =5.


Продолжите примеры. Напишите программу для исследования работы перечисленных процедур и функций. Обратите особое внимание на граничные условия (например, выясните, что получается, если длина результата больше 255). В этой работе можно использовать приведенные ниже короткие примеры.


Подсчет количества вхождений данного символа (параметр q ) в строку (параметр st ).


Function QChar (q: Char; st: String): Byte;


Var I, k: Byte;


Begin


k: =0;


For i: =1 To Length (st) Do If st [i]=q Then Inc (k);


Qchar : = k


End ;


Удалить среднюю букву при нечетной длине строки и две средние буквы при четной длине строки.


Procedure MiDel (Var st: String);


Var k: Byte;


Begin


k: =Length (st);


If k Mod 2=1 Then Delete (st, k Div 2+1, 1)


Else Delete (st, k Div 2, 2)


End ;


Заменить все вхождения подстроки w в строке st на подстроку v .


Procedure Ins (w, v: String; Var st: String);


Var k: Byte;


Begin


While Pos (w, st)<>0 Do Begin


k: = Pos (w, st);


Delete (st, k, Length (w));


Insert (v, st, k)


End


End;


Подсчитать сумму цифр, встречающихся в строке.


Function Sum (st: String): Integer;


Var i, k, d, s:Integer;


Begin


s: =0;


For i: =1 To Length (st) Do Begin


Val (st [i], d, k);


If k=0 Then s: =s+d


Sum : = s


End ;


Экспериментальный раздел занятия


1. Дана строка. Считаем ее отрывком текста. Группы символов, разделенных одним или несколькими пробелами, назовем словами. Пробелы могут находиться как в начале текста, так и в конце. Требуется выделить слова из текста и каждое слово записать в соответствующий элемент массива. Приведенная ниже программа решает эту задачу.


Program My 14_6;


Const n =20; m =10; {Количество слов в тексте и количество букв в слове. Естественно, что эти параметры программы можно изменять}


Type TString = String [ m ];


Var A: Array [1..n] Of Tstring;


s: String;


k, i:Integer;


Procedure DelPr (Var s: String);


{Удаляем пробелы в начале текста.}


Begin


While (s [1]=’ ‘) And (s<>’ ‘) Do Delete (s, 1, 1)


End;


Function GetWord (Var s: String): Tstring;


{Выделяем слово, удаляем его из текста и убираем пробелы после слова.}


Begin


GetWord: =Copy (s, 1, Pos (‘ ‘, s)-1);


Delete (s, 1, Pos (‘ ‘, s));


DelPr (s)


End;


Begin


Writeln (‘ Введите текст ’);


Readln (s);


S: =s+’ ‘;


{Добавляем символ пробела в конец текста. Зачем?}


DelPr ( s ); {Удаляем пробелы в начале текста.}


k: =0;


While s<>’ ‘ Do Begin { Пока текст не пустой .}


Inc (k);


A [ k ]: = GetWord ( s ) {Берём слово из текста.}


End;


For i: =1 To k Do Writeln (A [i]);


Readln


End .


Удалите вызов процедуры DelPr ( s ) из основной программы, а функции GetWord переставьте этот вызов в ее начало. Что изменится в работе программы? На каких исходных данных она не будет правильно работать? Что произойдет, если в конец текста не добавлять символ пробела? В процедуре DelPr измените цикл


While (s[1]=’ ‘) And (s<>’ ‘) Do Delete (s, 1, 1)


на


While (s[1]=’ ‘) Do Delete (s, 1, 1).


Продолжите эксперименты с программой.


2. По правилам машинописи после запятой в тексте всегда ставится пробел. Следующая программа вставляет недостающие пробелы.


Program My14_7;


Var i:Integer;


s: String;


Begin


Writeln (‘ Введите текст ’);


Readln (s);


i: =1;


While i<Length(s) Do Begin


If (s [i]=‘,’) And Not (s [i+1]=’ ‘)


Then Insert (‘ ‘, s, i+1);


Inc (i)


End;


Writeln (s);


Readln


End.


Задания для самостоятельной работы


1.Написать программу для вывода последовательностей символов:


а) ZYYXXX … AA .. AA ;


в) ABC … ZZBC … ZZZC … ZZ .. ZZ .


2.Составить программу, которая выводит True , если в заданной строке буква ‘ A ’ встречается чаще, чем буква ‘ B ’, и False в противном случае.


3.Проверить, правильно ли в заданном тексте расставлены круглые скобки (т.е. находится ли справа от каждой открывающей скобки соответствующая ей закрывающая скобка, а слева от каждой закрывающей – соответствующая ей открывающая).


4.Подсчитать количество прописных латинских букв в строке.


5.Удвоить вхождение некоторой буквы в текст. Например, при удваивании буквы ‘а’ текст ‘ мама папа’ должен превратиться в текст ‘маамаа паапаа’.


6.Даны две строки. Вывести буквы, встречающиеся и в той и другой строках.


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


8.Дан текст. Определить:


длину самого короткого и самого длинного слов;


количество слов, начинающихся и оканчивающихся одной и той же буквой;


количество слов, в которых содержится хотя бы одна заданная буква;


количество слов, которые содержат заданную букву определенное количество раз;


количество слов, являющихся палиндромами.


9.Дан текст. Вывести слова, встречающиеся в тексте по одному разу.


10.Дан текст. Вывести различные слова.


Примечание.
Термин ‘текст’ в условиях задач следует понимать в смысле первого примера экспериментальной части данного занятия.




РАБОТА СО СТРОКАМИ


Тип String
(строка) в Турбо Паскале широко используется для обработки текстов. Этот тип является стандартным и во многом похож на одномерный массив символов Array
[0..N] of
Char. Значение N соответствует количеству символов в строке и может меняться от 0 до 255. Символы, входящие в строку, занимают позиции с 1 до N. Начальный байт строки с индексом 0 содержит информацию о ее длине, т.е. это символ с кодом, равным длине строки.


Можно также описывать переменные типа String
[K], где K - целое число не больше 255. Так определяются строки с длиной не больше K. Этот тип уже не является стандартным. С символами строки можно работать как с элементами массива из символов, но в отличие от массивов, строки можно вводить целиком, сравнивать друг с другом и сцеплять операцией "+".


ПРИМЕР

: Работа со строками.


var
s,x,y,z:string;


begin


x:='turbo';


y:='pascal';


z:=x+' '+y; { z='turbo pascal' }


s:=''; { пустая строка }


for
c:='a' to
'z' do
s:=s+c; { s='abcd..xyz' }


writeln
(s);


end
.


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


ПРИМЕР

: Сравнение строк.


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


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


'a b c' < 'a xx c' { ' b '<' x ' }


'abcd' = 'abcd'


Существует ряд стандартных функций и процедур для работы со строками.


· Функция Length
(s) выдает длину строки s.


· Функция Concat
(s1,s2,..,sn) возращает строку s1+s2+..+sn.


· Функция Copy
(s,p,k) возвращает фрагмент строки s, который начинается в позиции p и имеет длину k.


· Функция Pos
(s1,s) ищет первое вхождение подстроки s1 в строку s и возвращает номер первого символа s1 в строке s или 0 если не нашли.


· Процедура Delete
(s,p,k) удаляет из строки s фрагмент, который начинается в позиции p и имеет длину k.


· Процедура Insert
(s,s1,p) вставляет в строку s подстроку s1, начиная с заданной позиции p.


Турбо Паскаль позволяет производить преобразования числовых значений в строковые и наоборот. Для этого используются процедуры Str
(X:n:d,S) и Val
(S,X,e). Первая получает их числа X строку S с изображением этого числа, в которой не менее n символов и из них d знаков после запятой. Параметры n и d необязательные. Вторая процедура получает из строки S число X. При успешном результате e=0.


Урок 1


Вид урока:
лекция.


Тема:
«Понятие строковой переменной».


Цель:
• познакомить учащихся с новым типом переменных;


• развить память, мышление;


• воспитание сознательной дисциплины учащихся на уроке;


План.


1. Орг. момент.


2. Изложение нового материала.


3. Закрепление нового материала (решение задач).


4. Итог, домашнее задание.


Ход урока.


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


Строковое значение заключается в апострофы. Например, ‘ A + B ’, ‘урок’, ‘5 + 4’, ’45’.


Строка, не содержащая ни одного символа, называется пустой (
’ ’ )
.


Переменные, которые могут принимать только строковые значения, называются строковыми.


В Pascal строковый тип переменных задается в разделе описания переменных с помощью ключевого слова string

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


Например, var
A
:
string
[5]
.


Если количество символов не указано, то оно по умолчанию считается равным 255. Значения строковых переменных задаются либо оператором присваивания ( := ), либо операторами read

или
readln

,

позволяющими вводить эти значения с клавиатуры.


Напишем программу – приветствие: ЭВМ запрашивает ваше имя, затем выводит сообщение «Здравствуй, …!».


program privet;


uses crt;


var A: string;


begin


clrscr;


write (‘ введите ваше имя ’);


readln (A);


write (‘ Здравствуй , ’, А , ‘!’);


readln


end .


К строкам можно применять операцию объединения «+», называемую сцеплением

или конкатенацией.


Например, а:= ‘пар’ а:=’20’


в:= ‘ад’ в:= ‘04’


с:=а+в (парад) с:= а+в (2004)


Физкультминутка.


III
.
Разобрать с ребятами программу.


program slovo;


uses crt;


var a, b, c, d, k, l, m, n: string;


begin


clrscr;


a:= ‘ пар ’;


b:= ‘ ом ’;


c:= ‘ с ’;


d:= ‘ ад ’;


k:= a + b; l:= c + b; m:= c + d; n:= a + d;


write (k, ‘ ’, l, ‘ ‘, m, ‘ ‘, n );


readln


end .


В результате работы этой программы на экране появятся следующие слова: паром сом сад парад


IV
.
Домашнее задание:


1) выучить определения;


2) написать программу получения слов: пароход, паровоз, пароварка.


Урок 2


Вид урока:
практическая работа.


Тема:
«Объединение строк».


Цель:
• совершенствование ЗУН учащихся;


• развитие алгоритмического мышления, памяти;


• воспитание бережного обращения с компьютерной техникой.


План.


1. Орг.момент.


2. Проверка домашнего задания.


3. Самостоятельная работа учащихся за компьютером.


4. Итог, домашнее задание.


Ход урока.


I
.
Провести инструктаж по ТБ.


II
. Проверить домашнее задание (вызвать одного ученика к доске).


Пока ученик пишет программу на доске, провести устный опрос.


- дайте определение строки;


- какая строка называется пустой
?


- какие переменные называются строковыми
?


- какую операцию можно применять к строковым переменным?


Физкультминутка.


III
.
Задания для самостоятельной работы.


1. Применить операцию конкатенации к переменным A , B , C , D и E так, чтобы получилось указанное в таблице значение переменной Х












































A B C D E X
ворон про ил а енка ворона проворонила вороненка
кормила ку ка ш он кукушка кормила кукушонка
черт заказать - моя еж мечта заказать чертеж – моя мечта
пар ад надо смотреть по надо посмотреть парад
двор а е трав на на дворе трава

2. Составить программу – диалог.


IV
.
Домашнее задание: повторить определения.


Урок 3


Вид урока:
лекция.


Тема: «Функции для работы со строками».


Цель
: • научить составлять слова из слов, используя функцию copy
.


• развитие алгоритмического мышления;


• воспитание интереса к предмету.


План.


1. Орг.момент.


2. Проверочная работа.


3. Объяснение нового материала.


4. Закрепление изученного материала.


5. Итог, домашнее задание.


Ход урока.


II
.
Проверочная работа.


1. Определение строки.


2. Определение строковой переменной.


3. определение пустой строки.


4. Применить операцию конкатенации к переменным A , B , C , D , E так, чтобы получилось значение переменной Х.























A B C D E X
висит кар ти На стене картина висит на стене
паро шел по В ход пароход пошел в поход

III
.
Копирование подстроки


Операция копирования подстроки позволяет делать вырезки из строк. Вырезка представляет собой последовательность смежных символов, извлеченную из строки. Так из слова «стихотворение» можно, например, вырезать следующие слова: «стих», «тихо», «творение», «вор».


Для копирования подстроки служит процедура copy

(

a

>
,

i

,

n

)
, которая копирует n
символов из строки a
, начиная с позиции i
.


Например, А:= ‘Башкортостан’


В:= с opy (А, 4, 4) корт


С:= copy (А, 9, 4) стан


Далее следует разобрать программу.


program primer;


var a, b, c, d, e: string;


begin


a:= ‘ стихотворение ’;


b:= copy (a, 1, 4);


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


d:= copy (a, 6, 8);


e:= copy (a, 7, 3);


write (b, ‘ ‘, c, ‘ ‘, d, ‘ ‘, e);


readln


end .


В результате работы этой программы получим: стих тихо творение вор


С помощью операции копирования и конкатенации из одного слова можно получить новые слова.


Физкультминутка.


IV
.
Получить из слова лекарство
слова: валет, кресло, сетка.


program primer;


var a, b, c, d: string;


begin


a:= ‘ лекарство ’;


b:= copy (a, 8, 1) + copy (a, 4, 1) + copy (a, 1, 2) + copy (a, 7, 1);


c:= copy (a, 3, 1) + copy (a, 5, 1) + copy (a, 2, 1) + copy (a, 6, 1) + copy (a, 1, 1) +


+ copy (a, 9,1);


d:= copy (a, 6, 1) + copy (a, 2,1) + copy (a, 7, 1) + copy (a, 3, 2);


write (b, ‘ ‘, c, ‘ ‘, d);


end.


V
.
Домашнее задание:


1) выучить определения;


2) из слова треугольник
получить слова угол, трон, кол.


Урок 4


Вид урока:
практическая работа.


Тема: «Функция
copy
».


Цель
: • совершенствование ЗУН учащихся;


• развитие алгоритмического мышления, внимания, памяти;


• воспитание бережного обращения с компьютерной техникой.


План.


1. Орг.момент.


2. Проверка домашнего задания.


3. Самостоятельная работа за компьютерами.


4. Итог, домашнее задание.


Ход урока.


I
.
Провести инструктаж по ТБ.


II
.
Проверка домашнего задания: вызвать одного ученика к доске, остальные отвечают на вопросы учителя.


1. Для чего предназначена функция copy ?


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


a := copy (‘информатика’, 3, 5):


b := copy (‘информатика’, 10, 2) + copy (‘информатика’, 5, 1) +


+ copy (‘информатика’, 8, 1) + copy (‘информатика’, 7,1);


c := copy (‘информатика’, 8, 2) + с opy (‘информатика’, 2, 1)+ copy (‘информатика’, 7, 1)?


Физкультминутка.


III
. Задания для самостоятельной работы.


1
. Составить программу получения из слова « лекарство
» слова:


А) крот, товар, тоска.


Б) стрела, треск, совет.


В) отвар, сквер, сектор.


Г) село, сетка, сова.


2.
Из слова « муха
» получить « слон
».


IV
.
Домашнее задание: повторить функцию copy .


Урок 5.


Вид урока:
лекция.


Тема: Процедуры для работы со строковыми переменными.


Цель:
• научить использовать процедуру для преобразования слов;


• развитие алгоритмического мышления;


• воспитание сознательной дисциплины учащихся на уроке.


План.


1. Орг.момент.


2. Проверочная работа по теме «Функция copy ».


3. Объяснение нового материала.


4. Закрепление.


5. Домашнее задание.


Ход урока
.


I
.
Раздать тетради для проверочных работ.


II
.
Раздать раздаточный материал. Объяснить задание.


III
.
1. Удаление подстроки.


Процедура delete

(

a

,

i

,

n

)

удаляет n

символов из строки a

, начиная с позиции i

.


2. Вставка подстроки.


Процедура insert

(

b

,

a

,

i

)

вставляет подстроку b

в строку a

, начиная с позиции i

.


Пример 1.


program primer1;


var a, b, c, d : string;


begin


a:= ‘ лекарство ’;


delete (a, 3, 5);


writeln (a); { лево }


delete (a, 3, 1);


b:= ‘ т ’;


insert (b, a, 3);


writeln (a); { лето }


c:= ‘ кот ’;


d:= ‘ мпо ’;


insert (d, c, 3);


writeln ( c ); {компот}


end .


3. Поиск подстроки.


При составлении программ возникает потребность поиска конкретной строки в тексте.


В Turbo Pascal для поиска подстроки служит функция pos

(

b

,

a

)

которая отыскивает в строке a

первое вхождение строки b

и возвращает номер позиции, с которой начинается строка b

; если подстрока не найдена, возвращается ноль.


(рассмотреть пример)


Пример 2


program primer ;


var a, b, c: string;


m , n : integer ;


begin


a := ‘Жил-был в норе под землей хоббит’;


b:= ‘ был ’;


c:= ‘ хоббит ’;


m:=pos(b, a);


n:=pos(c, a);


writeln (b, ‘ – ‘,m); { был - 5}


writeln (c, ‘ - ‘, n); { хоббит - 27}


end.


4. Определение длины строки.


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


Для этого служит функция length

(

a

)

.


Физкультминутка.


IV
.
Пример 3.


Выполнить преобразование слов: форма – корма – корка – кофта.


program primer2;


var a, b, c, d: string;


begin


a:= ’ форма ’;


write (a); { форма }


b:= “ к ”;


delete (a, 1, 1);


insert (b, a, 1);


write (a, ‘ ‘); { корма }


delete (a, 4, 1);


insert (b, a, 4);


write (a, ‘ ‘); { корка }


delete (a, 3, 2);


c:= ‘ фт ’;


insert (c, a, 3);


write (a); { кофта }


end.


Пример 4


В заданной строке А заменить выделенную подстроку на подстроку В. Для поиска позиции, с которой надо произвести замену, воспользоваться функцией поиска подстроки.


А:=’Выдать премию в размере месячного
оклада’


В := ‘ годового ’


program primer;


var a, b, c: string;


m : integer ;


begin


a := ‘Выдать премию в размере месячного оклада’;


b := ‘годового’;


c :=’месячного’;


m := pos ( c , a );


delete(a, m, 9);


insert(b, a, m);


writeln ( a )


end .


V
.
Домашнее задание: выполнить преобразование слов: оратор – оракул – караул – каркас.


Урок 6.


Вид урока:
практическая работа.


Тема: «Процедуры для работы со строковыми переменными».


Цель:
• совершенствование ЗУН учащихся;


• развитие мышления, внимания;


• воспитание бережного обращения с компьютерной техникой.


План.


1. Орг.момент.


2. Проверка домашнего задания.


3. Самостоятельная работа за компьютером.


4. Итог, домашнее задание.


Ход урока.


I
.
Провести инструктаж по ТБ.


II
.
Для проверки домашнего задания вызвать одного ученика к доске.


(выполнить преобразование слов оратор – оракул – караул - каркас)


Физкультминутка.


III
.
Задания для самостоятельной работы.


1. Выполнить преобразования слов:


А) груша – гроза – проза – проба – сдоба – свара


Б) бисер – бомба – балка – палка – палец


В) метка – сетка – седло – сопло – совет – кювет


Г) нитка – нерка – корка – кирка – книга – пурга


2. В заданной строке А заменить выделенную подстроку на подстроку В. Для поиска позиции, с которой надо произвести замену, воспользоваться функцией поиска подстроки.






















А В
1 Продлить каникулы до 1 марта.
февраля
2 Принтер – устройство ввода.
вывода
3 В одном байте содержится 10
бит.
8
4 Диаметр гибкого диска равен 3,5 сантиметрам
.
дюймам

IV
.
Домашнее задание: повторить функции и процедуры.


Урок 7


Вид урока:
лекция.


Тема: «Преобразование строк».


Цель:
• научить преобразовывать строки;


• развивать алгоритмическое мышление;


• прививать интерес к предмету.


План.


1. Орг.момент.


2. Письменный опрос.


3. Объяснение нового материала.


4. Закрепление.


5. Домашнее задание.


Ход урока.


I
.
Раздать тетради для проверочных работ.


II
.
Задания проверочной работы.


1 вариант 2 вариант


1. Функция length . 1. Функция pos .


2. Процедура insert . 2. Процедура delete .


3. В строке А заменить выделенную подстроку на строку В.













А В
1 Процессор служит для хранения
данных.
обработки
2 Клавиатура – устройство вывода
.
ввода

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


Для этих целей служат следующие процедуры:


1.
str
(
x
,
a
) –
процедура, преобразующая число х
в строку символов а.


Например, х:=453


str ( x , a ) { a =’453’}


2.
val
(
a
,
x
,
k
)
– процедура, преобразующая строку а
, состоящую из цифр, в соответствующее число х
.


К
– переменная типа integer , которой присваивается 0, если преобразование прошло успешно. В противном случае k
будет содержать номер позиции в строке а
, где обнаружен ошибочный символ.


Физкультминутка.


IV
.
1. Составить программу нахождения суммы цифр числа.


(целесообразно вспомнить, как решить задачу с использованием mod и div )


program summa;


var n, a: string;


i, k, s: integer;


begin


s:=0;


write (‘ введите число ’);


readln (n);


for i:=1 to length (n) do


begin


a:= copy (n, i, 1);


val (a, x, k);


s:= s + x:


end;


write (‘s=’, s)


end.


2. Написать программу определения количества четных цифр в числе.


program kolvo;


var n, a: string;


i, k, k1: integer;


begin


k1:=0;


write (‘ введите число ’);


readln (n);


for i:=1 to length (n) do


begin


a:= copy (n, i, 1);


val (a, x, k);


if x mod 2 = 0 then k1:= k1 + 1:


end;


write (‘ четных цифр ’, k1)


end .


V
.
Домашнее задание: написать программу, заменяющую все буквы А на О.


Урок 8.


Вид урока:
практическая работа.


Тема: «Преобразование строк».


Цель
: • совершенствование ЗУН учащихся;


• развитие алгоритмического мышления;


• воспитание бережного обращения с компьютерной техникой.


План.


1. Орг.момент.


2. Проверка домашнего задания.


3. Самостоятельная работа за компьютером.


4. Итог, домашнее задание.


Ход урока.


I
.
Провести инструктаж по ТБ.


II
.
Вызвать одного ученика к доске. Задание: заменить все буквы А на О.


program zamena;


var n, a, b: string;


i: integer;


begin


write (‘ введите текст ’);


readln (n);


b:=’O’;


for i:=1 to length(n) do


begin


a:= copy (n, i, 1);


if (a=’a’) or (a=’A’) then begin delete (n, i, 1 ); insert (b, n, i); end;


end;


write (n)


end.


Физкультминутка
.


III
.
Задания для самостоятельной работы .


1) В данном тексте определить каких букв больше О или А.


2) Определить, есть ли заданная буква в тексте.


3) Посчитать количество букв Р и Н в тексте.


4) Дано слово. Верно ли, что оно начинается и заканчивается на одну и ту же букву.


5) Дано предложение. Напечатать все его буквы «и».


6) Дано предложение. Определить долю (в %) букв «а» в нем.


IV
.
Домашнее задание: Дано предложение. Составить программу, которая выводит столбиком его третий, шестой, девятый и т.д. символы.


Урок 9


Вид урока:
урок решения типовых задач.


Тема: «Решение задач».


Цель:
• закрепить навыки работы с процедурами и функциями;


• развивать алгоритмическое мышление;


• воспитывать уважение к сопернику, находчивость, умение работать в коллективе.


План.


1. Орг.момент.


2. Проверка домашнего задания.


3. Решение задач.


4. Домашнее задание.


Ход урока.


II
.
Для проверки домашнего задания вызвать одного ученика к доске.


program primer;


var a, b:string;


i: integer;


begin


write (‘ введите предложение ’);


readln (a);


for i:=1 to length(a) do


if i mod 3 =0 then begin b:=copy (a, i, 1); writeln (b) end;


end .


III
.
Разделить класс на три группы. Каждой группе дать задание. Ребята составляют программу, а затем один представитель от команды объясняет решение задачи у доски.


Задания для групп:


1.
Выбрать из текста все буквы и сформировать другую строку из этих букв, сохранив их последовательность.


program primer;


var a, m: string;


i: integer;


begin


write (‘ введите текст ’);


readln (a);


m:=’’;


for i:=1 to length(a) do


if ( (copy (a, i. 1) >=’a’) and (copy (a, I, 1) <=’ я ’) ) or ( (copy (a, i. 1) >=’ А ’) and


(copy (a, I, 1) <=’ Я ’) ) then m:=m + copy (a, I, 1);


write (m);


end .


2
. Найти сумму первой и последней цифр числа и разделить ее на 2.


program primer;


var a1,b, c: string;


i, k: integer; a, b1, c1: longint; s, s1: real;


begin


write (‘ введите число ’);


readln (a);


str (a, a1);


b:=copy(a1, 1, 1);


c:=copy(a1, length(a1), 1);


val (b, b1, k);


val (c, c1, k);


s:=b1+c1;


s1:=s/2;


write (‘s=’, s, ‘s1=’ s1);


end .


3
. Дано число. Заменить все цифры 2 на 5 и разделить новое число на 5.


program primer;


var a1,b, c: string;


i, k: integer; a, x: longint; s:real;


begin


write (‘ введите число ’);


readln (a);


str (a, a1);


for i:=1 to length (a1) do


begin


b:=copy(a1, i, 1);


if b=’2’ then begin delete (a1, i, 1); insert (‘5’, a1, i) end;


end;


val (a1, x, k);


s:=x/5;


write (‘a1=’, a1, ‘ s=’ s);


end .


IV
.
Домашнее задание: Написать программу для определения количества четных цифр в числе.


Урок 10


Вид урока:
практическая работа.


Тема: «Подготовка к контрольной работе».


Цель:
• совершенствование навыков составления программ;


• развитие алгоритмического мышления, памяти, внимания;


• воспитание у учащихся самостоятельности.


План.


1. Орг.момент.


2. Проверка домашнего задания.


3. Самостоятельная работа за компьютерами.


4. Итог, домашнее задание.


Ход урока.


II
.
Проверка домашнего задания.


Написать программу для определения количества четных цифр в числе.


program primer;


var a1,b : string;


i, k, s, b1: integer; a: longint;


begin


write (‘ введите число ’);


readln (a);


str (a, a1);


s:=0;


for i:=1 to length (a1) do


begin


b:=copy(a1, i, 1);


val (b, b1, k);


if b1 mod 2 = 0 then s:=s+1


end ;


write (‘количество четных цифр =’, s );


end .


III
. Задания для самостоятельной работы.


1. Найти сумму нечетных цифр числа Х.


2. Определить каких цифр больше в записи числа Х: четных или нечетных.


3. Найти произведение цифр заданного числа.


4. Даны два слова. Верно ли, что первое слово начинается на ту же букву, которой оканчивается второе слово?


5. В заданном числе заменить все цифры 0 на цифры 9, а все 1 – на 8; к полученному числу прибавить 999.


IV
.
Домашнее задание: просмотреть все решенные задачи.


Урок 11


Вид урока:
контрольная работа.


Тема: «Строковые переменные».


Цель:
• проверить уровень усвоения материала учащимися;


• развитие алгоритмического мышления;


• воспитание у учащихся самостоятельности.


План.


1. Орг.момент.


2. Самостоятельная работа учащихся.


3. Итог.


Ход урока.


I
.
Раздать тетради для проверочных работ.


II
. Вариант 1


1. Используя операции копирования и конкатенации получить из слова БАШКОРТОСТАН новые слова:


корт бак шок сто


2. Написать программу преобразования слов:


оратор – оракул – караул - каркас


3. Из данного текста выбрать все буквы и сформировать другую строку, сохранив их последовательность.


Вариант 2


1. Используя операции копирования и конкатенации получить из слова БАШКОРТОСТАН новые слова:


т ост оса банка рана


2. Написать программу преобразования слов:


процесс – провода – природа - призрак


3. В данном тексте подсчитать количество букв «К» и «Л».


Вариант 3


1. Используя операции копирования и конкатенации получить из слова БАШКОРТОСТАН новые слова:


стан рот ток коса


2. Написать программу преобразования слов:


груша – гроза – проза - проба


3. В данном тексте заменить все буквы «Р» на «Л».


Вариант 4


1. Используя операции копирования и конкатенации получить из слова БАШКОРТОСТАН новые слова:


т орт кора тон сор


2. Написать программу преобразования слов:


метка – сетка – седло - сопло


3. Из данного текста выбрать все цифры и сформировать другую строку, сохранив их последовательность.


IV
.
Собрать тетради.


ЛИТЕРАТУРА


1. Абрамов, С.А., Зима В.С. Начала программирования на языке Паскаль. – М.: Наука, 1987


2. Абрамов С.А., Трифонов Ф.П., Трифонова Г.Н. Введение в язык Паскаль: Учебное пособие. – М.: Наука, 1988


3. Бабушкина И.А., Бушмелева Н.А., Окулов С.М., Черных С.Ю. Конспекты занятий по информатике(практикум по Турбо Паскалю): Учебное пособие. – Киров: Издательство ВГПУ, 1997


4. Николаев А.Б., Акатнова Л.А., Алексахин С.В. и др. Турбо-Паскаль в примерах. Кн ига д ля учащихся 10 – 11 кл. –М. Просвещение, 2002


5. Окулов С.М. Основы программирования. Газета Информатика, приложение к газете Первое сентября.№№42-48/2000, 6-8/2001


6.Лахтин А.С., Искакова Л.Ю. Языки и технология программирования. Начальный курс. Учеб ное пособие. Екатеринбург, 1998.


7.Белова Т.Н., Конспекты лекций по основам алгоритмизации и программирования (практикум по Турбо Паскалю) .Учебное пособие.


8.Попов В.Б. Turbo Pascal для школьников. Москва. Финансы и статистика. 2003

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Строковые переменные

Слов:6156
Символов:50169
Размер:97.99 Кб.