- •Занятие № 1. Алгоритм. Язык и среда программирования.
- •Занятие № 2. Язык программирования Pascal.
- •Занятие № 3. Переменные. Простейшие линейные алгоритмы.
- •Занятие № 4. Стандартные операции ввода/вывода.
- •Занятие № 5. Ветвление с простым условием.
- •Занятие № 6. Составные условия.
- •Занятие № 7. Множественное ветвление. Безусловный переход.
- •Занятие № 8. Самостоятельная работа. Занятие № 9. Цикл со встроенным счётчиком (с параметром).
- •Занятие № 10. Стандартные функции. Преобразование типов. Операции над строковым типом данных.
- •Занятие № 11. Циклы с условием
- •Занятие № 12. Самостоятельная работа. Занятие № 13. Введение в машинную графику в Pascal.
- •Занятие № 14. Вывод текста в графическом режиме.
- •Занятие № 15. Простейшая анимация.
- •Занятие № 16. Построение графиков функций.
- •Занятие № 17. Самостоятельная работа. Занятие № 18. Вспомогательный алгоритм. Процедуры и функции пользователя.
- •Занятие № 19. Структурные типы данных. Понятие линейного массива.
- •1. Заполнение вводом с клавиатуры:
- •4. Описание предустановленных массивов.
- •5. Заполнение данными из внешнего файла.
- •Занятие № 20. Простейшие задачи на операции с линейным массивом.
- •1. Подсчёт количества элементов удовлетворяющих некоторому условию.
- •3. Раскрашивание массива.
- •4. Поиск минимального и максимального элементов.
- •5. Копирование и перестановка элементов. Занятие № 21. Сортировка линейного массива.
- •1. Сортировка прямого обмена.
- •2. Обменная сортировка (метод «Пузырька»).
- •Занятие № 22. Понятие двумерного массива.
- •Занятие № 23. Решение задач на тему «Двумерные массивы».
- •Занятие № 24. Самостоятельная работа. Занятие № 25. Множества.
- •В этом случае описано множество a, которое может включать в себя элементы – целые числа в интервале от 1 до 12. Существует возможность описания константных множеств:
- •Задача: составить программу, определяющую количество дней в указанном месяце, указанного года.
- •Занятие № 26. Записи.
- •Занятие № 27. Файлы данных. Текстовые файлы.
- •Занятие № 28. Решение задач (текстовый файл). Занятие № 29. Файлы данных. Типизированные файлы.
- •Занятие № 30. Самостоятельная работа.
- •Занятие № 31. Библиотеки пользователя.
- •Занятие № 32. Некоторые процедуры и функции модуля dos.
- •Занятие № 33. Рекуррентные последовательности и формулы. Рекурсивные алгоритмы.
- •Занятие № 35. Элементы объектно-ориентированного программирования.
Занятие № 35. Элементы объектно-ориентированного программирования.
Современное программирование
Понятие объектно-ориентированного программирования.
(первое использование ООП в языке Симула (70-е) в Pascal с 1989 (5.5))
Понятие класса объектов. Описание классов.
Класс – определенный пользователем тип данных, включающий в себя состояние (представление класса) и некие операции (поведение класса). Класс имеет: внутренние данные; методы в виде процедур и функций. Назначение класса: описание общего поведения и характеристик набора аналогичных друг другу объектов.
Объект – экземпляр класса (м.б. переменная, тип которой является классом). Объекты реальны, т.е. во время выполнения программы хранятся в памяти. Соотношения между объектом и классом аналогичны соотношениям между переменной типом.
Объект – нечто существенное и определённое, для которого существует способ отличить один подобный объект от другого.
Объект – объединение подпрограмм и данных, предназначенных для их обработки. Объект – абстрактное понятие; экземпляр объекта – конкретное.
Принципы: инкапсуляция (объединение данных и обрабатывающих их методов внутри класса; объект скрывает в себе детали, которые несущественны для использования объекта), наследование (порождение новых объектов-потомков от предков, наследование всех свойств; определение новых объектов, используя свойства старых, дополняя или изменяя их), полиморфизм (методы различных объектов могут иметь одинаковые имена, но различные свойства).
type TCalendar=object
constructor init;
function GetDay: byte;
private
day, month: byte;
year: word;
end;
Свойства, методы, события объекта.
program ob_demo;
uses crt, dos;
type TCalendar=object
day,month,year,wday: word;
procedure Init;
procedure SetSystemDate;
procedure ShowDate;
procedure SetMyDate(d,m,y: word);
function LeapYear: boolean;
procedure NextDay;
end;
procedure TCalendar.Init;
begin
SetSystemDate;
end;
procedure TCalendar.SetSystemDate;
begin
getdate(year, month, day, wday);
end;
procedure TCalendar.ShowDate;
begin
if day<10 then write('0',day) else write(day);
if month<10 then write('-0',month) else write('-',month);
writeln('-',year);
end;
procedure TCalendar.SetMyDate;
begin
day:=d; month:=m; year:=y;
end;
function TCalendar.LeapYear: boolean;
begin
if (year mod 100<>0) and (year mod 4=0) or
(year mod 100=0) and (year mod 400=0) then LeapYear:=true
else LeapYear:=false;
end;
procedure TCalendar.NextDay;
const d31=[1,3,5,7,8,10]; d30=[4,6,9,11];
begin
if (month in d31) and (day<31) or (month in d30) and (day<30) then
begin inc(day); exit; end;
if (month in d31) and (day=31) or (month in d30) and (day=30) then
begin inc(month); day:=1; exit; end;
if (month=12) and (day<31) then begin inc(day); exit; end;
if (month=12) and (day=31) then
begin day:=1; month:=1; inc(year); exit; end;
if LeapYear and (day<29) or not LeapYear and (day<28) then
begin inc(day); exit; end else begin day:=1; month:=3; exit; end;
end;
var a: TCalendar;
BEGIN
clrscr;
a.init;
a.SetMyDate(28,2,2001);
a.ShowDate;
a.NextDay;
a.ShowDate;
readkey;
END.
Список литературы:
Дагане В.А., Григас Г.К., Аугутис К.Ф. 100 задач по программированию. – М.: Просвещение, 1993 – 255с.: ил.
Каймин В.А., Щёголев А.Г., Ерохина Е.А., Федюшин Д.П. Основы информатики и вычислительной техники 10-11. – М.: Просвещение, 1990 – 273 с.: ил.
Кнут, Дональд, Эрвин. Искусство программирования, том 1. Основные алгоритмы, 3-е изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2000. – 720 с.: ил.
Семакин И.Г., Шестаков А.П. Лекции по программированию. – Пермь: Издательство Пермского университета, 2000 – 189 с.
