Разделы презентаций


Строки в Pascal 9 класс

Содержание

Разрезка строки

Слайды и текст этой презентации

Слайд 1Строки в Pascal
Презентация к уроку информатики
Тема: программирование на языке PascalABC
Автор:

Юдин Андрей Борисович
МКОУ Плесская СОШ
Часть 2

Строки  в PascalПрезентация к уроку информатикиТема: программирование на языке PascalABCАвтор: Юдин Андрей БорисовичМКОУ Плесская СОШЧасть 2

Слайд 2Разрезка строки

1

C

т

р

о

к

а

S:String[6];

S:array[1..6]of char;

S[i]


S[i]:='A'; //присваивание

If (S[i]='A') then … ;
//проверка условий

Разрезка строки

Слайд 3Разрезка строки

2

Задача 1. Вводится строка (с клавиатуры или из файла), представляющая Фамилия Имя Отчество (разделены пробелом). Составить программу присваивающую Фамилия, Имя, Отчество трем различным переменным.

S – Исходная строка
S1- переменная для фамилии
S2 – переменная для имени
S3 – переменная для отчества

Разрезка строки

Слайд 4
Строка S
Разрезка строки

3

Иванов Иван Иванович

S1

S2

S3

в

И

а

н

о

в

ПРОБЕЛ -НЕТ

ПРОБЕЛ -НЕТ

ПРОБЕЛ -НЕТ

ПРОБЕЛ -НЕТ

ПРОБЕЛ -НЕТ

ПРОБЕЛ -НЕТ

ПРОБЕЛ -ДА

Переходим к заполнению второй строки и т.д.

Строка SРазрезка строки

Слайд 5Разрезка строки

4

i:=1;
while (s[i]<>' ') do begin
s1:=s1+s[i];
i:=i+1;
end;

Начинаем с первой буквы


Пока очередной символ не равен ПРОБЕЛ



Запоминаем этот символ в переменной S1 и переходим к другому символу

Разрезка строки

Слайд 6 i:=1;
while (s[i]' ') do begin

s1:=s1+s[i];

