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

2016-07-30СтудИзба

Описание файла

Документ из архива "Алгоритмический язык Паскаль", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "46354"

Текст из документа "46354"

19



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

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

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

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

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

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

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

Знаки операций: *, /, -, +, 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 байта). (-231 231-1)

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

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

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

Верхнее граничное значение целочисленных переменных задано в Паскале как константа и имеет соответствующее имя: 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 – отсутствует, диапазон чисел 0 1

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

; ;

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, … - идентификатор или целое число (положительное) (0 9999).

Оператор: 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.

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

Задача:

Вычислить: 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 - не принимает ни одного из перечисленных значений, управление передается следующему за case … of оператору.

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

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

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

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

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

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

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

FOR i: = N TO K DO P

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

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

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

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

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

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

Если K

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 - количество строк и столбцов в массиве.

Размер массива - n m.

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.

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее