Основы программирования на языке Pascal. Алфавит, типы данных, структура программ. Основные операторы презентация

Содержание

Понятие языков программирования Языки программирования – искусственные языки, инструментальные средства разработки прикладных программ. Синтаксис - правила записи конструкций языка. Семантика - смысл конструкций языка. Отладка - это поиск и

Слайд 1Основы программирования на языке Pascal
Алфавит, типы данных, структура программ. Основные операторы.



Слайд 2Понятие языков программирования
Языки программирования – искусственные языки, инструментальные средства разработки прикладных

программ.
Синтаксис - правила записи конструкций языка.
Семантика - смысл конструкций языка.
Отладка - это поиск и исправление ошибок в программе.
Тестирование - это составление специальных наборов входных и выходных данных (тестов), а затем исполнение программы и проверка полученных результатов в поисках возможных семантических или логических ошибок.

Слайд 3Уровни языков программирования
Язык программирования низкого уровня ориентирован на конкретный тип

процессора и учитывает его особенности. Операторы данного языка близки к машинному коду и содержат команды процессору.

mov ax, dat
mov ds, ax
mov ah, 09h
mov dx, offset var
int 21h
mov ah, 4Ch
int 21h

Фрагмент программы на языке Ассемблер

Ассемблер, Форт – примеры языков программирования низкого уровня


Слайд 4Уровни языков программирования
Языки программирования высокого уровня не учитывают особенности конкретных компьютерных

архитектур. Создаваемые на них программы легко переносимы с одного типа компьютеров на другой, их разработка значительно проще, а уровень ошибок гораздо ниже.

Паскаль, С++, PHP, Java, SQL – примеры языков программирования высокого уровня

SELECT Товар.Название,
Товар.Цена,
Товар.Цена*Сделка.Количество
AS Стоимость
FROM Товар

Фрагмент программы на языке SQL


Слайд 5Поколения языков программирования
1 поколение (нач. 50-х гг. 20 в.) –

первый язык ассемблера, «одна инструкция, одна строка».
2 поколение (конец 50-х – нач. 60-х годов 20 в.) - символический ассемблер, в котором появилось понятие переменной. Именно он считается первым полноценным языком программирования.
3 поколение (вторая половина 69-х гг. 20 в.) - универсальные языки высокого уровня, с помощью которых удалось решить множество прикладных задач из различных областей науки и техники (Бэйсик, Паскаль, Фортран, Ада).
4 поколение (с начала 70-х годов и по настоящее время ) - проблемно-ориентированные языки, оперирующие конкретными понятиями предметной области (ЛИСП, ПРОЛОГ).
5 поколение (с сер. 90-х гг. 20 в.) - системы автоматического создания прикладных программ с помощью визуальных средств разработки.

Слайд 6Компиляция и интерпретация
Существует два метода получения машинного кода - компиляция и

интерпретация.
Программы-компиляторы просматривают программный код в поисках синтаксических ошибок, выполняют смысловой анализ и автоматически переводят (транслируют) на машинный язык — генерируют машинный код.
Основной недостаток компиляторов — трудоемкость трансляции языков программирования, ориентированных на обработку данных сложной структуры.
Интерпретатор берет очередной оператор из текста программы, анализирует его структуру и запускает на выполнение. Только после его успешного выполнения, интерпретатор переходит к следующему оператору.
Недостаток интерпретаторов: программы, содержащие большой объем повторяющихся вычислений, будут работать достаточно медленно. Для выполнения исходной программы на другом компьютере там также должен быть установлен соответствующий интерпретатор.

Слайд 7Интегрированные системы программирования
текстовый редактор, ориентированный на конкретный язык программирования;
компилятор, переводящий

