Слайд 1
Программирование
на языке Паскаль
Слайд 3
Никлаус Вирт (Niklaus Wirth)
В 1970 году в мире программирования
произошли по крайней мере два великих события- появились операционная система
UNIX и новый язык программирования, созданный профессором Никлаусом Виртом из швейцарского Федерального Технологического Института в Цюрихе . Вирт назвал его в честь великого французского математика и философа XVII века Блеза Паскаля.
Блез Паскаль
Слайд 4Язык Паскаль удобен для начального обучения программированию, не только
потому,
что учит как правильно написать программу, но и тому, как
правильно
разрабатывать методы решения задач программирования
Слайд 5Алфавит языка
прописные и строчные буквы латинского алфавита от A до
z, а также символ подчеркивания ( _ ), который тоже
считается буквой.
Прописные и строчные буквы взаимозаменяемы (рАвНоЗнАчНы);
арабские цифры 0 1 2 3 4 5 6 7 8 9;
специальные одиночные знаки: + – * / = < > . , : ; ^ $ # @;
специальные парные знаки: [ ] ( ) { } ;
составные знаки : < = > = < > .. ( * * ) ( .. ).
Слайд 6Структура программы
Программа на языке Паскаль состоит из:
//Заголовок (необязательная часть)
//Блок описаний
//Тело
программы
Слайд 7Блок описаний
Описание меток;
Определение констант;
Определение типов;
Описание переменных;
Описание процедур и функций.
Слайд 8Тело программы
begin { начало программы }
{ тело
программы }
end. { конец программы }
Слайд 9Структура программы
Program имя программы; {заголовок программы}
Uses …;{раздел подключения модулей}
Label …; {раздел описания меток}
Const …; {раздел описания констант}
Туре …; {раздел определения типов}
Var …; {раздел описания переменных}
Function …; Procedure …; {раздел описания функций и процедур}
BEGIN
... {раздел операторов}
END.
Слайд 10
Из чего состоит программа?
Константа – постоянная величина, имеющая имя.
Переменная –
изменяющаяся величина, имеющая имя (ячейка памяти).
Процедура – вспомогательный алгоритм, описывающий
некоторые действия (рисование окружности).
Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin).
Слайд 11
Константы
const
i2 = 45; { целое число }
pi
= 3.14; { вещественное число }
q = 'Вася'; { строка
символов }
L = True; { логическая величина }
целая и дробная часть отделяются точкой
можно использовать русские буквы!
может принимать два значения:
True (истина, «да»)
False (ложь, «нет»)
Слайд 12
Переменные
Типы переменных:
integer { целая }
real { вещественная }
char { один символ }
string { символьная
строка }
boolean { логическая }
Объявление переменных (выделение памяти):
var a, b,
c: integer;
variable – переменная
тип – целые
список имен переменных
Слайд 13Пример программы
Begin
write(‘Это моя первая программа!’);
End.
Запустите программу на исполнение просмотрите результат.
Слайд 14Оператор вывода
Write(‘текст’); - оператор вывода текста и переменных на экран
(оставляет курсор на текущей строке);
Writeln(‘текст’); - оператор вывода текста и
переменных на экран (переносит курсор на новую строку);
Слайд 15Задание
Выведите следующий текст на экран:
Привет всем!
Я лучший программист ОСШ
№3!
Обратите внимание на то, что текст выводится в две разные
строчки
Слайд 17Вычисление математических выражений в ABC Pascal
Слайд 18Приоритет выполнения операций в ABC Pascal такой же, как и
в математике.
Достаточно только научиться правильно записывать математические выражения на языке
Pascal
Слайд 19Арифметические действия
Вычисли:
10 div 3 18 mod 4
Слайд 20Примеры
Десятичная запятая в Pascal обозначается точкой
Слайд 21Стандартные функции
Определите результат:
Frac(16.68); Round(16.68); Trunc(16.68);
Слайд 23Градусы в Pascal нужно перевести в радианы
Слайд 25
Оператор присваивания
Арифметическое выражение может включать
константы
имена переменных
знаки арифметических операций:
+
- * / div mod
вызовы
функций
круглые скобки ( )
умножение
деление
деление нацело
остаток от деления
<имя переменной> := <выражение>;
Слайд 26 program qq;
var a, b: integer;
x, y: real;
begin
a
:= 5;
10 := x;
y
:= 7,8;
b := 2.5;
x := 2*(a + y);
a := b + x;
end.
Какие операторы неправильные?
имя переменной должно быть слева от знака :=
целая и дробная часть отделяются точкой
нельзя записывать вещественное значение в целую переменную
Слайд 27
Оператор ввода
read ( a ); { ввод значения переменной
a}
read ( a, b ); { ввод значений переменных a
и b}
Как вводить два числа?
через пробел:
25 30
через Enter:
25
30
Слайд 28
Оператор вывода
write ( a ); { вывод значения переменной
a}
writeln ( a ); { вывод значения переменной a и
переход на новую строчку}
writeln ( 'Привет!' ); { вывод текста}
writeln ( 'Ответ: ', c ); { вывод текста и значения переменной c}
writeln ( a, '+', b, '=', c );
Слайд 29
Сложение двух чисел
Задача. Ввести два целых числа и вывести на
экран их сумму.
Простейшее решение:
program qq;
var a, b, c: integer;
begin
read ( a, b );
c := a + b;
writeln ( c );
end.
Слайд 30
Полное решение
program qq;
var a, b, c: integer;
begin
writeln('Введите два
целых числа');
read ( a, b );
c
:= a + b;
writeln ( a, '+', b, '=', c );
end.
Протокол:
Введите два целых числа
25 30
25+30=55
компьютер
пользователь
Слайд 32ВЫЧИСЛИТЬ:
12 div 4 =
19 div 5 =
12 mod
3 =
136 mod 10 =
Слайд 34Домашнее задание
1. Вычислить длину окружности и площадь круга по заданному
радиусу
2. Вычислить периметр прямоугольного треугольника по его катетам
Слайд 36Реализация разветвляющихся алгоритмов на Паскале
Слайд 37Условный оператор (полная форма)
полная форма ветвления
Слайд 38
Условный оператор (полная форма)
if then begin
{что
делать, если условие верно}
end
else begin
{что делать, если условие неверно}
end;
Особенности:
перед else НЕ ставится точка с запятой
если в блоке один оператор, можно убрать слова begin и end
Слайд 39Условный оператор (неполная форма)
неполная форма ветвления
Слайд 40
Условный оператор (неполная форма)
if then begin
{что
делать, если условие верно}
end;
Особенности:
если в блоке один
оператор, можно убрать слова begin и end
Слайд 42Домашнее задание
Составьте программу, которая уменьшает первое число в пять раз,
если оно больше второго.
2. Запишите программу, в которой значение переменной
с вычисляется по формуле: a+b, если а нечетное и a*b, если а четное.
Слайд 44Домашнее задание
а). Известно значение х. Вычислить у, если
б). Даны
координаты точки. Выяснить лежит ли эта точка в 3 координатной
четверти?
2. Определите значение переменной c после выполнения следующего фрагмента программы:
a := 6;
b := 15;
a := b – a*2;
if a > b then
c := a + b
else c := b – a;
1. Написать программу решения задачи:
Слайд 46Реализация циклических алгоритмов на Паскале
Слайд 47
Цикл – это многократное выполнение одинаковой последовательности действий.
цикл с известным
числом шагов (цикл с параметром)
цикл с неизвестным числом шагов (цикл
с условием)
do begin
{тело цикла}
end;
Увеличение переменной
на 1(шаг 1):
for <переменная> := <начальное значение>
downto
<конечное значение> do begin
{тело цикла}
end;
Уменьшение переменной на 1 (шаг -1):
Слайд 51
Особенности:
переменная цикла может быть только целой (integer)
шаг изменения переменной цикла
всегда равен 1 (to) или -1 (downto)
если в теле цикла
только один оператор, слова begin и end можно не писать:
если конечное значение меньше начального, цикл (to) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием)
for i:=1 to 8 do
writeln('Привет');
Слайд 52
в теле цикла не разрешается изменять переменную цикла
при изменении
начального и конечного значения внутри цикла количество шагов не изменится:
n
:= 8;
for i:=1 to n do begin
writeln('Привет');
n := n + 1;
end;
нет зацикливания
Слайд 55
while do begin
{тело цикла}
end;
Особенности:
можно использовать сложные условия:
если в теле цикла только один оператор,
слова begin и end можно не писать:
while (a {тело цикла}
end;
while a < b do
a := a + 1;
Слайд 56
условие пересчитывается каждый раз при входе в цикл
если условие на
входе в цикл ложно, цикл не выполняется ни разу
если условие
никогда не станет ложным, программа зацикливается
a := 4; b := 6;
while a > b do
a := a – b;
a := 4; b := 6;
while a < b do
d := a + b;
Слайд 59Цикл с постусловием – это цикл, в котором проверка условия
выполняется в конце цикла.
repeat
until
Слайд 60Найти сумму квадратов всех натуральных чисел от 1 до 100.
Решим эту задачу с использованием всех трех видов циклов.
ЗАДАЧА
Слайд 61
С использованием цикла "Пока".
Program qq;
var a, s : integer;
begin
a:=1;
s:=0;
while a
do begin
s:=s+a*a;
a:=a+1;
end;
writeln(s);
end.
Слайд 62С использованием цикла "До"
Program qq;
var a, s : integer;
begin
a:=1;
s:=0;
Repeat
s:=s+a*a;
a:=a+1;
until a
>100;
writeln(s);
end.
Слайд 63
С использованием цикла
"С параметром"
Program qq;
var a, s : integer;
begin
s:=0;
for
a:=1 to 100 do
s:=s+a*a;
writeln (s);
end.
Слайд 64Задача.
Вывести на экран квадраты и кубы целых чисел от
1 до 8.
Особенность:
одинаковые действия выполняются 8 раз.
Слайд 65
начало
конец
i1 := i * i;
i2 := i1 * i;
i :=
1,8
блок «цикл»
тело цикла
i, i1, i2
Слайд 66
Программа
program qq;
var i, i1, i2: integer;
begin
for i:=1 to
8 do begin
i1 := i*i;
i2 :=
i1*i;
writeln(i, i1, i2);
end;
end.
переменная
цикла
начальное значение
конечное значение
Слайд 67
Цикл с уменьшением переменной
Задача. Вывести на экран квадраты и кубы
целых чисел от 8 до 1 (в обратном порядке).
Особенность: переменная
цикла должна уменьшаться.
Решение:
for i:=8 1 do begin
i1 := i*i;
i2 := i1*i;
writeln(i, i1, i2);
end;
downto
Слайд 70
Массив – это группа однотипных элементов, имеющих общее имя и
расположенных в памяти рядом.
Особенности:
все элементы имеют один тип
весь массив имеет
одно имя
все элементы расположены в памяти рядом
Примеры:
список учеников в классе
квартиры в доме
школы в городе
данные о температуре воздуха за год
Слайд 71
A
массив
3
15
НОМЕР
элемента массива
(ИНДЕКС)
A[1]
A[2]
A[3]
A[4]
A[5]
ЗНАЧЕНИЕ элемента массива
A[2]
НОМЕР (ИНДЕКС)
элемента массива: 2
ЗНАЧЕНИЕ
элемента
массива: 10
Слайд 72
Объявление массивов
Зачем объявлять?
определить имя массива
определить тип массива
определить число элементов
выделить
место в памяти
Массив целых чисел:
Размер через константу:
имя
начальный индекс
конечный
индекс
тип
элементов
var A: array[1.. ] of integer;
const N=5;
N
var A : array[ 1 .. 5 ] of integer ;
Слайд 73Что неправильно?
var a: array[10..1] of integer;
...
A[5] := 4.5;
[1..10]
var a:
array ['z'..'a'] of integer;
...
A['B'] := 15;
A['b']
['a'..'z']
var a: array [0..9]
of integer;
...
A[10] := 'X';
Слайд 74Объявление:
Ввод с клавиатуры:
Поэлементные операции:
Вывод на экран:
const N = 5;
var
a: array[1..N] of integer;
i: integer;
for i:=1 to N
do begin
write('a[', i, ']=');
read ( a[i] );
end;
a[1] =
a[2] =
a[3] =
a[4] =
a[5] =
5
12
34
56
13
for i:=1 to N do a[i]:=a[i]*2;
writeln('Массив A:');
for i:=1 to N do
write(a[i]:4);
Массив A:
10 24 68 112 26
Слайд 75
Задача:
1. Ввести c клавиатуры массив из 5 элементов,
найти среднее арифметическое всех элементов массива.
Пример:
Введите пять
чисел:
4 15 3 10 14
среднее арифметическое 9.200
РЕШЕНИЕ:
Слайд 76Program qq;
var N: array[1..5] of integer;
i: integer;
c, k: real;
begin
for i:=1
to 5 do begin
write ('N[',i,']');
read (N[i]);
end;
c:=0;
for i:=1 to 5 do
begin
c:=c + N[i];
k:=c/5;
end;
write('среднее', k:6:2);
end.