extracted_text:
Контрольный диктант № 1
Цель:  проверить   умения   самостоятельно   работать,   оформлять
предложение, писать слова с сочетаниями  ЖИШИ, ЧА— ЩА, ЧУ
ЩУ.
Планируемые результаты: учащиеся научатся самостоятельно
анализировать слово и выбирать нужный вариант его написания.
I. Диктант
На даче
Настало лето. Дети едут на дачу. Возле дачи есть роща и пруд. В пруду
водятся щуки, ерши и караси. Дети там рыбачат. Хороша будет уха.
(На доске выписаны слова из диктанта: есть, водятся.)
Грамматические задания
1. В третьем предложении подчеркните гласные буквы.
2. Выпишите 3 слова с сочетаниями ЧАЩА, ЧУЩУ.
3.
Контрольный диктант № 2
Цель:  проверить умение писать слова с орфограммами, оформ
лять работу.
Планируемые результаты:  учащиеся научатся видеть и пра
вильно   записывать   слова   с   орфограммами;   анализировать,   делать
выводы, сравнивать.
  У Веры жил кот Пушок. Кот был беленький и пушистый. Лапки и хвост
серенькие. Пушок любил рыбу и мясо. Девочка часто играла скотом.
Пушок
Грамматические задания
1. В предложениях 4 и 5 подчеркните основу.
2. Допишите однодва предложения в конце текста.
I. Контрольный диктант № 4
Зимой в лесу
Зимой друзья пошли  в лес. Вот с сосны упали  снежные хлопья. Это
прыгнула   белка.   В  ветвях   дерева   было   дупло   зверька.   В   дупле   шишки   и
грибы. Тепло и сытно белочке в дупле.
Грамматические задания
1. Спишите первое предложение, разделив слова для переноса.
2. Напишите однокоренные слова к слову белка.
3. Напишите антонимы.
Тепло — ...
Сытно— ...
Контрольный диктант №5
Цель:  проверить   умения   учащихся   писать   и   оформлять
предложения, правильно писать слова со знакомыми орфограммами. Планируемые   результаты:  учащиеся   научатся   самостоятельно
выбирать   нужные   буквы   для   записи   слов;   анализировать,   делать
выводы, сравнивать.
Алеша принес домой щенка. Щенку дали кличку Бим. Бим ел молоко и
суп из чашки. Скоро он стал большой собакой. Друзья играли в парке. Вот
Алеша бросил палку за куст. Бим принес мальчику палку.
Друзья
Грамматические задания
1. Подчеркните основу в первом предложении.
2. Разделите для переноса слова второго предложения.
I. Рефлексия
— Трудно ли вам было писать диктант?
— Написание каких слов у вас вызвало затруднение?
Контрольный диктант №6
Цель:  учить   детей   оформлять   свои   мысли   на   письме,   видеть
орфограммы и грамотно писать слова.
Планируемые результаты: учащиеся научатся писать сочине
ние, видеть орфограмму в слове, грамотно писать; строить сообщения
в устной и письменной форме.
Дети пришли в рощу. Там весело и шумно. Пчела брала мед с цветка.
Муравей тащил травинку. Голубь строил гнездо для голубят. Заяц бежал к
ручью. Ручей поил чистой водой и людей, и животных.
В роще
Контрольный диктант№7
Цель: повторить усвоение изученных тем.
Планируемые результаты: учащиеся научатся определять ор
фограмму   и   правильное   написание   слов;   анализировать,   делать
выводы, сравнивать.
С неба падал мокрый снежок. Ребята побежали во двор и стали лепить
из снега фигурки.
Коля   слепил   снеговика   с   метлой   в   руке.   Женя   выстроил   домик   с
окошками   изо   льда.   У  Толи  получился   хороший  Дед  Мороз.   Всем   было
весело.
Грамматические задания
1. Выпишите первое предложение. Разделите слова вертикальной
чертой для переноса. Подчеркните основу пред ложения. '
Спишите второе предложение. Поставьте ударение
в словах Контрольный диктант №8
Цель:  проверить навыки написания букв, обозначающих мяг
кость   согласных   звуков,   навыки   правописания   слов   с   буквосо
четаниями ЧН, НЧ, ЧК, ЩН, ЧТ, раздельного написания слов и
предлогов со словами, умение ставить знаки препинания в конце
предложений.
Планируемые результаты:  учащиеся научатся  находить  в
словах   изученные   орфограммы   на   слух;   применять   правила
правописания
проверять себя, находить в собственной работе орфогра еские
ошибки; разделять слова для переноса; характеризовать ые и мягкие
согласные звуки.
В лесу
Катя   и   Юра   идут   в   лес.   Рядом   бежит   пес   Тузик.   Весело   поют   птицы.
Скачут  по веткам белочки. Спрятались под елкой серые ежики.
"24 слова)
.Грамматические задания
1. В словах ветки и белочки подчеркните мягкие согласные звуки.
2.Запишите, сколько букв и звуков в слове Юра.
2. Укажите количество слогов в словах ежики, серые, рядом.
Диктант №9.
Цели: проверить умения писать слова на изученные орфограммы,
слова   с   парными   звонкими   и   глухими   согласными   на   конце   и   в
середине   слова,   делать   звукобуквенный   анализ   слов;   развивать
орфографическую зоркость учащихся.
Планируемые   результаты:  учащиеся   научатся   применять
правила   правописания;   писать   под   диктовку;   проводить   звуко
буквенный   разбор   слова;   подбирать   примеры   на   изученную   ор
фограмму.
Зяблик
По ночам холод. В лесу еще лежит снег. Много снега — целый сугроб. И
на реке лед. А на еловой ветке сидит зяблик. Он поет. По всему лесу летит
его трель. Откликнулась трелью лесная чаща. Что это? Это эхо. Вот чудо!
Прозвучала птичья песня. Это привет весны.
Слова для справок: много, целый.
Грамматические задания
1. Выпишите   из   текста   три   слова   с   парными   согласными,   ор
фограмму подчеркните.
2. Сделайте   звукобуквенный   анализ   слов   (вариант   I  —  снег;
вариант II — лед). Диктант №10
обобщить   знания   учащихся   об   употреблении   заглавной   %
именах собственных; проверить навыки употребления ой буквы в
именах собственных и усвоение первоначальных
графических навыков на основе изученных правил
тируемые   результаты:  учащиеся   научатся   применять   а
правописания; писать под диктовку; проводить звукобуквенный
разбор слова; подбирать примеры на изученную орфограмму.
Главный город
Москва  главный город нашей России. В Москве много улиц, переулков,
проспектов.   Все   знают   Красную   площадь,   площадь   Пушкина,
;Суворовский бульвар, Садовое кольцо.
Два друга Воронин Слава и Шишкин Коля живут на Плющихе. Мальчики
гуляют в сквере с собакой Бимом и кошкой Муркой.
. Слова для справок: улица, проспект, на Плющихе.
Грамматические задания
1. Подчеркните заглавную букву в фамилиях людей, кличках
животных, географических названиях.
2. В последнем предложении поставьте знак ударения над всеми
словами.
Запишите название населенного пункта, в котором вы живете
Диктант №10
Друзья
Ребята города Москва любят ходить в парк Сокольники. У Андрюшки
Соловьева есть там рыжий друг Яшка. Это  пушистая белочка с длинным
хвостом. Мальчик принес корм. Постучал по сосне. Спустился Яшка, взял
еду и скрылся за деревьями.
Грамматические задания
1. Подчеркнуть имена собственные.
2. В четвертом предложении подчеркнуть главные члены.
3. В первом предложении обозначить имена существительные.
4. Записать   имена   существительные  камыши,  кирпичи,   вещи  в
единственном числе.
Диктант №11
Цель: проверить умение писать наиболее употребляемые предлоги
раздельно   со   словами,   навыки   правописания   слов   на   изученные
правила.
Планируемые   результаты:  учащиеся   научатся   писать   под
диктовку   учителя;   проверять   написанный   текст;   писать   предлоги
отдельно от других слов; применять правила правописания.
Взяли ребята лукошки и бегут в ближний лесок. Хорошо в тени берез! На
траве капельки росы. В густых ветвях поют птицы. Детишки сели на пенек,
Дети в лесу слушают   чудное   пение   соловушки.   Пора   и   по   малину.   Крупные   спелые
ягоды так и манят. Кто кладет в рот, кто в кузовок.
' Слова для справок: пора, кладет.
Грамматические задания
1. Выпишите предлоги.
Вариант I: из первых трех предложений.
Вариант II: из последних трех предложений.
2. К словам пенек, детишки подберите и запишите проверочные
слова.
3. В первом предложении над словами надпишите части речи.
Контрольный диктант № 12
Гроза
Наступила   большая   засуха.   Пыль   стояла   над   полями.   Ручьи   и   речки
высохли. На траве нет росы. Длинные сухие ветки деревьев трещат от жары.
Молодые березки и дубки опустили свои листочки. Вдруг появилась туча.
Замолчали   птицы.   Ударил   сильный   гром.   Полил   дождь.   Травка,   деревья
осветились. Как все кругом стало радостно!
Грамматические задания
1. В   первом   предложении   подчеркните   главные   члены   пред
ложения, обозначьте части речи.
2. Выпишите   два   слова   с   проверяемой   безударной   гласной,
подберите проверочные слова.
3. Разделите слова для переноса.
Сильный, длинные, пыль.
Диктант
Утро
Вспыхнул первый луч солнца. Ночная тьма укрылась в густой  листве
деревьев.   Проснулись   малиновки.   Перья   на   их   грудках   окрасились   в
яркий   цвет.   Заблестели   на   листьях   капли   росы.   Над   цветами   стали
кружить золотистые пчелки. Они  жадно пьют сладкий сок. Мелькают
стрижи. Хорошо иметь быстрые и легкие крылья.
I. Рефлексия
Из текста диктанта запишите по одному слову с орфограммами
в нашу таблицу

intro:
Контрольный диктант № 1
Цель: проверить умения самостоятельно работать, оформлять предложение, писать слова с сочетаниями ЖИ-ШИ, ЧА— ЩА, ЧУ-ЩУ.
Планируемые результаты: учащиеся научатся самостоятельно анализировать слово и выбирать нужный вариант его написания.
Контрольный диктант № 2
Цель: проверить умение писать слова с орфограммами, оформлять работу.
Планируемые результаты: учащиеся научатся видеть и правильно записывать слова с орфограммами; анализировать, делать выводы, сравнивать.Контрольные работы по русскому языку во 2 классе


