Литерные переменные - школа 73. воронеж.

advertisement
А Л Г О Р И Т М И З А Ц И Я
И
П Р О Г Р А М М И Р О В А Н И Е
(ЛОГИЧЕСКИЕ,
СИМВОЛЬНЫЕ И
ЛИТЕРНЫЕ ВЕЛИЧИНЫ.)
( ЧАСТЬ V)
Методическое пособие для учащихся
общеобразовательных классов.
Настоящее пособие подготовлено в помощь учащимся и
учителю ОИВТ по изучению темы "Логические, символьные
и литерные переменные". При объяснении принципов
построения
алгоритмов
использован
алгоритмический
язык. Основным языком программирования в пособии
считается
язык
Pascal.
В
пособии
разобран
ряд
интересных алгоритмов. Некоторые из них учитель может
оставить для самостоятельного изучения учащимися.
Разобранные
алгоритмы
можно
использовать
для
составления
более
сложных
программ.
В
пособии
содержатся
задачи
для
самостоятельной
работы
и
контрольные вопросы. Изучение материала рассчитано на
10
уроков.
Методическое
пособие
может
быть
использовано для преподавания в 10-11 классах.
Литература:
1.
2.
Составила учитель ОИВТ
Школы №73
Богданова О.А.
3.
4.
5.
2001 г.
Основы информатики и вычислительной техники.
Пробный учебник для 10-11 классов средней
школы. Москва 1994 г.
Кушниренко А.Г., Лебедев Р.А., Сворень Р.А.
Основы информатики и вычислительной техники.
Москва 1990 г.
Поснова М.Ф., Стрикелева Л.В., Поснов Н.Н.ЭВМ
для всех. Для чего и как работают персональные
компьютеры. Минск 1990 г.
Файсман А. Профессиональное программирование на
Турбо Паскале. 1992 г.
Измайлов А.А. Главы из задачника. Информатика N
33. Сентябрь. 1995 г.
2
1. Тип величины.
2. Логические величины.
Мы уже видели, что в языках программирования есть
величины разных типов, например целые и вещественные.
ЦЕЛЫЕ ВЕЛИЧИНЫ:
 цел - алгоритмический язык;
 %
- суффикс, добавляемый к имени такой величины
в языке Бейсик;
 integer - язык Паскаль. Значением такой величины
может быть любое целое число из диапазона от 32767 до +32767.
ВЕЩЕСТВЕННЫЕ ВЕЛИЧИНЫ:
 вещ - алгоритмический язык;

- язык Бейсик - у имени переменной нет
суффикса;
 real- язык Паскаль.
Значением такой величины может быть любое число,
содержащее дробную часть (дробная часть может быть
равной нулю). Число может быть представлено как
действительное число с фиксированной точкой или как
действительное число с плавающей точкой.
Логическая величина может принимать только одно из
двух логических значений:
- либо ДА (истина - true) ,
- либо НЕТ (ложь - false).
Служебные слова, используемые при описании такой
величины:
лог – алгоритмический язык.
Boolean – язык Pascal.
Это Булевское выражение, которое либо истинно, либо
ложно. Для установки или изменения значения величины
можно использовать команду логического присваивания:
Тип величины определяет:
a) какие значения может принимать величина в
процессе выполнения алгоритма;
b) в каких выражениях и как эту величину можно
использовать.
Для того чтобы ЭВМ могла обрабатывать тексты, она
должна уметь оперировать не только с числами, но и
со словами.
С помощью ЭВМ можно решать весьма разнообразные
задачи обработки текстов: от составления платежных
ведомостей до автоматической верстки газет.
имя величины := условие (логическое выражение);
ПРИМЕР:
M:=(0<t<1) и (A>0);
M:=((t>0) and (t<1)) and (A>0);
При выполнении команды логического присваивания ЭВМ
проверяет записанное справа условие (вычисляет
логическое выражение). Условие проверяется так же,
как проверяется условие в командах ПОКА и ЕСЛИ. В
результате проверки получается либо ДА (условие
соблюдается), либо НЕТ (условие не соблюдается).
Логические величины можно использовать в логических
выражениях:
команды:
если М то k:=k+1 все
пока М или R<2
нц
 ком. цикла
