Реферат : Лекция по паскалю 


Полнотекстовый поиск по базе:

Главная >> Реферат >> Информатика, программирование


Лекция по паскалю




1


Алгоритмический язык Паскаль

Программа на Р записывается в виде последовательности символов:

  • заглавные и прописные латинские буквы;

  • арабские цифры;

  • знаки препинания ( : ; , . );

  • знаки операций.

Арифметические операции правила их записи.

Знаки операций: *, /, -, +, div, mod

(a div b) частное от деления а на b (a mod b) остаток, после деления а на b.

(а,b-целые).

a div b= a mod b =a-((a div b)*b)

17 div 3 = 5 17 mod 3 = 2 8 div 2 = 4 8 mod 2 = 0 1 div 5 = 0 1 mod 5 = 1

При выполнении арифметических операций соблюдаются следующие правила:

  1. Все знаки проставляются a b a*b;

  2. Два знака не могут следовать один за другим n/-2 n/(-2);

  3. Соблюдается иерархия выполнения арифметических операций: стандартные функции;div, mod; *, /; +, -;

  4. Изменить иерархию можно только с помощью скобок.

Типы переменных.

Переменные на языке Паскаль задаются своими именами (63 символа).

Целочисленные переменные.

Shortint - короткие целые числа (1 байт). (-128 127)

Longint - удвоенные целые числа (4 байта). (-231231-1)

Integer - обычные целые числа (2 байта). (-3276832767)

Word - целые положительные числа (2 байта). (065535)

Byte - целые короткие положительные числа (1 байт). (0255)

Верхнее граничное значение целочисленных переменных задано в Паскале как константа и имеет соответствующее имя: Maxint = 32767 (215-1) Maxlongint = 231-1

Логический тип.

Boolean - логические переменные (1 байт) могут принимать 2 значения:

  • True (истина)

  • False (ложь)

Логические переменные могут использоваться только в логических выражениях. Над ними можно выполнять только 2 операции:

  • равно (=)

  • не равно (< >)

Для идентификаторов имеет место:

False< True

Над логическими переменными возможны следующие операции:

And (и)

Or (или)

Not (не)

Ord (false) = 0 Ord (true) = 1

Символьный тип.

Chor - служит для хранения одного символа (1 байт)

(буква, цифра, знаки препинания, специальные символы, непосредственно код). Значения символьных переменных задаются в апострофах - “ А”, “9”.

Строковый тип.

String - строковые переменные (255 байт).

Это строка символов заключенных в апострофах.

Вещественный тип.

Real - служит для хранения вещественных чисел (6 байт)

(11 знаков после запятой).

Могут быть заданы в форме с:

  1. фиксированной точкой

  • 0,5; +5,0; -133,15

плавающей точкой 1200 = 120,0 Е+1 = 12,0 Е+2 = 1,2 Е+3 = 12000,0 Е-1 (показатель степени 38)

Используется для изображения очень больших или очень маленьких чисел.

Стандартные функции.

sin (x) sin x (вещ.)

cos (x) cos x (вещ.)

arctg(x) arctg x (вещ.)

exp (x) ex (вещ.)

ln (x) ln x (вещ.)

pi (x) 3.14 (вещ.)

abs (x) (вещ.)

sqr (x) x2 (вещ.)

sqrt (x) (вещ.)

trunc (x) целая часть числа,дробная остается без округлен. (цел)

trunc (3.7) = 3 trunc (3.1) = 3 trunc (-3.7) = -3

frag (x) дробная часть числа (вещ.)

int (x) ближайшее наименьшее целое число (цел.)

int (3.4) = 3 int (3.7) = 3 int (-3.4) = -4

round (x) ближайшее целое число (матем округ-е) (цел.)

round (3.14) = 3 round (3.74) = 4 round (-3.14) = -3

random (x) генератор случайных чисел (вещ.)

от 0 до x; если x – отсутствует, диапазон чисел 01

odd (x) возвращает TRUE, если x - число нечетное (лог.)

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

Структура программы на Паскале.

Программа – это последовательность инструкций компьютеру приводящих к конечному результату за конечное число шагов.

Программа, написанная на алгоритмическом языке, переводится на язык машинных команд:

program <имя>;

<описательная часть>;

<раздел функций и процедур>;

begin

<исполнительная часть>;

end.

Зарезервированные слова:

  • program – всегда первый;

  • begin – начало;

  • end – конец.