extracted_text:
Типы данных языка программирования TP 7.0 .  Логический тип
       Занятие 3
1. Урок 1. Логический (булевский) тип данных. Условный оператор.
2. Урок 2. Оператор   выбора.    Исследование   по   логическим операциям.
3. Урок 3. Логические операции над целыми числами.
4. Контрольные вопросы и упражнения.
Урок  1. Типы данных языка программирования Turbo Pascal 7.0
1.1. Логический  (булевский) тип данных. Определение логического выражения.
1.2. Условный оператор if … then … else
1.3. Практический пример.
1.1. Логический   (булевский)   тип   данных.    Определение    логического выражения
Переменные типа  boolean, ByteBool,  WordBool   и  LongBool  являются логическими переменными и могут
принимать только два значения  True   (истина) и  False  (ложь).  Логические переменные используются для хранения
результатов   логических   выражений.   Для   переменных   имеют   место   операции   отношений,   и   логические   операции,
указанные   в   таблицах   1   и   2,   результатом   которых   являются   булевские   переменные.   Эти   переменные   неявно
используются в условных операторах  if … then … else  и  case.
Наименование
    Таблица 1
Операции
отношения
=
<>
>
>=
<
<=
Равно
Неравно
Больше
Больше или равно
Меньше
Меньше или равно
Логические
операции
Наименование
NOT
AND
OR
XOR
Логическое  НЕ  (инверсия или отрицание)
Логическое  И (логическое умножение, конъюнкция)
Логическое  ИЛИ  (логическое сложение, дизъюнкция)
Логическое исключающее  ИЛИ  (неравнозначность)
         Таблица 2
Приоритет выполнения
логических операций
1
2
3
4
Логические операции в таблице 2 указаны в порядке  уменьшения приоритета  их выполнения в  Pascal
программе.
Операции отношения и логические операции (или те и другие вместе) над переменными могут быть записаны в
Pascalпрограмме в виде логического условия или логического выражения.
Логическим условием назовем запись, состоящую из одного или двух операндов и знака операции отношения
или логической операции.
Например: a > b;  a or b;  c and d;  k <> d;  (a + c) = (b * d);  not  Second  и т.д.
Логическим   выражением  назовем   запись,   состоящую   из   логических   условий   и   логических   операций,
производимым над ними.
Например:  (a + b ) and (a + c ) and (c + b);   (a + b > c) and (a + c >= b)  or (c + b <> a)  и т.д.
Результатом выполнения логического условия или выражения являются значения  True  (истина) или   False
(ложь). Далее происходит передача управления для выполнения соответствующих этим условиям операторов.
Аргументы (операнды) логических операций  должны иметь один тип.
Приведенная ниже программа позволяет получить результат логической операции   and  (и) для логических
операндов  p_true  и  p_false   и  сохранить его в логической переменной result.
Program V1L04P1; {Булевская операция and (и)}
Uses Crt;
{Вызов библиотечного модуля для работы с экраном дисплея}
{Блок описания констант и переменных}
Const p_true=true;
      p_false=false;
{Блок операторов}
begin
{Постоянные логические значения}
19 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами
ClrScr;
WriteLn('TRUE and FALSE = ', p_true and p_false);
ReadKey;
end.
{Очистить экран}
{Результат логической операции}
{Ожидание нажатия любой клавиши}
Результат работы программы
TRUE and FALSE = FALSE
2. Условный    оператор
Наименование оператора говорит само за себя потому, что в него входит логическое условие  или логическое
выражение. Условный оператор может быть  полным  (альтернативным) и  неполным   (без альтернативы) и имеет
следующий формат:
if  <Логическое условие (выражение)>  then  <Оператор 1>  else  <Оператор 2>
или
if  <Логическое условие (выражение)>  then  <Оператор 1>
<Логическое условие (выражение)>     логическое условие или выражение, которое может быть записано в
где
операторе явно или вычислено в программе и присвоено логической переменной;
<Оператор 1>,  <Оператор 2>    простые или составные операторы. В случае составного оператора (группы
операторов) следует применять операторные скобки begin и end.
Алгоритм работы условного оператора  if … then … else  следующий.
Если  (if)  <Логическое   условие  (выражение)>  принимает  значение  True  (истина),   то  (then)    выполняется
<Оператор 1> и далее следует выполнение операторов программы,  иначе (else) выполняется <Оператор 2> и далее
следует выполнение  операторов программы.
  ложного   (False)   значения  <Логическое   условие

(выражение)>  не   выполняет  <Оператор   1>,   а   переходит   к   выполнению   операторов   программ,  следующих  за
условным оператором.
Неполный   формат   условного   оператора   в   случае
Ниже приводится практический пример, в котором присутствуют операции отношения и логические операции.
Определить существует ли треугольник, стороны которого заданы целыми значениями a, b, c.
Program V1L04P2; {Определение возможности существования треугольника}
Uses Crt;
Var a,b,c :integer;
{}
begin
ClrScr;
Write('Введи значения сторон треугольника через пробел : ');
ReadLn(a,b,c);
{Ввод числовых значений с клавиатуры}
{Логическое условие с альтернативой}
if (a+b>c)and(a+c>b)and(b+c>a) then WriteLn('Треугольник существует')
else WriteLn('Треугольник не существует');
{}
ReadKey;
end.
Логические операторы могут быть вложены друг в друга.  Такая конструкция показана ниже.
Program V1L04P3; {Определение возможности существования треугольника}
Uses Crt;
Label 100,200;
Var a,b,c :integer;
{}
begin
ClrScr;
Write('Введи значения сторон треугольника через пробел: ');
ReadLn(a,b,c);
{Вложенные логические операторы}
if a+b7) then
WriteLn('Номер дня недели введен неверно !');
{}
ReadKey
end.
{Условие правильности введения дня недели}
{Ожидание нажатия любой клавиши}
Из   текста   программы   видно,   что   для   решения   поставленной   задачи   потребовалось   восемь   условных
операторов, с помощью которых осуществляется выбор названия дня недели по равенству введенного значения номера
дня недели с записанными данными в логических условиях. В TP 7.0  подобные задачи решаются с помощью оператора
выбора  case … of.
2.1. Оператор выбора  case … of
Оператор   выбора  case  …  of
 является   обобщением   условного   оператора  if  …  then  …  else.     Он   дает
возможность выполнить одно из нескольких действий в зависимости от значения переключателя и имеет следующий
полный (альтернативный) формат:
case  <Переключатель>  of
<Список констант 1>: <Оператор 1>;
<Список констант 2>: <Оператор 2>;
21 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами
. . .
<Список констант N >: <Оператор N>

или (неполный формат)
else  <Оператор A>
end;
case  <Переключатель>  of
<Список констант 1>: <Оператор 1>;
<Список констант 2>: <Оператор 2>;
. . .

<Список констант N >: <Оператор N>
где:
вычислена в программе;
end;
<Переключатель>    переменная типа integer, boolean, char, record, которая может быть записана явно или
<Список   констант   …>         список   констант   через   запятую,   который   должен   иметь   тот   же   тип,   что   и
<Переключатель>  (например,  100, 10. 2:);
<Оператор …>    оператор или группа операторов;
<Оператор A>    альтернативный оператор или группа операторов.
Алгоритм  работы условного оператора   case  …  of  следующий. Вычисленное или заданное явно значение
<Переключатель> определяет, какой из операторов должен быть выполнен, при этом значение <Переключатель>
должно совпадать с одной из констант <Список констант …>. В противном случае выполняется <Оператор A>.
В случае неполного формата оператора выбора case … of и несовпадения переключателя ни с одним значением
списков констант выполняется следующий за end; оператор.
Примером использования оператора выбора case … of может служить приведенная ниже программа.
Program V1L04P5; {Печать названия дня недели по его номеру}
Uses Crt;
Var n :integer;
{}
begin
ClrScr;
Write('Введи номер дня недели: ');ReadLn(n);
{}
case n of
1: WriteLn(n,' ый день недели  понедельник и самый тяжелый');
2: WriteLn(n,' ой день недели  вторник');
3: WriteLn(n,' ий день недели  среда');
4: WriteLn(n,' ый день недели  четверг');
5: WriteLn(n,' ый день недели  пятница');
6: WriteLn(n,' ой день недели  суббота');
7: WriteLn(n,' ой день недели  воскресенье');
else WriteLn('Номер дня недели введен неверно!');
end;
{}
ReadKey
end.
Результаты работы программ
Вариант 1
Введи номер дня недели:  3
3  ий день недели  среда
Вариант 2
Введи номер дня недели:  10
Номер дня недели введен неверно
При сравнении программ vv8 и vv9 можно заметить, что vv9 имеет меньшее количество ключевых слов языка
программирования.
2.2. Исследование по логическим операциям  (практическая работа)
Используя  приведенную выше программу   vv5, составить таблицу булевских операций (таблицу истинности)
для различных значений операндов в виде:

Операнды
a
b
22
NOT a
(инверсия)
a AND b
(конъюнкция)
a OR b
(дизъюнкция)
a XOR b
(исключающее ИЛИ, неравнозначность)
Результат
        Таблица 3 False
True
False
False
True
True

False
True
False
True
True

False

False

False
Операнды   и   операции   изменять   коррекцией   в   соответствующих   строках   программы   или   продолжить
записывать строки программы с различными операндами и операциями.
Преподавателю показать на доске часть таблицы с операндами, а учащиеся, при выполнении задания, должны
получить результат для соответствующих операндов и операций и заполнить пустые столбцы таблицы.
Аналогично заполнить таблицу 4, которая представляет собой таблицу истинности следующих логических
операций:  импликация  (условие: если … то),  эквивалентность  (равнозначность),  штрих Шеффера  (отрицание
конъюнкции) и стрелка Пирса  (отрицание дизъюнкции).
a    b
NOT a  OR  b
(импликация)
False
Результат
a    b
a  
  b
a    b
(a AND b)  OR  ((NOT a) AND (NOT b))
(эквивалентность, если … то)
NOT (a AND b)
(штрих Шеффера)
NOT (a OR b)
(Стрелка Пирса)
True
False
True
           Таблица 4
