Кафедра математики и информатики 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Кафедра математики и информатики



Кафедра математики и информатики

 

 

Практикум

 

 

 

 

Рязань 2006

УДК 681.3.06(075.8)

ББК 32.973.26-018.1

Б 866

Булаев М.П. Turbo Pascal 7.1: основы программирования: практикум / М.П. Булаев, В.В.Царьков; под ред. М.П.Булаева –Рязань: РГМУ, 2006. -112 с.

 

 

Рецензенты: Г.И. Нечаев, доктор технических наук, профессор Рязанской

государственной радиотехнической академии;

И.Ю. Каширин, доктор технических наук, профессор

Рязанской государственной радиотехнической академии.

 

 

Предназначен для студентов первого и второго курсов специальностей 040400 (стоматология), 021700 (филология), 013100 (экология), 021100 (юриспруденция), 061100 (менеджмент) и 022700 (клиническая психология) при выполнении ими лабораторного практикума по дисциплине информатика.

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

 

 

Табл. 12 Ил. 23 Библиогр.: 9 назв.

 

 

Печатается по решению Учебного-методического Совета Рязанского государственного медицинского университета.

 

 

© Булаев М.П., В.В. Царьков

© Рязанский государственный

медицинский университет, 2006

 
 


Введение

 

С каждым годом всё большее и большее значение уделяется компьютеризации всех отраслей народного хозяйства. Компьютеры, в составе вычислительных комплексов, используются для ведения бухгалтерского учёта, выполнения банковских операций, для моделирования и статистической обработки результатов, выполнения офисных работ, словом нет такой области, в которой не используются компьютеры.

В своей основе компьютер является совокупностью электронных элементов транзисторов, которые могут обрабатывать только электронные сигналы. Эти сигналы условно можно представить в виде совокупности нулей и единиц, что соответствует двоичной системе счисления. Электронные сигналы, заставляющие компьютер выполнять те или иные действия называются командами. Так как "мозгом" компьютера является интегральная микросхема, называемая центральным управляющим модулем или микропроцессором, то эти команды предназначены для микропроцессора. Таким образом, микропроцессор, работающий с той или иной программой, на самом деле выполняет последовательность команд, представляемых в двоичной системе счисления, называемых машинным кодом.

Как известно для решения некоторой задачи необходимо построить алгоритм, то есть конечную последовательность действий по обработке исходных данных и приводящую к некоторому результату. Написать программу в машинном коде довольно сложное и кропотливое дело и чем труднее и объёмнее задача, тем больше возрастает трудоёмкость программирования. Языки программирования позволяют представить алгоритм в понятной для микропроцессора форме. Алгоритмическим языком программирования называется набор символов с заданными правилами образования из этих символов конструкций, с помощью которых описывается порядок выполнения алгоритма. Алгоритмические языки упрощают процесс разработки программ. Современные языки программирования позволяют решать широкий круг задач, но в определённых случаях предпочтительнее использовать специализированные языки программирования. Для каждого языка программирования разрабатывается специальная программа, позволяющая переводить текст программы на соответствующем языке в исполнительную форму. Эта программа относится к классу специальных системных программ, называемых инструментальными или трансляторами. Трансляторы подразделяются на два вида: компиляторы и интерпретаторы. Компилятор преобразует исходный текст программы в исполняемую форму и сохраняет его на внешнем запоминающем устройстве в виде исполняемого модуля (файл с расширением *.EXE). После трансляции исполняемый файл можно отправлять на исполнение самостоятельно. Интерпретатор переводит исходный текст программы в команды микропроцессора и сразу отправляет его на выполнение, не сохраняя его на диске.

Основными этапами при выполнении работы (варианта задания) являются: составление алгоритма; написание программы; загрузка программы в ПЭВМ; отладка программы; получение результата; интерпретация (толкование) результата.

Составление алгоритма и написание программы выполняются до начала лабораторных занятий. Рекомендуется тщательно проверить самому программу, до того как ее подпишет преподаватель к выполнению, так как наличие ошибок существенно увеличивает время отладки программы и решения задачи на ПК. Студент должен уметь правильно интерпретировать (объяснять) полученные результаты.

После получения результатов студент оформляет отчет по утвержденному образцу, который защищается на очередном занятии.

Отчет должен быть оформлен по соответствующему образцу (Приложение 5), и содержать: задание к работе; схему алгоритма; отлаженную программу решения задачи; результаты решения задачи, подписанные преподавателем или дежурным инженером-программистом.

Преподаватель вправе вернуть небрежно оформленный или содержащий ошибку отчет по лабораторной работе, а также не зачесть ее, если теоретическая подготовка студента по этой теме недостаточна.

Рекомендации:

Прежде чем писать программу, уясните себе смысл задачи.

¨ Какова цель программы?

¨ Какие данные она требует?

¨ Откуда поступают данные?

¨ Какие результаты должна выдавать программа?

То есть определите внешние спецификации программы.

Не существует какого-то фиксированного набора правил, который можно было бы рекомендовать при разработке программ и выполнение которого обеспечило бы составление правильной программы. Когда задача четко понята, можно приступать к составлению проекта программы на алгоритмическом языке или псевдокоде.

Проектирование осуществляется как последовательность шагов, направленных на решение задачи. Сначала набрасывается план решения задачи в общем виде. Далее описание составляется более детально:

¨ Каждый модуль должен быть достаточно простым и обозримым.

¨ Делайте наглядными связи между модулями.

¨ Каждый модуль должен выполнять единственную функцию, но делать это хорошо.

¨ После того как проект программы готов, переведите ее на язык Паскаль.

¨ Никаких трюков и заумного программирования — пишите программы просто.

¨ Сдвигайте строки так, чтобы выделить логическую структуру программы.


Варианты представления информации в ПК

Вся информация (данные) представлена в виде двоичных кодов. Для удобства работы введены следующие термины, обозначающие совокупности двоичных разрядов (табл. 1. 2). Эти термины обычно используются в качестве единиц измерения объемов информации, хранимой или обрабатываемой в ЭВМ.

Таблица 1.2. Двоичные совокупности

Количество двоичных разрядов в группе       8*1024 8*10242 8*10243 8*10244
Наименование единицы измерения Бит Байт Параграф Килобайт (Кбайт) Мегабайт (Мбайт) Гигабайт (Гбайт) Терабайт (Тбайт)

Последовательность нескольких битов или байтов часто называют полем данных. Биты в числе (в слове, в поле и т.п.) нумеруются справа налево, начиная с 0-го разряда (рис.1.1)

Рис. 1.1. Двоичная система счисления

 

Примечание: БИТ (англ. bit, от binary двоичный и digit знак), двоичная единица, в теории информации единица количества информации (минимальная единица). БАЙТ (англ. byte), единица измерения количества информации при ее хранении, передаче и обработке на ЭВМ. Состоит из 8 бит (двоичных единиц). Информация, содержащаяся в одном байте обычно достаточна для представления одной буквы алфавита или 2 десятичный цифр.

В ПК могут обрабатываться поля постоянной и переменной длины.

Поля постоянной длины:

слово - 2 байта двойное слово - 4 байта
полуслово - 1 байт расширенное слово - 8 байт
слово длиной 10 байт- 10 байт  

Числа с фиксированной запятой чаще всего имеют формат слова и полуслова, числа с плавающей запятой - формат двойного и расширенного слова.

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

Компьютеры используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами:

· для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток — нет тока, намагничен — не намагничен и т.п.), а не, например, с десятью, — как в десятичной;

· представление информации посредством только двух состояний надежно и помехоустойчиво;

· возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;

· двоичная арифметика намного проще десятичной.

Недостаток двоичной системы — быстрый рост числа разрядов, необходимых для записи чисел.

 

Перевод из одной системы счисления в другую

Вариант 1

1. Перевести число 165 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 531 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 200 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 1110100 переведите в десятичную систему счисления.

 

Вариант 2

1. Перевести число 113 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 331 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 333 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 10101011 переведите в десятичную систему счисления.

 