кц
При проверки таких условий ЭВМ просто подставляет
вместо имени логической величины ее значение.
Пример 1: Написать алгоритм для вычисления A:
A =
 NM*NM , если NM>0;

 NM ,
если NM<=0;
3
Вариант 1:Алгоритмический язык.
АЛГ ПРОВА (М ЛОГ MN,A ЦЕЛ)
АРГ MN
РЕЗ А
НАЧ
M:= NM>0;
ЕСЛИ М
ТО А:= NM*NM
ИНАЧЕ А:= NM
ВСЕ
КОН
Вариант 2: язык Паскаль.
program proba;
var
M:boolen;
MN,A:integer;
begin
write('введи NM -');
readln(NM);
M:=NM>0;
if M
then A:=NM*NM
else A:=NM;
writeln('A=',A);
end.
Пример 2: Дана последовательность положительных
чисел A1, B1, C1, A2, B2, C2, ... An, Bn, Cn (числа
вводятся с клавиатуры), из которых можно составлять
тругольники. Составить алгоритм отвечающий на вопрос:
Есть хоть одна тройка чисел, из которой можно
составить прямоугольный треугольник?
Алгоритм: В цикле будем вводить тройки чисел и
проверять их. Ввод троек чисел необходимо закончить в
том случае:
а) если ввели всю последовательность чисел;
б) нашли нужную тройку чисел.
Признаком окончанием ввода будет служить ввод Ai
меньшего или равного нулю, так как такого значения
длина стороны треугольника иметь не может. Перед
началом просмотра считаем, что нужной тройки чисел в
последовательности нет. Значение логической
переменной будет "нет". Если встретим нужную тройку
чисел, то поменяем значение переменной на "да".
Вариант 1: Алгоритмический язык.
АЛГ ЗАДАЧА (А,B,C ВЕЩ)
АРГ A,B,C
РЕЗ сообщение
НАЧ D ЛОГ
ПОВТОРЯТЬ
ВЫВОД (“Введите числа :”)
ВВОД (A,B,C)
D:= (A**A+B**B=C**C) или (B*B+C*C=A*A) или
(C**C+A*A=B*B)
ДО A<0 или D
Если D
ТО вывод(“Есть нужная тройка чисел.”)
ИНАЧЕ вывод(“Нет такой тройки чисел.”)
ВСЕ
КОН
Вариант 2: Язык Паскаль:
Program TASK;
uses crt;
var d:boolean;
a,b,c:real;
begin
repeat
write ('Введите тройку чисел: ');
readln(a,b,c);
d:= (a*a+b*b=c*c) or (b*b+c*c=a*a)
or (c*c+a*a=b*b);
until (a<=0) or (d);
if d
then writeln ('Есть нужная тройка чисел
последовательности.')
else writeln ('Нет нужной тройки чисел
последовательности.');
end.
в
в
4
4. СИМВОЛЬНЫЕ ВЕЛИЧИНЫ.
Задание для самостоятельной работы:
Определите значение величины Q после выполнения
каждой из следующих команд присваивания:
1) Q:=да
2) Q:= не Q
3) Q:= A<B<C и Q
4) Q:= Q или (A+B=C)
5) Q:= 0>1
6) Q:= 1>0
если перед выполнением A=1,B=2,C=3 ,Q=нет
3. ОСНОВНЫЕ ПОНЯТИЯ.
Для того чтобы ЭВМ могла обрабатывать тексты, она
должна уметь оперировать не только с числами, но и со
словами.
СЛОВОМ или СТРОКОЙ в информатике принято считать
любую последовательность символов некоторого
алфавита.
АЛФАВИТ - упорядоченная определенным образом
совокупность взаимно различных знаков.
Число символов в слове назовем его ДЛИНОЙ.
Длина пустого слова равна нулю.
Для работы со словами нам нужно научиться:
1) выделять в слове его части;
2) соединять слова в предложение или новое
слово;
3) сравнивать слова:
а) на равенство и неравенство;
б) на больше, меньше.
Каждый символ имеет свой код и, поэтому, сравнение
происходит по кодам символов. Латинские буквы
закодированы в алфавитном порядке. Русские буквы чаще
всего не закодированы в алфавитном порядке, поэтому
операции сравнения на больше или меньше для них
не всегда имеют смысл. В языке Паскаль русские буквы
закодированы по порядку, но внутри этого ряда
вставлены символы.
Значением символьной величины является один символ:
русская или латинская большая или маленькая буква,
цифра, знак препинания или специальный знак
(например, "+", "*", "/" и другие).
Существует также символ " ", который называется
пробелом и используется для разделения слов в
последовательности символов.
Всего символьная величина может принимать 256
различных значений. В алгоритмическом языке
символьные значения записываются в кавычках, а в
языке Паскаль - в апострофах.
Служебные слова для описания этого типа переменных:
Алгоритмический язык – СИМ.
Язык Паскаль
- char.
5. ЛИТЕРНЫЕ ВЕЛИЧИНЫ.
Значением литерной величины является строка
символов переменной длины.
Служебные слова для обозначения этого типа
переменных:
Алгоритмический язык - ЛИТ
Язык Паскаль
- string.
Для обозначения i-го элемента литерной величины T в
алгоритмическом языке и в языке Паскаль используется
запись T[i].
В алгоритмическом языке и языке Бейсик литерные
значения записываются в виде строки символов,
заключенных в кавычки, а в языке Паскаль - в
апострофах.
После выполнения команды
Т:="КРОКОДИЛ"
на Алгоритмическом яз.
Т:='КРОКОДИЛ';
на яз. Паскаль
значением литерной величины T станет
последовательность из 8 символов.
К
1
Р
2
О
3
К
4
О
5
Д
6
И
7
Л
8
5
Машина будет знать номер каждой буквы. И по этому
номеру мы сможем обратиться к любой букве нашего
слова.
T[3] - буква О.
T[6] - буква Д.
5.1 Количество букв в слове можно узнать с
помощью следующих команд:
D: integer;
D:= LENGTH(C);
5.2 Выделение из слова его части.
S:=COPY(SI,I,J) -> из исходной строки SI
выделяется подстрока.
I - номер символа с которого начинается выделение и
J - сколько символов необходимо взять.
5.3 Удаление символа из слова.
DELETE(SI,I,J) -> процедура удаляющая из строки SI
начиная с I-того символа J символов.
Пример:
SI:='кооперация';
DELETE(SI,3,1);
После работы процедуры DELETE в SI будет слово
'коперация' и оно будет на один символ короче.
5.4 Добавление символов в строку.
INSERT(S,SI,I); -> добавляет в исходную строку SI
слово S, где I номер символа с которого происходит
добавление.
5.5 Поиск символов в строке.
J:=POS(S,SI); -> в строке SI ищет слово S.
Результатом будет номер символа, с которого
начинается искомое слово. Если J равно нулю, то
значит ничего не нашли.
5.5 Соединение нескольких слов в одно.
Для соединения используется знак +.
C:=A+B;
Пример:
A,B,C:string;
A:=’зеленый’; B:=’крокодил’;
C:=A+B;
Writeln(C);
На экране будет напечатано:
зеленыйкрокодил
Для разделения этих слов строчку программы
переписываем:
С:=A+’ ‘+B;
5.6 Очистка слова.(Сделать длину слова равной
нулю.)
А:='';
5.7 Команды преобразования численного значения
в его строковое представление и обратные
действия.
X:REAL;
S:STRING;
Процедура STR(X,S); переводит численное значение Х
в его строковое представление S.
Если X:=67.89, то S будет равно '67.89'.
Процедура VAL(S,X,code); преобразует строковое
значение S в его численное представление X. Если
представление невозможно, то переменная code будет
отлична от нуля.
5.8 Команды для преобразования типов.
var S:char;
n:integer;
S:=CHR(n);->возвращает символ код которого равен n.
n:=ORD(s);->возвращает код символа в таблице
ASCII.
6. АЛГОРИТМЫ ДЛЯ РАБОТЫ С ЛИТЕРНЫМИ
ВЕЛИЧИНАМИ.
6.1 Составить алгоритм, распечатывающий ваше фамилию и
имя разноцветными буквами на экране.
Алгоритм программы:
Из введенного с клавиатуры слова выделяем по одной
букве, раскрашиваем эту букву и печатаем.
Обозначения:
В переменной IM хранится распечатываемый текст. В
переменной D хранится количество распечатываемых
букв. Переменная I показывает, какую букву мы
печатаем.
program fam;
uses crt;
var c,i,d,x,y:integer;
6
im:string;
begin
clrscr;
write('Ведите текст ');readln(im);
d:=length(im); y:=10;
for i:=1 to d do
begin
c:=trunc(random(15)+1);
textcolor(c);
gotoxy(i,y);
writeln(im[i]);
y:=y+1;
end;
end.
На экране текст ИВАНОВ ПЕТЯ напечатается по
вертикали в столбик.
При печати текста по диагонали необходимо изменить
в программе несколько строк:
for i:=1 to d do
begin
c:=trunc(random(15)+1);
textcolor(c);
gotoxy(i,i+2);
writeln(im[i]);
end;
6.2 Алгоритм подсчитывающий количество букв "а" в тексте.
Просматриваем каждую букву текста и сравниваем ее с
буквой "а". Если буквы одинаковые, то включаем
счетчик.
Обозначения:
В переменной T хранится исходный текст.
В переменной D хранится длина текста.
Переменная I хранит номер буквы, с которой мы
работаем.
Переменная k считает количество сравнений.
program fam;
uses crt;
var k,i,d:integer;
im:string;
begin
clrscr;
write('Ведите текст ');readln(im);
d:=length(im);k:=0;
for i:=1 to d do
if im[i]=’a’ then k:=k+1;
writeln(‘Количества букв «а» равно ’;k);
end.
После окончания цикла в переменной k
будетсодержатся количество букв "а" в тексте.
6.3. Алгоритм, отвечающий на вопрос: "Есть ли буква "А" в
тексте?".
В булевской переменной ОТ будет содержатся ответ,
есть или нет буква "А" в тексте. Перед началом
сравнения будем считать, что нужной буквы нет и
значением ОТ будет FALSE. Каждую букву слова будем
сравнивать с буквой "А". Если сравнение произойдет,
то переменной ОТ присвоим значение TRUE и закончим
поиск. Если не найдем нужной буквы, то значение
переменной ОТ останется без изменения.
Обозначения:
Т -> содержит текст, в которым ищем букву "а".
D -> колличество букв в тексте.
I -> номер буквы, которую сравниваем.
ОТ ->булевская переменная.
После окончания цикла в переменной OT будет
содержатся нужное значение.
program task;
uses crt;
var i,d:integer;
t:string;
ot:boolean;
begin
clrscr;
write('Ведите текст ');readln(t);
d:=length(t);
i:=1; ot:=falsе;
repeat
if t[i]='A'
then ot:=true;
i:=i+1;
untul (i>d) or ot;
if ot
then writeln('есть нужная буква')
else writeln('нет нужной буквы');
7
end.
7.Алгоритмы, работающие с кодами букв.
7.1. Составить алгоритм, отвечающий на вопрос: "Есть ли
цифры в слове".
Во время проверки совсем необязательно каждый
символ сравнивать с 0,1,2,..9. Цифры, как и маленькие
и большие латинские буквы закодированы по порядку.
Поэтому, если код выбранного символа больше или равен
коду нуля и меньше или равен коду девяти, то можно
утверждать, что это цифра.
program task;
uses crt;
var c,i,d:integer;
im:string;
b:boolean;
begin
clrscr;
write('Ведите текст ');readln(im);
d:=length(im);
b:=FALSE;
for i:=1 to d do
if (ord(im[i])>=ord(‘0’)) and
((ord(im[i])<=ord(‘9’)) then b:=true;
if b then writeln(‘Есть цифры в тексте.’)
else writeln(‘Нет цифр в тексте.’);
end.
Аналогично:
- если код символа больше или равен ORD(‘a') и
меньше или равен ORD(‘z’), то наш символ
маленькая латинская буква;
- если код символа больше или равен ORD(‘A’) и
меньше или равен ORD(‘Z’), то наш символ
большая латинская буква;
Подобные условия могут быть составлены и для
русских букв. Но эти условия мы должны согласовать с
алфавитом.
7.2. В слове есть маленькие латинские буквы. Переписать
его в другое слово, заменив все маленькие латинские буквы на
большие.
При составлении алгоритма используем то, что
разница между кодами маленьких и больших латинских
букв постоянна.
Например
ORD(‘A’)-ORD(‘a’)=ORD(‘D’)-ORD(‘d’)
Коды маленьких латинских букв больше кодов больших
латинских букв.
program zamena;
uses crt;
var T,ZT:string;
I,D,R:integer;
begin
clrscr;
writeln('программа замены букв ');
writeln('программа составлена Светой ');
write('введи слово -');readln(T);
ZT:='';
D:=length(T);
R:=ord('A')-ord('a');
for I:=1 to d do
begin
IF (ord(T[I])>=ord('a')) and (ord(T[I])<=
ord('z')) then T[I]:=chr(ord(T[I]+r);
ZT:=ZT+T[I];
end;
writeln ('резуьзат - ',ZT);
readln;
end.
8. Алгоритмы шифровки и расшифровки
текстов.
8.1 Тарабарская грамота.
Способ шифровки следующий. Все согласные буквы
русской азбуки записываются в два ряда; одна половина
букв вверху, другая половина - внизу, причем в
обратном порядке (одна буква под другой).
Б В Г Д Ж З К Л М Н
Щ Ш Ч Ц Х Ф Е С Р П
8
При зашифровки слов согласные взаимно заменялись, а
остальные буквы и символы оставались на своих местах
без изменения.
Разработка алгоритма шифровки.
TEXT -> в эту переменную с клавиатуры вводится текст
для шифровки или дешифровки.
RTEXT -> в этой переменной будет находится
результат.
M1 -> эта переменная будет хранить буквы верхнего
ряда.
M2 -> эта переменная будет хранить буквы нижнего
ряда.
Организуем цикл, выделяющий по одной букве из
переменной TEXT. Выделенную букву поищем в переменной
M1. Если найдем, то к переменной RTEXT присоединим
букву с этим же номером из переменной M2.
Если в переменной M1 ничего не нашли, то поищем в
переменной M2. Если найдем в переменной M2, то к
результату присоединим букву с этим же номером из
переменной M1.
Если в переменных M1 и M2 ничего не нашли, то
присоединяем выделенный символ.
По одному и тому же алгоритму можно зашифровывать и
расшифровывать текст.
PROGRAM SHIFR;
USES CRT;
VAR
B:BOOLEAN;
M1,M2,TEXT,RTEXT:STRING;
A:CHAR;
N,I,D:INTEGER;
PROCEDURE POISK(VAR N:INTEGER;M:STRING);
VAR I:INTEGER;
BEGIN
FOR I:=1 TO 10 DO
IF A=M[I] THEN BEGIN B:=TRUE;N:=I;END;
END;
BEGIN
CLRSCR;
M1:='ЦКНГШЩЗХФВ';
M2:='ПРЛДЖЧСМТБ';
TEXTCOLOR(2);
WRITELN('ПРОГРАММА ШИФРОВКИ И РАСШИФРОВКИ
ТЕКСТА');
WRITE('ВВЕДИТЕ ТЕКСТ:');
READLN(TEXT);
D:=LENGTH(TEXT);
RTEXT:='';
FOR I:=1 TO D DO
BEGIN
A:=TEXT[I];
B:=FALSE;
POISK(N,M1);
IF B THEN A:=M2[N];
IF NOT(B) THEN BEGIN
POISK(N,M2);
IF B THEN A:=M1[N];
end;
RTEXT:=RTEXT+A;
END;
WRITELN('зашифрованный текст -->',RTEXT);
READLN;
END.
8.2. Шифровка текста по ключевой фразе.
Пусть дана ключевая фраза "ОТЫЩИ ВСЕМУ НАЧАЛО И ТЫ
МНОГОЕ ПОЙМЕШЬ. КОЗЬМА ПРУТКОВ". В ключевой фразе
слова разделяются одним пробелом и пробел считается
тоже символом. По этой фразе мы желаем зашифровать
текст "ШКОЛА". Выписываю номера букв в ключевой
фразе:
36 40 1 17 14
Этот набор цифр и будет нашей шифровкой. Конечно в
ключевой фразе должны содержатся все нужные нам буквы
и символы.
8.3. Шифровка текста по кругу.
PROGRAM SHIFR;
USES CRT;
VAR
B:BOOLEAN;
M,TEXT,RTEXT:STRING;
A:CHAR;
9
N,I,D,K:INTEGER;
PROCEDURE POISK(VAR N:INTEGER);
VAR D,I:INTEGER;
BEGIN
D:=LENGTH(M);D:=D DIV 2;
FOR I:=1 TO D DO
IF A=M[I] THEN N:=I;
END;
BEGIN
CLRSCR;
M:='ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЙЦУКЕНГШЩЗХЪФЫВАП
РОЛДЖЭЯЧСМИТЬБЮ';
TEXTCOLOR(2);
WRITELN('ПРОГРАММА ШИФРОВКИ ТЕКСТА ПО КРУГУ ');
WRITE('ВВЕДИТЕ ТЕКСТ:');
READLN(TEXT);
WRITE('ВВЕДИТЕ СДВИГ:');
READLN(K);
D:=LENGTH(TEXT);
RTEXT:='';
FOR I:=1 TO D DO
BEGIN
A:=TEXT[I];
POISK(N);
N:=N+K;
RTEXT:=RTEXT+M[N];
END;
WRITELN('зашифрованный текст -->',RTEXT);
READLN;
END.
9. Алгоритмы организации бегущего текста.
9.1 Составить алгоритм, печатающий бегущею строку в
середине экрана.
Пусть по экрану пробежит срока – РЕКЛАМНАЯ ПАУЗА. В
литерной переменной запомним ее содержание.
ST:="РЕКЛАМНАЯ ПАУЗА".
Строка будет двигаться справа налево. Текст должен
выезжать на экран и выезжать.
program TEXT;
uses crt;
var st:string;
x,y,i,d,c:integer;
begin
ClrScr;
st:='Р Е К Л А М Н А Я
П А У З А';
d:=length(st);
y:=15;
for x:=80 downto -d do
begin
for i:=1 to d do
begin
c:=trunc(random(15)+1);
textcolor(c);
if (x+i>0) and (x+i<80) then
begin
gotoxy(x+i,y);
write(st[i]);
end;
end;
delay(100);
ClrScr;
end;
readln;
end.
9.2 Составить алгоритм, печатающий бегущею строку
начиная с левого угла и смещающеюся к правому углу экрана.
Y - номер строки, на которой печатается текст.
X - номер столбика, с которого на строке начинается
печать бегущего текста.
I - номер выделенной буквы для печати.
ST- переменная, в которой находится бегущей текст.
На строке с номером Y от позиции X разноцветными
буквами печатается введенный текст. Причем печатается
та его часть, которая умещается на строке.
Напечатанный текст стирается а затем печатается на
новой строке. Начало печати X все время смещается.
10
Вопросы для проверки знаний:
1. Что такое алфавит? Сколько и какие символы входят
в него?
2. Что такое слово? Есть ли понятие предложения?
3. Что такое длина слова?
4. Как происходит сравнение слов на равенство?
5. Как слова сравниваются на больше и меньше?
6. Какие значения принимает логическая переменная?
7. Что за команда "логическое присваивание"?
8. Что мы называем логическим выражением?
9. Как машина работает с логическими переменными?
10. Какие значения принимает символьная переменная?
11. Какие значения принимает литерная переменная?
12. Как литерная переменная располагается в памяти
машины?
13. Как можно обратится к конкретному символу
литерной переменной?
14. Как определить длину литерной переменной?
15. Как выделить из литерной переменной части?
16. Как узнать код любого символа и как по коду
получить символ?
Задачи для самостоятельной работы:
Задача 1. Определить, является ли заданный текст:
1. правильной записью целого числа.
2. правильной записью целого числа, кратного 5;
3. правильной записью целого числа, кратного 10;
4. правильной записью четного целого числа;
5. правильной записью нечетного целого числа;
Задача 2. Напечатать заданный текст, удалив из него
все пробелы.
Задача 3.Напечатать заданный текст, заменив все "+"
на "-".
Задача 4. Напечатать заданный текст, удалив из него
по одному символу, стоящему за буквой "а".
Задача 5.Напечатать из заданного текста сначала
цифры, а потом остальные символы.
Задача 6. Строка вводится посимвольно. Конец ввода
".". Указать номер первой запятой.
Задача 7. Напечатать из заданного текста все сим
волы:
а) от начала до первой "*";
б) от первой "*" и до конца;
в) от первой "*" и до второй "*".
Задача 8. Напечатать заданный текст заменив все
маленькие латинские буквы большими латинскими
буквами.
Задача 9. Проверить, есть ли в заданном тексте
маленькие латинские буквы.
Задача 10. В заданном тексте удвоить "=", а "-"
удалить.
Задача 11. Проверить, есть ли во вводимом посимвольно
тексте цифры. Окончание ввода ".".
Задача 12. Проверить, является ли введенный текст
правильной записью десятичной дроби.
Задача 13. Проверить :
а) есть ли в тексте буквы из слова "кот";
в) сколько раз встречается в тексте каждая буква
из слова "кот".
Задача 14. В тексте допущена ошибка. Вместо "мишки"
везде напечатано слово "мышка". Исправить ошибку.
Задача 15. С клавиатуры вводится строка из 6 символов
(ММДДГГ).
а) определить по вводимой дате день недели (1
января считать понедельником );
б) распечатать дату, заменив номер месяца на
наименование.
ПРИМЕР:
Вводится -> 140396
а) 102496 - четверг
б) 24 октября 1996 года
Задача 16. Составить программу, которая вводит текст
телеграммы и ее вид (простая или срочная) и вычисляет
ее стоимость.
-одна буква простой телеграммы стоит 1 рубль;
-одна буква срочной телеграммы стоит 2 рубля;
За подачу простой телеграммы 1рубль, а за
подачу срочной телеграммы 2 рубля.
Примечание: За пробелы деньги не берутся.
Задача 17. Текст вводится посимвольно и записывается
в литерную переменную. Записать в литерную переменную
только не повторяющиеся символы.
Задача 18. Проверить, есть ли в введенном тексте пара
одинаковых символов.
11
Задача 19. Строка вводится по одному символу. Есть ли
среди введенных символов группа из рядом трех стоящих
точек.
Задача 20. Написать алгоритм шифровки и дешифровки
текста в случае, если в добавлении к согласным буквам
гласные тоже заменяются по аналогичному для согласных
правилу:
А Е Е И O
Я Ю Э Ы У
Задача 21. Написать алгоритм шифровки и дешифровки
текста в случае, если гласные буквы заменяются на
цифры: АЕЕИОЯЮЭЫУ
0987654321
Остальные символы остаются на своих местах.
Задача 22. Написать алгоритм шифровки и дешифровки
текста для случая, когда гласные и согласные буквы
заменяются в соответствии с таблицей:
БВГДЖЗКЛМНПРСТФ
АУИОУЫЭЮЯЩШЧЦХЬ
Задача 23. Написать алгоритм шифровки, пользуясь
методом циклического сдвига букв алфавита.
А
1
Б
2
В
3
Г
4
Д
5
Е
6
Ж
7
З ... Э Ю Я
8
30 31 32
Сдвигаемся на 3 буквы.
А меняем на Г
Б меняем на Д
.............
Э меняем на А
Ю меняем на Б
Я меняем на В
a) сдвиг на 3 буквы;
б) сдвиг на 1 букву;
в) сдвиг на 5 букв.
Задача 24. Написать алгоритм задачи 13 для сдвига на
N букв. ( N вводим с клавиатуры.)
Задача 25. Написать алгоритм для расшифровки текста
зашифрованного по алгоритму:
1) задачи 13 а), б), в)
2) задачи 14
Задача 26. Составить следующий алгоритм:
а) Строка выезжает на середину экрана и
останавливается.
б) Строка появляется на экране, а после этого буквы
начинают падать по одной на нижнюю строчку экрана.
в) Буквы сыпятся с верхней части экрана и встают на
свои места в тексте.
г) Текст появляется на середине экрана, а затем
уезжает влево (вправо) за экран.
д) Текст движется на экране по диагонали сверху вниз
(снизу вверх).
е) Текст перемещается с верхней строчки экрана в
нижнею .
ж) Строка перемещается с нижней строчки экрана в
верхнюю.
Задача 27. Составить алгоритм, удаляющий из
введенного слова все цифры.
Задача 28. В слове перед первой открывающийся скобкой
пропущен:
а) знак "+";
б) слово sin;
в) еще одна открывающая скобка.
Составить алгоритм добавления.
Задача 30. После математической функции sin в слове
пропущено:
а) открывающая скобка;
б) переменная А;
Cоставить алгоритм вставки.
Задача 31. Заменить в слове все маленькие латинские
буквы на знак "*".
Задача 32. Составит алгоритм, удваивающий все гласные
буквы.
Задача 33. Составить алгоритм, удаляющий из слова все
скобки.
Задача 34. Составить алгоритм, меняющий все буквы "r"
на "R".
Задача 35. Подсчитать в слове количество маленьких
латинских букв.
Задача 36. Составить алгоритм, меняющий первую букву
"r" на слово "радиус".
12
Содержание:
1. Тип величины. .............................................................................................2
2. Логические величины.................................................................................2
3. ОСНОВНЫЕ ПОНЯТИЯ. ..........................................................................4
4. СИМВОЛЬНЫЕ ВЕЛИЧИНЫ. ................................................................4
5. ЛИТЕРНЫЕ ВЕЛИЧИНЫ. ........................................................................4
6. АЛГОРИТМЫ ДЛЯ РАБОТЫ С ЛИТЕРНЫМИ ВЕЛИЧИНАМИ. ......5
6.1 Составить алгоритм, распечатывающий ваше фамилию и имя
разноцветными буквами на экране. .....................................................5
6.2 Алгоритм подсчитывающий количество букв "а" в тексте. .....6
6.3. Алгоритм, отвечающий на вопрос: "Есть ли буква "А" в
тексте?". .....................................................................................................6
7.Алгоритмы, работающие с кодами букв. ..................................................7
7.1. Составить алгоритм, отвечающий на вопрос: "Есть ли цифры
в слове". ......................................................................................................7
7.2. В слове есть маленькие латинские буквы. Переписать его в
другое слово, заменив все маленькие латинские буквы на
большие. .....................................................................................................7
8. Алгоритмы шифровки и расшифровки текстов. ......................................7
8.1 Тарабарская грамота. ........................................................................7
8.2. Шифровка текста по ключевой фразе. ..........................................8
8.3. Шифровка текста по кругу. .............................................................8
9. Алгоритмы организации бегущего текста. ...............................................9
9.1 Составить алгоритм, печатающий бегущею строку в середине
экрана. ........................................................................................................9
9.2 Составить алгоритм, печатающий бегущею строку начиная с
левого угла и смещающеюся к правому углу экрана. .......................9
Вопросы для проверки знаний: ...................................................................10
Задачи для самостоятельной работы: .........................................................10
Содержание: ..................................................................................................12
Download