Операнды
a
b
False
False
True
True
False
True
False
True
Урок 3.  Логические операции над целыми числами
Логические операции могут выполняться не только над логическими операндами, но и над целыми числами. В
этом случае выполняются соответствующие побитовые операции с учетом двоичного двухбайтового представления
операндов.
Алгоритм выполнения операций над целыми числами следующий:

осуществляется перевод  пары целых десятичных чисел в  двоичную систему счисления. Двоичные
числа записываются в двухбайтовом формате.
  затем   выполняется   указанная   логическая   операция   с   каждой   соответствующей   парой   цифр
двоичных чисел. При этом отрицательные двоичные числа записываются в дополнительном
коде;
 полученный результат в виде двоичного числа переводится  в  исходную систему счисления.
  Если результатом является отрицательное двоичное число (знаковый разряд =1), то значит, что это число
записано  в   дополнительном   коде.   Для   перевода   дополнительного   кода   в   число   заданной   системы   счисления
выполняются следующие операции:

инвертируются значащие разряды двоичного числа;
прибавляется  1  к младшему разряду;
переводится полученный результат в исходную систему счисления и заменяется   1   знакового
разряда на знак "  ".
При выполнении операций отношения,  пара операндов  должна быть  одного и того же типа  (например,
integer). Допускается лишь одно исключение  один из операндов может иметь вещественный тип (real).
Пример программы выполнения логических операций над целыми числами, указанных в табл. 2 приведен ниже.
Program V1L04P6; {Выполнение логических операций над целыми числами}
Uses Crt;
Var a,b,c :integer;
{}
begin
ClrScr;
Write('Введи первый операнд '); Read(a);
Write('Введи второй операнд '); Read(b);
{}
     {Инверсия}
WriteLn;
23 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами
WriteLn('Инверсия');
c:=not a;
WriteLn('   not', a,' = ',c:4);
c:=not b;
WriteLn('   not', b,' = ',c:4);
{}
     {Конъюнкция}
WriteLn;
WriteLn('Конъюнкция');
c:=a and b;
WriteLn('   ',a,' and ',b,' = ',c:4);
{Dizjnkcij}
WriteLn;
WriteLn('Дизъюнкция');
c:=a or b;
WriteLn('   ',a,' or ',b,' = ',c:4);
{}
      {Исключающее ИЛИ}
WriteLn;
WriteLn('Исключающее ИЛИ');
c:=a xor b;
WriteLn('   'a,' xor ',b,' = ',c:4);
{}
ReadKey
end.
Результаты работы программы
Вариант 2
Введи первый операнд 13
Введи второй операнд +11
Вариант 1
Введи первый операнд 12
Введи второй операнд 10
Инверсия
   not a =  13
   not b =  11
 Вариант 3
 Введи первый операнд 14
 Введи второй операнд 12
Инверсия
   not a =   12
   not b =  12

Инверсия
   not a =   13
   not b =   11
Конъюнкция
   12 and 10 =   8
Конъюнкция
   13 and 11 =   3

Конъюнкция
   14 and 12 =  16
Дизъюнкция
   12 or 10  =  14    13 or 11  =  5
Дизъюнкция

Исключающее ИЛИ
  12 xor 10  =   6   13 xor 11  =  8
Исключающее ИЛИ

Дизъюнкция
   14 or 12  =  10
Исключающее ИЛИ
   14 xor 12  =   6
Анализируя   полученные   результаты   с   логической   операцией  NOT,   имеем   некую   закономерность,   которая
выражается формулой:

где  x  целое положительное или отрицательное число.
NOT (x) =    (x + 1),
Примеры выполнение алгоритма побитовых операций над целыми числами с исходными данными программы
V1L04P6,  указанной выше. В двоичных числах жирным шрифтом указаны знаковые разряды.
Инверсия
not  1210  =  (12  +  1)10  =  13
not  1010  =  (11  +  1)10  =  11
not 1310  =  (13 +  1)10  =   12
not  1110  =  ( 11 +  1)10  =  12
not 1410  =  (14  +  1)10 =   13
not 1210  =  (12  +  1)10 =   11
Вариант 1
Вариант 2
Вариант 3
24 Вариант 1
Конъюнкция
12 and 10
and
Вариант 2

      13 and 11
1210 
1010 

810
and

0 0000000000011002

0 0000000000010102

0 0000000000010002
Вариант 3

      14 and 12
1310    прямой  код
   дополнительный код
1 0000000000011012
1 1111111111100102
    +
   обратный код
 1110 

  310
and

0 0000000000000012

1 1111111111100112
0 0000000000010112

0 0000000000000112
1410    прямой  код
   дополнительнй код
1 0000000000011102
1 1111111111100012
    +

0 0000000000000012

  обратный код      1 1111111111100102
1210    прямой  код
   дополнительный код
1 0000000000011002
1 1111111111100112
    +

  обратный код
and
обратный код результата
его инверсия
  162
  +

0 0000000000000012

1 1111111111101002
1 1111111111100102

1 1111111111100002
1 0000000000011112
0 0000000000000012

1 0000000000100002
→
→
and
1210
1410
Расчет остальных логических операций производится аналогично.
Контрольные вопросы и упражнения
1. Сколько значений может принимать логическая переменная, назовите их?
2. Какие действия производятся над логическими переменными?
3. Как работает полный (альтернативный) условный оператор?
4. Как работает неполный условный оператор?
5. Как работает полный и неполный оператор выбора?
6. Что называется логическим условием?
7. Что называется логическим выражением?
8. Определить   существует   ли   треугольник,   стороны   которого   заданы   целыми   значениями  a,  b,  c.     Если
существует, то какой треугольник:

произвольной формы;
равносторонний;
равнобедренный;
прямоугольный.
Пояснение. Использовать для решения задачи свойства перечисленных треугольников
25 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами
9. Определить   существует   ли   треугольник,   стороны   которого   заданы   целыми   значениями  a,  b,  c.     Если
существует, то какой треугольник:

остроугольный;
тупоугольный.
Пояснение. Использовать для решения задачи теорему косинусов:  c  2  =   a  2   +  b  2    2ab * Cos   по
знаку косинуса определить форму треугольника (+ трк  остроугольный,    тупоугольный ).
Для решения задач использовать программу  vv6,  приведенную выше в качестве примера.
10. Напишите программу вычисления логических операций : импликация, эквивалентность штрих Шеффера и
стрелка Пирса для целых чисел (см. табл. 4).
Пояснение. Использовать для решения задачи программу vv10.
Для заметок, вопросов и ответов
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
26

file_name: Занятие 3ч1.doc

description:
Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами
ClrScr;
WriteLn('TRUE and FALSE = ', p_true and p_false);
ReadKey;
end.
{Очистить экран}
{Результат логической операции}
{Ожидание нажатия любой клавиши}
Результат работы программы
TRUE and FALSE = FALSE
2. Условный    оператор
Наименование оператора говорит само за себя потому, что в него входит логическое условие  или логическое
выражение. Условный оператор может быть  полным  (альтернативным) и  неполным   (без альтернативы) и имеет
следующий формат:
if  <Логическое условие (выражение)>  then  <Оператор 1>  else  <Оператор 2>
или
if  <Логическое условие (выражение)>  then  <Оператор 1>
<Логическое условие (выражение)>     логическое условие или выражение, которое может быть записано в
где
операторе явно или вычислено в программе и присвоено логической переменной;
<Оператор 1>,  <Оператор 2>    простые или составные операторы. В случае составного оператора (группы
операторов) следует применять операторные скобки begin и end.
Алгоритм работы условного оператора  if … then … else  следующий.
Если  (if)  <Логическое   условие  (выражение)>  принимает  значение  True  (истина),   то  (then)    выполняется
<Оператор 1> и далее следует выполнение операторов программы,  иначе (else) выполняется <Оператор 2> и далее
следует выполнение  операторов программы.
  ложного   (False)   значения  <Логическое   условие

(выражение)>  не   выполняет  <Оператор   1>,   а   переходит   к   выполнению   операторов   программ,  следующих  за
условным оператором.
Неполный   формат   условного   оператора   в   случае
Ниже приводится практический пример, в котором присутствуют операции отношения и логические операции.
Определить существует ли треугольник, стороны которого заданы целыми значениями a, b, c.
Program V1L04P2; {Определение возможности существования треугольника}
Uses Crt;
Var a,b,c :integer;
{}
begin
ClrScr;
Write('Введи значения сторон треугольника через пробел : ');
ReadLn(a,b,c);
{Ввод числовых значений с клавиатуры}
{Логическое условие с альтернативой}
if (a+b>c)and(a+c>b)and(b+c>a) then WriteLn('Треугольник существует')
else WriteLn('Треугольник не существует');
{}
ReadKey;
end.
Логические операторы могут быть вложены друг в друга.  Такая конструкция показана ниже.
Program V1L04P3; {Определение возможности существования треугольника}
Uses Crt;
Label 100,200;
Var a,b,c :integer;
{}
begin
ClrScr;
Write('Введи значения сторон треугольника через пробел: ');
ReadLn(a,b,c);
{Вложенные логические операторы}
if a+b<c then else
if a+c<b then else
if b+c<a then else GoTo 100;
{}
WriteLn('Треугольник не существует');
GoTo 200;
{}
20

