1 Программирование на языке Паскаль © К.Ю. Поляков, 2006-2008 1.ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.

Презентация:



Advertisements
Похожие презентации
Тема 1. Введение 1.
Advertisements

Программирование на языке Паскаль Тема 1. Введение.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
Урок 3 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Урок 6 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
1 Программирование на языке Паскаль Тема 1. Введение.
1 Программирование на языке Паскаль Тема 1. Введение Кулебякин В.В.
1 Программирование на языке Паскаль Тема 1. Введение.
1 Программирование на языке Паскаль. 2 Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только.
1 Прикладное программирование Kafmi21. ru – учеба – заочнику – прикладное программирование.
1 Программирование на языке Паскаль Тема 1. Введение © К.Ю. Поляков,
1 Программирование на языке Паскаль Тема 1. Введение.
1 Программирование на языке Паскаль Тема 1. Введение © К.Ю. Поляков,
Арифметические выражения. Арифметическое выражение может включать константы имена переменных знаки арифметических операций: + - * / div mod вызовы функций.
1 Программирование на языке Паскаль Тема 1. Введение.
К. Поляков, Программирование на алгоритмическом языке Тема 1. Введение.
К. Поляков, Программирование на алгоритмическом языке Тема 1. Введение.
1 Тема: Арифметические операции и линейные программы.
Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только команды, известные исполнителю (входящие.
Линейные и разветвляющиеся алгоритмы. Реализация на языке Pascal.
Транксрипт:

1 Программирование на языке Паскаль © К.Ю. Поляков, Введение Введение 2. Ветвления Ветвления 3. Сложные условия Сложные условия 4. Циклы Циклы 5. Циклы с условием Циклы с условием 6. Оператор выбора Оператор выбора 1. Графика Графика 2. Графики функций Графики функций 3. Процедуры Процедуры 4. Рекурсия Рекурсия 5. Анимация Анимация 6. Случайные числа Случайные числа 7.Функции Функции

2 Программирование на языке Паскаль Тема 1. Введение © К.Ю. Поляков,

3 Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только команды, известные исполнителю (входящие в СКИ) определенность: при одинаковых исходных данных всегда выдает один и тот же результат конечность: заканчивается за конечное число шагов массовость: может применяться многократно при различных исходных данных корректность: дает верное решение при любых допустимых исходных данных Алгоритм – это четко определенный план действий для исполнителя.

4 Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для компьютера Команда – это описание действий, которые должен выполнить компьютер. откуда взять исходные данные? что нужно с ними сделать?

5 Языки программирования Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора (ассемблер) Языки высокого уровня – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера для обучения: Бейсик, ЛОГО, Паскаль профессиональные: Си, Фортран, Паскаль для задач искусственного интеллекта: Пролог, ЛИСП для Интернета: JavaScript, Java, Perl, PHP, ASP

6 Язык Паскаль 1970 – Никлаус Вирт (Швейцария) язык для обучения студентов разработка программ «сверху вниз» разнообразные структуры данных (массивы, структуры, множества) Подзадача 1Подзадача 2Подзадача Задача

7 Из чего состоит программа? program ; const …;{константы} var …; {переменные} begin … {основная программа} end. program ; const …;{константы} var …; {переменные} begin … {основная программа} end. { процедуры и функции } комментарии в фигурных скобках не обрабатываются

8 Из чего состоит программа? Константа – постоянная величина, имеющая имя. Переменная – изменяющаяся величина, имеющая имя (ячейка памяти). Процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности). Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin).

9 Имена программы, констант, переменных Имена могут включать латинские буквы (A-Z) цифры знак подчеркивания _ заглавные и строчные буквы не различаются Имена НЕ могут включать русские буквы пробелы скобки, знаки +, =, !, ? и др. имя не может начинаться с цифры Какие имена правильные?? AXby R&B 4Wheel Вася PesBarbos TU154 [QuQu] _ABBA A+B