исходный текст в машинный код;
библиотека функций, содержит машинный код подпрограмм, реализующих различные стандартные функции языка (например, вычисляющих математические функции sin или In); поставляется вместе с компилятором;
редактор связей (сборщик, компоновщик) выполняет связывание объектных модулей программы и машинного кода стандартных функций, находя их в библиотеках, и формирует на выходе запускаемое приложение - исполнимый код;
отладчик анализирует работу программы во время ее выполнения. С его помощью можно выполнять операторы исходного текста по шагам, наблюдая за изменением значений различных переменных.

Слайд 8Элементы языка Pascal:
буквы латинского алфавита А-Z (в любом регистре), а также

знак подчеркивания _;
буквы русского алфавита А-Я;
цифры 0-9;
специальные символы > < = + - / * [ ] ( ) { } . , : ; ^ @ ’ $ #
пары символов (их нельзя разделять пробелами) < > <= >= := (* *) (. .)
пробелы (рассматриваются как ограничители идентификаторов, констант, чисел, зарезервированных слов).

Алфавит


Слайд 9Элементы языка Pascal:
Идентификаторы - неделимые последовательности символов алфавита, используемые для обозначения

констант, переменных, процедур, функций и т.д.
Идентификаторы могут иметь произвольную длину, но значащими являются только первые 63 символа.
Идентификатор должен начинаться с буквы или символа подчеркивания, не должен содержать пробелов и специальных символов.
and goto array begin case string const label
then div mod do to downto type else of end
or until uses procedure var for program while
record function repeat

Идентификаторы


Слайд 10Элементы языка Pascal:
Константа - это объект, значение которого известно еще до

начала работы программы.
В качестве констант могут использоваться числа, логические константы, символы и строки символов.
В языке Pascal существует три вида констант:
неименованные константы (не имеют имен, и потому их не нужно описывать; и тип определяется автоматически)
int1 := -10;
ch3 := 'z';
str4 := 'abc' + str44;
st5 := [1,3,5] * st55;
bool6:= true;

Константы


Слайд 11Элементы языка Pascal:
именованные нетипизированные константы (имеют имя, описываются в специальном разделе

const, тип определяется автоматически)
const n = -10;
x = 2.5;
c = 'z';
s = 'string';
именованные типизированные константы - переменные(!) с начальным значением, которое к моменту старта программы уже известно. Следовательно, типизированные константы нельзя использовать для определения других констант, типов данных и переменных. Их значения можно изменять в процессе работы программы.
const <имя_константы> : <тип_константы> = <нач_значение>;

const n: integer = -10;
c: char = 'z';

Константы


Слайд 12Элементы языка Pascal:
Выражение задает порядок выполнения действий над элементами данных и

состоит из операндов (констант, переменных, функций, круглых скобок и знаков операций).
В общем случае выражение состоит из нескольких элементов (операндов) и знаков операций, а тип его значения определяется типом операндов и видом примененных к ним операций.
Примеры выражений:
(a+b)*c
x-y
a>2
sin(x)
sum1+sum2

Выражения


Слайд 13Структура программы
Program ;
{Раздел описаний программы}
Var …
Const …
BEGIN
{Раздел исполняемых операторов}
END.


Слайд 14Раздел описаний программы
раздел меток (label);
раздел констант (const);
раздел типов (type);
раздел

переменных (var);
раздел процедур (procedure)
раздел функций (function).
Пример:
var k,i,j:integer; a,b:real;
сonst pi=3.14; c=2.7531;

Слайд 15Раздел исполняемых операторов
Пример программы, служащей для вычисления площади круга некоторого

постоянного радиуса R=6.015 .
{Заголовок программы}
program pr;
{Задание значения радиуса}
const r=6.015;
{Описание переменных программы}
var s: real;
{Начало раздела операторов}
begin
{Вычисление площади круга}
s:=pi*sqr( r );
{Вывод результатов на экран}
writeln(‘s=’, s);
{Конец программы}
end.

Слайд 16Типы данных


Слайд 17Стандартные функции
ABS(x) – модуль х ( | x |

);
SQR(x) – квадрат числа x (x 2);
SQRT(x) – квадратный корень из x ( );
LN(x) – натуральный логарифм от х ( ln x );
EXP(x) – е в степени х (ех );
SIN(x) – синус х (sin x);
COS(x) – косинус х (cos x);
ARCTAN(x) – арктангенс х (arctg x).

Слайд 18Оператор присваивания
Общий вид оператора присваивания:


имя_переменной:=<выражение>;
здесь имя_переменной – переменная, := - операция присваивания. Выражение может содержать константы, переменные, названия функций, знаки операций и скобки. Переменная и выражение в операторе должны иметь один и тот тип.
Примеры.
y:=2*sin(x);
a:=5;
b:=a+7;
х:=х+1;

Слайд 19Понятие составного оператора
Составной оператор начинается ключевым словом BEGIN и заканчивается

словом END. Между этими словами помещаются составляющие операторы, которые выполняются в порядке их следования. После END ставится точка с запятой, например:
. . .
begin
i:=2;
k:=i/5;
end;
. . .

Слайд 20Операторы ввода
Для организации ввода данных с клавиатуры в языке Паскаль используется

процедура READ.
В общем случае данная процедура имеет вид:
READ (a1, a2, a3, … );
Здесь a1, a2, a3, … - список переменных, разделенных запятой.
Например,
Var
A : Real; B : Integer; C : Char;
Begin
READ(A, B, C)
End.

Примеры ввода данных с помощью процедуры READLN:
READLN(A, B, C);
READLN(X);

Слайд 21Процедура вывода
Процедура, выводящая содержимое переменных на экран, называется процедурой вывода.
WRITE (p1,

p2, …, pn);
где p1, p2, …, pn - список констант и/или переменных, разделенных запятой.
Например, WRITE ('Сумма=', S).
Примеры вывода данных:
WRITE(A, B, C);
WRITELN('Корнем уравнения является ', X);
WRITELN(LOGP);

Слайд 22Основные алгоритмические структуры
Следование
Пешеход шел по пересеченной местности. Его скорость

движения по равнине v1 км/ч, в гору — v2 км/ч и под гору — v3 км/ч. Время движения соответственно t1, t2 и t3 ч. Какой путь прошел пешеход?

1. Ввести v1, v2, v3, t1, t2,t3.
2. S1 := v1 * t1.
3. S2 := v2 * t2.
4. S3 := v3 * t3.
5. S := S1 + S2 + S3.
6. Вывести значение S.
7. Конец.


Слайд 23Основные алгоритмические структуры
Ветвление
Пример. Вычислить значение функции

1. Ввести x.
2. Если

x<=-12, то y:=–x2;
переход к п.5
3. Если x<0, то y:=x4;
переход к п.5
4. y := x–2
5. Вывести y
6. Конец

Слайд 24Основные алгоритмические структуры
Циклы

                                           

1. С параметром
2. С постпроверкой условия
3. С предпроверкой

условия


Слайд 25Программирование на языке Паскаль
Тема 2. Ветвления


Слайд 26
Разветвляющиеся алгоритмы
Задача. Ввести два целых числа и вывести на экран наибольшее

из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.


Слайд 27
Вариант 1. Блок-схема

полная форма ветвления
блок «решение»


Слайд 28
Вариант 1. Программа


max := a;
max := b;
полная форма условного оператора
program qq;
var

a, b, max: integer;
begin
writeln('Введите два целых числа');
read ( a, b );
if a > b then begin

end
else begin

end;
writeln ('Наибольшее число ', max);
end.

Слайд 29
Условный оператор
if then begin
{что делать, если условие верно}


end
else begin
{что делать, если условие неверно}
end;

Особенности:
перед else НЕ ставится точка с запятой
вторая часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать слова begin и end


Слайд 30
Вариант 2. Блок-схема

неполная форма ветвления


Слайд 31
Вариант 2. Программа


program qq;
var a, b, max: integer;
begin
writeln('Введите два

целых числа');
read ( a, b );
max := a;
if b > a then
max := b;
writeln ('Наибольшее число ', max);
end.

неполная форма условного оператора


Слайд 32
Задания
«4»: Ввести три числа и найти наибольшее из них.
Пример:
Введите

три числа:
4 15 9
Наибольшее число 15
«5»: Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56

Слайд 33Программирование на языке Паскаль
Тема 3. Сложные условия


Слайд 34
Сложные условия
Сложное условие – это условие, состоящее из нескольких простых условий

(отношений), связанных с помощью логических операций:
not – НЕ (отрицание, инверсия)
and – И (логическое умножение, конъюнкция, одновременное выполнение условий)
or – ИЛИ (логическое сложение, дизъюнкция, выполнение хотя бы одного из условий)
xor – исключающее ИЛИ (выполнение только одного из двух условий, но не обоих)
Простые условия (отношения)
< <= > >= = <>

равно

не равно


Слайд 35
Сложные условия
Порядок выполнения (приоритет = старшинство)
выражения в скобках
not
and
or, xor

>=, =, <>
Особенность – каждое из простых условий обязательно заключать в скобки.
Пример

4 1 6 2 5 3

if not (a > b) or (c <> d) and (b <> a)
then begin
...
end


Слайд 36Истинно или ложно при a := 2; b := 3; c

:= 4;
not (a > b)
(a < b) and (b < c)
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a)
(a < b) xor not (b > c)
Для каких значений x истинны условия:
(x < 6) and (x < 10)
(x < 6) and (x > 10)
(x > 6) and (x < 10)
(x > 6) and (x > 10)
(x < 6) or (x < 10)
(x < 6) or (x > 10)
(x > 6) or (x < 10)
(x > 6) or (x > 10)


Сложные условия

True

True

FALSE

(-∞, 6)


(6, 10)

(10, ∞)

(-∞, 10)

(-∞, 6) ∪ (10,∞)

(-∞, ∞)

(6, ∞)

x < 6

x > 10

x < 10

x > 6

True

True


Слайд 37Программирование на языке Паскаль
Тема 4. Циклы


Слайд 38
Циклы
Цикл – это многократное выполнение одинаковой последовательности действий.
цикл с известным числом

шагов
цикл с неизвестным числом шагов (цикл с условием)
Задача. Вывести на экран 5 раз слово «Привет».
Особенность: одинаковые действия выполняются 5 раз.

Слайд 39 Блок-схема, соответствующая циклу с параметром языка Паскаль, представлена на рисунке








Здесь i – параметр цикла; i0 – начальное значение параметра; iT – конечное значение параметра.

Слайд 40
Циклы
program qq;
var i: integer;
begin
for i:=1 to 5 do
writeln('Привет');


end.

«Для всех i от 1 до 5
делай …»

for i:=1 to 5 do

Если в цикле более одного оператора:

for i:=1 to 5 do begin
write('Привет');
writeln(', Вася!');
end;

begin

end;


Слайд 41
Циклы
Задача. Вывести на экран квадраты и кубы целых чисел от 1

до 8 (от a до b).
Особенность: одинаковые действия выполняются 8 раз.

Слайд 42
Алгоритм

начало
i, i2, i3
конец
нет
да
i

:= i * i;
i3 := i2 * i;

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

проверить, все ли сделали

вычисляем квадрат и куб

вывод результата

перейти к следующему i


Слайд 43
Алгоритм (с блоком «цикл»)

начало
i, i2, i3
конец

i2 := i * i;
i3 :=

i2 * i;

i := 1,8

блок «цикл»

тело цикла


Слайд 44
Программа


program qq;
var i, i2, i3: integer;
begin


for i:=1 to 8

do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end.

переменная
цикла

начальное значение

