Реферат

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

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.2.2025





Введение


Типы данных

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

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

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

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

Var Str1: String [10];

Var Str2: String;

Var Str3: String [13];

В квадратных скобках указывается максимальный размер (длина) строки. Если он не указан (как в описании переменной Str2), то длина строки считается равной 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’ (длина первой строки больше);

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

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

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

Str1: = 'У Егорки’; Str2: = ‘всегда отговорки’;
Процедуры и функции для работы с данными строкового типа данных приведены в таблице.



Тип

Вызов

Параметры

Действие

Процедура

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 (s1, s2,…, sm), функция возвращает значение типа String

S1, s2, … sm: String;

Строки s1, s2, …, sm записываются одна за другой. Результат не  превышает 255 символов.  Можно просто складывать строки s1+s2+…+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.


Примеры.

В приведенных примерах переменные s1,s2,s3 имеют тип String, p,g – тип Integer.

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

Delete (s1, 9,7);

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

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

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

Insert (s2, s1, 3);

Результат:

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

p:=1234; q:=34.5;

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

Результат: s1=’1234’, s2= =’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 не определено.

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

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

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

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

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

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

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

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

p: =Length (s1);

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

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

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 My14_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.Написать программу для вывода последовательностей символов:

а)ZYYXXXAA..AA;

в)ABCZZBCZZZCZZ..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'>'' }

'abc' < 'axxc' { '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
  


1. Реферат Корреспондентские отношения между банками и межбанковские операции
2. Контрольная работа Основные элементы организации оплаты труда
3. Реферат Консалтинговая компания IBS
4. Реферат Особености ценообразования на рынке совершенной конкуренции
5. Курсовая Расчет ходкости судна и подбор пропульсивного комплекса
6. Топик Порождение текстов на естественном языке
7. Реферат Договір щодо надання брокерських послуг
8. Реферат Протоистория
9. Реферат Философские идеи славянофилов и западников
10. Курсовая Визначення параметрів електропривода верстата з ЧПК з підпорядкованим регулюванням координат