10 Константы const i2 = 45; { целое число } pi = 3.14; { вещественное число } qq = 'Вася'; { строка символов } L = True; { логическая величина } const i2 = 45; { целое число } pi = 3.14; { вещественное число } qq = 'Вася'; { строка символов } L = True; { логическая величина } целая и дробная часть отделяются точкой можно использовать русские буквы! может принимать два значения: True (истина, «да») False (ложь, «нет») может принимать два значения: True (истина, «да») False (ложь, «нет»)

11 Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Типы переменных: integer{ целая } real{ вещественная } char{ один символ } string{ символьная строка } boolean { логическая } Объявление переменных (выделение памяти): var a, b: integer; Q: real; s1, s2: string; var a, b: integer; Q: real; s1, s2: string;

12 Как изменить значение переменной? Оператор – это команда языка программирования высокого уровня. Оператор присваивания служит для изменения значения переменной. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); end. a ? 5 5 b ? a 5 7*4 28 Пример:

13 Оператор присваивания Арифметическое выражение может включать константы имена переменных знаки арифметических операций: + - * / div mod вызовы функций круглые скобки ( ) умножение деление деление нацело остаток от деления := ;

14 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. 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. Какие операторы неправильные? имя переменной должно быть слева от знака := целая и дробная часть отделяются точкой нельзя записывать вещественное значение в целую переменную

15 Ручная прокрутка программы (трассировка) program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ??

16 program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ?? Ручная прокрутка программы (трассировка)

17 program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ?? Ручная прокрутка программы (трассировка)

18 Ручная прокрутка программы program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ??

19 program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ?? Ручная прокрутка программы (трассировка)

20 program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ?? Ручная прокрутка программы (трассировка)

21 program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ?? Ручная прокрутка программы (трассировка)

22 Порядок выполнения операций вычисление выражений в скобках умножение, деление, div, mod слева направо сложение и вычитание слева направо z := (5*a*c+3*(c-d))/a*(b-c)/ b; x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

23 Сложение двух чисел Задача. Ввести два целых числа и вывести на экран их сумму. Простейшее решение: program qq; var a, b, c: integer; begin read ( a, b ); c := a + b; writeln ( c ); end. program qq; var a, b, c: integer; begin read ( a, b ); c := a + b; writeln ( c ); end.

24 Оператор ввода read ( a ); { ввод значения переменной a} read ( a, b ); { ввод значений переменных a и b} Как вводить два числа? через пробел: через Enter: a 25 b 30 a 25 b 30

25 Оператор вывода write ( a ); { вывод значения переменной a} writeln ( a ); { вывод значения переменной a и переход на новую строчку} writeln ( 'Привет!' ); { вывод текста} writeln ( 'Ответ: ', c ); { вывод текста и значения переменной c} writeln ( a, '+', b, '=', c );

26 Форматы вывода program qq; var i: integer; x: real; begin i := 15; writeln ( '>', i, '<' ); writeln ( '>', i:5, '<' ); x := ; writeln ( '>', x, '<' ); writeln ( '>', x:10, '<' ); writeln ( '>', x:7:2, '<' ); end. program qq; var i: integer; x: real; begin i := 15; writeln ( '>', i, '<' ); writeln ( '>', i:5, '<' ); x := ; writeln ( '>', x, '<' ); writeln ( '>', x:10, '<' ); writeln ( '>', x:7:2, '<' ); end. >15< > E+001< > 1.23E+001< > 12.35< >15< > E+001< > 1.23E+001< > 12.35< всего символов в дробной части

27 Полное решение program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. Протокол: Введите два целых числа =55 компьютер пользователь

28 Блок-схема линейного алгоритма начало конец c := a + b; ввод a, b вывод c блок «начало» блок «ввод» блок «процесс» блок «вывод» блок «конец»

29 Задания «4»: Ввести три числа, найти их сумму и произведение. Пример: Введите три числа: =16 4*5*7=140 «5»: Ввести три числа, найти их сумму, произведение и среднее арифметическое. Пример: Введите три числа: =16 4*5*7=140 (4+5+7)/3=5.33