Презентация "Строки в Pascal" 10 класс
Подписи к слайдам:
- Автор: учитель информатики
- МКОУ Плесской СОШ
- Юдин А.Б.
- 2012 год
- Строки
- в Pascal
- Строка - это массив символов, т.е. элементов типа char. В Паскале строке соответствует тип данных String.
- var Имя : string [Длина];
- Если длина не указана, выделяется память под строку до 255 символов.
- Теория 1
- var s1:string;
- строка 255 символов
- var s2:string[20];
- строка 20 символов
- Правила:
- строки равны только при одинаковом наборе символов и
- одинаковой длине;
- Например: 'ABC'='ABC' и 'ABC'≠'abc'
- иначе происходит поэлементное сравнение символов
- по их кодам:
- '0'<'1'<...<'9'<'A'<...<'Z'<'a'<...<'z'<символы кириллицы
- Например: 'ADS'<'АДС'
- 65+68+83 < 192+196+209 (По таблице ASCII)
- Сравнение двух строк
- Теория 2
- Сумма кодов строки S1<S2,
- Сумма кодов строки S1>S2,
- Теория 3
- Соединение двух строк.
- s1:='2011' + ' год';
- Writeln(s1);
- s1:='10';
- s2:='класс';
- s3:=s1+' '+s2;
- Writeln(s3);
- Функция Length
- Функция Length(S) определяет текущую длину строки S.
- Результат — значение целого типа.
- Теория 4
- PROGRAM Dlina_1;
- VAR S : STRING;
- n:INTEGER;
- BEGIN
- Writeln(введите слово ') ; Readln(S);
- n:= Length (S) ;
- Writeln(‘введите слово ', n:5 ,' букв..');
- END.
- Записываем длину строки в переменную целого типа
- PROGRAM Dlina_2;
- VAR S : STRING;
- BEGIN
- Writeln(’введите слово’) ; Readln(S);
- Writeln(’слово состоит из ’, Length (S) ,’букв. ’);
- END.
- Выводим на экран длину строки, как результат выполнения функции
- Задача 1. Составить программу подсчитывающую количество букв в слове.
- Uses crt;
- var a,b:string;
- m,n:Integer;
- Begin
- Clrscr;
- Writeln('ВВеди первую строку ');Readln(a);
- Writeln('ВВеди вторую строку ');Readln(b);
- m:=Length(a);
- n:=Length(b);
- if (m=n) then writeln('Строки равны');
- if (m>n) then writeln('Первая больше');
- if (m<n) then writeln('Вторая больше');
- End.
- Задача 2. Сравнить длину двух строк введенных с клавиатуры.
- Вычисляем длину строк
- Сравниваем длины и выводим соответствующие пояснения
- Задача на сравнение строк 5
- Функция Сору
- Функция Сору(S, P, N) выделяет из строки S подстроку длиной N символов, начиная с позиции P. Здесь N и P – целочисленные выражения.
- Теория 6
- В фразе МАМА МЫЛА РАМУ слово РАМУ начинается с 11 буквы и состоит из 4 букв
- COPY(s1,11,4)
- Задача 3. Составить программу осуществляющую вырезку из слова ИНФОРМАТИКА букв так, что бы из них получилось слово ТОРТ.
- Program n3_1;
- Uses crt;
- var a,b,c,d:string;
- Begin
- Clrscr;
- a:='информатика';
- b:='';
- c:=copy(a,8,1);
- d:=copy(a,4,2);
- b:=c+d+c;
- writeln(b);
- End.
- Задача на составление строк 7
- Используем функцию работы с символьными переменными
- COPY
- Второй вариант:
- Program n3_2;
- Uses crt;
- var a,b:string;
- Begin
- Clrscr;
- a:=‘информатика';
- b:=a[8]+a[4]+a[5]+a[8];
- writeln(b);
- End.
- Используем определение строки как массива символов
- Преобразование типов 8
- Функция STR
- Str(x, S) преобразует число x в строковый формат. Где x – любое числовое выражение, S – строковая переменная.
- Задача 4 . Составьте программу которая выводит первую и последнюю цифру натурального числа, введенного с клавиатуры.
- PROGRAM Primer;
- uses Crt;
- VAR S: STRING;
- n:INTEGER;
- BEGIN
- Write('Введи число ');readln(n);
- Str(n,S);
- Writeln('Первая цифра -',S[1]);
- Writeln('Последняя цифра - ',S[length(S)]);
- END.
- Преобразуем натуральное число в строку
- Процедура val позволяет преобразовать цифровые символы (изображение числа) в число. В общем виде обращение к процедуре выглядит так:
- VAL (Строка, Число, Код) ;
- где Строка – строковая константа или переменная, содержащая изображение числа;
- Число – переменная целого или дробного типа, которой должно быть присвоено значение
- Код – возвращаемый процедурой код ошибки (целое число)
- Преобразование типов 9
- Процедура VAL
- Преобразование типов 10
- BEGIN
- s1:='123456789';
- val(s1,n,code);
- Writeln(n);
- END.
- BEGIN
- s1:='123456789ABCDE';
- val(s1,n,code);
- Writeln(n);
- END.
- s1:='ABCDE123456789';
- val(s1,n,code);
- Writeln(n);
- В PascalABC есть более развитый арсенал
- преобразований как в DELPHI:
- S:=IntToStr(N) - преобразует целое число к строке;
- n:=StrToInt(S) - преобразует строку в целое число
- S:=FloatToStr(r) - преобразует вещественное число к строке
- R:=StrToFloat(s) преобразует строку в вещественное число.
- Если преобразование невозможно, то возникает ошибка времени выполнения
- Преобразование типов 11
- Преобразование типов 12
- Задача 5. Дано строка символов а1+а2=. Где 1<=а1 и а2<=9. Составить программу, вычисляющую это выражение. Измените программу так, что бы вместо знака «+» можно было писать «-», «*», «/».
- VAR S: STRING; a,b,c:real;
- code:INTEGER;
- BEGIN
- Write(‘Введи выражение = ');read(s);
- val(s[1],a,code);
- val(s[3],b,code);
- if (s[2]='+') then c:=a+b;
- if (s[2]='-') then c:=a-b;
- if (s[2]='*') then c:=a*b;
- if (s[2]='/') then c:=a/b;
- clrscr;
- Writeln(s,c);
- END.
- Из строки берем первый и третий символ и преобразуем в число
- Символы и их коды 13
- Функции ORD и CHR
- Функция Ord(S) – определяет порядковый номер символа.
- Функция Chr(i) – определяет символ с порядковым номером i
- По номеру 255 выводим символ из кодовой таблицы Я
- Символы и их коды 14
- Задача 6. Составьте программу, которая по символу введенному с клавиатуры, выводит его номер в кодовой таблице.
- PROGRAM Primer;
- uses Crt;
- VAR S: char;
- n,code:INTEGER;
- BEGIN
- Write('Введи символ ');readln(s);
- Writeln('Символ ', s ,' имеет код -',ord(s));
- END.
- Функция ORD работает только символьным типом данных
- Задача 7. Дана строка символов. Определить сколько раз в ней встречается буква А (русская).
- Program n5;
- Uses Crt;
- Var s:string;
- i,k:integer;
- begin
- ClrScr;
- Write('ВВеди строку '); readln(s);
- k:=0;
- for i:=1 to length(s) do if (s[i]='А') then k:=k+1;
- writeln('Буква А встречается = ', k:8,' раз');
- end.
- Перебираем от 1 до последней буквы
- Если на i-ом месте стоит А увеличиваем К на 1
- Подсчет символов в строке 15
- Замечание 16
- for i:=1 to length(s) do begin
- if (s[i]=……
- if (s[i]=……
- end;
- Замечание. Если требуется поиск нескольких символов в строке, то условия заключаем в программные скобки BEGIN … END
- Подсчет символов в строке 17
- Начало
- Ввод S
- i,1,length(s)
- Si ='A'
- К=К+1
- Вывод К
- Конец
- Да
- Нет
- Блок-схема к задаче подсчета букв А в строке
- К=0
- Замена символов в строке 18
- Задача 8. Дана строка символов. Заменить в ней все буквы А на букву О.
- Program n6;
- Uses Crt;
- Var s:string;
- i:integer;
- begin
- ClrScr;
- Write('ВВеди строку '); readln(s);
- for i:=1 to length(s) do if (s[i]='A') then s[i]:='O';
- writeln(s);
- end.
- Перебираем от 1 до последней буквы
- Если на i-ом месте стоит А ставим на i-е место О.
- Замена символов в строке 19
- Начало
- Ввод S
- i,1,length(s)
- Si ='A'
- Si ='O'
- Вывод S
- Конец
- Да
- Нет
- Блок-схема к задаче замен буквы А на О
- Задача 9 Удалить из строки введенной с клавиатуры все буквы R (латинские, заглавные).
- Program n7;
- Uses Crt;
- var a,b:String;
- i:integer;
- begin
- ClrScr;
- Write('ВВеди строку = ');readln(a);
- b:='';
- for i:=1 to length(a) do if (a[i]<>‘R') then b:=b+a[i];
- a:=b;
- writeln(a);
- end.
- Перебираем от 1 до последней буквы
- Подготавливаем дополнительную переменную
- Если на i-ом месте не стоит R то прибавляем эту букву к тому, что есть в B
- То, что получилось в В перемещаем обратно в А
- Удаление символов из строки 20
- Удаление символов из строки 21
- Начало
- Ввод A
- i,1,length(A)
- Ai <>'R'
- B=B+ Ai
- Вывод А
- Конец
- Да
- Нет
- Блок-схема к задаче удаления букв R из строки
- B=''
- A=B
- Вложенные условия. 22
- begin
- clRscr;
- Readln(s);
- for i:=1 to length(s) do
- if (s[i]='а') or (s[i]='б') then
- if (s[i]='а') then s[i]:='б' else s[i]:='а';
- writeln(s);
- end.
- Задача 10. В заданном тексте везде букву "а" заменить на букву "б", а букву "б" - на букву "а".
- Из всей строки нам нужно выбрать только А и Б
- И только после осуществлять замену
- Вложенные условия 23
- Начало
- Ввод S
- i, 1, length(S)
- Si ='а'
- Si ='б'
- Si ='а'
- Вывод S
- Конец
- Si ='а' или Si ='б'
- Да
- Нет
- Да
- Нет
- Блок-схема к задаче замены А на Б и наоборот
- Вложенные циклы 24
- begin
- ClrScr;
- Write('ВВеди строку '); readln(s);
- s1:=',.;:"!?-';
- for i:=1 to length(s1) do begin
- k:=0;
- for j:=1 to length(s) do if (s[j]=s1[i]) then k:=k+1;
- if (k<>0) then writeln(s1[i],' - ',k:5,' раз');
- end;
- end.
- Задача 11. Дана строка символов, содержащая знаки препинания. Подсчитать какие и сколько знаков препинания содержит строка.
- Внешний цикл, осуществляющий перебор знаков записанных в S1
- Тело внешнего цикла содержит цикл, отвечающий за перебор символов введенной строки
- Вложенные циклы 25
- Начало
- Ввод S
- i, 1, length(S1)
- s1=',.;:"!?-'
- K=0
- j, 1, length(S)
- Sj = S1i
- Да
- Нет
- K=K+1
- K<>0
- Вывод S1i,K
- Нет
- Да
- Конец
- Блок-схема к задаче подсчета знаков препинания
Информатика - еще материалы к урокам:
- Презентация "Мультимедиа технологии в Интернете" 10 класс
- Презентация "Угрозы безопасности информации, их виды" 11 класс
- Презентация "Вложенные циклы" 10 класс
- Презентация "Основные приемы работы в Paint" 11 класс
- Презентация "Технология обработки текстовой информации" 11 класс
- Презентация "Технологии обработки числовых данных" 11 класс