<имя> - присваивается составителем программы (строится по правилам переменных).

Описательная часть программы.

  • Все переменные, используемые в программе должны быть описаны.

Описание начинается со служебного слова var .

program ff;

var

i, n: integer; x,y,z: real;

begin;

.........

end.

Список переменных от типа отделяется “:”, одно описание от другого – “;”, список переменных – “,”.

Метки в программе описываются с помощью служебного слова: label.

Константы : const.

Пользовательский тип данных: type.

Исполнительная часть программы.

Отдельные инструкции, входящие в программу, называются операторами. Операторы отделяются один от другого – “;”.

Бывают трех типов:

  • пустой оператор;

  • простой оператор;

  • составной оператор.

Составной оператор:

begin

<оператор 1>; <оператор 2>;

end;

Операторы Паскаля.

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

: =” – знак присваивания.

<переменная> : = <выражения>;

Читается одиноково.

Пример:

;

Паскаль не допускает смешенных выражений. Слева – вещественное, справа - целое выражение (допустимо).

Если в выражении есть хотя бы одна вещественная переменная, все выражение будет вещественным.

Операторы ввода-вывода.

READ (<список - ввода>)

  • имя оператора ввода;

  • список переменных, разделенных запятыми.

WRITE (<список - вывода>)

  • имя оператора вывода;

  • список переменных вывода, разделенных запятыми.

READLN (a, b, c) - после вода значений a, b и c курсор перемещается на следующую строку.

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

В операторе WRITE можно использовать формат вывода значений переменных.

Writeln ( ’_ a = ’ , a:8:3, ’_ b = ’, b:4);

при a = 341.154, b = 2

_ a = _ 341.154 _ b = _ 144

при a = 1.3, b = 144

_ a = _ _ _ 1.300 _ b = _ 144

Program _ prim;

сlrscr - оператор гашения экрана;

var a, b: integer;

x ,y: real;

begin writeln (’ введите a, b ’);

readln ( a, b);

x: = a + b; y: = a/b;

writeln (’ x = ’, x:8:3, ’_ _ ’, ’y = ’, y:8:3)

end.

Ключевые слова горят ярче, чем весь текст прогаммы.

Операторы условия и перехода.

Строки программы на Паскале не нумеруются. Отдельные строки в программе могут иметь метки, к которым можно переходить.

Метки должны быть описаны с помощью ключевого слова

label N1, N2 … ;

в описательной части программы.

N1, N2, … - идентификатор или целое число (положительное) (09999).

Оператор: GO TO N; -передает управление строке с меткой N.

program pr;

label 3;

var

x, y: real;

begin

3: readln (x, y);

go to 3;

end.

Оператор: IF < условия > THEN P1 [ ELSE P2 ]; если то иначе (не обязательная часть)

<условие> - логическое выражение ;

P1, P2 - простой или составной операторы.

По этому оператору:

если <условие> - "истинно", то выполняется P1 (true);

- " ложно", то выполняется P2 (false).

Если ELSE - отсутствует и <условие> - "ложно", то управление передается следующему оператору.

Распечатать наибольшее из двух чисел:

IF a>b THEN write (a) ELSE write (b).

Вычислить значение функции:

Y =

If x>=0 then y:= sin(x) else y:= - sin(x);

Логические выражения могут быть сложными, составленными с помощью логических операций: AND (и) OR (или) NOT (не).

IF (a>b) and (a>c) THEN writeln (’a = ’, a)

IF a<0 THEN

составной оператор (P1)

ELSE

cоставной оператор (P2)

Паскаль допускает вложенность операторов IF.

IF n>0 THEN

IF ( m div n)>n THEN

m: = m-n

ELSE

m: = m + n;

ELSE - всегда относится к ближайшему оператору IF.

Если n>0 и (m div n)>n будет выполнено m: = m-n.

Если n>0, но (m div n)n будет выполнено m: = m + n.

Если n0 - переход к следующему оператору.

Задача:

Вычислить: y=

Program fun;

var

x, y: real;

begin

writeln (’введите x’); readln (x);

if x>90 then writeln (’функция не определена’)

else begin

if x<0 then y: = 0

else y: = SIN (x*PI/180);

writeln (’y = ’,y:8:3);

end; (составной оператор)

end.

Оператор CASEOF; этот оператор предназначен для замены конструкций из вложенных IF.

Структура:

CASE N of

N1: P1;

N2: P2;

NN: PN;

[else P;] - необязательная часть оператора.

end;

где N - целочисленная переменная, или выражение целочисленного типа.

N1, N2, … NN - возможные значения переменной N.

P, P1, P2, … PN - простые или составные операторы.

По этому оператору :

если значение - N = N1, то выполняется P1 (после чего управление передается оператору следующему за оператором case ... of);

если значение - N = N2, то выполняется P2, иначе P.

Если структура else - отсутствует и N - не принимает ни одного из перечисленных значений, управление передается следующему за caseof оператору.

Циклические вычислительные процессы.

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

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

При организации циклов необходимо:

  • определить параметр цикла и его начальное значение;

  • изменять значение параметра цикла на каждом шаге итерации;

  • проверка на выход из цикла.

FOR i: = N TO K DO P

(для) (до) (выполнять)

где i - параметр цикла;

N, K - его начальное и конечное значение;

P - простой или составной оператор;

I, N, K - переменные или константы целого типа.

Шаг изменения i - равен 1.

Если K<N, т.е. имеем дело с циклом с отрицательным шагом: (-1)

FOR i: =N DOWNTO K DO P

Рассмотрим пример.

Вычислить

S= 1+1/2+1/3+ … +1/50

Выделим переменную для накапливания суммы - Sum. Значение этой переменной необходимо предварительно обнулить. Паскаль не производит предварительной, начальной, инициализации переменных. Поэтому сумма может быть искажена без Sum = 0.

Program sum;

Var

i: integer;

sum: real;

begin

sum: =0;

for i: = 1 to 50 do

Sum: = sum + 1/i;

Writeln (' сумма = ', Sum);

end.

Оператор for применяют в тех случаях, когда значения параметра цикла целые и меняются с шагом +1, -1.

Оператор цикла с постусловием.

REPEAT

- тело цикла

UNTIL <условие>;

где P1, P2, …PN - любые операторы.

По этому оператору выполняется "тело цикла", а затем проверяется <условие>, если оно не выполнилось, цикл повторяется. И так до тех пор, пока <условие> не будет выполнено.

Необходимо помнить: если <условие> сразу выполнилось, цикл будет пройден один раз.

Вычислить: y = a sin (x ) , x = , =0.2

program fun;

var

y, a, x: real;

begin

x: =0; read (a)

repeat

y: = a *sin (x); writeln (y, x); x: = x + 0.2;

until x>1;

end.

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

Оператор цикла с предусловием.

WHILE <условие> DO P;

Где P - простой или составной оператор.

По этому оператору проверяется <условие> и, если оно выполняется, то выполняется - P, после чего опять проверяется <условие> и т. д.

Итак, P - выполняется до тех пор, пока выполняется <условие>.

Если условие ни разу не выполнилось, P - игнорируется, управление передается следующему оператору.

Вычислить: y = sin x, x, x, - ввести с клавиатуры.

Подсчитать среднее положительное и среднее отрицательное значение функции.

Program cikl;

var

y, x, x k, d x: real;

n, k: integer; SP, n - среднее и количество положительных значений.

SP, S0: real; S0, k - среднее и количество отрицательных значений.

begin

writeln (' введите x - начальное, x - конечное, d x - шаг');

read (x, x k, d x);

SP: =0; S0: = 0; n: =0; k: =0;

While x< = k x do.

P Составной оператор.

if n=0 then writeln ('Отрицательные отсутствуют')

else writeln (' Средние отрицательные = ', SP/n);

if k=0 then writeln (' Положительные отсутствуют ')

else writeln (' Средние положительные = ', S0/k);

end.

Массивы

Задача 1:

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

Program sum-prois;

uses crt;

const

n = 100;

var

a: array [1…n] of real;

n, k, i: integer;

p, s: real;

begin

clrscr; s: = 0; p: =1;

writeln ('введите размер массива'); readln (nk);

writeln ('введите элемент массива');

for i:=1 to nk do

readln (a[i] );

for i:=1 to nk do

begin

s:= s + a[ i ];

p:= p * a[ i ];

end;

writeln ('Сум. = ', s, 'Произ. =' , p);

end.

Необходимо подготовить ячейки:

  • при накапливании суммы - s=0

  • при подсчете произведения - p=1.

Задача рассчитана на обработку массива с максимальным размером 100 элементов (n=100).

Конкретный размер массива вводится с клавиатуры (nk).

При каждом прохождении через цикл с клавиатуры вводится только один элемент массива. Два цикла for можно было объединить в один.

Двумерные массивы.

Двумерный массив можно представить в виде матрицы..

Описание двумерных массивов:

a - имя массива;

n, m - количество строк и столбцов в массиве.

Размер массива - nm.

a[i, j] - элемент стоящий на пересечении i-ой строки и j-го столбца.

Каждый элемент определяется двумя индексами.

a[i, i] - элементы главной диагонали.

a[i, 2] - элементы второго стлбца.

Задача 1.

Составить программу подсчета суммы элементов над главной диагональю в двумерном массиве.

Program matrix;

const

n=10;

m=10;

var

a: array [1…n, 1…m] of real;

i, j: integer; n, m: integer;

s: real;

begin s:=0;

writeln (' введите размер массива m, n);

readln (n, m);

{Ввод массива:}

for i:=1 to n do

for j:=1 to m do

readln (a[i, j]);

for i:=1 to n do

for j:=i to m do

s: s+a[i, j];

writeln('s=', s);

end.

Для ввода элементов массива используются вложенные циклы.

i - параметр внешнего цикла;

j - параметр внутреннего цикла;

i - меняется медленнее j.

Элементы массива необходимо вводить по строкам.

Похожие работы:

  • Лекция по нейрохирургии

    Шпаргалка >> Медицина, здоровье
    Лекция по нейрохирургии ЧЕРЕПНО- ... содержимое черепа. Вспомните закон Паскаля о несжимаемое ти жидкости. ... к его дислокации (смотри лекцию по опухолям мозга) и наступает ... госпитализации и ускоренное обследование по вышеперечисленным пунктам в стационаре. ...
  • Лекции по культурологии

    Реферат >> Культурология
    ... Греции и Рима. М., 1988. Кнабе Г.С. Материалы к лекциям по общей теории культуры и культуре античного ... связывают культ “рацио”, пропагандировавшийся Р.Декартом, Б.Паскалем, Б.Спинозой и последователями этих великих философов ...
  • Курс лекции по компьютерным сетям

    Реферат >> Информатика, программирование
    ... Невельского Н. Н. Жеретинцева Курс лекции по компьютерным сетям Рекомендовано Дальневосточным региональнымучебно ... на разных языках (Фортран, Паскаль, Модула, Ада и др.). ... Наталья Николаевна Жеретинцева Курс лекций по компьютерным сетям Компьютерная верстка ...
  • Курс лекций по теории вероятностей

    Реферат >> Математика
    ... верно как по определению биномиальных коэффициентов или свойствам треугольника Паскаля, так и ... «почти наверное», требуется (по крайней мере, по определению) знать, как устроены ... ЗБЧ. ... Из этой первой лекции по теории вероятностей я запомнил только ...
  • Язык прораммирования С++

    Учебное пособие >> Информатика, программирование
    ... Res = GetConsoleOutputCP() (о кодовых страницах см. лекции по Паскалю). Но поскольку компилятор при кодировании ... завершится. 2. Язык С++ предоставляет большую по сравнению с Паскалем свободу при реализации заголовка цикла ...
  • Лекции по высокоуровневым методам информатики и программированию

    Реферат >> Информатика, программирование
    ... событие Объем - 52 часа 2 семестр: лекции - 34 лаб. работы - 18 ... высокого уровня бывают: процедурно-ориентированные (Паскаль), проблемно-ориентированные (MathCAD), объектно ... выравниваются на форме по линиям сетки. По умолчанию шаг сетки ...
  • Лекции по курсу "Информатика"

    Реферат >> Информатика, программирование
    ... по следующим признакам. По структуре и организации - однопроцессорные и многопроцессорными. По ... высокого уровня (Бейсик, Паскаль и т.д.), позволяющих проектировать ... . Использованная литература при подготовке лекций: Блюменау Д.И. Информация и ...
  • Лекции по физике

    Реферат >> Физика
    ... . Единицы измерения давления. 2. Закон Паскаля. 3. Дифференциальное уравнение равновесия жидкости. ... трубы длиной ... по формуле равна ... По условию эквивалентности должно ... образом, скорость распределена по сечению трубы по параболическому закону. Определим ...
  • Лекции по гидравлике

    Реферат >> Физика
    ... щены решению задач по истечению жидкости из отверстий, а Блез Паскаль (1623 - 1727 ... ) исследовал вопросы по передаче давления в жидкости ... давлением) в системе СИ измеряется в паскалях. Поскольку эта величина очень мала ...