Практическая работа № 7
Тема работы: Примеры построения алгоритмов с использованием конструкций проверки условий, циклов и способов описания структур данных. Разработка несложного алгоритма решения задачи
Цель работы: изучить на основе готовой программы операторы разветвляющейся структуры языка Turbo Pascal; научиться составлять простейшие программы с использованием операторов условного и безусловного перехода.
Время выполнения: 2 часа.
Оснащение работы: персональный компьютер, среда программирования Turbo Pascal.
Порядок выполнения работы:
- ознакомиться с теоретическими положениями по данной теме;
- выполнить задания практической работы;
- сформулировать вывод.
- оформить отчет.
Краткий теоретический материал
Оператор присваивания: <имя>:=выражение; где <имя>– имя переменной, выражения задают порядок вычисления значения и состоят из операндов (переменных, констант, функций), соединенных операциями.
Операции:
Обозначение |
Наименование |
* |
Умножение |
/ |
Деление |
Div |
Целочисленное деление |
Mod |
Остаток от деления |
+ |
Сложение |
- |
Вычитание |
Типы объектов с обеих сторон:= должны строго совпадать, за исключением того случая, когда тип переменной REAL, а тип выражения INTEGER..
Оператор вывода WRITE(<список>) или WRITELN(<список вывода>), например:
a) WRITE(t); – программа выводит значение переменной t, курсор остается на этой же строке;
WRITELN (t, s) – программа выводит значение переменной t и s и затем переводит курсор на новую строку.
1. Линейное программирование.
Линейным называется алгоритм, в котором результат получается путем однократного выполнения заданной последовательности действий при любых значениях исходных данных.
Переменная величина – это именованный элемент, который в процессе выполнения программы может принимать различные значения.
Типы переменных:
Тип |
Наименование |
Диапазон допустимых значений |
INTEGER |
Целое |
-32768…32767 |
LONGINT |
Длинное целое |
-2 *109 … 2*109 |
REAL |
Вещественный |
10-38 …1038 |
CHAR |
Символьный |
Множество символов ASCII |
Переменные описываются в разделе VAR с указанием типа, например: var a: integer; b,c: Real; R:char;.
Оператор ввода с клавиатуры READ() или READLN(), например:
а) READ(a, b) –программа ожидает ввода значений переменных a и b. Курсор остается на этой же строке;
б) READLN (a, b) –программа ожидает ввода данных и затем переводит курсор на новую строку.
2. Циклическое программирование.
Оператор FOR используется, когда известно число повторений в цикле.
Этот оператор обеспечивает повторение цикла, управляемое переменной:
FOR переменная: =начальное значение TO конечное значение DO оператор;
где переменная -переменная порядкового типа, причем она последовательно принимает значения от начального до конечного с шагом 1, либо:
FOR переменная: =начальное значение DOWNTO конечное значение DO оператор,
где переменная принимает последовательно убывающие значения с шагом -1.
Если необходимо последовательно выполнять несколько операторов в теле цикла, их следует объединить в составной оператор с помощью операторных скобок BEGIN...END.
Схема универсального оператора цикла такова:
WHILE логическое выражение DO оператор; (оператор будет повторяться, пока истинно логическое выражение). Цикл необходимо составить так, чтобы перед каждым повторением оператора значение логического выражения вычислялось заново. Если необходимо повторять несколько операторов, их следует объединить составным оператором BEGIN...END.
Оператор FOR обеспечивает повторение цикла, управляемое переменной:
FOR переменная: =начальное значение TO конечное значение DO оператор;
где переменная – переменная порядкового типа, причем она последовательно принимает значения от начального до конечного с шагом 1.
FOR переменная: =начальное значение DOWNTO конечное значение DO оператор; где переменная принимает последовательно убывающие значения с шагом -1.
3.Ветвление.
Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки, выполнить то или иное действие.
На алгоритмическом языке: |
на языке Паскаль: |
Полная форма команды ветвления: |
|
Если условие То действие Иначе действие 2 Конец_Если |
IF условие THEN оператор 1 ELSE оператор 2; |
Неполная форма команды ветвления. |
|
Если условие То действие Конец _Если |
IF условие THEN оператор; |
Команда IF выполняет после слов THEN, ELSE только один оператор.
Если требуются выполнить более чем один оператор, то цепочку операторов заключаем в операторные скобки BEGIN...END.
Для получения сложных условий простые условия объединяют с помощью скобок и операций AND(и), OR(или), NOT(не), например (х>-5) and (x<5) (простые условия заключаются в скобки и соединяются союзом).
Оператор варианта применяется, когда требуется сделать выбор из нескольких возможностей. Эта структура позволяет переходить на одну из ветвей в зависимости от заданного выражения. Оператор выбора заменяет несколько операторов развилки (его ещё называют оператором множественного ветвления):
например, сообщать название сезона по его номеру:
CASE <К-порядковая переменная> of case n of
<константа 1> :<оператор 1>; 1: writeln('зима ');
<константа 2> :<оператор 2>; 2: writeln('весна ');
. . . 3: writeln(' лето');
<константа N>:<оператор N>; 4: writeln('осень ');
[ELSE <оператор>;] end {case};
{ветку [ELSE] можно не использовать.}
END {case};
Любая из указанных серий операторов может состоять как из единственного оператора, так и нескольких.
Выполнение практической части. Работа на ПК
Задание 1. Составьте программу решения следующих задач:
1. Сколько ударов в сутки делают часы с боем? (можно пользоваться оператором WRITELN(...))
2. Найдите сумму чисел 7, 10, 13, 16, 19, 22, 25, 28 и 31.
3. Наводнение продолжалось ровно сутки. В первый час вода в реке поднялась на один дюйм, во второй – на 2 дюйма, в третий – на 3 дюйма и т.д. На сколько дюймов прибыла вода в реке за сутки?
4. Изделие весит 89,4 г. Сообразите, сколько тонн весит миллион таких изделий?
Задание 2. Составьте программу решения следующих задач:
1. Заменить операторы присваивания а:=5.5; b:=7.89 на оператор ввода с клавиатуры READLN (a, b). Ввести несколько раз значения переменных а и b, всякий раз исполняя программу суммирования и записывая ответы.
2. Один из романов Ж. Верна называется "20000 тысяч лье под водой". Если бы расстояния измерялись в километрах, то как бы звучало название этого романа? (Одно морское лье равно приблизительно 5,555 километра). Составить программу решения этой задачи.
3. Составить программу вычисления площади пола и площади боковой поверхности комнаты длиной а=7м, шириной b= 5м и высотой с=3,5м.
Задание 3. Составьте программу решения следующей задачи:
1. С первой яблони сорвали одно яблоко, со второй-2 яблока, с третьей- 3 яблока, с четвёртой-4 яблока и т.д. и, наконец, с пятнадцатой-15 яблок. Сколько яблок сорвали со всех 15 яблонь?
2. Вычислите: 99-98+97-96+95-94+…+5-4+3-2+1.
3. Если дома на улице пронумерованы от 1 до 80, то сколько раз в числах встречается цифра 4?
4. Население города ежегодно увеличивается на 1/40 наличного состава жителей (сейчас в нем примерно 240 тыс.). Через сколько лет население города утроится? (тип переменой "население" –REAL (Вещественный)).
Задание 4. Составьте программу решения следующих задач:
1. Даны действительные числа а, b,c (a¹0). Выяснить, имеет ли уравнение Ах2+Вх+С=0 действительные корни. В этом случае найти корни квадратного уравнения. Иначе должен выдаваться ответ, что действительных коней нет.
2. Напишите программу, которая по номеру дня недели - целому числу от 1 до 7 - выдает в качестве результата количество занятий в вашей группе в соответствующий день.
3. Ввести букву русскую или латинскую и вывести сообщение, какая это буква: русская, латинская, прописная, строчная.
4. По заданному номеру месяца вывести название следующего месяца.
5. По заданному номеру месяца, дате и году дня недели определить дату следующего дня.
Результат деятельности: Отчет по практической работе с выполненными заданиями 1-4.
Контрольные вопросы:
1. В чем отличие оператора присваивания a:=5 от оператора read(a)?
2. При каком из этих способов ввода данных программа имеет более широкое применение?
3. В чем отличие линейных программ от циклических?
4. В чем отличие оператора WHILE от оператора REPEAT?
5. Что такое вложенные циклы?
6. Сколько вариантов различных действий есть у оператора выбора (CASE)?
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.