Слайд 1ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ
НАЧАЛА ПРОГРАММИРОВАНИЯ
Слайд 2Содержание презентации:
Общие сведения о языке программирования Паскаль.
Организация ввода и
вывода данных.
Программирование как этап решения задач на.
Программирование линейных алгоритмов.
Программирование разветвляющихся
алгоритмов.
Программирование циклических алгоритмов.
Слайд 3Языки программирования - это формальные языки, предназначенные для записи алгоритмов,
исполнителем которых будет компьютер.
Записи алгоритмов на языках программирования называются
программами.
Язык Паскаль – универсальный язык программирования.
Никлаус Вирт (род. в 1934 г.) - швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор информатики (компьютерных наук). Разработчик языка Паскаль и ряда других языков программирования.
Слайд 4Алфавит языка
Алфавит языка программирования Паскаль - набор допустимых символов, которые
можно использовать для записи программы.
A, B, C, …, X
Y, Z
Алфавит языка Паскаль
Латинские прописные
буквы
Латинские строчные
буквы
Арабские цифры
Специальные
символы
a, b, c,…, x, y, z
0, 1, 2, …, 7, 8, 9
Знаки арифметические,
препинания, скобки и другие
Слайд 5Алфавит языка
В алфавит языка Паскаль включены неделимые элементы (составные символы).
: =
Неделимые элементы
Знак операции
присваивания
Знаки больше или равно,
меньше или равно
Начало
и конец
комментария
> = и < =
* и *
Слайд 7Алфавит и словарь языка
Имена (констант, переменных, программ и других объектов)
- любые отличные от служебных слов последовательности букв, цифр и
символа подчеркивания, начинающиеся с буквы или символа подчеркивания.
Правильные имена
x
velichina
zzz
polnaja_summa
tri_plus_dva
s25
_k1
a1b88qq
oshibka
Прописные и строчные буквы в именах не различаются. Длина имени может быть любой.
Неправильные имена
Ж - буква не латинского алфавита
polnaja summa - содержится символ (пробел), не являющийся буквой, цифрой или знаком подчеркивания.
2as - начинается с цифры
Domby&Son - содержится символ &, не являющийся буквой, цифрой или знаком подчеркивания
Слайд 8Простые типы данных
Типы величин
Слайд 9Структура программы на языке Паскаль
Служебное слово program
и имя программы
Структура
программы
Заголовок программы
Описание данных
Описание действий
Описание констант(const) и
описание переменных (var)
Начинается словом
begin и
заканчивается словом end
с точкой
Слайд 10Раздел описания переменных
Целый тип
Вещественный тип
Символьный тип
Имена переменных
Слайд 11Общий вид программы
program ;
const ;
var
;
begin
;
<оператор 2>;
…
<оператор n>
end.
Операторы - языковые конструкции для записи действия, выполняемого над данными в процессе решения задачи.
Слайд 12Оператор присваивания
Основное преобразование данных, выполняемое компьютером, - присваивание переменной нового
значения, что означает изменение содержимого области памяти.
Общий вид оператора:
Команда присваивания
переменной>:=<выражение>
a:=10;
b:=5;
s:=a+b;
Слайд 13
Оперативная память
Выполнение оператора
присваивания
Процессор
10 + 5
a
s
b
10
5
10
15
5
a:=10;
b:=5;
s:=a+b
Слайд 14Организация ввода и вывода данных.
НАЧАЛА ПРОГРАММИРОВАНИЯ
оператор вывода writer
формат вывода
оператор ввода
read
Слайд 15Вывод данных
Вывод данных из оперативной памяти на экран монитора:
write (
1> ,< выражение 2> , ...,< выражение N>)
список вывода
Выражения -
символьные, числовые, логические,
в том числе переменные и константы
Пример:
write ('s=', s). Для s=15 на экране будет: s=15.
Информация в кавычках выводится на экран
без изменений
Слайд 17Формат вывода
Формат вывода позволяет установить количество позиций на экране, занимаемых
выводимой величиной.
write (s:x:y)
x - общее количество позиций, отводимых под число;
y - количество позиций в дробной части числа.
writeln - вывод c новой строки!
Слайд 18Первая программа
program n_1;
const pi=3.14;
var r, c,
s: real;
begin
r:=5.4;
c :=2*pi*r;
s:=pi*r*r;
writeln ('c =', c:6:4);
writeln ('s=', s:6:4)
end.
Результат работы программы:
Слайд 19Ввод данных с клавиатуры
read (, …,
N> )
Ввод в оперативную память значений переменных :
Выполнение оператора read:
компьютер
переходит в режим ожидания данных:
пользователь вводит данные с клавиатуры:
несколько значений переменных
числовых типов могут вводиться
через пробел или через запятую;
при вводе символьных переменных
пробел и запятую ставить их нельзя;
пользователь нажимает клавишу Enter.
список ввода
Слайд 20Ввод данных с клавиатуры
Команда ввода-вывода
var i, j: integer;x: real;a:
char;
read (i, j, x, a);
После выполнения оператора readln курсор переходит
на новую строку.
варианты организации входного потока:
1 0 2.5 А 1,0 1
2.5, А 0
2.5
А
Типы вводимых значений должны соответствовать
типам переменных, указанных в разделе описания переменных.
!
Слайд 21Улучшенная программа
program n_1;
const pi=3.14;
var r, c, s: real;
begin
writeln('Вычисление длины окружности и площади круга');
write('Введите r>>');
readln(r);
c:=2*pi*r;
s:=pi*r*r;
writeln ('c =', с:6:4);
writeln ('s=', s:6:4)
end.
Результат работы программы:
Слайд 22НАЧАЛА ПРОГРАММИРОВАНИЯ
Программирование как этап решения задач на компьютере
постановка задачи
формализация
алгоритмизация
программирование
отладка и тестирование
Слайд 23Этапы решения задач на компьютере
Исходные данные
Словесная информационная модель
Формализация
Математическая модель
Алгоритмизация
Алгоритм
Программирование
Программа
Отладка, тестирование
(компьютерный эксперимент)
Уточнение модели,
получение результата
Этап
Результат
Слайд 24Задача о пути торможения автомобиля
Водитель автомобиля, движущегося с некоторой
постоянной скоростью, увидев красный свет светофора, нажал на тормоз. После
этого скорость автомобиля стала уменьшаться каждую секунду на 5 метров. Требуется найти расстояние, которое автомобиль пройдёт до полной остановки.
Первый этап
Дано:
v0x - начальная скорость;
vx - конечная скорость (равна нулю);
ax - ускорение (равно -5 м/с)
Требуется найти: расстояние, которое пройдёт автомобиль до полной остановки.
Слайд 25Второй этап
Задача о пути торможения автомобиля
В данной ситуации мы
имеем дело с прямолинейным равноускоренным движением тела. Формула для перемещения
при этом имеет вид:
Упростим эту формулу с учётом того, что конечная скорость равна нулю:
При ax= - 5м/с получим:
Слайд 26Задача о пути торможения автомобиля
Третий этап
Представим алгоритм решения задачи
в виде блок-схемы:
Начало
v0
s
Конец
Слайд 27Задача о пути торможения автомобиля
Четвёртый этап
Запишем данный алгоритм на
языке программирования Паскаль:
program n_2;
var v0, s: real;
begin
writeln('Вычисление длины пути торможения автомобиля');
write('Введите начальную скорость (м/с)> ');
readln (v0);
s:=v0*v0/10;
writeln ('До полной остановки автомобиль пройдет', s:8:4,' м.')
end.
Слайд 28Задача о пути торможения автомобиля
Пятый этап
Протестировать составленную программу можно,
используя ту информацию, что при скорости 72 км/ч с начала
торможения до полной остановки автомобиль проходит 40 метров.
Выполнив программу несколько раз при различных исходных данных, можно сделать вывод: чем больше начальная скорость автомобиля, тем большее расстояние он пройдет с начала торможения до полной остановки.
Слайд 29НАЧАЛА ПРОГРАММИРОВАНИЯ
Программирование линейных алгоритмов
вещественный тип данных
целочисленный тип данных
символьный тип данных
строковый
тип данных
логический тип данных
Слайд 30Числовые типы данных
Стандартные функции языка Паскаль:
Слайд 31Исследование функций round, int и frac
Выполните программу несколько раз для
x {10,2; 10,8; –10,2; –10,8}.
Какой будет тип результата каждой
из этих функций?
program n_3;
var x: real;
begin
writeln ('Исследование функций round, int, frac');
write ('Введите x>>');
readln (x);
writeln ('Округление - ', round(x));
writeln ('Целая часть - ', int(x));
writeln ('Дробная часть - ', frac(x))
end.
?
Слайд 32Целочисленный тип данных
Операции над целыми числами в языке Паскаль:
Слайд 33Операции div и mod
program n_4;
var x, a, b,
c, s: integer;
begin
writeln ('Нахождение суммы цифр трёхзначного числа');
write
('Введите исходное число>>');
readln (x);
a:=x div 100;
b:=x mod 100 div 10;
c:=x mod 10;
s:=a+b+c;
writeln ('s= ', s)
end.
Трёхзначное число можно представить в виде следующей суммы: x = a·100 + b·10 + c, где а, b, с - цифры числа.
Программа нахождения суммы цифр вводимого с клавиатуры целого трёхзначного числа.
Слайд 34Символьный и строковый типы данных
Функция ord преобразовывает букву в её
числовой код.
Символы – это все буквы и значки, которые
есть на клавиатуре. Для ввода в программу символьных переменных необходимо указать для них символьный тип данных char.
Функция chr преобразовывает числовой код символа в сам символ.
Значением строковой величины (тип string) является произвольная последовательность символов, заключенная в апострофы.
W
chr
87
ord
W
%
37
%
4
52
4
S
83
S
var c: string
c:= chr(52)+chr(37)
с
4%
Слайд 35Символьный и строковый типы данных
program n_5;
var a: char; kod:
integer; b: string;
begin
writeln ('Код и строка');
write ('Введите исходную
букву>>');
readln (a);
kod:=ord(a);
b:=chr(kod–1)+a+chr(kod+1);
writeln ('Код буквы ', a, '-', kod);
writeln ('Строка: ', b)
end.
Вывод на экран кода буквы, введённой с клавиатуры
Вывод на экран строки из трёх букв.
Каких?
Слайд 36Логический тип данных
Величины логического типа принимают всего два значения: false
и true;
false < true.
Логические значения получаются в результате выполнения операций
сравнения числовых, символьных, строковых и логических выражений.
В Паскале логической переменной можно присваивать результат операции сравнения.
Слайд 37Логический тип данных
Пусть ans - логическая переменная,
n - целая переменная.
В результате выполнения оператора присваивания
ans:=n mod 2=0
переменной ans будет присвоено значение true при любом чётном n и false в противном случае.
program n_6;
var n: integer; ans: boolean;
begin
writeln ('Определение истинности высказывания о чётности числа');
write ('Введите исходное число>>');
readln (n);
ans:=n mod 2=0;
writeln ('Число ', n,' является четным - ', ans)
end.
Слайд 38Логический тип данных
Логическим переменным можно присваивать значения логических выражений, построенных
с помощью логических функций и (and), или (or), не (not).
Слайд 39program n_7;
var a, b, c: integer; ans: boolean;
begin
writeln
('Определение истинности высказывания
о равнобедренном треугольнике');
write ('Введите значения a, b, c>>');
readln (a, b, c);
ans:=(a=b) or (a=c) or (b=c);
writeln ('Треугольник с длинами сторон ', a, ',', b,
',', c, ' является равнобедренным - ', ans)
end.
Логический тип данных
Слайд 40НАЧАЛА ПРОГРАММИРОВАНИЯ
Программирование разветвляющихся алгоритмов
условный оператор
неполный условный оператор
составной оператор
вложенные ветвления
Слайд 41Общий вид условного оператора
Перед else знак «;» не ставится.
Полная форма
условного оператора:
if then else
Неполная форма условного оператора:
if
<условие> then <оператор>
Операции
отношений
Логические
операции
Простые
Сложные
Условия - логические выражения
!
Слайд 42Условный оператор
program n_9;
var x, a, b: real;
begin
writeln ('Определение
принадлежности
точки отрезку');
write ('Введите а, b>>');
readln (a, b);
write ('Введите x>>');
readln (x);
if (x>=a) and (x<=b) then
writeln ('Точка принадлежит отрезку')
else writeln ('Точка не принадлежит отрезку')
end.
Слайд 43Неполная форма условного оператора
program n_10;
var y, a, b, c:
integer;
begin
writeln ('Нахождение наибольшей из трёх величин');
write ('Введите а,
b, с>>');
readln (a, b, c);
y:=a;
if (b>y) then y:=b;
if (c>y) then y:=c;
writeln ('y=', y)
end.
Слайд 44Составной оператор
В условном операторе и после then, и после else
можно использовать только один оператор.
Если в условном операторе после
then или после else
нужно выполнить несколько операторов, то
используют составной оператор – конструкцию вида:
begin <последовательность операторов> end
Слайд 45 begin
x1:=(-b+sqrt(d))/2/a;
x2:=(-b-sqrt(d))/2/a;
writeln ('Корни уравнения:');
writeln ('x1=', x1:9:3);
writeln ('x2=', x2:9:3)
end;
begin
x:=-b/2/a;
writeln ('Корень уравнения x=', x:9:3)
end;
program n_11;
var a, b, c: real;
var d: real;
var x, x1, x2: real;
begin
writeln ('Решение квадратного уравнения');
write ('Введите коэффициенты a, b, c >>');
readln (a, b, c);
d:=b*b-4*a*c;
if d<0 then writeln ('Корней нет');
if d=0 then
if d>0 then
end.
Слайд 46Блок-схема решения КВУР
Конец
Вывод
«Корни уравнения:
х1=», х1, «х2=», х2
х1:=(-b+sqrt(d))/2/a
Начало
Введите коэффициенты
a, b, c
d:=b*b-4*a*c
d < 0
да
Вывод
«Корней нет»
нет
d:= 0
да
x:=-b/2/a
Вывод
«Корень уравнения х=», х
нет
х2:=(-b-sqrt(d))/2/a
?
Соответствуют
ли программа
и блок-схема друг другу?
Слайд 47Вложенные ветвления
Возможна следующая конструкция:
if then
if <условие2> then
<оператор1>
else <оператор2>
else <оператор3>
else всегда относится к ближайшему оператору if
!
Слайд 48Решение линейного уравнения
program n_12;
var a, b, x: real;
begin
writeln
('Решение линейного уравнения');
write ('Введите коэффициенты a , b>>');
readln
(a, b);
if a<>0 then
begin
x:=-b/a;
writeln ('Корень уравнения x=', x:9:3)
end
else if b<>0 then writeln ('Корней нет')
else writeln ('x – любое число');
end.
Слайд 49НАЧАЛА ПРОГРАММИРОВАНИЯ
Программирование циклических алгоритмов
while ( цикл - ПОКА)
repeat (цикл -
ДО)
for (цикл с параметрами)
Слайд 50Программирование циклов с заданным условием продолжения работы
Общий вид оператора:
while
do
Здесь:
- логическое выражение;
пока оно истинно, выполняется тело
цикла;
<оператор> - простой или составной оператор, с помощью которого записано тело цикла.
Слайд 51program n_14;
var x, y, q, r: integer;
begin
writeln ('Частное
и остаток');
write ('Введите делимое x>>');
readln (x);
write ('Введите
делитель y>>');
read (y);
r:=x;
q:=0;
while r>=x do
begin
r:=r-y;
q:=q+1
end;
writeln ('Частное q=', q);
writeln ('Остаток r=', r)
end.
Слайд 52Программирование циклов с заданным условием окончания работы
Общий вид оператора:
repeat
оператор2; …; > until
Здесь:
; ; … - операторы, образующие
тело цикла;
<условие> - логическое выражение; если оно ложно, то выполняется тело цикла.
Слайд 53program n_15;
var i: integer; x: real;
begin
writeln ('График тренировок');
i:=1;
x:=10;
repeat
i:=i+1;
x:=x+0.1*x;
until x>=25;
writeln ('Начиная с
', i, '-го дня спортсмен будет пробегать 25 км')
end.
Слайд 54Программирование циклов с заданным числом повторений
Общий вид оператора:
for :=
to
do
Здесь:
- переменная целого типа;
и - выражения
того же типа, что и параметр;
<оператор> - простой или составной оператор - тело цикла.
После каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условие выхода из цикла - превышение параметром конечного значения.
Слайд 55program n_16;
var i,n:integer;a,y:real;
begin
writeln ('Возведение в степень');
write ('Введите
основание a>>');
readln (a);
write ('Введите показатель n>>');
readln (n);
y:=1;
for i:=1 to n do y:=y*a;
writeln ('y=', y)
end.
Слайд 56Различные варианты программирования циклического алгоритма
Для решения одной и той же
задачи могут быть созданы разные программы.
Организуем ввод целых чисел
и подсчёт количества введённых положительных и отрицательных чисел. Ввод должен осуществляться до тех пор, пока не будет введён ноль.
В задаче в явном виде задано условие окончания работы.
Воспользуемся оператором repeat.
Слайд 57program n_17;
var n, k1, k2: integer;
begin
k1:=0;
k2:=0;
repeat
write ('Введите целое число>>');
readln (n);
if
n>0 then k1:=k1+1;
if n<0 then k2:=k2+1;
until n=0;
writeln ('Введено:');
writeln ('положительных чисел – ', k1);
writeln ('отрицательных чисел – ', k2)
end.
Слайд 58Ввод осуществляется до тех пор, пока не будет введён ноль.
Работа продолжается, пока n 0.
Воспользуемся оператором while:
program n_18;
var n, k1, k2: integer;
begin
k1:=0;
k2:=0;
n:=1;
while n<>0 do
begin
writeln ('Введите целое число>>');
read (n);
if n>0 then k1:=k1+1;
if n<0 then k2:=k2+1;
end;
writeln ('Введено:');
writeln ('положительных – ', k1);
writeln ('отрицательных – ', k2)
end.