Решение задач по ТОЭ, ОТЦ, Высшей математике, Физике, Программированию...

Решение задач по ТОЭ, ОТЦ, ТЭЦ, Высшей математике www.toehelp.ru
Главная Цены Оплата Примеры решений Отзывы Ccылки Теория Книги Сотрудничество Форум
   Теория / Информатика / Лекция 4. Язык программирования Турбо Паскаль
  1. Идентификаторы языка Турбо Паскаль (ТП)

    Идентификаторами ТП называют произвольный набор символов.

    Требования к идентификаторам:

    • Идентификатор состоит из латинских букв и цифр (заглавные и строчные буквы не различаются).
    • Идентификатора должен начинаться обязательно с буквы {"а1", а не "1а"}.
    • Идентификатор может состоять из любого количества символов, но распознаются только первые 63 .
    • Служебные слова запрещается использовать в качестве идентификаторов.
    • При написании идентификатора нельзя использовать пробелы.

  2. Общие понятия и правила программирования на языке Турбо Паскаль
    • Программа составляется из операторов Турбо Паскаля, которые разделяются символом ";".
    • Для выделения группы операторов используют операторные скобки: begin…..end.
    • Несколько операторов, заключенных в операторные скобки, называют составным оператором.
    • В тексте программы фигурными скобками выделяются комментарии, которые игнорируются при выполнении программы. В тексте лекций будем также использовать фигурные скобки для комментирования.

  3. Структура программы на языке Турбо Паскаль

    Program P1; {заголовок, название программы} {±}

    Uses………;{подключение внешних модулей с расширением *.tpu}{±}

    Const……...; {описание констант} {±}

    Type………; {задание типов} {±}

    Var………..; {раздел объявления переменных}{±}

    Function F1 ….; {описание функций} {±}

    Procedure Pr1 ….; {описание процедур} {±}

    Begin{начало основной программы} {+}

    ….. {тело основной программы} {±}

    End. {конец основной программы} {+}.


    Примечание. {+} – обязательная часть программы,

    {±} – необязательная часть программы.


    Рассмотрим основные части программы


    3.1. Uses – подключение внешних библиотек для расширения в программе набора доступных операторов.


    Пример:

    UsesDOS, Crt, Graph, Printer; { Подключение четырех стандартных модулей:

    DOS – использование в программе команд операционной системы.

    Crt – расширение возможностей ввода-вывода, использование звукового генератора.

    Graph – подключение графических процедур и функций.

    Printer – легкий доступ к печати.}


    Пример. Следующая программа обеспечивает реализацию легкого доступа к печати.

    UsesPrinter; { подключение модуля}

    begin

    Write(‘привет’); { выводится на экран слово "привет"}

    Write(lst,‘привет’); { выводится на принтер слово "привет"}

    end.


    3.2. Const (константы).

    В этом разделе описания идентификаторам задаются значения, которые не меняются при выполнении программы.


    Пример.

    Const

    a=4; {численная константа}

    b=’A’; {символьная константа }

    s=’ABBA’; {строковая константа }

    b1=false; {логическая константа }

    M:array[1..4] of integer=(1,5,6,7); {массив констант }.


    3.3. Type (тип данных) определяет множество допустимых значений, которые принимает идентификатор и множество операций, которые с ним можно производить.

    На рисунке приведены основные типы данных языка Турбо Паскаль.

    Основные типы данных ТП

    Типы данных, которые далее будут использованы при написании программ, рассмотрим подробнее.


    Простые типы


    3.3.1 Численные типы

    Тип

    Размер,

    Байт

    Диапазон значений

    Byte

    1

    0…255

    Shortint

    1

    -128…127

    Word

    2

    0…65535

    Integer

    2

    -32768…32767

    Longint

    4

    -2147483648…2147483647

    Single

    4

    7..8 значащих цифр

    -45…38-диапазон десятичного порядка

    Real

    6

    11..12 значащих цифр

    -39…38-диапазон десятичного порядка

    Double

    8

    15..16 значащих цифр

    -324…308-диапазон десятичного порядка

    Extended

    10

    19..20 значащих цифр

    -4951…4932-диапазон десятичного порядка

    3.3.2. Символьные переменные - char

    Значениями символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0…255.


    3.3.3. Логические переменные - boolean

    Значениями логического типа может быть одна из предварительно объявленных констант (False – ложь, True – истина).


    Сложные типы


    3.3.4. Массивы- array.

    Тип данных Массив позволяет одному идентификатору задать несколько значений, которые отличаются порядковым номером. Номер элемента массива указывается после идентификатора в квадратных скобках {M[5] – пятый элемент массива М}. При описании массива указывается диапазон номеров элементов массива и тип, к которому относится каждый его элемент. Массивы могут быть одно-, двух- и многомерными.


    Пример описания и заполнения элементов массива.

    Var {описание массивов}

    M: array [1..5] of integer; {одномерный массив М с номерами элементов от 1 до 5, состоящий из целых чисел}

    M1: array [2..3,11..15] of char; {двумерный массив М1 с номерами строк от 2 до 3, с номерами столбцов от 11 до 15, состоящий из символов}

    Begin {заполнение массива}

    М[2]:=100; {второму элементу численного массива М присвоено значение 100}

    М1[2,3]:=’d’; {элементу второй строки и третьего столбца символьного двухмерного массива М1 присвоено значение ’d’}

    End.


    3.3.5. Строковые переменные – string.

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


    Пример.

    Var s:string; {описание идентификатора s как строковую переменную}

    Begin

    s:=’Привет’; {задание значения строковой переменной}

    Writeln(s); {распечатка на экране слова "Привет"}

    end.


    3.4. Var (Переменные).

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


    Пример.

    Var

    x,y:real; {идентификаторы x,y - переменные реального типа}

    i,j,k:integer; { идентификаторы i,j,k – переменные целого типа }

    M:array [1..4] of char; { M - одномерный символьный массив из 4 элементов}

    M1:array [1..3,1..4] of byte; { M1 двухмерный массив из 12 элементовцелого типа}

    Type

    re=real; { описание нового типа: идентификатор re - реальный тип}

    Var

    z:re; {идентификатор z – переменная типа re, то есть реального типа}

    {Четыре последние строки примера можно заменить следующим

    образом: Var z:real;}


    3.5. Основная программа

    Основная программа, как правило, состоит из трех частей:

    1. Ввод исходных данных.
    2. Расчет.
    3. Вывод результата.

    Рассмотрим эти части более подробно.


    3.5.1. Ввод исходных данных.

    Варианты ввода исходной информации покажем на примерах:

    • Const х=20; {идентификатору x задается постоянного значения в разделе описания констант}
    • y:=20; {идентификатору y присваивается численное значение в теле основной программы}
    • read(x); { выполнение программы приостанавливается для ввода значения "x" с клавиатуры. Оператор аналогичен оператору INPUT в Бейсике}
    • readln(x); {ввод значения идентификатора с новой строки}
    • read(x,y); {ввод двух значений x ,y. Одно значение от другогоотделяется нажатием клавишей пробела или Enter}
    • Write(‘x= ’); readln(x); {Ввод значения с пояснением. На экране в месте ввода появляется сообщение: ‘х= ’}

    3.5.2.Расчет.

    Основные математические соотношения и операции Турбо Паскаль:

    • + { сложение}
    • – { вычитание}
    • * { умножение}
    • / { деление}
    • = {равенство (используется при описании констант, типов и т.д.)}
    • := {присваивание}
    • > { больше}
    • < { меньше}
    • >= { больше либо равно}
    • <= { меньше либо равно}
    • <> { не равно}.

    Стандартные функции Турбо Паскаля

    • abs(x); {модуль, абсолютная величина}
    • exp(x); {еx- экспонента}
    • sqr(x); {x2 - квадрат числа}
    • sqrt(x); { - корень квадратный}
    • ln(x); {вычисление натурального логарифма }

    { - вычисление логарифма по произвольному основанию}

    {xa=exp(a*ln(x)) - возведение в степень}

    • sin(x); {-вычисление синуса}
    • cos(x); {-вычисление косинуса}

    {tg(x) = sin(x)/cos(x) - вычисление тангенса}

    {ctg(x) = cos(x)/sin(x) - вычисление котангенса}

    • arctan(x); {вычисление арктангенса}
    • round(x); {округление: x=4.9; y=round(x), ⇒ y=5 }
    • trunc(x); { выделение целой части: x=4.9; y=trunc(x), ⇒ y=4}
    • i mod j; { остаток целочисленного деления 10 mod 3 → 1 {10:3=3(1)}
    • i div j ; { целочисленное деление 10 div 3 → 3}
    • chr(i) ; { по порядковому номеру i возвращает символ}
    • ord(b); {функция, обратная предыдущей (возвращение порядкового номера)}
    • int(r) ;{возвращение целой части числа}
    • frac(r) ;{возвращение дробной части числа}

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

    • Dec(i); {i:=i-1}
    • inc(i); {i:=i+1}
    • GotoXY(i,j); {перемещение курсора в указанную точку экрана с координатами i, j}
    • str(x,S); {идентификатор численного типа x переводит в строковую переменную S: x→S. }{ Требуется модуль Crt}
    • Clrscr; {очистка экрана} {Требуется модуль Crt }

    Константы

    Pi{число π = 3.14…}


    3.5.3. Вывод результатов

    • Write(x); {вывод на экран значения x: при реальном x=4, на экран выводится "4.0000000000E+00"}
    • Write(x:5:1); {вывод форматированных данных, то есть выделение на экране заданного количества позиций для вывода идентификатора: 5 показывает общее число позиций, 1 – число знаков после запятой: при x=4 , на экран выводится "4.0"}
    • Writeln(x); {вывод с новой строки}
    • Writeln(x,y); {вывод двух значений идентификаторов}
    • Writeln(‘x= ’,x:4:1); {вывод с комментариями и форматированием: "x= 4.0"}
    • Writeln(‘Площадь круга радиусом 3 м равна’,3.14*sqr(3):4:1); {Вывод с комментариями и выполнением расчетов: "Площадь круга радиусом 3 м равна 28.3"}

    Технология программирования

    Включает пять технологических операций (этапов):

    1. Постановка задачи.
    2. Математическое описание.
    3. Алгоритм – структограмма.
    4. Написание текста программы.
    5. Отладка, получение результатов.

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


    Пример. Определить площадь круга.

    Этапы разработки программы сведены в таблицу.

    Таблица

    N

    Этапы программирования

    Выполнение

    1.

    Постановка задачи

    Составить программу для вычисления площади круга радиусом R.

    2.

    Математическое описание

    Расчетная формула: S=πR2

    3.

    Разработка алгоритма (структограммы)

    Описание R,S

    Ввод R

    Расчет S=πR2

    Вывод S

    4.

    Написание программы

    Program P1; { программа вычисления площади круга}

    Var r,S:real; {Описание переменных}

    Begin

    Read(R); {в этом месте программа останавливается, для ввода числового значения R}

    {R:=4;}{другой вариант ввода исходных данных}

    S:=3.14*Sqr(R); {расчет}

    {S:=Pi*sqr(R);} {другой вариант расчета}

    Writeln(‘R=’,R:3:1, ‘S=’,S:8:4); {Вывод}

    end.

    5.

    Отладка и получение результатов

    R= 4.0 S= 48.7654



    Структурное программирование

    Структурное программирование – это стиль программирования, позволяющий разрабатывать хорошо структурированные программы.

    Основные положения структурного программирования:

    1. Программа разбивается на блоки, каждый из которых имеет один "вход" и один "выход".
    2. Любая программа может быть составлена из трех структур или блоков, которые представлены в таблице.
    3. Алгоритмы при структурном программировании представляются в виде структоргамм, элементы написания которых также приведены в таблице.

    Таблица

    Основные типы структур и примеры их изображения на структограммах

    Название

    Алгоритм

    Блок-схема

    Структограмма

    а) линейная структура

    б) Ветвящаяся структура

    в) циклическая структура:

    с предусловием

    с постусловием