ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PASCAL

















ОСНОВЫ АЛГОРИТМИЗАЦИИ
И ПРОГРАММИРОВАНИЯ
НА ЯЗЫКЕ PASCAL









Алгоритмы. Способы описания алгоритмов.
Изначально под алгоритмом подразумевали только четыре арифметических действия, но впоследствии к ним прибавили структурированные и описанные действия, которые служат для выполнения поставленной задачи.
Нужно ли говорить, что с алгоритмами мы встречаемся повсеместно. Например, каждое утро вы выполняете такой алгоритм:
Встать с постели.
Пойти в ванну.
Умыться.
Выйти из ванны.
Одеться.
Пойти в школу.
Подобное описание действий и есть алгоритм – конечный последовательный порядок действий, направленный на решение конкретной задачи. Каждое законченное действие в алгоритме называется шагом.
Самый простой алгоритм – линейный. В линейном алгоритме все действия выполняются в строгой последовательности друг за другом. Например, алгоритм создания бутерброда: мы берем хлеб, потом намазываем масло, потом кладем сверху колбасу. Каждое действие идет друг за другом, линейно.
А теперь представьте, что некоторая группа действий повторяется несколько раз в различных частях алгоритма, а то и в разных алгоритмах. Что делать? Прописывать раз за разом повторяющийся блок?
Нет, конечно. Гораздо удобнее записать этот блок отдельно, дать ему имя и обращаться к этому блоку по имени из алгоритма каждый раз, когда в нем возникнут нужда. Такой блок действий называется вспомогательным алгоритмом.
Вспомогательный алгоритм – законченный алгоритм с уникальным именем, который нужно вызывать в основном алгоритме.
Представьте, что вы в классе ставите спектакль. Как режиссеру, вам нужно выстроить алгоритм общих действий, тогда как действия каждого актера пишутся отдельно и потом лишь добавляются в ваш сценарий в нужных вам местах нужное количество раз.

Основной алгоритм будет выглядеть так:
Все актеры выходят на сцену.
Занавес поднимается.
Выступает актер «Герой».
Выступает актер «Злодей».
Выступает актер «Герой».
Занавес опускается.

Алгоритм актера «Герой»:
Говорит: «Злодей, ты трус!».
Громко смеется.

Алгоритм актера «Злодей»:
Делает испуганный вид.
Убегает со сцены.

До сих пор все алгоритмы мы описывали так называемыми словесным способом – перечисляли все действия друг за другом, не забывая их нумеровать. Но если вы думаете, что алгоритмы всегда и везде описываются только так, вы глубоко заблуждаетесь. Придумано множество способов записи алгоритмов, четыре из которых, самые распространенные, мы сейчас рассмотрим.



Словесная форма. Мы просто описываем словами последовательность действий, которые надо выполнить.
Графическая форма. Представление алгоритма в виде блок – схемы. Мы просто рисуем геометрические фигуры, соединяем их линиями перехода (которые описывают очередность действий).
Псевдокод. Занимает промежуточное положение между словесным описанием алгоритма и языком программирования. Псевдокод имеет служебные слова – их смысл определен и неизменен. Пример алгоритма в виде псевдокода в программе Кенгуренок:
Сделай сторона
Процедура сторона
Шаг
Поворот
Поворот
Поворот
Конец процедуры
Язык программирования. Этот способ записи алгоритма абсолютно формализован. Составляющими компонентами любого языка программирования является алфавит(все знаки, которые мы можем использовать), синтаксис(правила сочетания букв алфавита) и семантика( правила, определяющие смысл отдельных конструкций). Таким языком, например, является Pascal.

Любой алгоритм рассчитан на то, что его кто – то будет выполнять. Объект, выполняющий алгоритм, называется исполнителем. Любой исполнитель имеет так называемую систему команд исполнителя. Например, команду «посмотрите налево» понимает юный пешеход, но ее вряд ли поймет стиральная машина.

Задание 1. Опишите двумя способами - в словесной форме и в виде блок – схемы ( см. на рис.) – алгоритм путешествия колобка и распевания песенки встреченным животным.


