description:
100: WriteLn('Треугольник существует');
200: ReadKey
end.
Результаты работы программ
Вариант 1
Введи значения сторон треугольника через пробел:  3 4 5
Треугольник существует
Вариант 2
Введи значения сторон треугольника через пробел:  1 2 3
Треугольник не существует
Можно заметить, что программа V1L04P3 хуже, чем V1L04P2 потому, что она длиннее и использует оператор
безусловного  перехода  GoTo.
Урок 2.  Оператор  выбора.  Исследование по логическим операциям
2.1. Оператор выбора  case … of.
2.2. Исследование по логическим операциям (практическая работа).
Условный оператор осуществляет выбор по логическому условию для выполнения одного из двух операторов
или     групп   операторов.   Для   того,   чтобы   осуществить   выбор   для   выполнения   нескольких   операторов   или   групп
операторов, необходимо написать несколько условных операторов.
Рассмотрим простую программу, которая решает задачу печати на экране дисплея название дня недели по его
номеру.
Program V1L04P4; {Печать названия дня недели по его номеру}
Uses Crt;
Var n :integer;
{}
begin
ClrScr;
Write('Введи номер дня недели : ');
ReadLn(n);
{Логические условия}
if n=1 then
begin
end;
WriteLn(n,' ый день недели  понедельник и самый тяжелый');
if n=2 then WriteLn(n,' ой день недели  вторник');
if n=3 then WriteLn(n,' ий день недели  среда');
if n=4 then WriteLn(n,' ый день недели  четверг');
if n=5 then WriteLn(n,' ый день недели  пятница');
if n=6 then WriteLn(n,' ой день недели  суббота');
if n=7 then WriteLn(n,' ой день недели  воскресенье');
if (n<1) or (n>7) then
WriteLn('Номер дня недели введен неверно !');
{}
ReadKey
end.
{Условие правильности введения дня недели}
{Ожидание нажатия любой клавиши}
Из   текста   программы   видно,   что   для   решения   поставленной   задачи   потребовалось   восемь   условных
операторов, с помощью которых осуществляется выбор названия дня недели по равенству введенного значения номера
дня недели с записанными данными в логических условиях. В TP 7.0  подобные задачи решаются с помощью оператора
выбора  case … of.
2.1. Оператор выбора  case … of
Оператор   выбора  case  …  of
 является   обобщением   условного   оператора  if  …  then  …  else.     Он   дает
возможность выполнить одно из нескольких действий в зависимости от значения переключателя и имеет следующий
полный (альтернативный) формат:
case  <Переключатель>  of
<Список констант 1>: <Оператор 1>;
<Список констант 2>: <Оператор 2>;
21

intro:
Занятие строится таким образом, что после прослушивания теоретического материала (10 –15 мин.), учащимся предлагается практическое задание, которое выполняется ими за 20 - 30 мин. и корректируется в процессе изучения материала в более сложную задачу по изучаемой теме.
Автор сознательно избегал сложных примеров, будучи убежденными, в том, что гораздо важнее для учащихся понимание алгоритмов предлагаемых  задач,  приобретение навыков  разработки  алгоритмов, их программирования и выполнения на компьютере в течение одного занятия. Такой подход к изучению языка программирования позволяет сосредоточить внимание на самом процессе программирования, который в данном случае более важен для изучения языка, чем  решение сложной задачи, наверняка трудной большинству учащихся. Такие задачи, по мнению авторов, неоправданно занимают большое количество учебного времени, превращая учителя из инициатора процесса обучения  в диктатора.

информатика

group: Дисциплины


extracted_text:
Типы данных языка программирования TP 7.0 .  Вещественный тип
      Занятие 4
1. Урок 1. Типы данных языка программирования  (я. п.) TP 7.0.
2. Урок 2. Основные   математические  функции  и  процедуры я. п.  TP 7.0.
3. Урок 3. Практическая работа.
4. Контрольные вопросы и упражнения.
Урок  1.   Типы данных языка программирования Turbo Pascal 7.0
1.1. Вещественный тип данных.
1.2. Представление вещественных чисел в компьютере. Форматный вывод вещественных чисел.
       Арифметические операции над вещественными числами.
1.3. Практический пример.
1.1. Вещественный тип данных
В  TP  7.0 определено пять стандартных вещественных (действительных) типов:  Real  (вещественный),  Single
(одинарной   точности),  Double  (двойной   точности),  Extended  (повышенной   точности)   и  Comp  (целое   в   формате
вещественного числа).   Диапазон  действительных  типов приведен в таблице 1.
Тип
Допустимые значения модулей числа
Real
Single
Double
Extended
Comp
2.9*1039 : 1.738
1.5*1045 : 3.4*1038
5.0*10324 : 1.7*10308
3.4*104932 : 1.1*104932
1 : 9.2*1018 (263  1)
      Таблица 1
Формат
(байт)
Точность
(знаков)
11 : 12
   7 :   8
15 : 16
19 : 20
19 : 20
  6
  4
  8
10
  8
Тип Real доступен всегда. Действия над типами Single, Double, Extended и Comp могут выполняться только
при наличии числового сопроцессора,   либо программой эмуляции (моделирования)  сопроцессора,   осуществляемой
директивой   {$N+   или   $E+}   в   начале   программы.   Тип  Comp  обеспечивает   точную   обработку   много   разрядных
математически целых чисел.
В  TP  7.0 любое значение, которое относится к   вещественному типу, может быть записано в виде дробного
числа, например,   a:=7.63;  b:=125.0  (переменным  a   и   b   присвоены значения вещественных чисел   7.63   и 125.0
соответственно). По обеим сторонам записи должна располагаться хотя бы одна цифра (например,  0.5   0.0).
Или в экспоненциальной форме, например:
5.0000000000E – 01 = 5 * 10 1 = 0.5
5.0000000000E + 00 = 5 * 10 0 = 5.0
5.0000000000E + 01 = 5 * 10 1 = 50.0
6.3710421431E + 03 = 6.3710421431 * 10 3 = 6371.0421431
1.2. Представление вещественных чисел в компьютере. Форматный вывод вещественных чисел
Представление   вещественных   чисел   в   компьютере   не   является   точным.   Эти   числа   приближенные   с
определенной степенью точности, достаточной для получения удовлетворяющего практическим целям результата.
1.2.1. Представление вещественных чисел в компьютере
Вещественные   числа   в   компьютере   обычно   представляются     в   форме   с   плавающей   точкой,   т.е.,   число
представляется   в   виде   его  цифровой   части   (мантиссы   )  и  порядка   (показателя   степени   10).   Количество
разрядов, отводимых   на порядок, определяет диапазон допустимых чисел, а   количество разрядов, отводимое под
мантиссу, определяет точность числа.
  Машинное число представляет собой с некоторой точностью некоторый диапазон вещественных чисел, где
числа в верхней части рисунка обозначают номера двоичных разрядов (см. рис.1). Арифметические операции над ними
производятся не точно, как это бывает с целыми числами, а по правилам действий над приближенными числами.  По
этой причине следует избегать логических операций сравнения вещественных чисел на их точное равенство.

           0
Знак
мантиссы

1 : 10
Модуль
мантиссы
        11            12 : 15
Модуль
порядка
порядка
Знак
Рис. 1. Представление машинного числа в формате с плавающей точкой.
26 При выводе  на экран дисплея вещественных чисел оператором   Write () индицируются  числа в формате с
плавающей точкой (экспоненциальная форма).

1.2.2. Форматный вывод вещественных чисел
Для вывода вещественного числа на экран дисплея или на твердый носитель (бумага) необходимо определить
формат выводимого числа, т.е.  количество цифр до десятичной точки и количество цифр после десятичной точки.
Форматный вывод вещественных чисел определяет количество выводимых чисел, включая десятичную точку и
количество чисел после десятичной точки.  Все  необходимые инструкции для этого описываются в операторе  Write
(), например,  Write  (c:5:2);, а это значит, что выводится переменная   ‘c’   в виде пяти цифровых символов, один из
которых точка, две  цифры выводится до десятичной токи и две после  точки.
1.2.3. Арифметические операции над вещественными числами.
Арифметические операции производятся над вещественными числами по законам арифметики. Как и в целом
типе, отсутствие операции возведения в степень отчасти возмещается наличием функции  Sqr(x) – квадрат числа x.
Операция
Унарная
+

Бинарная
+

*
/
Действие
    Таблица 2
Пример
Сохранение знака
Изменение знака
Сложение
Вычитание
Умножение
Деление
+A
A
A+B
AB
A*B
A/B
Арифметические  выражения строятся из чисел, констант, переменных, стандартных функций и операций над
ними.
Практический пример.
Приведенная   ниже   программа   демонстрирует   выполнение   арифметических   операций   над   вещественными
числами.
Program V1L05P1; {Демонстрация арифметических операций}
Uses Crt;
Var a,b,ma,mb,c: real;
begin
ClrScr;
Write('Введи два действительных числа через пробел: ');
ReadLn(a,b);
{}
WriteLn(' Унарная операция – изменение знака:');
ma:=a;
mb:=b;
WriteLn(ma:15:7, ' ',mb:15:7);
{}
WriteLn(' Умножение');
c:=a*b;
WriteLn(a:15:7,' * ',b:15:7,' = ',c:15:7);
{}
WriteLn(' Деление, если делитель не равен 0');
c:=a/b;
WriteLn(a:15:7,' / ',b:15:7,' = ',c:15:7);
{}
ReadKey;
end.
{Ввод действительных чисел}
Результат работы программы
Введи два действительных числа через пробел:  12.3456 13.45678
Унарная операция  изменение знака:
    12.3456000    13.4567800
27 Бинарные операции:
Умножение
     12.3456000 *      13.4567800 =    166.1320232
Деление
     12.3456000 /      13.4567800 =      0.9174260
Следует обратить внимание, что при делении целых чисел любого типа,  тип результата будет всегда real.
Урок 2.  Основные  математические  функции  и  процедуры   языка программирования  Turbo Pascal 7.0
2.1. Основные математические функции и процедуры.
2.2. Практические примеры.
2.1. Основные  математические  функции и процедуры
Основные   математические   функции   и   процедуры   находятся   в   библиотечном   модуле  System,   который
вызывается в Pascalпрограмме по умолчанию.
2.1.1. Основные математические функции
        Таблица 3