Вариант 3

1. Перевести число 253 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 313 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 113из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 1101000 переведите в десятичную систему счисления.

 

Вариант 4

1. Перевести число 522 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 122 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 212 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 11100111 переведите в десятичную систему счисления.

 

Вариант 5

1. Перевести число 141 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 131 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 174 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 100001010 переведите в десятичную систему счисления.

 

Вариант 6

1. Перевести число 251 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 364 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 487 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 100010001 переведите в десятичную систему счисления.

 

Вариант 7

1. Перевести число 397 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 577 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 348 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 10101110 переведите в десятичную систему счисления.

 

Вариант 8

1. Перевести число 231 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 531 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 358 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 10110000 переведите в десятичную систему счисления.

 

Вариант 9

1. Перевести число 200 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 750 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 351 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 10010111 переведите в десятичную систему счисления.

 

Вариант 10

1. Перевести число 325 из десятичной системы счисления в шестнадцатеричную систему счисления.

2. Перевести число 521 из десятичной системы счисления в восьмеричную систему счисления.

3. Перевести число 305 из десятичной системы счисления в двоичную систему счисления.

4. Двоичное число 11111010 переведите в десятичную систему счисления.


Запуск среды: TURBO.EXE

Сохранение: SAVE AS или F2

5. Компиляция: ALT+F9 или F9

6. Выполнить: CTRL+F9

Var

A,B,C:Integer;

Begin

Write('A='); Read(A);

Write('B='); Read(B);

WriteLn('A=',A, 'B=',B);

D:=A+B;

WnteLn('C=',C);

End.

 

Выход из среды Turbo Pascal

 

Для выхода из среды Turbo Pascal требуется нажать комбинацию [Alt-X] либо выполнить команду Quit из меню File. Если изменения в программе не были сохранены, Turbo Pascal выдаст окно с предупреждающим сообщением (рис. 2.10).

 

Рис. 2.10.

 

С помощью клавиш управления курсором выделите нужный пункт:

Yes - сохранить изменения в файле и выйти из среды;

No - не сохранить изменения и выйти из Среды;

Cancel - не выходить из среды Turbo Pascal.

После выделения пункта нажмите [Enter].

 

Элементы языка Turbo Pascal

 

Алфавит

Алфавит - совокупность допустимых в языке символов (или групп символов, рассматриваемых как единое целое). В языке Turbo Pascal все компоненты формируются из множества символов стандарта ASCII (Приложение 3). Элементы алфавита можно условно разбить на четыре группы:

♦ символы, используемые в идентификаторах;

♦ разделители;

♦ специальные символы;

♦ неиспользуемые символы.

Алфавит языка включает в себя:

- прописные и строчные латинские буквы и символ 'подчеркивания':

A, B,C,..., X, Y, Z, a, b, c,..., x, y, z, _.

Буквы используются для построения идентификаторов и служебных слов.

- десять арабских цифр:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Цифры используются для записи чисел и идентификаторов.

- двадцать два специальных символа:

+ - * / = > <.,;: @ ' () [ ] { } # $ ^

Специальные символы используются для конструирования знаков операций (например >=, <=, +,:=), выражений, комментариев, а также как синтаксические разделители.

Идентификаторы

 

Идентификаторами называются имена, используемые для обозначения переменных, констант, меток, процедур, функций и типов данных. Идентификаторы состоят из прописных и строчных букв латинского алфавита, цифр и символа подчеркивания. Длина идентификатора не ограничена, однако значащими являются только первые 63 его символа.

Прописные и строчные символы в идентификаторах и служебных словах не различаются. Следовательно, следующие четыре идентификатора обозначают одну и ту же переменную: index, Index, InDex, INDEX.

В качестве идентификаторов запрещено использовать служебные слова, зарезервированные в Турбо-Паскале (например Begin, End, Write и т.д).

Примеры правильно записанных идентификаторов:

JAM

Разделители

 

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

♦ пробел;

♦ любой управляющий символ (коды от 0 до 31), включая символ возврата каретки (код 13);

♦ комментарий.

В любом месте программы, где можно поместить один разделитель, их можно поместить любое количество и в любом сочетании. Это позволяет более наглядно представить структуру программы. Комментарии заключаются либо в скобки { }, либо в скобки вида (* *) и могут занимать любое число строк, а находятся могут любом месте программы. Во время компиляций программы все комментарии, за исключением директив компилятора, игнорируются.

Пример: {Пример комментарий}

(*Это также пример комментарий*)

Константы и переменные

 

Константы и переменные могут принимать значения любого из разрешенных типов данных в заданных диапазонах.

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

В ПК каждой переменной соответствует определенная область памяти, в которую заносится ее значение.

 

MaxInt возвращает число 32767, наибольшее значение типа Integer
MaxLongint возвращает число 2147483647, наибольшее значение типа LongInt
Pi возвращает вещественное число p=3.14159265358

 

Выражения

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

Вычисление значений выражений выполняется в определенном порядке. Начинается вычисления с определения переменных и констант, входящих в выражение. Они являются основой для дальнейших вычисление. Так, в первую очередь вычисляются выражения, заключенные в круглые скобки. Для любых двух вложенных друг в друга пар круглых скобок вычисляются сначала внутреннее выражение, а затем внешнее. Далее вычисляются значения входящих в выражение функций и т.д. Приоритеты всех действий, выполняемых при вычислении выражении, приведены в табл. 3.5.

 

Таблица 3.5

Группа Тип действий Операции или элементы
  Вычисления в круглых скобках ()
  Вычисления значений функций Функции
  Унарные операции Not,унарный+,унарный-
  Операции типа умножения *, /, Div, Mod, And, Shl, Shr
  Операции типа сложения +, -, Or, Xor
  Операции отношения =, <>, <, >, <=, >=

 

В примере, приведенном ниже, цифрами указан порядок, в котором будут выполнятся операции:

Математическая запись этого выражения имеет вид:

Оператор n

End.

 

Заголовок программы начинается служебным словом Program, за которым записывается идентификатор программы (имя). Имя программы строится в соответствии с правилами записи идентификаторов, после имени программы иногда указывают в круглых скобках имена стандартных файлов ввода и вывода, связанных соответственно с клавиатурой и экраном монитора (Input, Output). Заканчивается описание заголовка символом "; ". Например:

Program MyProgram (Input, Output);

Program MyProgram;

Затем после служебного слова Uses через запятую перечисляются модули, процедуры и функции которые, используются в программе. В конце ставится "; ". Это могут быть как стандартные модули Pascal - Crt, Graph, так и модули, разработанные пользователем. Например:

Uses Crt, Graph;

За служебным словом Label следуют перечисленные через запятую идентификаторы меток, которые используются в программе. Метка - это идентификатор, заканчивающийся двоеточием ": ", помечающий место в программе, на которое передаётся управление при помощи оператора безусловного перехода.

Label M1, M2, M3;

Следом располагается раздел описаний констант, начинающийся служебным словом Const. Идентификатор константы отделяется от значения знаком "=". После каждой константы ставится "; ". Константы - это данные, значения которых не могут изменяться в процессе выполнения программы. Константы распознаются компилятором по форме их записи. В языке Pascal используются константы трех видов: числовые, булевские и символьные. Числовые константы предназначены для представления числовых данных (целых и вещественных). Булевские константы используются для представления данных, имеющих смысл логических высказываний (истина-ложь). Символьные константы представляют данные, являющиеся последовательностями символов. Например:

Const

A=12; {целочисленная константа A}

B:Real=23.05; {типизированная константа B}

S=Строка; {строковая константа}

Типы данных, вводимые пользователем, описываются после служебного слова Type. Новый тип данных вводится своим идентификатором, за которым после знака равенства " = ", записывается расшифровка типа. Например:

Type

Color = (Red, Green, Blue); {Перечисляемый тип}

Scale = 2 * (A - B).. (A + B); {Тип диапазон}

MassivReal = Array[1..100] Of Real; {Массив из 100 элементов типа Real}