Задание 2. Опишите в виде блок – схемы алгоритм: включить плитку, подогреть сковородку, налить масла и приготовить яичницу по рецепту. Потом съесть яичницу и приготовить яичницу еще раз.
Рецепт «Яичница»:
Возьмите два яйца.
Разбейте их на сковородку.
Положите два кусочка ветчины.
Солите по вкусу.








Циклический алгоритм.
Представим всем хорошо знакомый алгоритм:
точка;
точка;
запятая;
минус;
рожица смешная;
ручки;
ножки;
огуречик.
Исполнитель без труда нарисует человечка.
А теперь представьте, что надо нарисовать 20 таких человечков. Что делать? В такой ситуации нам на помощь приходит циклический алгоритм.
Циклический алгоритм позволяет многократно повторить некоторый блок команд ( этот блок называется телом цикла) до тех пор, пока выполняется некоторое условие. В блок- схеме это условие обозначается шестиугольником.

Задание 3. На 8 марта хулиган Вася задал себе алгоритм: пока в классе есть хотя одна девушка, улыбаться.
В словесном виде этот алгоритм можно записать так:
1. Есть в классе девушки? Если есть, перейти к пункту 2, иначе – к пункту 3.
2. Улыбаться. Перейти к пункту 1.
3. Перестать улыбаться.
В графическом виде алгоритм представлен на рисунке ниже.
















Задание 4. По словесному описанию заполните блок – схему. Идти в школу и пока не закончатся уроки - учиться и получать только пятерки. После этого пойти домой и по дороге купить пакет молока.




















Ветвление.
Мы уже знаем, что команды в алгоритме выполняются одна за другой, на часто нам нужно не столь прямолинейные схемы. Например, ежедневная прогулка может не состояться в дождливый день. Коротко такой алгоритм можно записать так: если погода солнечная, то идти гулять. То есть действия выполняются в зависимости от некоторого условия. Подобная конструкция называется ветвлением, а алгоритм разветвляющимся или ветвящимся.
С помощью ветвления можно изменить ход работы алгоритма.
Графически блок проверки условия обозначается ромбом.
Разветвляющийся алгоритм имеет полную и неполную формы. Чтобы представить различия между этими двумя формами, представим две ситуации:
Вы стоите на остановке, желая уехать домой. Алгоритм в этом случае будет выглядеть так: если подходит мой автобус, то еду домой.
Вы стоите на остановке, но на этот раз раздумываете, а куда бы поехать – домой на автобусе или к другу на трамвае. Алгоритм ваших действий может быть таким: если первым подходит автобус, то еду домой, иначе – еду к другу.

Таким образом, полная форма отличается тем, что дает два варианта действий, тогда как неполная – только один.
В виде блок – схем полная и неполная формы ветвления представлены на рисунке ниже.











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
















Определение алгоритма. Свойства алгоритма.
Свойства алгоритма:
Понятность. Любой алгоритм предназначен какому–то конкретному исполнителю. Этот исполнитель понимает некое множество команд, которое принято называть системой команд исполнителя. И алгоритм должен быть написан языком понятным исполнителю. Примером алгоритма может служить инструкция к стиральной машине. Вы ее поймете и выполните, если она будет написана на понятном для вас языке.
Дискретность. Упорядоченность. Алгоритм – это последовательность команд, и все команды должны следовать в строго заданной последовательности. Исполнитель не может по собственному желанию изменить этот порядок.
Рассмотрим, например, такой вот «утренний» алгоритм:
принять душ;
одеться;
пойти в школу.
Представляете, какой будет конфуз, если в этом алгоритме мы поменяем второй и третий шаги!
Конечность. Результативность. Любой алгоритм составляется для того, чтобы достичь какого-то результата. И этот результат должен быть получен за конечное количество шагов. Попробуйте, например, составить алгоритм подсчета суммы всех натуральных чисел. У вас получится что-то вроде этого? 1. присвой переменной i значение 1; 2. присвой переменной S значение i ; 3. увеличь значение i на 1; 4. увеличь значение S на i; 5. перейти к пункту 3.
Никакой исполнитель в здравом уме не согласится выполнять этот алгоритм – в нем нарушено свойство конечности.
Определенность (детерминированность). В алгоритме не должно быть мест, где исполнитель сам, по своему настроению, решает, как дальше действовать. Рассмотрим такой алгоритм: если горит зеленый свет, то перейти улицу. Представьте, что вы подходите к переходу поздно вечером, когда светофоры уже перестали работать. Что вы будете делать? Если ваш ответ: «Перейду улицу, как только увижу, что автомобилей на дороге нет», то вы выполните совсем другой алгоритм: перейти улицу подчиняясь собственным понятиям о безопасности. В этом алгоритме нарушено свойство определенности.
Массовость. Алгоритм не составляется для решения одной задачи. Гораздо полезнее составить алгоритм для решения целого класса задач. Например, алгоритм решения квадратного уравнения.
Алгоритм – организованная конечная последовательность действий, понятная исполнителю, четко и однозначно задающая процесс решения класса задач и позволяющая получить за конечное число шагов результат, однозначно определяемый исходными данными.