Функция
Abs(x)
Sqr(x)
Sqrt(x)
Exp(x)
Ln(x)
Sin(x)
Cos(x)
Arctan(x)
Pi
Trunc(x)
Frac(x)
Int(x)
Round(x)
Random(x)
Odd(x)
Примечание
Математический аналог
Тип результата совпадает с типом аргумента
Абсолютная величина  x > |x|
Квадрат числа  x > x2
Тип результата совпадает с типом аргумента
Результат всегда  типа  real
Квадратный корень из числа
Экспонента ex
Результат типа  real
Результат типа  real
Логарифм натуральный
Аргумент выражен в радианах
Синус  угла
Аргумент выражен в радианах
Косинус  угла
Результат угол выраженный в радианах
Арктангенс числа
3.1415922654
Число пи
Целая часть дробного числа
Целое число
Дробная часть дробного числа Целое число
Целая часть дробного числа
Округление дробного числа
Случайное число  от  0  до  x
TRUE, если  x  нечетно
FALSE, если  x  четное
Ближайшее меньшее целое
Целое число
Random – случайное число от  0  до  1
Примечание.   Функции   Sqrt,   Exp,   Ln,  Sin,   Cos,   Arctan   возвращают результат  вещественного  типа.
Аргументом  этих функций может быть число любого числового типа.
В арифметическом выражении принят следующий приоритет операций.
1. Вычисление арифметического выражения в скобках;
2. Вычисление  значений стандартных математических функций;
3. Умножение и деление;
4. Сложение и вычитание.
В языке программирования TP 7.0, математическое выражение записывается в строчку, а порядок выполнения
операций регулируется с помощью скобок.
Программа vv8 демонстрирует выполнение математических функций языка программирования TP 7.0.
Program V1L05P2; {Демонстрация математических функций}
Uses Crt;
Var n: real;
{}
begin
ClrScr;
Write('Введи действительное число:  '); ReadLn(n);  WriteLn;
{}
WriteLn('Абсолютная величина (модуль) числа');
Abs(',n:15:7,') = ',Abs(n):15:7);
WriteLn('
WriteLn('Квадрат числа');
WriteLn('Sqr(',n:15:7,') = ',Sqr(n):15:7);
WriteLn('Квадратный корень числа');
28 if n>0 then WriteLn('Sqrt(',n:15:7,') = ',Sqrt(n):15:7)
else WriteLn('   Подкоренное число отрицательно!');
WriteLn('Целая часть дробного числа');
WriteLn('Trunc(',n:15:7,') = ',Trunc(n):7);
WriteLn('Дробная часть дробного числа  ');
WriteLn('Frac(',n:15:7,') = ',Frac(n):15:7);
WriteLn('Целая часть дробного числа');
WriteLn('Int(',n:15:7,') = ',Int(n):15:7);
WriteLn(' Округление дробного числа');
WriteLn('Round(',n:15:7,') = ',Round(n):7);
{}
ReadKey;
end.
Результаты работы программы
Вариант 1
Введи действительное число:  15.871
Абсолютная величина (модуль) числа
Вариант 2
Введи действительное число:  12.135
Абсолютная величина (модуль) числа
Abs(15.1780000)    =      15.8710000
Abs(12.1350000)    =      12.1350000
Квадрат числа
Квадрат числа
Sqr(15.1780000)    =     251.8886410
Sgr(12.1350000)    =     147.2582250
Квадратный корень числа
Квадратный корень числа
Sqr(15.1780000)    =       3.9838424
Подкоренное число отрицательно!
Целая часть дробного числа
Trunc(15.1780000)  =      15
Дробная часть дробного числа
Целая часть дробного числа
Trunc(12.1350000)
=     12
Целая часть дробного числа
Frac(15.1780000)   =
0.8710000
Frac(12.1350000)
=      0.1350000
Округление дробного числа
Round(15.1780000)  =      16
Целая часть дробного числа
Round(12.1350000)
=     12
В качестве примера предлагается программа вычисления математического выражения:
C =

72,13

Cos
60


Ln


10
58,7

Sin
60



51,17
30
Cos

Данное математическое выражение представляет собой разность двух математических выражений, которые
вычисляются в программе отдельно, затем находится их разность.
Program V1L05P3; {Вычисление математического выражения}
Uses Crt;
Var a,b,C: real;
{}
begin
ClrScr;
a:=(13.72+Cos(60*pi/180))*(7.58+Sin(60*pi/180))/Ln(10);
{}
b:=Sqrt(17.51/Cos(30*pi/180));
{}
C:=ab;
WriteLn('C = ',C:7:2); {Вывод на экран результата вычислений}
{}
ReadKey;
end.
{Вычисление уменьшаемого}
{Вычисление вычитаемого}
{Вычисление разности}
Результат работы программы
C =    47.66
2.1.2. Математические  процедуры
Randomize     процедура   инициализации   генератора   случайных   чисел,   которая   обеспечивает   несовпадение
последовательностей случайных чисел, функции Random. При генерации случайного числа без процедуры Randomize,
при каждом   последующем запуске   программы на исполнение будет генерироваться одно и тоже   случайное число.
Пример программы генерации случайных чисел приведен ниже.
Program V1L05P4; {Генерация случайных чисел}
Uses Crt;
Var  a,b,c :real;
         d :integer;
29 {Инициализация генератора случайных чисел}
{Случайное действительное число от 0 до 1}
{Случайное действительное число от 0 до 10}
{Случайное целое число от 10 до 10}
{}
begin
ClrScr;
Randomize;
a:=Random;
b:=Random*10;
c:=10*(RandomRandom);
{}
WriteLn('Случайное действительное число от   0 до  1 = ' a:5:3);
WriteLn('Случайное действительное число от   0 до 10 = ' b:5:3);
WriteLn('Случайное действительное число от 10 до 10 = ' c:5:3);
WriteLn('Случайное    целое    число    от   0 до 10 = ' d:6);
{}
ReadKey
end.
Возможный результат работы программы
Случайное действительное число от   0 до  1 =     0.825
Случайное действительное число от   0 до 10 =     1.798
Случайное действительное число от 10 до 10 =    5.586
Случайное   целое    число     от   0 до 10 =     5
Урок 3. Практическая работа
1. Вычислить математические выражения:
1)
71,87,5





32,4

7,5

2
7,5




71,8

2
32,4
2








2)
,5
2
71653

3
Ln

 
34,2

65
Sin

Tg

31
;
3)
1
ab2
Ln
ba
ba


  при различных  a и  b.
2. Вычислить площадь треугольника по:

1) трем    сторонам.    S =
     где  p =  a + b + c    периметр треугольника;
()

cpbpapp
()
(

)
,    при    различных   значениях   сторон,
2) двум сторонам и углу между ними.    S =
1
2
ab
Sin
, при различных значениях сторон и
3) стороне и трем углам.  S
2
a 
2
Sin

Sin

Sin
= ,  при различных значениях стороны и
угла;
углов.
3. По известным сторонам треугольника вычислить значения его углов.
Контрольные вопросы и упражнения
1. Как записываются математические выражения в TP 7.0?
2. Чем обеспечивается точность представления вещественного числа в компьютере?
3. Что обеспечивает математическая процедура Randomize?
4. В каких единицах измерения выражается аргумент в тригонометрических функциях языка TP 7.0?
5. Каким приемом можно возвести в целую степень больше  2  вещественное число?
6. Напишите фрагмент программы вычисления  1, 25 1, 25 .
7. Какой прием применяется при вычислении сложных математических выражений?
8. Какие стандартные математические функции возвращают результат вещественного типа?
30 Для заметок, вопросов и ответов
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
31

file_name: Занятие 4ч1.doc


extracted_text:
Циклические операторы. Оператор цикла со счетчиком
      Занятие 5
1. Урок 1. Организация   циклических   операций  операторами   безусловного   и условного переходов.
2. Урок 2. Оператор цикла со счетчиком.
3. Урок 3. Практическая работа.
4. Контрольные вопросы и упражнения.
Цикл      это  последовательность  операторов,  которая  может  выполняться  более одного  раза.    В  TP  7.0
имеется несколько операторов организации циклических операций, которые будут нами рассмотрены.
Урок  1. Организация    циклических     операций    операторами   безусловного   и    условного переходов
1.1. Оператор безусловного перехода.
1.2. Оператор условного перехода.
1.3. Организация циклической операции.  Практический пример.
Pascalпрограмма   состоит   из   операторов,   которые   выполняются   последовательно   один   за   другим.   Иногда
требуется  изменить последовательный  ход выполнения  операторов  программы.  Для этих  целей  служат  операторы
безусловного   и   условного   переходов,   которые   предназначены   для   изменения   порядка   выполнения   операторов   в
программе.
1.1. Оператор безусловного перехода
В  TP  7.0 существует только один оператор безусловного перехода, который изменяет последовательность
выполнения   операторов   в   программе  без   всякого   условия.   После   выполнения   оператора   безусловного   перехода,
выполняется оператор, помеченный меткой.
Оператор безусловного перехода имеет следующий формат:
GoTo  <Метка>;
где <Метка>    идентификатор (имя метки), или целое число (без знака) от 0 до 9999.
Все используемые в программе метки перечисляются в разделе Label описательной части программы. В теле
программы метка записывается в начале необходимой строки. После метки ставится двоеточие. Частое использование
оператора безусловного перехода в программе может привести к путанице и  логическим ошибкам.
1.2. Оператор условного перехода
Оператор условного перехода изменяет последовательность выполнения операторов программы, по какому
либо логическому условию. После выполнения оператора условного перехода выполняется оператор, помеченный
меткой.
Оператор  условного перехода имеет следующий формат:
if  <Логическое условие>  then    [else  ];
<Логическое условие>     булевы выражения, операнды которых могут быть записаны явно или вычислены в
где
программе;
,     операторы безусловного перехода. Квадратные скобки означают, что эта
запись может отсутствовать.
Рассмотрим,   на   примере   программы   вычисления   таблицы   умножения   двух   чисел,     действие   операторов
безусловного и условного переходов.
Program V1L06P1;{Таблица умножения двух чисел с операторами безусловного и условного
переходов}
Uses Crt;
Label met,100;
Var a,b,c,i:integer;
{}
begin
ClrScr;
Write('Введи целое двухзначное число a: '); Read(a);
Write('Введи целое двухзначное число b: '); Read(b);
i:=1;
met:
{Начальное значение счетчика}
{Метка расположена в отдельной строке}
{Описание меток}
{Описание переменных}
c:=a*i;
if i>b then GoTo 100;
WriteLn(a:3,' * ',i:3,' = ',c:5);
i:=i+1;

{Условный переход}
{'c' назначен формат вывода 5 знакомест}
{Счетчик итераций}
31 Циклические операторы. Организация циклических операций операторами безусловного и условного переходов. Оператор цикла со счетчиком
GoTo met;
{}
100: ReadKey
end.

