Программирование на ЭВМ

Автор работы: Пользователь скрыл имя, 26 Апреля 2012 в 21:22, курсовая работа

Описание

За время существования профессии программиста сущность его труда изменилась коренным образом. В 50-х годах программы писали в командах ЭВМ (в “машинных кодах”). При этом вся информация переводилась в двоичную систему счисления. Это очень тяжелый и напряженный труд, требующий от человека особой аккуратности. Облегченно вздохнули программисты при появлении в 1956 г. специального языка для решения вычислительных задач. Это был FORTRAN (Formula Translator). С тех пор были разработаны другие, более совершенные языки, или специализированные применительно к какой-то конкретной области: КОБОЛ, АЛГОЛ, ПЛ/1, ЛИСП, СИМУЛА, ПАСКАЛЬ, СИ, АДА, ПРОЛОГ и др.

Работа состоит из  1 файл

Алгоритмы на Pascal.DOC

— 826.50 Кб (Скачать документ)

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

    Укажем  входы и выходы наших примеров (см.с. 8,9).

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

    Правила, описывающие алгоритмический язык, распадаются на две части: семантику и синтаксис.

    Семантика – смысловая часть описания языка. Она определяет, как понимать (человеку) и выполнять (машине) алгоритмы.

    Синтаксис – набор формальных правил написания алгоритмов на алгоритмическом языке.

    1.3. Основы алгоритмического  языка Паскаль

    Рассмотрим  только самые основы языка Паскаль, т.к. литература, описывающая его детали, вполне доступна. Язык назван в честь Блеза Паскаля, известного французского философа, математика и физика. Разработан профессором Института Информатики Швейцарской высшей политехнической школы Никлаусом Виртом. Первое сообщение  о нем поступило в 1971 г. Окончательный стандарт – в 1979 г. Паскаль -  современный язык, он содержит все базовые конструкции структурного программирования. Язык прост и очень удобен для обучения программистов. Вместе с тем он обладает большими возможностями при обработке данных разных типов.

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

    1.3.1. Допустимые символы (алфавит)

    Заглавные и строчные буквы латинского алфавита для записи программ.

    Цифры – только арабские.

    Знаки арифметических операций: +, -, *, /. Дополнительными  являются две операции для целых  данных (операндов):

    DIV – деление нацело с отбрасыванием остатка (нахождение целой части результата);

    MOD – нахождение остатка от деления.

      Знаки логических отношений и логических операций: <, <=, =, <>, >=, >, AND, OR, NOT.

     Специальные символы: (  ) [  ]  .  :  ,  ;  ..      и т.д.

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

    

    Это ограничение также связано с  тем, что машина может “читать” только последовательность знаков.

    1.3.2. Объекты программы  на Паскале

    Любой алгоритм оперирует некоторыми объектами (например, числами, переменными). Переменная обозначается  идентификатором – это ее имя.

    Правила записи идентификатора: он начинается с буквы и содержит одну букву или несколько букв и цифр: X, A1B28, ELENA.

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

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

    Переменная – это такой объект, который имеет постоянное имя и переменное значение.

    Константа  имеет постоянное значение и тем отличается от переменной. Она может быть просто числом (и не только), а может иметь имя.

    Любой объект характеризуется еще и типом. Тип – это тот или иной класс (вид) значений. Тип определяет, каким значением может обладать объект, и какие операции могут быть произведены над ним.

    В Паскале определены следующие  стандартные типы объектов.

  1. Целый.                                      для численных
  2. Вещественный.   (арифметических) объектов
  3. Логический.
  4. Литерный (символьный).

    Есть  и нестандартные типы, но о них  скажем позднее.

    Целый (INTEGER) – применим для объектов, принимающих только целые значения: 0, 13, +193, –100. Над переменными целого типа определены все арифметические операции. Они принимают всегда точное значение в интервале [-32768, 32767].

    Вещественный (REAL) – это приближенные действительные значения, причем точность приближения зависит от конкретного устройства, на котором производятся вычисления по данному алгоритму. Любое число записывается с определенной точностью. Например, для логарифмической линейки точность представления чисел – 3 верных десятичных знака, для карманного микрокалькулятора – 6 знаков, для ЭВМ – 9 или даже 16 знаков. Переменная может получить значение в результате вычисления некоторого выражения. При этом значение выражения 0.1*10 может быть равно 0.999999999999 или 1.000000000001. (Поэтому не имеет смысла проверять вещественные данные на равенство). Итак, вещественные объекты предназначены для приближенной записи значений, например,

    10.25    -0.25    0.5825    58.25E-02  (58.25*10-2).

    Диапазон  представления вещественных чисел ±10±75. Над вещественными объектами выполняются все стандартные операции: +, -, *, /.

    Логический (BOOLEAN) – это объекты, которые могут принимать значения истина (TRUE) или ложь (FALSE). Логические значения могут получаться как результат операций сравнения (отношений) над целыми и вещественными (=, <>, <, >, …). Над логическими объектами определены специальные логические операции: AND (логическое умножение), OR (логическое сложение), NOT (логическое отрицание).

    Литерный или символьный (CHAR) – это сокращение от  CHARACTER (символ, литера). Значениями объектов этого типа являются все символы алфавита Паскаля, взятые в апострофы: ‘A’, ‘1’, ‘+’, ‘”’ (апостроф удваивается), ‘ ‘ (пробел).

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

    VAR  R1, R2, R3: INTEGER;

                X1, X2, Y1: REAL;

                EQUAL: BOOLEAN;

                WORD1: CHAR;

    CONST N = 100;  (может быть описана и константа, если у нее есть имя)

    VAR – служебное слово (от variable - переменная).

    1.3.3. Запись алгоритмов  на Паскале

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

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

    Присваивание

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

    Х := А + 1 / (1 – А);

     Х := Х – 1; здесь, в отличие от алгебраического уравнения, Х уменьшается на 1. Присваивание означает занесение требуемого значения в место памяти (МП), выделенное для переменной X.

    Общий вид (формат) оператора присваивания:

     <идентификатор переменной> := <выражение (формула)>

    Формула (выражение) состоит из переменных, констант, знаков операций. Основное правило – формула должна быть линейна. При записи выражения может использоваться вызов процедуры. В математике известно понятие функции. Процедура – обобщение этого понятия, предполагающее, что некоторая совокупность значений вычисляется в зависимости от каких-либо аргументов: sin(x), cos(x) и т. д. Процедуры для вычисления таких функций, как правило, предусмотрены в алгоритмическом языке, они считаются заданными. Вызов такой процедуры есть запись идентификатора процедуры и ее аргументов. Для вычисления значения можно записать