MassivChar = Array[0..19] Of Char; {Массив из 20 элементов типа Char}

Раздел описания переменных начинается служебным словом Var. Значения переменных могут изменяться во время выполнения программы. Переменные идентифицируются по именам (идентификаторам), с каждой переменной программы связывается один тип данных. При описании они отделяются двоеточием ": ". Если необходимо различным переменным назначить один тип данных, то они перечисляются через запятую, после последнего идентификатора ставится двоеточие, за которым указывается тип данных. Тип - это множество значений переменной вместе с множеством операций, которые можно выполнять над элементами этого множества. Заданием переменной некоторого типа, явно определяется множество значений, которые можно присваивать этой переменной, а также операции, с помощью которых можно манипулировать ее значениями. Число отдельных значений, принадлежащих некоторому типу, называется мощностью типа.

Var

X,Y,Z: Real; {переменные типа Real}

I,J,K: Integer; {переменные типа Integer}

Digit: 0..9; {переменная перечисляемого типа}

C: Color; {переменная типа Color, который описан в разделе Type}

Done, Error: Boolean; {переменные типа boolean }

Operator: (plus, minus, times); {переменная перечисляемого типа}

Matrix: Array[1..10,1..10] Of Real; {переменная - массив}

Следом идёт раздел описания процедур и функций. Он будет рассмотрен позднее при рассмотрении вопросов, связанных с организацией подпрограмм.

Тело программы начинается служебным словом Begin, которое определяет точку начала выполнения программы. Затем следуют операторы, описывающие алгоритм решения задачи. Они отделяются друг от друга точкой с запятой "; ". Завершается тело программы служебным словом End за которым ставится точка.

Кроме описаний и операторов Pascal-программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев {и закрывающей скобкой комментариев}.

Пример: вычислить площадь треугольника S по трем его сторонам а, b, с, воспользовавшись формулой Герона:

Program Geron; Заголовок программы

Var

A,B,C:Integer; Раздел описаний переменных

P,S:Real;

Begin

A:=6;

B:=8;

C:=10;

P:=(A+B+C)/2; Тело программы

S:=Sqrt(P*(P-A)*(P-B)*(P-C));

Writeln ('S=',S);

END.

3.9. Контрольные вопросы

1. Для представления какой информации в языке Паскаль используется тип Real?

2. В чем отличие двух типов числовых данных Real и Integer?

3. К каким типам числовой информации применимы функции Sqr(X) и Sqrt(X)?

4. Что делает стандартная функция Trunc (X)?

5. К данным какого типа применимы функции Trunc(X) и Round(X)?

6. Для каких чисел определены стандартные функции Succ(X) и Pred(X)?

7. Может ли пробел входить в число символов, составляющий идентификатор?

8. Из каких символов может состоять идентификатор?

9. Можно ли ключевые слова использовать в качестве имен переменных?

10. Назовите функцию, которая вычисляет модуль вещественного числа Х?

11. Существуют ли ограничения на множество целых чисел, используемых в языке?

12. В каком месте находится раздел описания переменных?

13. К каким типам данных применимы арифметические операции Div и Mod?

14. Можно ли при записи идентификаторов использовать буквы русского алфавита?

15. Почему в языке паскаль факториал от 9 нельзя записать как 9!?

16. В каком месте программы разрешены комментарии?

Оператор присваивания

 

С помощью этого оператора переменной или функции присваивается значение выражения. Для этого используется знак присваивания :=, слева от которого записывается имя переменной или функции, которой присваивается значение, а справа – выражение, значение которого вычисляется перед присваиванием.

Тип выражения и тип переменной должны совпадать, кроме случая, когда выражение относится к целому типу, переменная же вещественному типу.

Пример: a:=b; b:=5;

k:=a Mod b;

j:=k·(j-h·b-f·b);

g:=10.1045;

 

Var

N: Integer; {определение переменной целого типа}

C,D,R,S: Real; {определение переменных вещественного типа}

S1, S2, S3: Char; {определение переменных символьного типа}

Begin

ReadLn (N);

Read (C,D,R,S);

Read (S3,S2,S1);

для которой данные вводятся следующим образом:

2 ¿

23.45 2 43 54.5¿

Лес¿

переменные примут следующие значения: N=2; C=23,45; D=2; R=43; S=54,5; S3='Л'; S2='е'; S1='с'.

Примечание: - клавиша пробел, ¿ - клавиша Enter.

 

С помощью одного оператора Read можно прочитать любое число данных. Типы вводимых значений необходимо согласовывать с типами соответствующих переменных. Вводить можно переменные любых из описанных типов, кроме булевского (логического) типа Boolean.

 

Примеры составления программы

 

При исполнении программы микропроцессор выполняет команды последовательно одну за другой. Точку входа (оператор с которого начинается выполнение программы), в Pascal-программе определяет служебное слово Begin, с которого начинается тело программы. Вычислительный процесс (алгоритм), в котором команды выполняются последовательно, называется линейным.

Как правило, перед разработкой программы составляется алгоритм решения задачи. Способов записи алгоритма достаточно много, однако, наиболее часто используемый способ записи при помощи блочной схемы. При данном способе каждая операция записывается в виде графического блока, изображение которого указывает на характер выполняемой операции. Необходимые параметры записываются внутри блока.

Рис. 4.1 - Блоки "Начало" и "Конец"

Любой алгоритм начинается с блока " Начало ", а заканчивается блоком " Конец " рис. 4.1.

 

Рис. 4.2 - Блоки ввода и вывода

 

Блоки ввода и вывода информации в общем виде изображаются параллелограммами рис. 4.2.

 

Рис. 4.3 - Блок выражений

 

Операция присвоения записывается в виде прямоугольника рис. 4.3.

Каждый из блоков соединяется линиями, показывающими порядок выполнения операций. При направлении выполнения операций снизу вверх и справа налево на концах линий изображают стрелки. В противном случае считается, что направление выполнения операций - сверху вниз и слева направо.

В приведённом примере 1 демонстрируются операции применимые к переменным типа Byte.

Program Example_4_1;

Uses Crt; { Подключаем модуль }

Var

a, b, x: Byte; { Описываем используемые переменные }

Begin

ClrScr; { Производим очистку экрана }

Write ('Введите значения переменных a и b типа Byte');

Read (a,b); { Ввод с клавиатуры два числа через пробел }

x:=a+b; { Сложение }

WriteLn ('a + b =', x); { Вывод сообщения a+b= с значением х }

x:=a-b; { Вычитание }

WriteLn ('a - b =', x); { Вывод сообщения a-b= с значением х }

x:=a*b; { Умножение }

WriteLn ('a * b =', x); { Вывод сообщения a·b= с значением х }

x:=a Div 2; { Деление нацело }

WriteLn ('a Div 2 =', x); { Вывод сообщения a DIV b= с значением х }

x:=a Mod 2; { Выделение остатка от деления нацело }

WriteLn ('a Mod 2 =', x); { Вывод сообщения a Mod b= с значением х }

x:=a Shl 2; { Сдвиг влево на 2 бита }

WriteLn ('a Shl 2 =', x); { Вывод сообщения a Shl b= с значением х }

x:=b Shr 1; { Сдвиг влево на один бит }

WriteLn ('b Shr 1 =', x); { Вывод сообщения bShr 1= с значением х }

End.

Рис. 4.4 - Блок-схема алгоритма линейного процесса

 

После запуска программы и ввода чисел, например 3 и 4, компьютер выдаст результат.

 

3 4

a + b =7

a - b =255

a * b =12

a Div 2 =1

a Mod 2 =1

a ShL 2 =12

b ShR 1 =2

Пример 2. Составить программу вычисления общей поверхности и объема круглого конуса, имеющего радиус основания R=12,54cм и длину образующей L=24,83см. При вычислениях использовать равенства: , где H - высота конуса, определяемая по формуле .

Программа на языке Паскаль в общем случае содержит комментарии, вводящие в смысл задачи, заголовок, раздел определения констант, раздел описания переменных, операторы, оператор окончания. Все элементы программы должны следовать друг за другом в указанном порядке.