{Безусловный переход}
{Метка расположена в строке процедуры}
Произведения двух чисел будут вычисляться до тех пор, пока счетчик будет меньше 9. Это обеспечивается
безусловным   переходом   на   оператор   вычисления   произведения   (метка  met)   и   условным   переходом   на   оператор,
помеченный меткой 100.
Оператор условного перехода работает следующим образом. Если (if) логическое условие  (b>9)  верно (true),
то  (then)  выполнится  оператор,  помеченный  меткой  100,  если нет,  то  вновь  будут    выполняться    операторы,
стоящие за меткой met  до тех пор,  пока  переменная b не будет больше 9.
Следующая программа позволяет вычислить таблицу умножения двух чисел с использованием только одного
оператора безусловного перехода.
Program V1L06P2;{Таблица умножения двух чисел с операторами безусловного и условного
переходов}
Uses Crt;
Label met;
Var a,b,c,i:integer;
{}
begin
ClrScr;
Write('Введи целое двухзначное число a: ');Read(a);
Write('Введи целое двухзначное число a: ');Read(b);
i:=1;
met:
{Начальное значение счетчика}
{Описание меток}
c:=a*b;
WriteLn(a:3,' * ',i:3,' = ',c:5);
i:=i+1;
if i>b then ReadKey else GoTo met
{}
end.
{Счетчик итераций}
{Условный переход}
Возможные результаты работы программ
Вариант 1
Введи целое число a:  3
Введи целое число b:  5
Вариант 2
Введи целое число a:  123
Введи целое число b:  5
  3 * 1 =     3
  3 * 2 =     6
  3 * 3 =     9
  3 * 4 =    12
  3 * 5 =    15
123 * 1 =  123
123 * 2 =  246
123 * 3 =  369
123 * 4 =  492
123 * 5 =  615
Условный переход в этой программе работает следующим образом. Если (if) логическое условие верно (true),
то  (then) выполняется оператор  ReadKey,  иначе  (else) осуществляется  переход  на метку  met. В этой программе
обошлись одной меткой.
Урок  2. Оператор цикла со счетчиком
Данный оператор позволяет организовать циклическую операцию, в которой до выполнения цикла известны
начальное  и  конечное  значения счетчика повторений цикла.
Оператор цикла со счетчиком имеет следующий формат:
for  <Переменная цикла> :=  <Н. з. с.>  to  <К. з. с.>  do  <Оператор>;
где
<Переменная цикла>   идентификатор  счетчик;
<Н.з.с.>,   <К.з.с.>      начальное и конечное значение счетчика соответственно, которые задаются явно или
могут быть вычислены в программе. Переменная цикла должна иметь целый тип;

<Оператор>    простой или составной оператор.
В случае составного оператора,  группа операторов заключается в операторные скобки  begin  и  end.
Оператор работает следующим образом. Циклическое выполнение оператора или группы операторов будет
происходить   до   тех   пор,   пока   счетчик   будет   меньше   своего   конечного   значения.   В   процессе   выполнения   цикла
показания счетчика увеличиваются на 1 с каждой итерацией.
32 {Начальное значение суммы}
{Увеличение значения счетчика на 1}
{Накопление суммы}
Program V1L06P3; {Вычисление суммы целых чисел 1 до n}
Uses Crt;
Var summa,i,n: integer;
{}
begin
ClrScr;
Write ('Введи количество чисел:  ');
ReadLn(n);
summa:=0;
{Циклическая операция}
for i:=1 to n do
summa:=summa+i;
WriteLn ('Сумма чисел от 1 до ',n,' равна  ',summa);
{}
ReadKey
end.
Результат работы программы
Введи количество целых чисел:  10
Сумма чисел от 1 до 10 равна   55

Program V1L06P4; {Вычисление произведения чисел от 1 до n}
Uses Crt;
Var p,i,n: longint;
{}
begin
ClrScr;
Write ('Введи количество целых чисел:  ');
ReadLn(n);
p:=1;
В случае, когда возникает необходимость уменьшения показаний счетчика, используют следующий формат
команды:
for  <Переменная цикла> :=  <Н. з. с.>  downto  <К. з. с.>  do  <Оператор>;
где
<Переменная цикла>   идентификатор  счетчик;
<Н.з.с.>,   <К.з.с.>      начальное и конечное значение счетчика соответственно, которые задаются явно или
могут быть вычислены в программе. Переменная цикла должна иметь целый тип;
<Оператор>    простой или составной оператор.
В этом случае показания счетчика будут уменьшаться на 1 с каждой итерацией.
Следующие простые программы демонстрируют использование оператора цикла со счетчиком.
В приведенной ниже программе использован цикл с уменьшением показаний счетчика в учебных целях.
{Начальное значение произведения}
{Циклическая операция}
for i:=n downto 1 do
p:=p*i;
{Уменьшение значения счетчика на 1}
{Накопление произведения}
WriteLn ('Произведение чисел от ',n, ' до 1 равно ',p);
ReadKey
end.
Результат работы программы
Введи количество целых чисел:  10
Произведение чисел от 1 до 10 равно  3628800
Алгоритм этих программ одинаков и заключается в накоплении результата в переменной, начальное значение
которой задается.
Урок  3.  Практическая работа
1. Используя программу  V1L06P3,  вычислить сумму четных значений переменной цикла.
2. Используя программу  V1L06P4, вычислить произведение чисел меньше 50, которые делятся на 3, на 5.
3. Вычислить
y
 
1


1
n



n
при  n = 2, 20 200, 2000, 3200.
4. Генератор случайных чисел генерирует 50 вещественных чисел от 0 до 5. Определить количество чисел,
попадающих в диапазон  от 0.25  до 0.32
33 Циклические операторы. Организация циклических операций операторами безусловного и условного переходов. Оператор цикла со счетчиком

При решении задач 1 и 2 использовать операции   div  (целочисленное деление) и   mod  (остаток от деления
целых чисел) и оператор логического условия  if … then … else.
При решении задачи 3 использовать для возведения в степень   n  алгоритм многократного умножения числа
само на себя (например,   a3   =   a*a*a) и накопления результата, в какой либо переменной.  Для проверки результата
вычислить функцию   y, используя   математические функции  Ln (x)  и  Exp (x).
При решении задачи 4 использовать процедуру  Randomize   и   функцию   Random  (x). Показать динамику
расчета функции  y.
Контрольные вопросы и упражнения
1. Что представляет собой циклическая операция?  Приведите примеры из жизни.
2. Как организовать счетчик итераций?
3. Как организовать циклическую операцию операторами условного и безусловного переходов?
4. Как работает оператор цикла со счетчиком?
5. Как накопить в какой либо переменной результат суммы нескольких чисел?
6. Как  накопить в какой либо переменной  результат  произведения  нескольких чисел?
7. На какую величину изменяется показание счетчика  в операторе цикла со счетчиком?
8. Напишите оператор цикла со счетчиком для вычисления суммы трех чисел, в котором начальное значение
счетчика меньше конечного?
9. Напишите оператор цикла со счетчиком для вычисления произведения трех чисел, в котором начальное
значение счетчика больше конечного?
10. Как получить результат возведения в степень 1024 любого числа на экране дисплея?
11. Напишите программу вычисления произведения двух целых чисел без операции умножения.
12. Напишите программу вычисления произведения трех целых чисел без операции умножения.
13. Напишите программу вычисления степени двух  целых чисел.
14. Напишите программу вычисления суммы 10ти случайных целых чисел, которые генерируются в диапазоне
0 : 50.
15. Вычислить
S
100

i

2
         .
2

1
i
i


1
1
16. Напишите программу определения количества четных и нечетных целых чисел, полученных их случайной
генерацией в диапазоне  от  0 : 20. Количество чисел задавать с клавиатуры.
17. Напишите программу определения количества положительных и отрицательных целых чисел, полученных
их случайной генерацией в диапазоне  от  20 : 20. Количество чисел задавать с клавиатуры.
Для заметок, вопросов и ответов
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
34 ______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
35

file_name: Занятие 5ч1.doc

description:
Циклические операторы. Оператор цикла со счетчиком
      Занятие 5
1. Урок 1. Организация   циклических   операций  операторами   безусловного   и условного переходов.
2. Урок 2. Оператор цикла со счетчиком.
3. Урок 3. Практическая работа.
4. Контрольные вопросы и упражнения.
Цикл      это  последовательность  операторов,  которая  может  выполняться  более одного  раза.    В  TP  7.0
имеется несколько операторов организации циклических операций, которые будут нами рассмотрены.
Урок  1. Организация    циклических     операций    операторами   безусловного   и    условного переходов
1.1. Оператор безусловного перехода.
1.2. Оператор условного перехода.
1.3. Организация циклической операции.  Практический пример.
Pascalпрограмма   состоит   из   операторов,   которые   выполняются   последовательно   один   за   другим.   Иногда
требуется  изменить последовательный  ход выполнения  операторов  программы.  Для этих  целей  служат  операторы
безусловного   и   условного   переходов,   которые   предназначены   для   изменения   порядка   выполнения   операторов   в
программе.
1.1. Оператор безусловного перехода
В  TP  7.0 существует только один оператор безусловного перехода, который изменяет последовательность
выполнения   операторов   в   программе  без   всякого   условия.   После   выполнения   оператора   безусловного   перехода,
выполняется оператор, помеченный меткой.
Оператор безусловного перехода имеет следующий формат:
GoTo  <Метка>;
где <Метка>    идентификатор (имя метки), или целое число (без знака) от 0 до 9999.
Все используемые в программе метки перечисляются в разделе Label описательной части программы. В теле
программы метка записывается в начале необходимой строки. После метки ставится двоеточие. Частое использование
оператора безусловного перехода в программе может привести к путанице и  логическим ошибкам.
1.2. Оператор условного перехода
Оператор условного перехода изменяет последовательность выполнения операторов программы, по какому
либо логическому условию. После выполнения оператора условного перехода выполняется оператор, помеченный
меткой.
Оператор  условного перехода имеет следующий формат:
if  <Логическое условие>  then  <GoTo metka1>  [else  <GoTo metka2>];
<Логическое условие>     булевы выражения, операнды которых могут быть записаны явно или вычислены в
где
программе;
<GoTo metka1>, <GoTo metka2>    операторы безусловного перехода. Квадратные скобки означают, что эта
запись может отсутствовать.
Рассмотрим,   на   примере   программы   вычисления   таблицы   умножения   двух   чисел,     действие   операторов
безусловного и условного переходов.
Program V1L06P1;{Таблица умножения двух чисел с операторами безусловного и условного
переходов}
Uses Crt;
Label met,100;
Var a,b,c,i:integer;
{}
begin
ClrScr;
Write('Введи целое двухзначное число a: '); Read(a);
Write('Введи целое двухзначное число b: '); Read(b);
i:=1;
met:
{Начальное значение счетчика}
{Метка расположена в отдельной строке}
{Описание меток}
{Описание переменных}
c:=a*i;
if i>b then GoTo 100;
WriteLn(a:3,' * ',i:3,' = ',c:5);
i:=i+1;