Задание 6.
Какие из свойств алгоритма нарушены?

Взять яйцо,
разбить его на сковороду,
оставить на 10 минут, выключить плиту.

Прибавить к семи число два, разделить получившиеся число на три, прибавить пять, разделить на ноль.

Выйти на улицу, если на улице холодно, то надеть шапку и застегнуться, иначе пойти домой.

Задание 7.
Что из перечисленного не является алгоритмом?
поход на природу кулинарный рецепт математическая задача военный устав конституция РФ план действий план здания инструкция по сборке учебник

Задание 8.
Какие свойства алгоритма отсутствуют в примерах?
Правила дорожного движения план эвакуации расписание уроков правила перехода через дорогу














Знакомство с Pascal
Язык программирования Pascal был создан в 1970 году профессором из Швейцарии Никлаусом Виртом. Создавался этот язык как учебный, но оказался настолько удачным, что многие годы был одним из основных языков в мире программирования.
Довольно скоро сам Вирт перестал поддерживать язык Pascal, переключившись на другие языки. Однако, многие коммерческие и некоммерческие организации продолжали разрабатывать и развивать системы этого языка программирования.
Одной из них была компания Borland, которая создала среды для разработки – сначала Turbo Pascal, а затем Borland Pascal.
При запуске программы открывается окно с готовым пустым документом Pascal, который разделен на три части.
Главное меню
Основное рабочее окно.
Строка с назначением функциональных клавиш.
Для того, чтобы начать работу с новым документом, необходимо выполнить команду File-New (Файл-Новый). Знакомая команда? Такими же знакомыми покажутся команды Save (Сохранить) и Save as(Сохранить как).
Из меню File (Файл) вам могут пригодиться также команды Open (Открыть) Change dir (Выбрать каталог).
В рабочем окне набирается текст программы. Программа на Pascal – это набор некоторых команд. Начинается программа с ключевого слова PROGRAM, после которого следует имя программы. Затем, между словами BEGIN и END. располагается код программы.
Структура программы:
PROGRAM NAME
Раздел описаний.
BEGIN
Раздел операторов.
END.
Одно из самых распространенных команд – команда вывода текста. Она имеет две модификации: Write и Writeln. Различают эти модификации тем, что после выполнения первой из них курсор остается в той же строке, а после выполнения второй – переходит на новую строку. После команды Write (Writeln) в круглых скобках следует список вывода, в котором через запятую перечисляются выводимые данные.Текст при этом необходимо заключить в апострофы `:
Writeln (Привет!’);
В приведенном примере на экране будет выведен текст «Привет! И курсор переместится в начало новой строки:
PROGRAM prim;
BEGIN
Writeln (Привет!’);
END.
Если программа содержит несколько команд, их необходимо разделять точкой с запятой.
Задание 1.
Укажите какие ошибки были допущены при написании этой программы:
PROGRAM 1;
BEGIN;
Write (Мы создаем свою первую программу!);
WriteLm («А вы нашли все ошибки?»)
END

Числовые типы данных.
В Pascal все данные, с которыми мы работаем, хранятся в переменных. Переменная – это выделенная программой ячейка памяти, к которой можно обращаться по имени. В Pascal имя переменной может состоять только из английских букв, цифр, символа подчеркивания_ и не может содержать пробелов.
Как мы уже отметили, для каждой переменной отводится ячейка памяти, которая может быть разного размера. Например, целое число может занимать 1 байт, и тогда его значение будет колебаться от 0 до 255 либо от -128 до 127. Если же нам необходимо работать с большими числами, то под число придется отводить 2, а то и 4 байта памяти.
Для оптимального распределения памяти в программе Pascal необходимо объявлять переменные, то есть указывать имена переменных и их тип. Например, переменная num, которая будет принимать целые значения из диапазона от -32768 до 32767, объявляется так:
num: integer;
Объявление num: byte; говорит о том, что переменная num может принимать целые значения из промежутка от -128 до 127.
Переменные могут принимать и дробные(вещественные) значения. Такие переменные имеют тип real.
Все переменные должны быть объявлены до обращения к ним в программе. Для объявления переменных предусмотрен раздел VAR, который располагается перед словом BEGIN.
PROGRAM prim;
VAR
a: integer;
b: real;
c,d: byte;
BEGIN .......
В приведенном примере переменные a, b, c целого типа, переменная b – вещественного.
Для того, чтобы в программе переменная получила какое-то значение, ей это значение необходимо присвоить. Операция присваивания в Pascal обозначается парой символов :=. Например, num:=15; говорит о том, что переменная num получит значение 15. А по команде a:=b+3; переменная а получит значение, равное сумме значения переменной b и числа 3.
Для вывода значений переменной на экране используется команда Write (Writeln).
Рассмотрим пример:
PROGRAM prim;
VAR
a, b, c: integer;
BEGIN
a:=12;
b:=3;
c:=a+b;
Writeln (a+b=’, c);
END.
В результате выполнения этой программы на экран будет выведен текст: a+b= 15
Иногда в результате выполнения программы от пользователя необходимо получить какие-то данные. Запрос этих данных можно произвести с помощью команды Read (ReadLn). Например, команда ReadLn(num); запросит у пользователя значение переменной num.

Задание 2.
Найдите ошибки а приведенном фрагменте программного кода:
VAR
a, b: integer;
c: real;
BEGIN
a:=10;
b:=1,7;
c:=a+b;
END.




Задание 3.
Вывести на экран числа в виде 13
PROGRAM zad3; 14
CONST 15
a=13; 16
b=14;
c=15;
d=16;
BEGIN
Writeln (a);
Writeln (_’,b);
Writeln (__’,c);
Writeln (___’,d);
END.

Задание 4.
Найти произведение двух целых чисел.
PROGRAM zad4;
VAR a, b, p: integer;
BEGIN
Writeln (введите два числа через пробел’);
ReadLn(a, b);
p:=a*b;
Writeln (Их произведение равно’, p);
Writeln (Нажмите ’);
ReadLn;
END.
Стандартные функции и операции над переменными целого типа.
Стандартная функция
Выполняемое действие
Тип



Аргумент
Результат

Арифметические операции

+, -, *
Сложение, вычитание, умножение.
integer
integer

/
Деление
integer
integer

Div(x)
Целочисленное деление
Вычисляет целую часть частного, а дробная часть откидывается, например:
11div5=2
integer
integer

Mod(x)
Вычисляет остаток, полученный при выполнении целочисленного деления, например:
10mod5=0;
11mod5=1.
integer
integer

Операции отношения

=, <>, <, >, <=, >=
Определяют результат логического типа.
integer
integer

Стандартные процедуры

ABS(x)
Определение модуля числа х.
integer
integer

SQR(x)
Определение квадрата числа x.
integer
integer


Допустимые операции над вещественными числами.
Стандартная функция
Выполняемое действие
Тип



Аргумент
Результат

Арифметические операции

+, -, *
Сложение, вычитание, умножение.
real
real

/
Деление
real
real

Операции отношения

=, <>, <, >, <=, >=
Определяют результат логического типа.
real
real

Стандартные функции

Abs(x)
Определение модуля числа x.
real, integer
real, integer

Sqr(x)
Возведение в квадрат.
real, integer
real, integer

Sqrt(x)
Извлечение корня квадратного из числа х.
real, integer
real

Sin(x),
cos(x),
arctan(x)
Тригонометрические функции, значение х задается в радианах.
real, integer
real

Ln(x)
Натуральный логарифм х.
real, integer
real

Int(x)
Получение целой части вещественного числа х, например:
Int(422.67)=422
real
real


Условный оператор.
Рассмотрим конструкцию записи разветвляющегося алгоритма на следующем примере:
Вычислить значение переменной f.

1, если a>0;
F= 0, если a<0. Где а - любое число.

Запись условного оператора в программе будет выглядеть так:
IF a>0 Then f:=1 Else f:=0

Задание 5.
Проверить принадлежит ли число целого типа, введенное с клавиатуры, интервалу (1,5).
PROGRAM zad5;
VAR x: integer;
BEGIN
Writeln (введите число х’);
ReadLn(х);
If (x>0) and (x<5)
Then Writeln (x, принадлежит промежутку (0, 5)’)
Else Writeln (x, не принадлежит промежутку (0, 5)’);
END.
Задание 6.
Определить, является ли введенное число четным или нет. A: integer – любое значение целого типа.
Определить четность или нечетность числа можно по остатку, который формирует функция mod.
PROGRAM zad6;
VAR a: integer;
BEGIN
Writeln (введите число a’);
ReadLn(a);
If a Mod 2<>0
Then Writeln (a, число нечетное’)
Else Writeln (a, число четное’);
END.
Задание 7.
Сформировать условие вычисления квадрата числа, которое больше или равно числу 3. x: real.
PROGRAM zad7;
VAR x: real;
BEGIN
Writeln (введите число x’);
ReadLn(x);
If (x>=3)
Then Writeln (Sqr(x):2:2);
END.

Задание 8 (вложенность условий).
Вычислить:
X+1, x<=-5;
Y= x/2, -5 2x, 0 sqrt(x), x>10
x: real.
PROGRAM zad8;
VAR x, y: real;
BEGIN
Writeln (введите число x’);
ReadLn(x);
If (x <=-5) Then y:=x+1
Else
If (x<=0) Then y:=x/2
Else
If x<=10 Then y:= 2*x
Else y:=sqrt(x);
Writeln(y:2:2);
END.

Циклические программы.
Цикл с параметром
FOR <параметр>:=A TO B <тело цикла>
Например, For X:=1 TO 20 DO BEGIN
Шаг изменения параметра = +1.

Задание 9.
Вычислить значение выражения: Y= 1+1/2+1/3+...+1/20.
PROGRAM zad9;
VAR n: integer;
y: real;
BEGIN
y:=0;
for n:=1 to 20 do begin
y:=y+1/n;
end;
Writeln (y=’,y);
ReadLn;
END.

Задание 10.
Вычислить сумму квадратов первых 100- членов натурального ряда.
PROGRAM zad10;
VAR n: integer;
y: real;
BEGIN
y:=0;
for n:=1 to 100 do begin
y:=y+n*n;
end;
Writeln (y=’,y:2:2);
ReadLn;
END.




Задание 11.
В течении двух недель человек заключает пари на скачках. В первый день он делает ставку в 1 фунт и проигрывает, во 2-й день он делает ставку в 2 фунта и опять проигрывает. Он упрямо продолжает увеличивать на 1 фунт свою ставку, но продолжает проигрывать. Написать программу, выводящую на экран сумму денег, проигранную человеком к концу второй недели.
PROGRAM zad11;
VAR n: integer;
y: real;
BEGIN
y:=0;
for n:=1 to 14 do begin
y:=y+n;
end;
Writeln (y=’,y:2:2);
ReadLn;
END.

Задание 12.
Каждый будний день недели рыбак ловит рыбу. Сколько он поймал в среднем за день рыб, если известен его ежедневный улов?
PROGRAM zad12;
VAR n, x: integer;
y: real;
BEGIN
y:=0;
for n:=1 to 7 do begin
Writeln (введите улов за день-’,n);
ReadLn(x);
y:=y+x;
end;
Writeln (средний улов рыбака за неделю’,y/7:2:2);
ReadLn;
END.


Работа с символьной информацией в Turbo Pascal 7.0.
Основные сведения о символьных величинах.
С помощью компьютера можно решать весьма разнообразные задачи обработки текстов: от составления платежных ведомостей до автоматической верстки газет. Для того, чтобы компьютер мог обрабатывать тексты, он должна уметь оперировать не только с числами, но и со словами.
Познакомимся с основными приемами обработки текста на компьютере.
Будем полагать, что текст- это произвольная последовательность символов некоторого алфавита. Алфавитом может служить любое множество символов, например (0, 1,2, ...), (А, Б, В,...), (А, В, С,...).
Строкой символов, или символьной (строковой, текстовой) константой, будем называть последовательность символов, заключенных в апострофах.
Строка символов может состоять из одного или нескольких символов, а также не содержать ни одного символа (пустая строка, или строка нулевой длины). Максимальная длина текстовой строки 255 символов.
Мы знаем, что для обработки на компьютере данных того или иного типа используются переменные. Вспомним, что тип переменной определяется типом данных, которые она представляет.
В Turbo Pascal 7.0 для работы с символами используются два типа переменных:
символьный тип данных;
строковый тип данных.
1. Символьный тип данных (Char).
Описание: идентификатор char, ( var x: char).
Диапазон значений: значением переменной этого типа может быть любой символ - это буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255.
В Turbo Pascal 7.0 значения для переменных типа char задаются в апострофах: sh := '*'; а := '3'; summa :='G'.
2. Строковый тип данных (string).
Как правило, одно целое число или один символ занимают в памяти ЭВМ два байта. В то же время для изображения символа достаточно одного байта. С целью экономии памяти машины при использовании символьных данных в языке Паскаль введено понятие строки. Строкой называется последовательность символов определенной длины. Элементы строки хранятся по два в двух байтах памяти ЭВМ.
Переменные типа string могут быть объявлены следующим образом:
var s1: string[30]; s2: string.
Число 30 означает максимально возможное количество символов строки s1.

Стандартные функции для работы с символьными величинами.
1. Операция сложения символьных величин.
Операция сложения позволяет строить из двух символьных строк третью, состоящих из символов первой, за которой следуют символы второй. Обозначается эта операция знаком "+".
Пример 1.
Описываем строковые переменные.
var s1, s2, s3: string;
Присваиваемое значение строки заключается в апострофы. Присвоим первым двум следующие значения, а третья будет равна их склеиванию:
s1: = ' Тише воды, ';
s2:= 'ниже травы’;
s3:=s1+’’+s2;
Строка s3 имеет значение 'Тише воды, ниже травы'.

2. Длина строки.
Под длиной строки понимается количество введенных символов, но она не может превышать максимально возможной длины (в описательной части). Это значение можно определить при помощи функции, результат которой целое число, равное количеству символов.
Пример 2.
s1:='12345'; s2:= 'Семеро одного не ждут’; k1:=Length(s1);
k2:=Length(s2).
В результате значения целых переменных будут равны: kl=5, k2=21.

3. Копирование.
Функция copy(str,n,m) в Turbo Pascal 7.0 - копируют т символов строки str, начиная с n-го символа, при этом исходная строка не меняется. Можно результат этой функции присваивать другой строке или сразу выводить его на экран.
Пример 3.
s1:='паровоз';
s2:='123456';
s3:=copy(s1, 5, 3);
writeln(s3);
writeln(copy(s2, 3, 2));
Значения переменной s1=’воз’. А на экране будут выведены следующие строки: воз и 34. 4. Удаление.
В Turbo Pascal 7.0 для этого используется процедура Delete(str, n,m), которая вырезает из строки str m символов, начиная с n-го. таким образом сама строка изменяется.
Пример 4.
Дан фрагмент программы:
s:='123456';
delete(s, 3, 2);
writeln(s);
После выполнения этих операторов из строки будут удалены два символа, начиная с третьего, то есть строка будет такой: s = '1256'.
5. Замена (Вставка).
В Turbo Pascal 7.0 это можно сделать, применяя процедуру Insert(s1,s2,n) - вставка строки s1 в строку s2, начиная с п-го символа, при этом первая строка остается такой же, как и была, а вторая получает новое значение.
Пример 5.
s1;='34':
s2:='1256';
insert (s1, s2, 3);
В результате выполнения данной процедуры строка будет такой s2='123456'.
6. Числа и строки.
Надо заметить, что число 25 и строка 25 - это не одно и то же. Для работы с числами и строками в Turbo Pascal 7.0 применяются две процедуры.
Str(n,s1) - переводит числовое значение n в строковое и присваивает результат строке s1, причем можно переводить как целые числа, так и вещественные.
Пример 6.1
n:=12;
str(n,s1);
- после выполнения s1 ='12';
Существует обратная операция, переводящая строковое значение в числовое.
Функция val(s, n, k) - переводит строковое значение в числовое, если данная строка действительно является записью числа (целого или вещественного), то значение k=0, а n - это число, иначе k будет равно номеру символа, в котором встречается первое нарушение записи числа n.
Пример 6.2
val(1234',n,k) п=1234, k=0; 7. Функции преобразования типов.
Иногда в программах возникает необходимость по коду определить символ и, наоборот, по символу определить его код. Для этого используют функцию: CHR(x).
Эта функция возвращает символ, соответствующий ASCII -коду числа x.
Пример 7.1
for i = 0 to 255 do
writeln( i,' ', chr(i));
Для определения кода по символу используют функцию ORD.
Пример 7.2
readln(s);
writeln(ord(s)); Решение задач на обработку текстовой информации

Пример 1.
Составить программу, определяющую по введенному с клавиатуры символу его код.
Programm prim1;
Var s: char;
Begin
Writeln(введите символ с клавиатуры’);
Readln(s);
Writeln(код символа ,s,’=’,ord(s));
Readln;
End.



Пример 2.
В три символьные переменные F, I, O ввести свои фамилию, имя, отчество. Сформировать из этих данных строку S, содержащую ваши фамилию и инициалы.
Program prim2;
Var F, I, O, S : string;
Begin
Writeln(введите вашу фамилию’);
Readln(F);
Writeln(введите ваше имя’);
Readln(I);
Writeln(введите ваше отчество’);
Readln(O);
S:=F+’ +copy(I,1,1)+’.’+copy(O,1,1)+’.’;
Writeln(ваши реквизиты: , S);
Readln; End.

Пример 3.
Определить сколько цифр содержится в записи произвольного натурального числа.
Program prim3;
Var s: string;
x, k: integer;
Begin
Writeln(введите число’);
Readln(x);
Str( x, s);
k:=length(s);
Writeln(в числе ,k,’ цифр’);
Readln; End.

Пример 4.
Переменные A и B содержат строки цифр. Найти сумму соответствующих чисел.
Program prim4;
Var A, B: string;
S, x, y, n, k: integer;
Begin
Writeln(введите первое число’);
Readln(A);
Writeln(введите второе число’);
Readln(B);
Val(A, x, n);
Val(B, y, k);
S:=x+y;
Writeln(сумма чисел равна ,S);
Readln; End.

Пример 5.
Распечатать заданное слово в одной строке с разрядкой (пробел после каждой буквы).
Program prim5;
Var s, x: string;
i: integer;
Begin
Writeln(введите слово’);
Readln(s);
x:=’’;
For i:=1 to length(s) do begin
x;=x+copy(s,i,1)+’
End;
Writeln(получилось слово , x);
Readln; End.


Пример 6.
Составить программу подсчета количества вхождений буквы «а» в заданном тексте.
Program prim6;
Var s: string;
i, k: integer;
Begin
Writeln(введите текст’);
Readln(s);
k:=0;
for i:=1 to length(s) do begin
if copy(s, i, 1)=’a’ then k:=k+1
end;
Writeln(количество букв «а» в тексте равно ’, k);
Readln;
End.

Пример 7.
Определить, какое из двух исходных слов длиннее и насколько.
Program prim7;
Var s1, s2: string;
L1, l2: integer;
Begin
Writeln(введите первое слово’);
Readln(s1);
Writeln(введите второе слово’);
Readln(s2);
l1:=length(s1);
l2:=length(s2);
if l1>l2 then writeln(первое слово длиннее второго на ,l1-l2,’ символов’)
else
if l1=l2 then writeln(слова одинаковой длины’)
else writeln(первое слово длиннее второго на ,l2-l1,’ символов’);
Readln;
End.






HYPER13PAGE HYPER15


HYPER13PAGE HYPER1417HYPER15



началоо

Есть девушки в классе?

улыбаться

перестать улыбаться

конец

песенка

да

нет

условие

нет





да

условие

действие 1

действие 2

действие

да

нет

нет

да



PlЋ¦
·п  PRlxz|ЊЋњћ ¤¦
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·HYPER15Основной шрифт абзаца

Приложенные файлы

Добавить комментарий