Слайд 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.