{Условный переход}
{'c' назначен формат вывода 5 знакомест}
{Счетчик итераций}
31


extracted_text:
Циклические операторы  с постусловием и с предусловием
      Занятие 6
1. Урок 1. Оператор цикла с постусловием  repeat … until.
2. Урок 2. Оператор цикла с предусловием  while … do.
3. Урок 3. Практическая  работа.
4. Контрольные вопросы и упражнения.
Отличительной   чертой   операторов   циклов   с   постусловием   и   предусловием   является   то,   что   заранее   не
известно количество итераций, как это известно, в операторе цикла со счетчиком  for … to … do.
Урок 1.  Оператор цикла с постусловием  repeat … until
1.1. Оператор цикла с постусловием  repeat … until.
1.2. Алгоритм работы оператора цикла с постусловием.
1.3. Практический пример.
1.1. Оператор цикла с постусловием  repeat … until
Оператор имеет следующий формат:
repeat
<Оператор 1>
<Оператор 2>
…
<Оператор N>
until  <Логическое  условие>;
где
<Оператор 1> … <Оператор N>   операторы (оператор) цикла;
<Логическое условие>      логическое условие или логическое выражение, операнды которого могут быть
записаны явно или вычислены в программе.
выполняют ключевые слова  repeat  и  until.
Оператор   repeat  …  until   не требует  операторных скобок  в случае составного оператора.   Эту функцию
1.2. Алгоритм работы оператора цикла с постусловием
В   начале   работы   выполняются   операторы   цикла,   затем   проверяется   логическое   условие.   В   случае,   когда
условие ложно (False),  происходит вычисление логического условия и повторение операции до тех пор, пока (until)
условие  ложно.       В случае   истинности     логического условия   (True), происходит выход из цикла и выполнение
следующего за циклом оператора. Поскольку проверка логического условия происходит в конце оператора цикла, то
циклическая операция  выполняется  хотя бы один раз. Это означает, что оператор  repeat … until   не годится для
ситуации, когда операторы цикла не должны выполняться ни разу.
Словесные алгоритмы, которые применяются для объяснения работы несложных алгоритмов, при   всей   их
подробности  описания,  нельзя назвать наглядными, поэтому  существует графическая форма представления работы
алгоритма  в виде блоксхемы,  как  более  наглядного (см. рис. 1).
Начало
Выполнение
операторов цикла
Вычисление
операнда
логического условия
Да
Логическое
условие
Нет
Выполнение строк
 программы
за циклом
Конец
35 Оператор цикла с постусловием  repeat ...  until.  Оператор цикла с предусловием  while ...  do.  Практическая работа
Рис. 1.  Блоксхема выполнения циклической операции с постусловием.
Рассмотрим работу оператора с постусловием на примере программы, приведенной ниже.
Задача. Вывести на экран дисплея десять случайных действительных чисел, попадающих в заданный диапазон
(2 : 3).  Генерация случайных чисел должна происходить в диапазоне  от 0  до  10.
Для   решения   задачи   организован   цикл    for  …  to  …  do  со   счетчиком,   который   называется  внешним,
обеспечивающий   десятикратное   выполнение   внутреннего   цикла  repeat  …  until  по   генерации   случайных   чисел.
Количество   итераций  внутреннего  цикла   случайно   и  заканчивается,   когда   случайное   число   попадет   в  указанный
диапазон. Это число будет напечатано на экране дисплея.
Program V1L07P1; {Попадание чисел в заданный диапазон}
Uses Crt;
Var n :real;
i :integer;
{}
begin
ClrScr;
Randomize;
WriteLn('Случайные числа, попадающие в интервал от 2 до 3:');
for i:=1 to 10 do
begin
{Внешний цикл}
{Инициализация генератора случайных чисел}
repeat
n:=Random*10;
{Внутренний цикл}
{Генерация случайного числа в диапазоне от 0 до 10}
until (n>2.0) and (n<3.0); {Логическое условие внутреннего цикла}
WriteL(n:4:2);
end;
ReadKey
end.
{Печать числа, попавшего в заданный интервал}
{Конец внешнего цикла}
Результат работы программы
Случайные числа, попадающие в интервал от 2 до 3:
 2.50 2.92 3.00 2.42 2.16 2.40 2.49 2.49 2.14 2.04
Урок  2. Оператор цикла с предусловием   while … do
2.1. Оператор цикла  while ... do
2.2. Алгоритм работы оператора цикла с предусловием.
2.3. Порядок выполнения задания на компьютере.
2.4. Практический пример.
Оператор цикла с предусловием является наиболее универсальным, чем рассмотренные ранее операторы и,
практически, позволяет обходиться без операторов цикла со счетчиком  (for … to … do).
2.1. Оператор цикла   while … do  (цикл с предусловием)
Оператор имеет следующий формат:
while  <Логическое  условие>  do  <Оператор>;
или в случае составного оператора:
while  <Логическое  условие>  do
begin
<Оператор 1>;
<Оператор 2>;
…
<Оператор N>;
end;
<Логическое условие>     булевы выражения, операнды которых могут быть записаны явно или вычислены в
где
программе;
<Оператор 1> …  <Оператор N> ,  <Оператор>   операторы (оператор) программы, которые выполняются
в цикле.
36 2.2. Алгоритм работы оператора цикла с предусловием
Блоксхема  работы  оператора  цикла  с предусловием  представлена на рис. 2.
Циклическая    операция    начинает   выполняться     с   проверки   логического      условия.   В случае, когда
логическое   условие   не   выполняется   (False),   вход   в   цикл   не   происходит   и   управление   передается   следующему
оператору программы, минуя циклическую операцию.
Когда же логическое условие выполняется (True), происходит выполнение операторов цикла до тех пор, пока
справедливо логическое условие.
Вычисление
операнда
логического условия
Нет
Начало
Логическое
условие
Да
Выполнение
операторов цикла
Выполнение строк
 программы
за циклом
Конец
Рис. 2.  Блоксхема выполнения циклической операции с предусловием.
2.3. Порядок выполнения задания на компьютере
Рассмотрим порядок выполнения задания на компьютере на примере, предлагаемой ниже задачи.
разработка на компьютере, в данном случае  решение задачи, осуществляется по следующему порядку.
Всякая
2.3.1.  Предложение на разработку
На этом этапе разработчику предлагается  некоторое задание, как правило, совершенно некорректное и, в
случае его согласия, переходят к следующему этапу.
2.3.2. Постановка задачи
Это определение, совместно с заказчиком, входных и выходных данных задачи, режимы и устройства их ввода
и вывода,  формы документов и конкретные алгоритмы их получения.
2.3.3. Разработка алгоритма
Данная работа осуществляется исполнителем для разработки программы (комплекса программ) выполнения
задания на компьютере. Программа может быть разбита на любое разумное количество подпрограмм и выполнена
различными программистами, которым поставлена конкретная задача. Конкретная задача выполняется программистом,
который определяет алгоритмы для ее выполнения.
Конкретный алгоритм,   например, некоторое вычисление, может быть основан на предположении, правиле,
законе (например, физическом), теореме и т.д. Форма представления алгоритма, максимально подробная,   может  быть
словесной  или в виде блоксхемы.
2.3.4. Программирование на выбранном языке программирования
Достаточно подробный алгоритм кодируется в программу на выбранном языке программирования.  На этом
этапе исходный алгоритм может быть уточнен требованиями грамматики языка программирования   в лучшую или
худшую сторону.
2.3.5. Отладка и тестирование
Этап отладки программы является естественным и происходит с любой самой простой программой, которую
пишет даже самый крутой программист.
37 Оператор цикла с постусловием  repeat ...  until.  Оператор цикла с предусловием  while ...  do.  Практическая работа
Квалификация программиста определяется  временем  выполнения этой работы и включает в себя исправление
грамматических   ошибок,   что   довольно   просто,   и   несложных   вычислительных   и   логических   ошибок.   Сложные
вычислительные   и   логические   ошибки   исправляются   на   этапе   тестирования   программы      проверки   правильности
работы программы с данными, которые дают заранее известный результат.
2.3.6. Контрольный  просчет  на  реальных  данных  и  предложение   программного   продукта заказчику
Это окончательная проверка программного продукта (задания) перед сдачей его в эксплуатацию заказчику.  На
данном этапе может произойти все, что угодно и только сила убеждения исполнителя и некомпетентность заказчика,
приводит к успешному завершению работ. В противном случае работы могут быть продолжены.
2.4. Практический  пример
2.4.1. Предложение на разработку программы.
Задача.  Определить   максимальный    показатель   степени  n   для  a  >=  b n.
2.4.2. Постановка задачи:

