Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Паскале.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
173.6 Кб
Скачать

7. Построение выражений и встроенные функции. В начало

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

Круглые скобки используются для изменения порядка вычисления частей выражения. Выражения без скобок вычисляются в порядке, соогласно приоритета операций.   - вычисление значений функций;   - унарные операции ( not,+,- );   - операции типа умножения ( *,/,div,mod,and );   - операции типа сложения ( +,-, or, xor );   - операции отношения ( =, <>, <, >, <=, >= ).  Построение вычислительных выражений мы рассмотрим на примере использования встроенных функций языка Pascal. VAR X : Integer;  Y : Real;   Begin   Write('Введи число '); Readln(X);    Writeln('Модуль X =', ABS(X));   Writeln('Синус X=',SIN(X));   Write('Введи вещественное '); Readln(Y);   Writeln('Целая часть Y =', INT(Y));   Writeln('Корень из Y =', SQRT(Y):4:4);   Writeln('Случайное число =', RANDOM);   Writeln('Логарифм Y =', LN(Y));   Writeln('('Округленное  Y =', ROUND(Y));   Writeln('Дробная часть Y =', FRAC(Y));   Writeln('Y без дробной части =', TRUNC(Y)); Inc(X); Writeln('X+1=',X); Dec(X); Writeln('X-1=',X); readln; End.        В программе показано использование часто употребляемых  функций Паскаля. Все остальные функции могут быть вами рассмотрены самостоятельно. Достаточно нажать в оболочке Паскаля комбинацию клавиш Shift+F1 и вы увидете очень подробную подсказку. Почти по каждой функции имеется демонстрационный пример.

8. Технология алгоритмического программирования. В начало

    Как это ни покажется  банальным, но  технология алгоритмического программирования, а Pascal использует   именно такие технологии, базируется на методе последовательной детализации алгоритмов. (Не пугайтесь этой умной фразы).  Это, всего-навсего, означает, что большой и сложный алгоритм, (другими словами порядок выполнения программы), разбивается на отдельные простые блоки, которые должны представлять собой стандартные алгоритмические структуры:

1. Линейную

2. Ветвление 3. Циклическую

    Их, для наглядности, представляют в виде блок-схем. Рассмотрим их и примеры самых простых программ, которые эти структуры используют.   

 

Алгоритмическая структура  ЛИНЕЙНАЯ (СЛЕДОВАНИЕ)

 

Program Date; {Показ сегодняшней даты и времени} Uses Dos; {Объявление модуля, возможности которого мы хотим использовать в нашей программе<}> Var Year,Month, Day, DayOfWeek : Word; Hour, Minute, Second, Hund : Word; Begin    GetDate(Year,Month,Day,DayOfWeek); { определение даты }    Writeln('Сегодня - ', Day, '.', < Month,<'.',Year); {вывод даты }    GetTime(Hour,Minute,Second,Hund); { определение времени }    Write('Сейчас - ');    WriteLn(Hour,':',Minute,':',Second,'.',Hund); { вывод времени } End. Внимание: Write - после вывода не переводит курсор на следующую строку, a Writeln - переводит.

 

Алгоритмическая структура  ВЕТВЛЕНИЕ

Program VETVLENIE; {Программа тестирования  знания дат} Var God: Integer; Begin Write('Введите год начала Великой Отечественной войны - '); Readln(God); If God = 1941 then    Writeln('Ответ верный')    else    Writeln('Вы ошиблись'); Readln; End.

 

Алгоритмическая структура ЦИКЛ

Program Tumn; {Таблица умножения} Var P1, I : Integer; Begin   Write('Введи первый сомножитель: ');   Readln(P1); For I:=1 to 10 do {Организация цикла со счетчиком} Begin    Writeln(P1,' x ',I, ' = ', P1*I); end; Readln; end. Внимание: Внутрь операторных скобок Begin - end; можно помещать несколько выражений, В этом случае все они будут считаться единым блоком.  В данном случае тело цикла Writeln(P1,' x ',I, ' = ', P1*I); окружено Begin и  end; - для демонстрации.

Ветвление в программах Формат условного оператора на языке Паскаль: If <условие> Then <оператор 1> Else <оператор 2>; При выполнении условия программа обрабатывает первую группу операторов, при невыполнении вторую If <условие> Then  Begin <группа операторов 1> end  {Внимание! Перед Else точка с запятой не ставятся}                           Else   Begin < группа операторов 2> end;  

Рассмотрим пример Из двух чисел выбрать наибольшее. Program Example; Var A,B,C : Real; {A,B - для хранения аргументов, C - результат} Begin    Writeln('Введите два числа');    Readln(A,B); {Вводим аргументы с клавиатуры} If A>B Then C:=A Else C:=B;   {Если A>B, то результат - A, иначе результат - B} Writeln('Наибольшее  = ',C); {Выводим результат на экран} End.   

Циклические алгоритмы в программах  

 

Описание конструкции

 

Пример

 

Цикл с параметром (со счетчиком) FOR

FOR n:=1 TO 10 DO BEGIN ПРЫЖОК (10 РАЗ) END; Телом цикла называется последовательность операторов, которая может выполняться многократно (ПРЫЖОК).

 

Var n,x,y : longint;  {Десять четных чисел и их квадраты} Begin x:=2; FOR n:=1 to 10 do    Begin      y := x*x;      writeln (‘x и y = ’, x, ’ – ‘, y);      x:= x+2;    End<;  Readln; End.  

 

Цикл с предусловием WHILE

WHILE силы есть? DO BEGIN ПРЫЖОК END; Если условие истинно, то выполняются операторы циклической части. (Прыгаем пока есть силы)  

 

Var x,y : longint;  {Десять четных чисел и их квадраты} Begin x:=2; WHILE x<=10 do    Begin       y := x*x;       writeln (‘x и y = ’, x, ’ – ‘, y);       x:= x+2    end;  Readln; end.  

 

Цикл с постусловием REPEAT

REPEAT  ПРЫЖОК UNTIL УСТАЛ? Выполняются до тех пор, пока условие ложно. Как только условие становиться истинным, цикл прекращается. (Прыгаем пока не устанем)  

 

Var x,y : longint;   {Десять четных чисел и их квадраты} Begin x:=2;   REPEAT       y := x*x;       writeln (‘x и y = ’, x, ’ – ‘, y);       x:= x+2    UNTIL x>10; Readln; end.  

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