Задание исходных данных может быть осуществлено с помощью оператора присваивания Read, либо с помощью специальных операторов ввода. Вычисления по формулам реализуются в порядке определения числовых значений переменных H, S и V соответственно, после чего S и V выводятся на печать.

При вычислениях будет использоваться зарезервированная константа Pi (p=3,1415926).

В качестве имен переменных будем использовать переменные, обозначения которых максимально совпадают с именами самой задачи. Таким образом, выберем следующие имена переменных:

R - радиус основания;

L - длина образующей;

H - высота конуса;

S - полная поверхность конуса

V - объем конуса.

 

Переменные, участвующие в вычислениях могут быть как вещественными, так и целыми числами. Поэтому, в разделе описания переменных определим их в качестве типа Real.

(* Программа вычисления поверхности и объема круглого конуса *)

Program Conus;

Uses Crt; (* подключаем модуль очистки экрана *)

Var

R, L, H, S, V: Real; (* описываем переменные *)

Begin

ClrScr; (* очищаем экран *)

R:=3; (* через оператор присваивания ':='*)

L:=5; (* присваиваем значения R:=3 и L:=5 *)

S:=Pi*Sqr(R)+R*L; (* производится вычисление S *)

H:=Sqrt(Sqr(L)-Sqr(R)); (* производится вычисление Н *)

V:=(1/3)*Pi*Sqr(R)*H; (* производится вычисление V *)

(* вывод значений R, L, H, V, S *)

Writeln (' Параметры конуса: R=', R:6:3, ' L=', L:6:3, ' H=',H:6:3);

Write ('V=',V:6:3, ' S=',S:6:3);

End.

После запуска программы компьютер нам выдаст результат:

Параметры конуса: R= 3.000 L= 5.000 H= 4.000

V=37.699 S=43.274

4.5. Контрольные вопросы

 

1. Допустимо ли присваивание переменной вещественного типа значения выражения целого типа? Допустимо ли присваивание переменной целого типа значения выражения вещественного типа?

2. Как называются алгоритмы, в которых используется только структура следования?

3. С какого служебного слова начинается программа, написанная на языке Паскаль?

4. Каким символом заканчивается текст программы?

5. Из каких двух основных частей состоит программа?

6. Какое служебное слово используется для описания раздела констант?

7. Каким служебным словом начинается раздел описания переменных?

8. Чем вызвана необходимость использования комментариев в программе?

10. Где в программе можно написать комментарий?

11. Какими символами ограничивается текст комментария?

12. Какое влияние оказывает комментарий на выполнение программы?

13. Какая часть блока, описательная или исполнительная, является обязательной?

14. Верно ли, что в программе, на языке Паскаль надо описывать все используемые переменные?

15. Какой из перечисленных разделов обязателен в программе:

a) раздел Var;

b) раздел Const;

c) раздел Type;'

d) раздел Begin... End;

e) раздел Label?

16. Какие значения имеют переменные в начале выполнения программы?

17. Можно ли в процессе выполнения программы изменять значения констант?

18. Назовите процедуру ввода информации.

19. Каково назначение процедур Write и WriteLn?

20. Следующую последовательность операторов ввода замените одним оператором: Read(Xl); Read(Y2); Read(X3); Read(X4).

21. Сколько аргументов могут иметь процедуры Read и ReadLn?

22. Верно ли, что аргументом процедуры Read может быть список переменных и элементы этого списка разделяются запятыми?

23. Сколько процедур Read может быть в программе?

24. Чем различаются процедуры Read и ReadLn?

25. Пусть в программе есть процедура Read (Xl,Х2,…Хп). Должны ли переменные списка ввода иметь одинаковый тип?

26. Как набираются на клавиатуре значения переменных Xl,Х2,...,Хn для оператора Read (Xl,Х2,…Хп)?

27. Может ли быть пустым список ввода?

28. Надо ли описывать тип переменных, входящих в список ввода?

29. С помощью каких стандартных процедур осуществляется



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 250; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.11.208 (0.239 с.)