i:=i+1;
end;
i:=i+1;
while (s[i]<>' ') do begin
s2:=s2+s[i];
i:=i+1;
end;
i:=i+1;
while (i s3:=s3+s[i];
i:=i+1;
end;

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


Разрезка строки 5

i:=1; while (s[i]' ') do begin

Слайд 7s[i]' '
i =1
s1:=s1+s[i]
i:=i+1
Да
Нет
s[i]' '
i =i+1
s2:=s2+2[i]
i:=i+1
Да
Нет
1
1
3
i

6
s[i]' 'i =1s1:=s1+s[i]i:=i+1ДаНетs[i]' 'i =i+1s2:=s2+2[i]i:=i+1ДаНет113i

Слайд 8 i:=1;
while (s[i]' ') do begin

s1:=s1+s[i];

i:=i+1;
end;
i:=i+1;
while (s[i]<>' ') do begin
s2:=s2+s[i];
i:=i+1;
end;
i:=i+1;
s3:=copy(s,i,length(s));

S3 присваиваем фрагмент строки S с i-го символа до конца


Разрезка строки 7

i:=1; while (s[i]' ') do begin

Слайд 9s[i]' '
i =1
s1:=s1+s[i]
i:=i+1
Да
Нет
s[i]' '
i =i+1
s2:=s2+2[i]
i:=i+1
Да
Нет
1
1
3
Первое слово
Второе слово
Третье слово
3
s3:=copy(s,i,length(s))
Разрезка строки

8
s[i]' 'i =1s1:=s1+s[i]i:=i+1ДаНетs[i]' 'i =i+1s2:=s2+2[i]i:=i+1ДаНет113Первое словоВторое словоТретье слово3 s3:=copy(s,i,length(s))Разрезка строки

Слайд 10 i:=1;
repeat
s1:=s1+s[i];

i:=i+1;
until (s[i]=' ');
i:=i+1;
repeat


s2:=s2+s[i];
i:=i+1;
until (s[i]=' ');
i:=i+1;
s3:=copy(s,i,length(s));

То же самое с циклом
Repeat …
Until…

Разрезка строки 9

i:=1;  repeat    s1:=s1+s[i];   i:=i+1;  until (s[i]=' '); i:=i+1;

Слайд 11k:=1;
for i:=1 to length(s)do
begin
if (k=1) And (s[i]' ') then

s1:=s1+s[i];
if (k=2) And (s[i]' ') then s2:=s2+s[i];
if (k=3) And (s[i]'

') then s3:=s3+s[i];
if s[i]=' ' then k:=k+1;
end;

Номер слова



Если номер слова 1 и это не пробел, заполняем переменную S1


Если встретился пробел, увеличиваем номер слова.

Разрезка строки 10

k:=1;for i:=1 to length(s)do beginif (k=1) And (s[i]' ') then s1:=s1+s[i];if (k=2) And (s[i]' ') then s2:=s2+s[i];if

Слайд 12i =1
i,1,length(s)

s1:=s1+s[i]

s2:=s2+s[i]

s3:=s3+s[i]
s[i]=' '
k:=k+1
Да
Нет
Да
Нет
Да
Нет
Да
Нет
(k=1) And (s[i]' ')
(k=2) And (s[i]' ')


(k=3) And (s[i]' ')
Разрезка строки

11
i =1i,1,length(s)s1:=s1+s[i]s2:=s2+s[i]s3:=s3+s[i]s[i]=' 'k:=k+1ДаНетДаНетДаНетДаНет(k=1) And (s[i]' ') (k=2) And (s[i]' ') (k=3) And (s[i]' ') Разрезка строки

Слайд 13Второе слово
Первое слово
i := Pos(' ', s);
s1 := Copy(s,1,i-1);
delete(s,1,i);
i :=

Pos(' ', s);
s2 := Copy(s,1,i-1);
delete(s,1,i);
s3:=s;

Номер первого пробела






Оставшуюся часть присваиваем S3
Копируем

часть строки до пробела в S1

Удаляем из S часть до первого пробела

Номер первого пробела (он до удаления был вторым)

Копируем часть строки до пробела в S2

Удаляем из S часть до второго пробела

Разрезка строки 12

Второе словоПервое словоi := Pos(' ', s);s1 := Copy(s,1,i-1);delete(s,1,i);i := Pos(' ', s);s2 := Copy(s,1,i-1);delete(s,1,i);s3:=s;Номер первого пробелаОставшуюся

Слайд 14i := Pos(' ', s)
s1 := Copy(s,1,i-1)
delete(s,1,i)
i := Pos(' ',

s)
s2 := Copy(s,1,i-1)
delete(s,1,i)
s3:=s

Первое слово

Второе слово
Третье слово
Разрезка строки

13
i := Pos(' ', s)s1 := Copy(s,1,i-1)delete(s,1,i)i := Pos(' ', s)s2 := Copy(s,1,i-1)delete(s,1,i)s3:=sПервое словоВторое словоТретье словоРазрезка строки

Слайд 15Имитация ввода строки.
Каждая переменная вводится по отдельности!
ch:char; - опишем переменную

для хранения одного символа.

repeat
read(ch);
s1:=s1+ch;
until ch=' ';
repeat

read(ch);
s2:=s2+ch;
until ch=' ' ;
readln(s3);
writeln(s1);
writeln(s2);
writeln(s3);



Повторять пока в переменной ch не окажется пробел


Вводим очередной символ


Добавляем символ к строке S1


Таким же образом заполняем S2


S3 просто вводим с клавиатуры

Разрезка строки 14

Имитация ввода строки.Каждая переменная вводится по отдельности!ch:char; - опишем переменную для хранения одного символа.repeat  read(ch);

Слайд 16k:=1;
for i:=1 to length(s)do
begin

if (s[i]' ') then a[k]:=a[k]+s[i];
if (s[i]='

') then k:=k+1;
end;
for i:=1 to k do writeln(a[i]);

a:array[1..255] of string; объявим массив слов, из которых состоит строка.

Начнем заполнение с первой ячейки массива




Перебираем от первой до последней буквы

Если символ не пробел, запоминаем его в k-ю ячейку массива


Если встретился пробел, переходим к следующей ячейке


Выводим массив слов на экран


Разрезка строки 15

k:=1; for i:=1 to length(s)do   begin   if (s[i]' ') then a[k]:=a[k]+s[i];

Слайд 17k:=1
i,1,length(s)
s[i]' '
a[k]:=a[k]+s[i]
s[i]=' '
k:=k+1
i,1,k
Вывод
a[i]
Да
Да
Нет
Нет
Заполнение массива словами
Вывод массива слов
Разрезка строки

16
k:=1i,1,length(s)s[i]' 'a[k]:=a[k]+s[i]s[i]=' 'k:=k+1i,1,kВыводa[i]ДаДаНетНетЗаполнение массива словамиВывод массива словРазрезка строки

Слайд 18Разрезка строки

17

a:='';
s:=s+' ';
for i:=1 to length(s)do
begin
if (s[i]<>' ') then a:=a+s[i];
if (s[i]=' ') then
begin
writeln(a);
a:='';
end;
end;

Переменная под первое слово


В конце строки добавим пробел




Повторяем до конца строки

Если символ не пробел, запоминаем его


Если символ пробел …


Выводим слово на экран


Готовим переменную для нового слова


Разрезка строки

Слайд 19a:=''
i,1,length(s)
s[i]' '
a:=a+s[i]
s[i]=' '
a:=''
Да
Да
Нет
Нет
s:=s+' '
Вывод
а
Вместо вывода может быть процедура

обработки переменной А
Обработка А
Разрезка строки

18
a:='' i,1,length(s)s[i]' 'a:=a+s[i]s[i]=' 'a:=''ДаДаНетНетs:=s+' 'Вывод аВместо вывода может быть процедура обработки переменной АОбработка АРазрезка строки

Слайд 20Коды символов

19


Английские заглавные начинаются с номера 65


Английские заглавные заканчиваются номером 90

Русские заглавные: 192 ≤ i ≤ 223
Русские строчные: 224 ≤ i ≤ 255
Английские заглавные: 65 ≤ i ≤ 90
Английские строчные: 97 ≤ i ≤ 122
Цифры: 48 ≤ i ≤ 57
Разница в кодах между заглавной и строчной -32

Коды символов

Слайд 21Функции ORD и CHR
Функция Ord(S) – определяет порядковый номер символа.


Функция Chr(i) – определяет символ с порядковым номером i

По номеру

255 выводим символ из кодовой таблицы Я

Коды символов 20

Функции ORD и CHRФункция Ord(S) – определяет порядковый номер символа. Функция Chr(i) – определяет символ с порядковым

Слайд 22begin
writeln('Русская заглавная А имеет код -',ord('А'));
writeln('Русская заглавная Я имеет код

-',ord('Я'));
writeln('Русская строчная а имеет код -',ord('а'));
writeln('Русская строчная я имеет код

-',ord('я'));
r:=ord('а')-ord('А');
writeln('разница между строчной и заглавной = ',r:5);
writeln('Английская заглавная А имеет код -',ord('A'));
writeln('Английская заглавная Z имеет код -',ord('Z'));
writeln('Английская строчная a имеет код -',ord('a'));
writeln('Английская строчная z имеет код -',ord('z'));
End.

Коды символов 21

beginwriteln('Русская заглавная А имеет код -',ord('А'));writeln('Русская заглавная Я имеет код -',ord('Я'));writeln('Русская строчная а имеет код -',ord('а'));writeln('Русская строчная

Слайд 23begin
for i:=0 to 255 do
write(i,' - ',chr(i),';');
End.

Перебираем коды символов
Выводим


код символа – символ;

Коды символов

22
beginfor i:=0 to 255 do write(i,' - ',chr(i),';');End.Перебираем коды символовВыводим код символа – символ; Коды символов

Слайд 24x:=1;y:=1;
for i:=30 to 255 do
begin
gotoxy(x,y);
writeln(i,'-',chr(i),';

');
y:=y+1;
if (y mod 25 = 0)

then begin
x:=x+8;
y:=1;
end;

end;

Координаты начала первой строки


Устанавливаем курсор в позицию X,Y


Выводим символ и его код.


Переходим к следующей строке


Если это 25 строка то…


Переходим к следующему столбику и начинаем с первой строки


Коды символов 23

x:=1;y:=1;for i:=30 to 255 do begin  gotoxy(x,y);  writeln(i,'-',chr(i),'; ');  y:=y+1;  if (y mod

Слайд 25Коды символов

24
Коды символов

Слайд 26Задача 2. Составить программу которая считает сколько русских и сколько

английских букв в строке введенной с клавиатуры.
write('введи строку');readln(a);

s:=0;
s1:=0;
for i:=1 to length(a) do
begin
b:=ord(a[i]);
if(b>=65)and(b<=90)or
(b>=97)and(b<=122)then s:=s+1;
if(b>=192)and(b<=255)then s1:=s1+1;
end;
writeln(s,'-английских букв');
writeln(s1,'-русских букв');

Пусть количество букв равно нулю




Перебираем буквы в строке




Определяем код буквы

Английские буквы

Русские буквы

Коды символов 25

Задача 2. Составить программу которая считает сколько русских и сколько английских букв в строке введенной с клавиатуры.write('введи

Слайд 27Задача 2. Составить программу которая считает сколько русских и сколько

английских букв в строке введенной с клавиатуры.
write('введи строку');readln(a);

s:=0;
s1:=0;
for i:=1 to length(a) do
begin
b:=ord(a[i]);
if(b in [65..90])or
(b in [97..122])then s:=s+1;
if(a[i] in ['А'..'Я']) or
(a[i] in ['а'..'я'])then s1:=s1+1;
end;
writeln(s,'-английских букв');
writeln(s1,'-русских букв');

Код символа как элемент множества


Символ, как элемент множества


Коды символов 26

Задача 2. Составить программу которая считает сколько русских и сколько английских букв в строке введенной с клавиатуры.write('введи

Слайд 28Задача 3. Составить программу заменяющую все заглавные буквы на строчные.

В строке вводятся русские и латинские буквы вразнобой.
write('введи строку'); readln(a);
for

i:=1 to length(a) do
begin
b:=ord(a[i]); if(b<=90)and(b>=65)or(b<=223)and(b>=192) then
begin
b:=b+32;
a[i]:=chr(b);
end;
end;
writeln(a);



Перебираем буквы в строке


Определяем код буквы


Если буква заглавная


Увеличиваем код буквы на 32


Заменяем букву в строке на новую

Коды символов 27

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

Слайд 29Задача 4. С клавиатуры вводится строка из заглавных русских букв.

Подсчитать сколько каждых букв по отдельности в этой строке. (Например:

А-10, Б-2, В-4 и т.д.)

var a:string;
s:array[1..33] of integer;
b,i:integer;
begin
clrscr;
write('введи строку{русские заглавные}');
readln(a);
for i:=1 to length(a) do
begin
b:=ord(a[i]);
if(b>=192)and(b<=223)then s[b-191]:=s[b-191]+1;
end;
for i:=1 to 33 do
if (s[i]<>0) then writeln(chr(i+191),' - ', s[i]);
end.


Массив в котором будем запоминать количество букв



Перебираем буквы в строке


Определяем код буквы


Если буква русская заглавная увеличиваем количество таких букв в массиве


Выводим только те буквы, которые встретились в строке

Коды символов 28

Задача 4. С клавиатуры вводится строка из заглавных русских букв. Подсчитать сколько каждых букв по отдельности в

Слайд 30m :=RANDOM (А)
случайное число из интервала [0; А)

m :=RANDOM(B-A)+A;


случайное число из интервала [A ; B)

m :=RANDOM(B-A+1)+A;
случайное

число из интервала [A ; B]

Например:
Случайное число из интервала [10 ; 30].
А = 10, В = 30,
подставим в формулу
m :=RANDOM(B-A+1)+A;
m :=RANDOM(30-10+1)+10;
такую запись нужно упростить
m :=RANDOM(21)+10;

Коды символов 29

m :=RANDOM (А) случайное число из интервала [0; А)m :=RANDOM(B-A)+A; случайное число из интервала [A ; B)

Слайд 31begin
for i:=1 to 10 do begin
k:=random(3);

if k=0 then n:=random(25)+65;
if k=1 then n:=random(25)+97;

if k=2 then n:=random(9)+49;
s:=s+chr(n);
end;
writeln(s);
End.

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



Количество букв в пароле


Определяем тип символа (Заглавный, строчный, цифра)


В зависимости от типа случайным образом получаем код символа из интервала


Добавляем символ к паролю

Коды символов 30

begin  for i:=1 to 10 do begin  k:=random(3);  if k=0 then n:=random(25)+65;  if

Слайд 32Способы решения задач с дополнительной переменной и без

31

Задача 6. Составить программу удаляющую «лишние» пробелы между словами, то есть слова должны быть разделены одним пробелом.

write('введи строку'); readln(s);
i := 1;
while i < length(s) do
begin
if (s[i] = ' ') and (s[i + 1] = ' ')
then begin
delete(s, i, 1);
i:=i-1;
end;
i:=i+1;
end;
writeln(s);



С первой буквы и пока i меньше длины строки


Если на i-ом месте пробел и после него пробел то…


Удаляем пробел, и возвращаемся на один символ назад


Переходим к следующему символу

Способы решения задач с дополнительной переменной и без

Слайд 33Задача 6. Составить программу удаляющую «лишние» пробелы между словами, то

есть слова должны быть разделены одним пробелом.
writeln('Введи строку');readln(s);
s1:=s[1];
for i:=2

to length(s) do
if (s[i]<>' ') or (s[i-1]<>' ')
then s1:=s1+s[i];
s:=s1;
writeln(s);


Первая буква новой строки


Перебираем от второй буквы до последней


Если на i-ом месте не пробел или перед ним не пробел то заносим символ в S1


Заменяем S на строку без лишних пробелов

Способы решения задач с дополнительной переменной и без 32

Задача 6. Составить программу удаляющую «лишние» пробелы между словами, то есть слова должны быть разделены одним пробелом.

Слайд 34А
Б
В



Г
Д
Е
(s[i-1]' ') or (s[i]' ')
А
В
ПОДХОДИТ
ПОДХОДИТ
ПОДХОДИТ
НЕПОДХОДИТ
НЕПОДХОДИТ
ПОДХОДИТ
ПОДХОДИТ
ПОДХОДИТ
Способы решения задач с дополнительной

переменной и без

33
АБВГДЕ(s[i-1]' ') or (s[i]' ') АВПОДХОДИТПОДХОДИТПОДХОДИТНЕПОДХОДИТНЕПОДХОДИТПОДХОДИТПОДХОДИТПОДХОДИТСпособы решения задач с дополнительной переменной и без

Слайд 35Задача 7. Составить программу переворачивающую строку, все символы которой идут

в обратном порядке относительно исходной.
writeln('Введи строку'); readln(s);
for i :=

1 to length(s) div 2 do
begin
tmp := s[i];
s[i] := s[length(s) - i + 1];
s[length(s) - i + 1] := tmp;
end;
writeln(s)



Перебираем буквы до середины строки


Обмениваем местами буквы относительно середины строки

Способы решения задач с дополнительной переменной и без 34

Задача 7. Составить программу переворачивающую строку, все символы которой идут в обратном порядке относительно исходной. writeln('Введи строку');

Слайд 36A
Б
В
Г
Д
Е
Ж
З
И
A
Б
В
Г
Д
Е
Ж
З
И
length(s) - i + 1
i
1
9-1+1 = 9








2
3
4
И
З
Ж
Е
Д
Г
В
Б
А
9-2+1 = 8
9-3+1 =

7
9-4+1 = 6
Способы решения задач с дополнительной переменной и без

35
AБВГДЕЖЗИAБВГДЕЖЗИlength(s) - i + 1i19-1+1 = 9234ИЗЖЕДГВБА9-2+1 = 89-3+1 = 79-4+1 = 6Способы решения задач с дополнительной

Слайд 37Задача 7. Составить программу переворачивающую строку, все символы которой идут

в обратном порядке относительно исходной.
writeln('Введи строку'); readln(s);
p := length(s);
s1

:= '';
for i := p downto 1 do s1 := s1 + s[i];
s:=s1;
writeln(s1)


Определяем длину строки


Перебираем буквы с последней до первой и переносим их в переменную S1


Заменяем содержимое S на перевернутую строку

Способы решения задач с дополнительной переменной и без 36

Задача 7. Составить программу переворачивающую строку, все символы которой идут в обратном порядке относительно исходной. writeln('Введи строку');

Слайд 3837
Список используемой литературы:

1. Основы программирования. И. Г. Семакин, А. П.

Шестаков Издательство: Высшая школа, 2001
2. 100 задач по программированию. В.

А. Дагене, Г. К. Григас, К. Ф. Аугутис Издательство: Просвещение 1993
3. Паскаль для школьников, Подготовка к ЕГЭ, Кашаев С.М., Шерстнева Л.В., 2011.


http://inf.reshuege.ru/ - сайт РЕШУ ЕГЭ Информатика
http://progbook.ru/pascal/1365-semakin-shestakov-osnovy-programmirovaniya.html – картинка к книге И. Г. Семакина
http://progbook.ru/pascal/1193-dagene-100-zadach-po-programmirovaniyu.html - картинка к книге В.А. Дагене
http://nashol.com/2012051065220/paskal-dlya-shkolnikov-podgotovka-k-ege-po-informatike-kashaev-sherstneva-2011.html -картинка к книге С.М. Кашева.

Интернет источники:

37Список используемой литературы:1. Основы программирования. И. Г. Семакин, А. П. Шестаков Издательство: Высшая школа, 20012. 100 задач

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика