СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 20.05.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Методическая разработка цикла уроков по теме: "Программирование Pascal"

Категория: Информатика

Нажмите, чтобы узнать подробности

Методическая разработка цикла уроков по теме: "Программирование Pascal"

Просмотр содержимого документа
«Методическая разработка цикла уроков по теме: "Программирование Pascal"»

13

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

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

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

знаки препинания ( : ; , . ); знаки операций.

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

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

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

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

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

True (истина)

False (ложь)

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

равно (=) не равно ()

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

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

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) x (вещ.) sqr (x) x2 (вещ.) sqrt (x) 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;

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

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

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

: = ;

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

y: Beta;

Пример:

x x: sqrt(sqr(b) 4*a*c)) /(2*a);

2a

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

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

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

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 ab THEN write (a) ELSE write (b).

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

Y = sin x, x 0

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

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

IF (ab) and (ac) THEN writeln (’a = ’, a)

IF a

begin

b: 2*a; составной оператор (P1) writeln(b); end

ELSE

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

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

IF n0 THEN

IF ( m div n)n THEN m: = m-n ELSE m: = m + n;

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

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

Если n0, но (m div n) n будет выполнено m: = m + n. Если n 0 - переход к следующему оператору.

Задача:

90

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

Program fun; var

x, y: real; begin writeln (’введите x’); readln (x);

if x90 then writeln (’функция не определена’) else begin

if xthen y: = 0

else y: = SIN (x*PI/180); writeln (’y = ’,y:8:3);

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

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

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

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

Вычислить

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

P1;P2;...PN; - тело цикла

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

По этому оператору выполняется "тело цикла", а затем проверяется , если оно не выполнилось, цикл повторяется. И так до тех пор, пока не будет выполнено. Необходимо помнить: если сразу выполнилось, цикл будет пройден один раз. Вычислить: y = a sin (x ) , x = 0.1, 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 x1; end.

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

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

WHILE DO P;

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

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

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

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

В ычислить: y = sin x, 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 do.

b egin

y: sin(x* pi /180);writeln( y);

SP: SP

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 можно было объединить в один. Двумерные массивы.

a11 a12 a13

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

a31 a32 a33

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

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.

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


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!