Реферат: Строковые переменные
Название: Строковые переменные Раздел: Рефераты по информатике Тип: реферат | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Введение Типы данных При решении задач в программировании выполняется обработка информации различного характера. Это могут быть целые и дробные величины, строки и другое. Соответственно константы и переменные должны быть описаны как целые, дробные, строковые и т.д. Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание её типа данных. Тип данных ( 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: = ‘всегда отговорки’; Процедуры и функции для работы с данными строкового типа данных приведены в таблице.
Примеры. В приведенных примерах переменные 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 символов и из них в знаков после запятой. Параметры n и в необязательные. Вторая процедура получает из строки 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 , в и E так, чтобы получилось указанное в таблице значение переменной Х
2. Составить программу – диалог. IV . Домашнее задание: повторить определения. Урок 3 Вид урока: лекция. Тема: «Функции для работы со строками». Цель : • научить составлять слова из слов, используя функцию copy . • развитие алгоритмического мышления; • воспитание интереса к предмету. План. 1. Орг.момент. 2. Проверочная работа. 3. Объяснение нового материала. 4. Закрепление изученного материала. 5. Итог, домашнее задание. Ход урока. II . Проверочная работа. 1. Определение строки. 2. Определение строковой переменной. 3. определение пустой строки. 4. Применить операцию конкатенации к переменным A , B , C , в , E так, чтобы получилось значение переменной Х.
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, в : 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. В заданной строке А заменить выделенную подстроку на подстроку В. Для поиска позиции, с которой надо произвести замену, воспользоваться функцией поиска подстроки.
IV . Домашнее задание: повторить функции и процедуры. Урок 7 Вид урока: лекция. Тема: «Преобразование строк». Цель: • научить преобразовывать строки; • развивать алгоритмическое мышление; • прививать интерес к предмету. План. 1. Орг.момент. 2. Письменный опрос. 3. Объяснение нового материала. 4. Закрепление. 5. Домашнее задание. Ход урока. I . Раздать тетради для проверочных работ. II . Задания проверочной работы. 1 вариант 2 вариант 1. Функция length . 1. Функция pos . 2. Процедура insert . 2. Процедура delete . 3. В строке А заменить выделенную подстроку на строку В.
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 |