X := SIN (A), а также использовать любую из стандартных функций:     COS (X), LN (X), SQRT (X),  EXP (X), ABS (X) и т.д. При этом  

F := (1 – SQRT(X)) / (SIN (2 * X) – COS (X / 2)). 
 

В разных языках возможны различные обозначения  одних и тех же функций.

    Вопрос  о согласовании типов в выражении  рассмотрите самостоятельно.  

    Условный  оператор

      Предназначен для записи условного  (разветвляющего) алгоритма. Он полностью совпадает с базовой конструкцией структурного программирования. Общий вид оператора:

    IF <условие> THEN <действие 1>

                      ELSE  <действие 2> - может отсутствовать. 

    Оператор  цикла

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

    WHILE <условие> DO <действие>

    Скажем  несколько слов  о записи условий: 0 ≤ Х ≤ 1 на Паскале записать нельзя. Нужно применять логические связки(операции): AND, OR, NOT, например,

                (0 <= X) AND (X <= 1),

                X >= 0.

    Для разделения последовательно идущих операторов в Паскале используется знак “;”.

    Если  некоторую последовательность действий нужно рассматривать как одно действие, используются так называемые операторные скобки:

                BEGIN последовательность операторов END

                (начало)                                                  (конец)

    Алгоритм, записанный в форме, пригодной для  выполнения ЭВМ, называется программой.  

                       Программа на Паскале (общая структура)

PROGRAM <идентификатор> (INPUT, OUTPUT);{INPUT, OUTPUT - имена стандартных файлов ввода и вывода. В современных версиях языка Паскаль их указание необязательно}

{Раздел описаний:}

VAR X, Y, Z: REAL; I, J: INTEGER;

{Может быть несколько групп повторений описаний типа.}

BEGIN

……………….. тело программы

……………….. (операторы)

END. 

                   Ввод данных и вывод результатов

    Для этих целей в языке есть специальные  операторы. Правильнее говорить – процедуры ввода-вывода.

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

          READ (<список переменных (ввода)>);

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

          READ (x);   x :=2.5;

      
 

    Отличие состоит в том, что задание  переменной значения с помощью оператора  ввода более универсально. Оператор ввода позволяет программе общаться с внешним миром.

    Как записывать значения на экране?

         INTEGER и REAL. Это должны быть допустимые константы соответствующего типа. Они отделяются друг от друга по крайней мере одним пробелом.

    целые

- 5   5 1 2            

    вещественные

- 5 . 0   1 . 5   1 Е - 1 0   - 2 . 3 Е 5

Информация о работе Программирование на ЭВМ