конечное значение


Слайд 45
Цикл с уменьшением переменной
Задача. Вывести на экран квадраты и кубы целых

чисел от 8 до 1 (в обратном порядке).
Особенность: переменная цикла должна уменьшаться.
Решение:

for i:=8 1 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;

downto


Слайд 46
Цикл с переменной
for := to do

begin
{тело цикла}
end;

Увеличение переменной на 1:

for <переменная> := <начальное значение> downto <конечное значение> do begin
{тело цикла}
end;

Уменьшение переменной на 1:


Слайд 47
Цикл с переменной
Особенности:
переменная цикла может быть только целой (integer)
шаг изменения переменной

цикла всегда равен 1 (to) или -1 (downto)
если в теле цикла только один оператор, слова begin и end можно не писать:
если конечное значение меньше начального, цикл (to) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием)

for i:=1 to 8 do
writeln('Привет');


Слайд 48
Цикл с переменной
Особенности:
в теле цикла не разрешается изменять переменную цикла (почему?)
при

изменении начального и конечного значения внутри цикла количество шагов не изменится:

n := 8;
for i:=1 to n do begin
writeln('Привет');
n := n + 1;
end;

нет зацикливания


Слайд 49
Сколько раз выполняется цикл?
a := 1;
for i:=1 to 3 do a

:= a+1;

a = 4

a := 1;
for i:=3 to 1 do a := a+1;

a = 1

a := 1;
for i:=1 downto 3 do a := a+1;

a = 1

a := 1;
for i:=3 downto 1 do a := a+1;

a = 4


Слайд 50for i:=1 to 9 do begin
if ???

then begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end;


Как изменить шаг?

Задача. Вывести на экран квадраты и кубы нечётных целых чисел от 1 до 9.
Особенность: переменная цикла должна увеличиваться на 2.
Проблема: в Паскале шаг может быть 1 или -1.
Решение:

i mod 2 = 1

i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);

выполняется только для нечетных i


Слайд 51
Как изменить шаг? – II
Идея: Надо вывести всего 5 чисел, переменная

k изменяется от 1 до 5. Начальное значение i равно 1, с каждым шагом цикла i увеличивается на 2.
Решение:

???
for k:=1 to 5 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
???
end;

i := i + 2;

i := 1;


Слайд 52
Как изменить шаг? – III
Идея: Надо вывести всего 5 чисел, переменная

k изменяется от 1 до 5. Зная k, надо рассчитать i.


Решение:

i = 2k-1

for k:=1 to 5 do begin
???
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;

i := 2*k – 1;


Слайд 53Программирование на языке Паскаль
Тема 5. Циклы с условием


Слайд 54
Цикл с неизвестным числом шагов
Пример: Отпилить полено от бревна. Сколько раз

надо сделать движения пилой?
Задача: Ввести целое число (<2000000) и определить число цифр в нем.
Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.




Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0, т.е. надо делать «пока n <> 0».

Слайд 55

Алгоритм

начало
count
конец
нет
да
n 0?

count := 0;

count := count + 1;
n

:= n div 10;

обнулить счетчик цифр

ввод n


выполнять «пока n <> 0»


Слайд 56Программа
program qq;
var n, count: integer;
begin
writeln('Введите целое число');
read(n);
count :=

0;
while n <> 0 do begin
count := count + 1;
n := n div 10;
end;
writeln('В числе ', n, ' нашли ',
count, ' цифр');
end.

while n <> 0 do begin
count := count + 1;
n := n div 10;
end;

, n1: integer;

n1 := n;

n1,

выполнять «пока n <> 0»


Слайд 57

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


Слайд 58
Цикл с условием
while do
begin
{тело цикла}


end;

Особенности:
можно использовать сложные условия:
если в теле цикла только один оператор, слова begin и end можно не писать:

while (a {тело цикла}
end;

while a < b do
a := a + 1;


Слайд 59
Цикл с условием
Особенности:
условие пересчитывается каждый раз при входе в цикл
если условие

на входе в цикл ложно, цикл не выполняется ни разу
если условие никогда не станет ложным, программа зацикливается

a := 4; b := 6;
while a > b do
a := a – b;

a := 4; b := 6;
while a < b do
d := a + b;


Слайд 60
Сколько раз выполняется цикл?
a := 4; b := 6;
while a

b do a := a + 1;

2 раза
a = 6

a := 4; b := 6;
while a < b do a := a + b;

1 раз
a = 10

a := 4; b := 6;
while a > b do a := a + 1;

0 раз
a = 4

a := 4; b := 6;
while a < b do b := a - b;

1 раз
b = -2

a := 4; b := 6;
while a < b do a := a - 1;

зацикливание


Слайд 61
Замена for на while и наоборот
for i:=1 to 10 do begin

{тело цикла}
end;

i := 1;
while i <= 10 do begin
{тело цикла}
i := i + 1;
end;

for i:=a downto b do
begin
{тело цикла}
end;

i := a;
while i >= b do begin
{тело цикла}
i := i - 1;
end;

Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла.

Замена цикла for на while возможна всегда.


Слайд 62
Последовательности
Задача: найти сумму всех элементов последовательности,
которые по модулю больше

0,001:

Элемент последовательности (начиная с №2):

b := b+1;

c := 2*c;

z := -z;


Слайд 63
Алгоритм

начало
S
конец
нет
да
|a| > 0.001?


S := S + a;

S := 0; b :=

1; c := 2; z := -1; a := 1;

начальные значения

a := z*b/c;
b := b + 1; c := 2*c; z := -z;

первый элемент

a := 1;

S := 0;

новый элемент

изменение


Слайд 64
Программа
program qq;
var b, c, z: integer;
S, a: real;
begin

S := 0; z := -1;
b := 1; c := 2; a := 1;
while abs(a) > 0.001 do begin
S := S + a;
a := z * b / c;
z := - z;
b := b + 1;
c := c * 2;
end;
writeln('S =', S:10:3);
end.

z := - z;
b := b + 1;
c := c * 2;

переход к следующему слагаемому

S := 0; z := -1;
b := 1; c := 2; a := 1;

начальные значения

увеличение суммы

расчет элемента последовательности


Слайд 65
Цикл с постусловием
Задача: Ввести целое положительное число (

цифр в нем.
Проблема: Как не дать ввести отрицательное число или ноль?
Решение: Если вводится неверное число, вернуться назад к вводу данных (цикл!).
Особенность: Один раз тело цикла надо сделать в любом случае => проверку условия цикла надо делать в конце цикла (цикл с постусловием).

Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.


Слайд 66Цикл с постпроверкой условия REPEAT


Слайд 67
Цикл с постусловием: алгоритм

начало
конец
да
нет
n > 0?


тело цикла
условие ВЫХОДА
блок «типовой процесс»
ввод

n

основной алгоритм


Слайд 68
Программа
program qq;
var n: integer;
begin
repeat
writeln('Введите положительное число');

read(n);
until n > 0;
... { основной алгоритм }
end.

repeat
writeln('Введите положительное число');
read(n);
until n > 0;

until n > 0;

условие ВЫХОДА

Особенности:
тело цикла всегда выполняется хотя бы один раз
после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла


Слайд 69
Сколько раз выполняется цикл?
a := 4; b := 6;
repeat a :=

a + 1; until a > b;

3 раза
a = 7

a := 4; b := 6;
repeat a := a + b; until a > b;

1 раз
a = 10

a := 4; b := 6;
repeat a := a + b; until a < b;

зацикливание

a := 4; b := 6;
repeat b := a - b; until a < b;

2 раза
b = 6

a := 4; b := 6;
repeat a := a + 2; until a < b;

зацикливание


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика