Реферат Строковые переменные
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Введение
Типы данных
При решении задач в программировании выполняется обработка информации различного характера. Это могут быть целые и дробные величины, строки и другое. Соответственно константы и переменные должны быть описаны как целые, дробные, строковые и т.д.
Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание её типа данных. Тип данных (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.Написать программу для вывода последовательностей символов:
а)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;
s:='';
for c:='a' to 'z' do s:=s+c;
writeln(s);
end.
Сравнение строк выполняется посимвольно в соответствии с их кодами до первого несовпадения. Если одна из строк закончилась до первого несовпадения, то она считается меньшей. Пустая строка меньше любой строки.
ПРИМЕР
: Сравнение строк.
'abcd' > 'abcD'
'abcd' > 'abc'
'abc' < 'axxc'
'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 +
Строка, не содержащая ни одного символа, называется пустой ( ’ ’).
Переменные, которые могут принимать только строковые значения, называются строковыми.
В 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. Итог, домашнее задание.
Ход урока.
.
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. Итог, домашнее задание.
Ход урока.
.
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. Домашнее задание.
Ход урока.
.
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. Итог, домашнее задание.
Ход урока.
.
II
. Для проверки домашнего задания вызвать одного ученика к доске.
(выполнить преобразование слов оратор – оракул – караул - каркас)
Физкультминутка.
III
. Задания для самостоятельной работы.
1. Выполнить преобразования слов:
А) груша – гроза – проза – проба – сдоба – свара
Б) бисер – бомба – балка – палка – палец
В) метка – сетка – седло – сопло – совет – кювет
Г) нитка – нерка – корка – кирка – книга – пурга
2. В заданной строке А заменить выделенную подстроку на подстроку В. Для поиска позиции, с которой надо произвести замену, воспользоваться функцией поиска подстроки.
№ | А | В |
1 | Продлить каникулы до 1 марта. | февраля |
2 | Принтер – устройство ввода. | вывода |
3 | В одном байте содержится 10 бит. | 8 |
4 | Диаметр гибкого диска равен | дюймам |
IV
. Домашнее задание: повторить функции и процедуры.
Урок 7
Вид урока: лекция.
Тема: «Преобразование строк».
Цель: • научить преобразовывать строки;
• развивать алгоритмическое мышление;
• прививать интерес к предмету.
План.
1. Орг.момент.
2. Письменный опрос.
3. Объяснение нового материала.
4. Закрепление.
5. Домашнее задание.
Ход урока.
.
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. Итог, домашнее задание.
Ход урока.
.
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. Итог.
Ход урока.
.
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