задачу решить для целых значений показателя степени  n;
значения  a  и  b  вводить с клавиатуры;
результат решения выводить на дисплей  в  виде:
Для  a  >=  b    ;   n  =  <вычисленное значение  n>
обеспечить интерактивный режим ввода исходных данных (подсказку).
2.4.3. Разработка алгоритма
В качестве основы алгоритма вычисления показателя степени   n, принимаем  правило  возведения  числа в
некоторую степень, как   многократное умножение этого числа   на само себя,  т.е.   b * b * … * b   n   раз.  Это
количество раз  должно быть   подсчитано компьютером, значит необходимо организовать  счетчик, который будет
накапливать количество  операций  умножения,    пока    результат     b  n     будет    меньше  или  равен   числу   a,
введенному с клавиатуры.
Достаточно   подробный   словесный   алгоритм   решения   поставленной   задачи   на   компьютере   выглядит
следующим образом:
1. Очистить экран от возможно присутствующей там информации.
2. Вывод на экран сообщения "Введи два числа  a  и  b  (a > b):"
3. Ввод чисел с клавиатуры.
4. Присвоение начального значения  0  показателю степени  n.
5. Присвоение  начального значения  b  вычисляемому произведению  st.
6. Организация  циклической  операции  с  условием  и   пока   a  <=  st   вычислять  произведение   b
*  b  * b …  и  увеличивать  значение  n  на  1  с  каждой итерацией.
7. Вывести результат на экран дисплея в предлагаемой постановкой задачи форме.
8.
Задержать изображение результата на экране дисплея до нажатия любой клавиши на клавиатуре.
2.4.4.  Программирование на выбранном языке программирования
Выбирается  язык программирования  TP  7.0 и   в соответствии с правилами грамматики языка кодируется
программа:
Program V1L07P2; {Максимальная степень n  для a >= bn}
Uses Crt;
Var a,b,st :real; {Описание переменных, используемых в программе}
         n :integer;
{Вызов библ. модуля для работы с дисплеем}
{Основной блок программы}
begin
ClrScr;
WriteLn('Введи два числа a и b (a > b):');
Read(a,b);
n:=0;
st:=b;
{Циклическая операция с предусловием}
while st<=a do
begin
n:=n+1;
st:=st*b;
38
{Очистить экран}
{Вывод сообщения на экран}
{Ввод чисел с клавиатуры}
{Начальное значение показателя степени}
{Начальное значение вычисляемого произведения}
{Оператор цикла}
{Начало блока операторов цикла}
{Вычисление показателя степени}
{Вычисление операнда логического условия} end;
WriteLn('Для ',a:5:2,' >= ',b:5:2,' ^ n ;  n = ',n);
{}
ReadKey
end.
{Конец блока операторов цикла}
{Вывод результата}
{Ожидание нажатия любой клавиши}
Возможный вариант работы программы
Введи два числа a и b (a > b):
6.78
2.4
Для   6.78  >=  2.40 ^ n ;  n  =  2
Далее   предлагается   набрать   текст   программы   на   компьютере,   произвести   отладку,   тестирование   и
контрольный просчет с различными входными данными.
Урок 3. Практическая  работа
3.1. Задача построения таблицы Пифагора циклической операцией со счетчиком (for … to … do).
3.2. Задача построения таблицы Пифагора циклической операцией с постусловием (repeat … until).
3.3. Задача построения таблицы Пифагора циклической операцией с предусловием (while … do).
3.1. Задача построения таблицы Пифагора циклической операцией со счетчиком (for … to … do)
Построить   блок   схему   и   написать   программу   вывода   на   экран   дисплея   таблицы   Пифагора,   используя
циклическую операцию for … to … do.
Пояснение.    Таблица   Пифагора   состоит   из   10   строк   и   10   столбцов,   каждый   элемент   которой   есть
произведение   номера   строки   и   столбца.   Далее   приведена   программа   расчета   и   печати   таблицы   Пифагора   с
использованием цикла со счетчиком.
Program V1L07P3; {Таблица Пифагора (цикл for ... to ... do)}
Uses Crt;
Var a,b :byte;
{}
begin
ClrScr;
WriteLn('Таблица Пифагора':30); WriteLn;
for a:=1 to 10 do
begin
{Внешний цикл}
for b:=1 to 10 do
Write(' ',a*b:4);
{Внутренний цикл}
{Оператор внутреннего цикла}
WriteLn;
end;
{}
ReadKey
end.
{Конец внешнего цикла}
{Ожидание нажатия любой клавиши}
Начало
a := 1
b := 1
b := b + 1
Выво
д
a * b
a := a + 1
Да
b <=
10
Нет
Нет
a <=
10
Да
Конец
  Рис. 3.  Блоксхема алгоритма построения таблицы Пифагора циклической операцией со счетчиком.
3.2. Задача построения таблицы Пифагора циклической операцией с предусловием  (repeat ... until)
Построить   блоксхему   и   написать   программу   вывода   на   экран   дисплея   таблицы   Пифагора,   используя
циклическую операцию repeat ... until (см. рис.1).
Program V1L07V4; {Таблица Пифагора (цикл repeat ... until)}
39 Оператор цикла с постусловием  repeat ...  until.  Оператор цикла с предусловием  while ...  do.  Практическая работа
Uses Crt;
Var a,b,c:byte;
{}
begin
ClrScr;
WriteLn('Таблица Пифагора':30); WriteLn;
a:=0;
{}
repeat
b:=0;
a:=a+1;

repeat
b:=b+1;
c:=a*b;
Write(c:4);
until b=10;
WriteLn;
until a=10;
{}
ReadKey
end.
{Начальное значение 1го множителя}
{Внешний цикл}
{Начальное значение 2го множителя}
{Увеличение начального значения 1го множителя на 1}
{Внутренний цикл}
{Увеличение начального значения 2го множителя на 1}
{Вычисление произведения}
{Вывод результата на экран}
{Условие пока не будет равно выполняется внутренний цикл}
{Перевод строки}
{Логическое условие  пока не будет равно выполнять внешний цикл}
{Ожидание нажатия любой клавиши}
3.3. Задача построения таблицы Пифагора циклической операцией со счетчиком (while … do)
3.3.1.  Построить   блоксхему   и   написать   программу   вывода   на   экран   дисплея   таблицы   Пифагора,   используя
циклическую операцию while ... do  и  repeat ... until (см.рис. 1, 2).
В данном варианте программы, внешний цикл организован циклической операцией с предусловием (while .. do),
а внутренний циклической операцией с постусловием (repeat ... until). Обратите внимание, что операторы внутреннего
цикла не заключены в операторные скобки (begin, end). Роль операторных скобок выполняет  конструкция  repeat ...
until.
Program V1L07P5; {Таблица Пифагора (внешний цикл while...do, внутренний цикл repeat...until)}
Uses Crt;
Var a,b,c:byte;
{}
begin
ClrScr;
WriteLn('Таблица Пифагора':30); WriteLn;
a:=0;
{}
while a<10 do
begin
{Пока выполняется логическое условие производить вычисления}
{Начальное значение 1го множителя}
b:=0;
a:=a+1;

repeat
b:=b+1;
c:=a*b;
Write(c:4);
until b=10;
WriteLn;
end;
ReadKey
end.
{Начальное значение 2го множителя }
{Увеличение начального значения 1го множителя на 1}
{Внутренний цикл}
{Увеличение начального значения 2го множителя на 1}
{Вычисление произведения }
{Вывод результата на экран}
{Условие пока не будет равно выполняется внутренний цикл}
{Перевод строки}
{Ожидание нажатия любой клавиши}
3.3.2.  Построить   блоксхему   и   написать   программу   вывода   на   экран   дисплея   таблицы   Пифагора,   используя
циклическую операцию while ... do (см. рис. 2).
Program V1L07P6; {Таблица Пифагора (внешний цикл while ... do, внутренний цикл while ... do)}
Uses Crt;
Var a,b,c:byte;
{}
begin
ClrScr;
WriteLn('Таблица Пифагора':30); WriteLn;
a:=0;
{}
{Начальное значение 1го множителя }
40 while a<10 do
begin
b:=0;
a:=a+1;

while b<10 do
begin
{Внешний цикл пока логическое условие верно}
{Начальное значение 2го множителя}
{Увеличение начального значения 1го множителя на 1}
{Внутренний цикл пока логическое условие верно}
b:=b+1;
c:=a*b;
Write(c:4);
{Увеличение начального значения 2го множителя на 1}
{Вычисление произведения }
{Вывод результата на экран}
end;
WriteLn;
end;
ReadKey
end.
{Ожидание нажатия любой клавиши}
3.4. Задача построения таблицы Пифагора с использованием операторов безусловного и условного переходов
Покажем такую возможность, хотя это худший вариант. Для решения данной задачи следует организовать
циклические операции, для чего необходимы операторы  условного  перехода  if  …  then  …  else  …  и  безусловного
перехода GoTo.
{Описание переменных сомножителей}
{Описание меток}
{Стирание экрана дисплея}
{Вызов библиотечного модуля работы с дисплеем и клавиатурой}
Program V1L07P7; {Таблица Пифагора (цикл с безусловным и условным переходами)}
Uses Crt;
Var a,b:byte;
Label met1,met2;
{}
begin
ClrScr;
WriteLn('Таблица Пифагора':30); WriteLn;
a:=1;
met1: b:=1;
met2: Write(' ',a*b:4);
if b<10 then
begin
   b:=b+1;
   GoTo met2;
end;
if a<10 then
begin
   WriteLn;
   a:=a+1;
   GoTo met1;
end;
{}
ReadKey
end.
{Задержка работы программы до нажатия любой клавиши клавиатуры}
{Начальное значение первого сомножителя}
{Начальное значение второго сомножителя}
{Печать произведения}
{Условие внутренней циклической операции}
{Увеличение значения второго сомножителя}
{Безусловный переход на указанную метку}
{Условие внешней циклической операции}
{Перевод строки}
{Увеличение значения первого сомножителя}
{Безусловный переход на указанную метку}
Результат работы программ
Таблица Пифагора
   1   2   3   4   5   6   7   8   9  10
   2   4   6   8  10  12  14  16  18  20
   3   6   9  12  15  18  21  24  27  30
   4   8  12  16  20  24  28  32  36  40
   5  10  15  20  25  30  35  40  45  50
   6  12  18  24  30  36  42  48  54  60
   7  14  21  28  35  42  49  56  63  70
   8  16  24  32  40  48  56  64  72  80
   9  18  27  36  45  54  63  72  81  90
  10  20  30  40  50  60  70  80  90 100
Контрольные вопросы и упражнения
1. В чем отличие операторов цикла с постусловием от оператора цикла с предусловием?
2. Изобразите это отличие на блоксхеме.
3. Изобразите блоксхему оператора цикла со счетчиком.
4. Поясните,  как работают вложенные циклы.
41 Оператор цикла с постусловием  repeat ...  until.  Оператор цикла с предусловием  while ...  do.  Практическая работа
5. Приведите примеры вложенных циклов из жизни.
6. Смоделируйте работу цикла с постусловием операторами безусловного и условного переходов (показать в
виде фрагмента программы).
7. Смоделируйте работу цикла с предусловием операторами безусловного и условного переходов (показать в
виде фрагмента программы).
Для заметок, вопросов и ответов
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
42

file_name: Занятие 6ч1.doc