Файл будет скачан в формате:
Настоящая методическая разработка опубликована пользователем Борончиев Марат Мурзабекович. Инфоурок является информационным посредником
Предназначен для самостоятельного изучения, повторения, закрепления знаний темы "Программирование на языке Python": функции print, input, переменные в python.
Состоит из шести листов формата А4.
Содержание:
Что такое python?
Знакомимся с IDLE
Пишем первую программу.
Ошибки в коде.
Типы данных в Python.
Вычисления в Python.
Подробные инструкции к каждому разделу со скриншотами.
Включает в себя две самостоятельные работы на закрепление раздела.
В профиле имеется продолжение.
Выбранный для просмотра документ Уроки Делфи@SEP@1.ppt
Скачать материал "Презентации «Программирование на Delphi»"
Рабочие листы
к вашим урокам
Скачать
Курс повышения квалификации
Курс повышения квалификации
Курс повышения квалификации
Курс повышения квалификации
1 слайд
Занятие 1
Основные понятия языка Pascal
Новиков Алексей Константинович
Преподаватель СПК МГППУ
Программирование на Delphi
2 слайд
Поколения ЭВМ
3 слайд
Поколения языков программирования
Языки 1-го и 2-го поколения – машинно-зависимы.
Языки 3-го поколения это – Fortran, Algol, Basic, Pascal.
Языки 4-го поколения – языки баз данных электронных таблиц.
Языки 5-го поколения – СМОЛТОК, ЛИСП, ПРОЛОГ.
4 слайд
Потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентируемых на так называемую «быструю разработку», среди которых можно выделить Borland Delphi, Microsoft Visual Basic.
В основе систем быстрой разработки (RAD-систем) лежит технология визуального проектирования и событийного программирования. Суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий.
5 слайд
Считается, что производительность программиста при использовании RAD-систем фантастическая!
Delphi- это среда быстрой разработки. В основе языка Delphi лежит Паскаль.
Delphi рассчитан на работу с операционной системой Windows 95/98/2000/NT. А на Delphi 7 можно программировать и для ОС Linux.
6 слайд
Работа над проектом,
так в Delphi называется разрабатываемое приложение, начинается с создания стартовой формы.
Стартовая форма создается путем изменения значений свойств формы и добавления к форме компонентов.
Свойства формы определяют ее внешний вид, размер, положение на экране, текст заголовка, вид рамки.
7 слайд
Свойства формы (таблица 1)
8 слайд
Свойства формы (продолжение)
9 слайд
Свойства формы (продолжение)
10 слайд
Свойства формы (продолжение)
11 слайд
Свойства компонента Edit
12 слайд
Свойства компонента Edit (продолжение)
13 слайд
Событие и процедура обработки события
Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести данные и щелкнуть мышью на кнопке «Вычислить». Щелчок на изображении командной кнопки – это пример того, что в Windows называется событием.
Событие (Event) – это то, что происходит во время работы программы. В Delphi каждому событию присвоено свое имя.
14 слайд
События в Delphi
15 слайд
В результате этого откроется окно редактора кода, в которое будет добавлен шаблон процедуры обработки события, а в окне Object Inspector рядом с именем события появится имя функции его обработки. Delphi присваивает функции обработки события имя, которое состоит из двух частей. Первая часть имени идентифицирует форму, содержащую объект (компонент). Вторая часть имени идентифицирует сам объект и событие. Procedure Tform1. Button1 Click (Sender:Tobject) .
16 слайд
В окне редактора кода между словами begin и end можно печатать инструкции, реализующие функцию обработки события.
Хочется отметить как представлена программа: ключевые слова выделены полужирным, комментарии – курсивом, инструкции программы набраны с отступами. Все это выполняет редактор кода.
17 слайд
Алфавит и словарь языка Pascal
Языком называется совокупность символов, соглашений и правил, используемых для общения. При записи алгоритма решения задачи на языке программирования необходимо четко знать правила написания и использования элементарных информационных и языковых единиц. Основой языка Паскаль является алфавит – конечный набор знаков, состоящих из букв, десятичных и шестнадцатеричных цифр, специальных символов.
18 слайд
Алфавит языка Pascal содержит:
Все буквы латинского алфавита (прописные и строчные);
десятичные (0,1, …, 9) и шестнадцатеричные цифры (0,1,…, 9,A,B,C,D,E,F);
специальные символы +, -, *, /, =,>,<,[],(),@(коммерческая а),{}, . ,запятая,:,; ,’ (апостроф), №(номер), $, ^(тильда(каре)),пробел, знак подчеркивания.
составные символы := (присваивание), <> (не равно), .. (диапазон значений), <=, >= (Примечание: в программе эти символы нельзя разъединить пробелами).
19 слайд
Слова в Pascal
Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями и несущие определенный смысл в программе. Набор слов, используемых в Паскале, можно разделить на три группы:
зарезервированные слова,
стандартные идентификаторы,
идентификаторы пользователя.
20 слайд
Сохранение проекта
Проект – это набор файлов, используя который компилятор создает исполняемый файл программы Exe-файл. В простейшем случае проект состоит из файлов:
описания проекта dof-файл;
файла главного модуля dpr-файл;
файла ресурсов res-файл;
файла описания формы dfm-файл;
файла модуля формы cfg-файл.
Рабочие листы
к вашим урокам
Скачать
Выбранный для просмотра документ Уроки Делфи@SEP@2.ppt
Скачать материал "Презентации «Программирование на Delphi»"
Рабочие листы
к вашим урокам
Скачать
1 слайд
Занятие 2
Структура программы. Типы данных. Основные операторы языка Pascal.
Новиков Алексей Константинович
Преподаватель СПК МГППУ
Программирование на Delphi
2 слайд
Структура программы
Program ИмяПрограммы;
Uses ИмяМодуля1, ИмяМодуля2,…;
Label ИмяМетки1, ИмяМетки1, …;
Const
ИмяКонстанты = ЗначениеКонстанты;
Type ИмяТипа = ЗначениеТипа;
Var ИмяПеременной: Тип;
Begin
{инструкция основной программы}
end.
3 слайд
Раздел uses
Раздел uses позволяет подключать стандартные и пользовательские библиотечные модули.
Пример: uses Crt, Dos, MyLib.
4 слайд
Раздел описания меток
Перед любым оператором языка Паскаль можно поставить метку, что позволяет выполнить прямой переход на этот оператор с помощью оператора перехода go to из любого места программы.
Формат.
Label <имя, …>;
Пример.
Label
Metka1, Metka2, 111, Blok10;
5 слайд
Раздел описания меток (продолжение)
После записи метки в разделе операторов следует двоеточие, показывающее компилятору, что идентификатор используется как метка:
Label
M1, M2; {описание меток}
Begin
. . .
M1: <оператор> {Использование М1 в разделе операторов}
. . .
M2: <оператор> {Использование М2 в разделе операторов}
End.
6 слайд
Раздел описания констант
Константами называются элементы данных, значения которых в процессе выполнения программы не изменяются.
В Pascal используются константы следующих видов: числовые, логические (булевские), символьные и строковые.
Формат
Const ИмяКонстанты = ЗначениеКонстанты;
7 слайд
Примеры записи констант
Например:
G = 9.8; {вещественная константа}
L = maxint/2+1; {maxint – зарезервированная константа}
nmax = 100; {целая константа}
nmin = -nmax;
s = ‘абвгд’; {строковая константа}
kod = $123; {шестнадцатеричная константа}
Name = ‘Петя’; {строковая константа}
8 слайд
Зарезервированные константы
9 слайд
Раздел описания типов данных
Тип данных может быть либо описан непосредственно в разделе описания переменных, либо определяться идентификатором типа. Стандартные типы не требуют описания в отличие от типов, образованных пользователем.
Формат:type <имя типа> =<значение типа>;
Пример.
Type
LatLetter = (‘A’ . . ’z’);
Days = 1 . . 31;
Matr = array [1 . . 10] of integer;
10 слайд
Раздел описания переменных
Пример.
Type matr=array [1 . . n, 1 . . m] of real;
{задан тип mart- таблица с n строк и m столбцов}
var martiha: mart;
{задан массив marticha типа mart, который был объявлен ранее в разделе type}
x1, x2: integer;
svm: real;
znak: char;
flag: boolean;
11 слайд
Все типы данных, используемые в Turbo Pascal можно разделить на две большие группы:
скалярные (простые) – базовые типы, не содержащие в себе каких-либо компонентов;
структурированные (составные) – строятся на базе скалярных.
12 слайд
Целостные типы данных
13 слайд
Вещественные типы данных
Real (вещественный);
Single (с одинаковой точностью);
Double (с двойной точностью);
Extended (с повышенной точностью);
Comp (сложный).
14 слайд
Символьный тип данных
Символьный тип char определяется множеством значений кодовой таблицы ЭВМ. Каждому символу приписывается целое число в диапазоне от 0 до 255. Для кодировки используется код ASCII. Для размещения в памяти переменной символьного типа требуется 1 байт.
15 слайд
Логический тип данных
Логическим или булевским называется тип данных, представляемых двумя значениями True (истина) и False (ложь). При описании величин этого типа используется слово boolean. При размещении в памяти переменной булевского типа требуется 1 байт.
16 слайд
Перечисляемый тип –
тип данных, заданных списком принадлежащих ему значений. Формат:
type <Имя типа> = (<значение1,…, значениеN>);
var ИмяПеременной: ИмяТипа;
Пример.
type days = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
var day: days;
season: (winder, spring, summer, autumn);
17 слайд
Интервальный тип
Формат.
type
<Имя Типа> = <Константа1> . . Константа2>;
var ИмяПеременной: ИмяТипа;
Пример.
const min=1; max=31;
type days=min . . max;
var rab_days, bol_days: days;
18 слайд
Структурированные типы данных:
строки;
массивы;
множества;
записи;
файлы;
указатели;
процедурные типы.
19 слайд
Массив
Массив - совокупность данных одного типа с общим для всех элементов именем. Элементы массива пронумерованы, а обратиться к каждому из них можно по номеру. Номер элементов массива называется индексом, а сами элементы массива — переменные с индексами.
Характеристики массива:
тип:;
размерность (ранг) — количество индексов массива;
диапазон изменения индекса — определяется количеством элементов в массиве.
20 слайд
Описание массива
В общем виде описание массива выглядит так:
Var ИмяМассива: array [НижняяГраница . . ВерхняяГраница] of ТипЭлементов;
Например:
Var a: array [1..100] of integer;
b: array [0..50] of char;
c: array [-3..4] of boolean;
Для двумерного массива:
var a: array [1..3, 1..4] of integer;
21 слайд
Операции с массивами
Другое способ описания массива
type day = [ Monday . . Sunday];
var temperature: array[day] of real;
Типичными операциями при работе с массивами являются:
Вывод массива;
Ввод массива;
Поиск максимального и минимального элемента массива;
Поиск заданного элемента массива;
Сортировка массива.
22 слайд
Описание строк
Var ИмяСтроки: ключевое слово ];
В [ ] помещается константа целого типа, которая задает максимально допустимую длину строки.
Например:
1) Var Z : string;
2) Var Z:string длина
3) Var Stroka: string 255;
23 слайд
Процедуры и функции работы со строками
1. delete (s, p, n,);
Удаление n символов строки s начиная c позиции p.
2. insert (s1, s2, p);
Вставка строки s1 в строку s2, начиная с позиции p.
3. length (s) - вычисляет текущую длину в стволах строки s. Результат – целочисленный тип.
n: =length (‘Иванов’); n=6
m: =length (‘Невский проспект’); m =16
24 слайд
Процедуры и функции работы со строками (продолжение)
4. copy (s,p,n) - выделяет из строки s подстроку длиной n символов, начиная с позиции p.
5. contact (s1, s2, …, sn) - выполняет сцепление строк s1, s2, … , sn в том порядке, в каком они указаны в списке параметров.
6. pos ( s1, s2) - обнаруживает первое появление в строке s2 подстроки s1.
25 слайд
Процедуры преобразования данных числового типа в строку символов, а строку в число
7. str (number, s) - преобразование числового значения величины number в строку s.
8. val (s, number, code) - преобразует значение s в величину целочисленного или вещественного типа и помещает результат в number. Code - целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение code = 0, если ошибка обнаружена (строковое значение не переводится в цифровое), code будет содержать номер позиции 1-го ошибочного символа, а значение number не определено.
26 слайд
Примеры.
S1: = ‘5.78’; S2: = ‘5,78’;
Val (S1, num1,cod1);
Val (S2, num2, cod2);
в результате cod1 = 0; cod2 = 2- второй символ ошибочный
27 слайд
Условный оператор if
I вариант.
If <Условие> then
begin
эти инструкции выполняются, если Условие истинно
end
else
begin
эти инструменты выполняются, если Условие ложно
end;
28 слайд
Условный оператор if
II вариант
if <Условие> then
begin
end.
В последнем случае говорят о сокращённой форме условного оператора.
29 слайд
Оператор Case
Инструкция case имеет вид:
case I of
M1, …, Mn: S1;
N1, …,Nn: S2;
. . . . . . . .
P1, …, Pn: SJ
else K
end;
30 слайд
Примеры
сase i of
1: z : = i+10;
2: z : = i+100;
3: z : = i+1000;
end;
case i of
1..10 : writeln (‘Число’, i:4, ‘в диапазоне 1-10’);
11..20: writeln (‘Число’,i:4, ‘в диапазоне 11-20’);
21..30 : writeln (‘Число’, i:4, ‘в диапазоне 21-30’)
else (‘Число вне диапазона’)
end;
выражение i может быть integer, char, boolean.
Рабочие листы
к вашим урокам
Скачать
Выбранный для просмотра документ Уроки Делфи@SEP@3.ppt
Скачать материал "Презентации «Программирование на Delphi»"
Рабочие листы
к вашим урокам
Скачать
1 слайд
Занятие 3
Процедуры и функции.
Новиков Алексей Константинович
Преподаватель СПК МГППУ
Программирование на Delphi
2 слайд
Разработанные программистом самостоятельные программные блоки называются подпрограммами пользователя. Они являются основой модульного программирования.
3 слайд
Достоинства подпрограмм:
Программы, написанные с учетом подпрограмм, легче тестировать и отлаживать, у них более четкая логическая структура;
Самостоятельный характер подпрограмм позволяет поручать их составление различным программистам;
Использование подпрограмм позволяет экономить память. Память для хранения переменных, использующихся в подпрограмме, выделяется только на время ее работы и высвобождается, как только ее выполнение заканчивается.
4 слайд
Все процедуры и функции подразделяются на две группы: встроенные и определенные пользователем.
Встроенные (стандартные) процедуры и функции являются частью языка и могут вызываться по имени без предварительного описания. Их наличие существенно облегчает разработку прикладных программ.
5 слайд
Стандартные функции
6 слайд
Стандартные функции (продолжение)
7 слайд
Процедура
Процедура - это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий. Процедура не может выступать как операнд в выражении.
Структура процедуры повторяет структуру программы - она также представлена заголовкам и телом. В отличие от программы для процедур и функций наличие заголовка обязательно.
8 слайд
Процедура
Формат:
Procedure ИмяПроцедуры (ФормальныйПараметр1: Тип; ФормальныйПараметр : Тип;…);
Begin
{инструкции исполнительной части программы}
end;
9 слайд
Формат процедуры
Для обращения к процедуре используется оператор вызова процедуры. Он состоит из имени процедуры и списка фактических параметров, отделимых друг от друга запятыми и заключенных в круглые скобки. Список параметров отсутствует, если процедуре не предается никаких значений.
Формат:
ИмяПроцедуры (ФактическийПараметр1, ФактическийПараметр2,..);
10 слайд
Пример.
Var d: integer; {дюйм}Sm: real; {см}
{процедура для вывода горизонтальной линии}
procedure horline;
Var i: integer;
Begin
For i: =1 to 30 do write (‘--’);
Writeln;
End;
11 слайд
Пример
{основная программа}
Begin horline;
write ln (‘ дюймы | см ‘),
horline;{считаем и выводим строки таблицы}
for d:=1 to 10 do begin
sm:=2.54*d;
writeln (‘|’, d: 13, ‘|’, sm: 14: 3, ‘|’);
end;
horline; end.
12 слайд
Пример № 2
Усовершенствуем процедуру вывода линии, введя в нее два параметра: длину выводимой строки и символ, которым рисуется линия.
Procedure horline (l:integer; s: char);
{l--pазмер линии в символах;
s--символ, которым рисуется линия}
13 слайд
Пример № 2
Var i: integer;
Begin
For i:=1 to l do write (s);
Writeln;
End;
{Основная программа}
Begin
Horline (10,’/’);
Horline (20,’*’);
Horline (30, ‘#’); end.
14 слайд
Если процедура возвращает в программу какие-то значения, соответствующие переменные должны быть описаны как параметры-переменные с использованием слова Var.
В таком случае объявление процедур выглядит так:
15 слайд
Procedure Имя (Var параметр1: тип1; Var параметра2: тип2;… Var параметрК: типК);
Var
//здесь объявление локальных переменных;
begin
//здесь инструкция процедуры
end;
16 слайд
Пример № 3
Запишем процедуру, выполняющую возведение в целую неотрицательную степень любого члена.
1 Кб = 210 б; 1 Мб = 220 б; 1 Гб = 230 б.
Procedure degree (x: real; n: byte; var res: real)
Процедура возведения числа Х в целую неотрицательную степень N, результатом является параметр переменная res.
17 слайд
Var i: integer;
Begin res: =1;
For i:=1 to n do res: =res * x;
End;
{основная программа }
var kb, mb, gb: real;
begin
degree (2,10, kb); degree (2, 20, kw); degree (2, 30, gb);
writeln (kb, mb, gb); end.
18 слайд
Функция пользователя
Если результатом подпрограммы является только одно значение, то имеет смысл оформить такую подпрограмму не в виде процедуры, а в виде функции. Функция пользователя аналогично процедуре, но имеются два отличия.
19 слайд
Отличия процедуры от функции
Функция передаёт в программу результат своей работы - единственное значение, носителем которого является имя самой функции.
Имя функции может входить в выражение как операнд. Функция возвращает результат в точку своего вызова.
20 слайд
Формат
Формат:
Function ИмяФункции (ФормальныеПараметры): Тип результата;
{Описательная часть функции}
Begin
{инструкции исполнительной части функции}
ИмяФункции: = Результат;
End;
21 слайд
В разделе операторов функции должен находиться хотя бы один оператор, который присваивает ее имени значение, возвращаемое как результат работы функции. Если таких присваиваний несколько, то результатом выполнения функции будет значение последнего оператора присваивания. Если же такой оператор отсутствует или не был выполнен, то значение, возвращаемое функций, не определено.
22 слайд
Рассмотрим возведения числа в действительную степень.
Function instep (a, b: real): real);
Begin
If a>0 then instep: = exp(b*ln(a)) else instep: = 0;
End;
{основная программа }
23 слайд
var a, b, c;: real;
begin
writeln ( ‘Введите положительное основание и показатель степени);
readln (a,b);
c: = instep (a,b);
if с<>0 then writeln (a, ‘ в степени ’, b, ‘=’, c);
else writeln (‘основание должно быть положительным‘);
end.
24 слайд
Список формальных параметров может включать в себя:
параметры – значения, за которыми указывается их тип;
параметры – переменные, перед которыми должно стоять служебное слово var и за которыми указывается их тип;
параметры – процедуры
параметры – функции
нетипированные параметры
25 слайд
Например:
Function kvadru (a, b, c: real; var X1, X2: real): Integer ;
26 слайд
Соответствие между формальными и фактическими параметрами:
формальных и фактических параметров должно быть одинаковое количество;
порядок следования фактических и формальных параметров должен быть
один и тот же;
тип фактического параметра должен совпадать с типом соответствующего ему формального параметра.
27 слайд
Параметры – значения
используются только для передачи исходных данных из основной программы в процедуру или в функцию. Если формальный параметр объявлен как параметр-значение, то фактическим параметром может быть произвольное выражение. При вызове подпрограммы фактические параметры вычисляются и используются как начальные значения.
28 слайд
Каждому формальному параметру, объявленному как параметр – переменная, должен отвечать фактический параметр в виде переменной соответствующего типа.
Рабочие листы
к вашим урокам
Скачать
Выбранный для просмотра документ Уроки Делфи@SEP@4.ppt
Скачать материал "Презентации «Программирование на Delphi»"
Рабочие листы
к вашим урокам
Скачать
1 слайд
Занятие 4
Операции ввода/вывода
Новиков Алексей Константинович
Преподаватель СПК МГППУ
Программирование на Delphi
2 слайд
Особенность файлов:
Каждому файлу при создании указывается имя, по которому обрабатывающая его программа может отличить один файл от другого. Одна программа может работать одновременно с несколькими файлами.
Файл содержит элементы только одного типа или тип его компонентов не оговаривается
Длина файла – это число его элементов. При создании файла длина файла не задается заранее и ограничивается только емкостью устройств внешней памяти.
3 слайд
Виды файлов в Pascal
В Pascal имеются три вида файлов:
текстовый файл (определяется типом text);
типизированный файл (задается предложением file of Тип);
не типизированный файл (определяется типом file).
4 слайд
Описание файловой переменной
type
ИмяТипа1=text;
ИмяТипа2=file of Тип;
ИмяТипа3= file;
Var
ИмяПеременной1: ИмяТипа1;
ИмяПеременной2: ИмяТипа2;
ИмяПеременной3: ИмяТипа3;
5 слайд
или
Var
ИмяПеременной1= text;
ИмяПеременной2=file of;
ИмяПеременной3=file;
Например:
type fak= text; файловый тип
var a, b, x: fak, файловые переменные
или
var a, x: text; с: file;
6 слайд
Виды файлов
Файлом последовательного доступа называется файл, к элементам которого доступ выполняется в той же последовательности, в какой они записались. Для таких файлов запрещено одновременно читать и записывать данные в файл.
Файл прямого доступа – это файл, доступ, к элементам которого осуществляется по адресу (номеру). При поиске нужного элемента достаточно указать номер его позиции, что существенно ускоряет поиск. Для файлов прямого доступа разрешается одновременная запись и считывание данных.
7 слайд
Операции при работе с файлами
При работе с файлами программа должна провести следующие операции:
открыть файл;
чтение файла;
закрыть файл.
8 слайд
Процедуры и функции, применимые для файлов любых типов
AssignFile;
Reset;
Rewrite;
Close;
Rename;
Erase;
Ioresult;
Eof.
9 слайд
Процедура AssignFile
Для того, чтобы программа могла выводить данные в файл или считывать данные из файла необходимо указать конкретный файл, то есть связать файловую переменную с конкретным файлом.
Описание процедуры AssignFile выглядит следующим образом:
AssignFile (ФайловаяПеременная, ИмяФайла);
Имя файла должно представлять собой выражение строкового типа.
10 слайд
Примеры:
AssignFile (f, ‘a:\result.txt’);
AssignFile (f, ‘c:\students\ivanov\korni.txt’);
fname: =(‘otchet.txt’);
AssignFile (f, fname);
11 слайд
Процедура reset
Процедура reset открывает файл для ввода (чтения) и ставит указатель на начало первого элемента файла. Если при чтении файла возникает необходимость вернуть указатель в его начало, достаточно будет просто применить процедуру reset к этому файлу еще раз.
Reset (ФайловаяПеременная);
Например: AssignFile (f, ‘c:\data.txt’);
Reset (f);
Файловая переменная должна быть связана с конкретным файлом. При отсутствии внешнего файла с указанием имени возникает сообщение об ошибке.
12 слайд
Процедура rewrite
Процедура rewrite (ФайловаяПеременная) создаёт и открывает новый файл для следующей записи данных. После её успешного выполнения файл готов к записи в него первого элемента.
Обратите внимание! Если внешний файл с указанным именем уже существует, то он удаляется и на его месте создаётся новый пустой файл с тем же именем. Для предотвращения потери информации на практике необходимо создавать резервные копии файлов (обычно им назначают расширение bak).
13 слайд
Процедура Close
Процедура Close (ФайловаяПеременная);
Позволяет закрыть файл, после того как в программе будет завершена его обработка. В противном случае может произойти потеря данных. При закрытии внешний файл обновляется, его автоматически завершает символ конца файла.
14 слайд
Процедура rename
Процедура rename (ФайловаяПеременная, ИмяФайла) используются для того, чтобы переименовать неоткрытый внешний файл любого типа. Новое имя задаётся строкой ИмяФайла.
15 слайд
Процедура erase
Процедура erase (ФайловаяПеременная) удаляет неоткрытый внешний файл любого типа, задаваемый параметром Файловая Переменная.
Обратите внимание! Процедуры rename и erase нельзя использовать для открытых файлов.
16 слайд
Функция ioresult
Функция ioresult проверяет существование файла на диске. Как правило это делается автоматически, но иногда возникает необходимость использовать эту функцию.
17 слайд
Функция eof
Логическая функция eof (ФайловаяПеременная) выполняет проверку, не достигнут ли конец файла (End Of File) при чтении из него данных. Функция возвращает true, если конец файла обнаружен, и указатель текущей позиции находится в конце файла за его последним символом. Это значит, что последний элемент в файле уже прочитан, или файл после открытия оказался пуст. В противном случае функция выполняет false.
18 слайд
Текстовый файл
Текстовый файл – это последовательность символов char, сгруппированных в строки, заканчивающиеся специальным символом end. В конце любого файла, в том числе и текстового, ставится символ #26 (SUB) – конец файла eof.
Объявление текстовых файлов в программе выглядит так:
Type ИмяТипа = text;
var ФайловаяПеременная: Имя Типа;
или
var ФайловаяПеременная: Text File;
Файловая Переменная – имя файловой переменной.
19 слайд
Процедуры и функции для текстовых файлов.
Процедура Append (ФайловаяПеременная) открывает существующий файл для дозаписи - примененима только для текстовых файлов. Указатель становится в конце файла, куда и будут дописываться новые компоненты. Файловая Переменная должна быть связана с внешним файлом с помощью процедуры assign.
Если файл ранее уже был открыт с помощью reset или rewrite, использование append приведёт к закрытию этого файла и открытию его вновь для добавления.
20 слайд
Процедур write, writeln
Вывод в текстовый файл осуществляется при помощи процедур write, writeln. Инструкция процедуры записи выглядит так:
write (ФайловаяПеременная, y1, y2, …, yN);
writeln (ФайловаяПеременная, y1, …, yN);
writeln (ФайловаяПеременная);
где у1, у2, …, уN – список вывода, то есть имена переменных, значения которых нужно вывести в файл, начиная с позиции текущего указателя. Список вывода содержит выводимые выражения разных типов (integer, real, char, string, boolean). Файл должен быть открыт для вывода.
21 слайд
Процедуры read, readln
Чтение из файла выполняется при помощи read и readln.
Процедура чтения
read (ФайловаяПеременная x1, x2, …, xN);
readln (ФайловаяПеременная x1, x2, …, xN);
readln (ФайловаяПеременная);
x1, x2, …, xN – список ввода, содержащий имена переменных разных типов (integer, real, char, string), значения которых процедура read считывает из текстового файла, начиная чтение с элемента, на который установлен текущий указатель. ФайловаяПеременная имеет тип text.
22 слайд
Пример
Например, если текстовый файл а:\ data.txt содержит следующие строки:
23 15
45 28
56 71
то в результате выполнения инструкций:
Assignfile (f, ‘а:\ data.txt’);
Reset (f); // открытие для чтения
read (f, a);
read (f, b, c.);
read (f, d);
значения переменных будут следующими a=23, b=15, c=45, d=28,
23 слайд
а в результате выполнения инструкций:
Assignfile (f, ‘а:\ data.txt’);
Reset (f); // открытие для чтения
readln (f, a);
readln (f, b. c);
readln (f, d)
значения переменных будут а=23; b=45; c=28; d=56.
24 слайд
Функция eoln
Для контроля конца строки используется функция eoln (Файловая Переменная), принимающая true, если указатель текущей позиции находится на маркере конца строки (CR/LF), иначе - false. Если eof – true, то и eoln – true.
25 слайд
Варианты выбора буферной переменной:
Массив или связанный список строк, в который будет считан сразу весь файл;
Одна переменная строкового типа, в которую будут считываться по очереди строки файла;
Одна переменная символьного типа, в которую по очереди будут считываться символы.
26 слайд
Типизированные файлы
Типизированный файл состоит из последовательности элементов одного типа и длины. Их число и, следовательно, размер файла не ограничивается при его задании. Каждый элемент файла имеет номер. Первый элемент считается нулевым. В каждый момент времени программе доступен только один – текущий элемент, на который установлен указатель файла.
Так как все элементы файла имеют одинаковую длину, позиция каждого элемента легко вычисляется. Поэтому указатель может быть перемещен на любой элемент файла, обеспечивая к нему прямой доступ.
27 слайд
Объявление типизированных файлов
Type ИмяТипа = file of Тип
Var ФайловаяПеременная: ИмяТипа;
Или
Var ФайловаяПеременная =file of Тип;
28 слайд
При обработке таких файлов могут использоваться некоторые дополнительные процедуры и функции, ряд известных нам общих имеют свои особенности.
Открытия типизированного файла можно произвести стандартными способами: reset и rewrite.
Следует знать:
типизированные и нетипизированные файлы всегда допускают одновременно как чтение, так и запись, независимо от того, были ли они открыты с помощью reset или rewrite;
для чтения и записи типизированного файла применяются только процедуры reset или write. Использование readln и writeln – запрещено.
29 слайд
Процедуры и функции для типизированных файлов
Функция filepos (ФайловаяПеременная) возвращает целое число – текущую позицию в файле. Функцию нельзя использовать для текстовых файлов. Файл должен быть открыт. Если текущей позицией является начало файла – его первый компонент, например, после выполнения reset, то функция возвращает значение ноль. При переходе от одного элемента к другому его значение увеличивается на единицу. Но номер физической записи будет по-прежнему на единицу меньше номера логической записи, хотя их общее число совпадает. Для случая конца файла, когда eof возвращает true, filepos возвращает номер последнего элемента файла (совпадает со значением функции filesize). Результат – longint.
30 слайд
Функция filesize
Функция filesize (ФайловаяПеременная) возвращает число элементов файла, но не текущий размер файла в байтах. Если файл пуст, возвращает 0. функцию нельзя использовать для текстовых файлов. Файл должен быть открыт. Результат – longint.
31 слайд
Процедура seek
Процедура seek (ФайловаяПеременная, НомерПозиции) перемещает указатель файла из текущей позиции к позиции с указанным номером, не выполняя чтение или запись. Поскольку номер первого элемента файла равен 0, то оператор seek (ФайловаяПеременная, filesize (ФайловаяПеременная)) ставит указатель файла за его конец, что используется при добавлении данных к файлу. Функцию не используют для текстовых файлов. Файл должен быть открыт. НомерПозиции – longint.
32 слайд
Процедура truncate
Процедура truncate (ФайловаяПеременная) усекает размер файла до его текущей позиции. Функцию не используют для текстовых файлов. Файл должен быть открыт. Все элементы файла после текущей позиции удаляются, после чего текущая позиция становится концом файла.
33 слайд
Нетипизированные файлы
При выполнении копирования или обработке баз данных приходится иметь дело с файлами, состоящими из компонентов одинакового размера, структура которых не известна или не имеет значения. На практике это приводит к тому, что любой файл, подготовленный как текстовый или типизированный, можно открыть и начать работу с ним как с нетипизированным набором данных прямого доступа.
34 слайд
Объявление нетипизированных файлов
type ИмяТипа = file;
var ФайловаяПеременная: ИмяТипа;
или
var ФайловаяПеременная = file ;
35 слайд
За исключением процедуры read и rewrite для всех нетипизированных файлов допускается использование любой стандартной процедуры, которая пригодна для типизированных файлов. Вместо процедур read и write здесь используются соответственно процедуры blockread (считывает из файла в переменную одну или более записей) и block write (записывает одну или более запись из переменной в файл), которые пересылать данные с высокой скоростью.
Рабочие листы
к вашим урокам
Скачать
Выбранный для просмотра документ Уроки Делфи@SEP@5.ppt
Скачать материал "Презентации «Программирование на Delphi»"
Рабочие листы
к вашим урокам
Скачать
1 слайд
Занятие 5
Динамические структуры данных
Новиков Алексей Константинович
Преподаватель СПК МГППУ
Программирование на Delphi
2 слайд
Указатель
Обычно переменная хранит некоторые данные. Однако существуют переменные, которые ссылаются на другие переменные. Такие переменные называются указатели.
Указатель – это переменная, значением которой является адрес другой переменной или структуры данных.
Более точно определить указатель как адрес 1-го байта области памяти, которую занимает переменная.
3 слайд
Типизированный указатель – это указатель на переменную определенного типа, например, целого, строкового или типа массива.
Нетипизированный – это адрес первого байта области памяти, в которой может размещаться любая информация вне зависимости от ее типа.
Var Имя:^Тип;
Где имя – это имя переменной – указателя; тип – это тип переменной, на которую указывает переменная – указатель, значок ^ показывает, что объявляемая переменная является указателем.
4 слайд
Var Имя:^Тип;
Где имя – это имя переменной–указателя;
тип – это тип переменной, на которую указывает переменная–указатель;
значок ^ показывает, что объявляемая переменная является указателем.
5 слайд
Примеры объявления указателей
Var P1:^integer; {указатель на переменную целого типа}
P2:^real; {указатель на переменную вещественного типа}
P3:^string; {указатель на строку}
P4:pointer; {нетипизированный указатель}
6 слайд
Тип pointer совместим со всеми типами указателей.
Тип переменной, на которую ссылается указатель, называют типом указателя.
P1:^integer, то говорят «P1 – указатель целого типа».
В начале работы программы переменная – указатель «ни на что не указывает». В этом случае говорят, что значение указателя равно nil.
7 слайд
Идентификатор nil
можно использовать в инструкциях присваивания и в условиях. Например, если переменные P1 и P2 объявлены как указатели, то инструкция P1:=nil; устанавливает значение переменной, а инструкция if P2=nil then ShowMessage (‘указатель P2 не инициализирован!’);
проверяет, инициализирован ли указатель P2.
8 слайд
Указателю можно присвоить значение другого указателя при условии, что они являются указателями на переменную одного типа.
Указатель можно использовать для доступа к переменной, адрес которой содержит указатель.
9 слайд
Пример
Например, если P указывает на переменную i, то в результате выполнения инструкции P^:=5; значение переменной i будет равно 5. В приведенном примере значок ^ показывает, что значение 5 присваивается переменной, на которую указывает переменная – указатель.
10 слайд
Динамическая переменная
Динамической переменной называется переменная, память для которой выделяется во время работы программы.
Так как бывают два разных типа указателей, то в соответствии с ними бывают две разные процедуры создания динамических переменных
для типизированных указателей – new (p);
для нетипизированных указателей – getmem (p, size).
Размер size не может превышать 54 килобайта.
11 слайд
При выполнении процедуры new в динамической памяти выделяется столько байтов сколько требуется для хранения переменной заданного типа. Для нетипизированных указателей в памяти выделяется size байтов, а указатель получает значение адреса первого байта выделенной области.
Обратите внимание – динамические переменные не имеют собственного имени, в процедурах выделения памяти задается не имя переменной, а имя указателя.
12 слайд
При выделении динамической памяти полезными являются следующие функции:
memavail – возвращает общий размер свободной памяти в байтах;
maxavail – возвращает размер наибольшего непрерывного участка свободной памяти.
13 слайд
Процедуры «уничтожения динамических переменных»
Для типизированных указателей можно использовать:
dispose (p) – освобождает память, на которую указывал p;
mark (p) и release (p) – эти две процедуры используются только вместе и позволяют сразу очистить целую область памяти.
При этом процедура mark (p) запоминает в указателе p адрес начала области динамической памяти, а процедура release (p) очищает всю память, начиная с адреса p. Процедура mark обычно помещается в начало программы, release, наоборот, в конец.
14 слайд
Процедуры «уничтожения динамических переменных»
В случае нетипизированных указателей можно использовать только одну процедуру: freemen (p, size), которая освобождает size байтов, начиная с адреса p. После освобождения памяти указатели автоматически не обнуляются и, фактически, указывают на несуществующую переменную. Поэтому рекомендуется присвоить всем высвободившимся указателям значения nil.
15 слайд
Динамические переменные используются
1) для работы с массивными больших размеров;
2) для работы с особыми структурами переменных размеров, которые получили название динамические структуры данных (динамический список данных - ДСД). (Именно они представляют наибольший интерес для программистов).
16 слайд
Особенности ДСД
Динамические списки данных были предложены для быстрой обработки больших объёмов данных. Они характеризуются следующими особенностями:
Для отдельных элементов структуры памяти выделяется в тот момент, когда в них появляется необходимость (а не сразу и не одним блоком, как для массивов);
Число элементов динамической структуры заранее не объявляется и может изменятся от нуля до некоторого значения, определяемого задачей;
17 слайд
Память, занимаемая структурой, не представляет собой непрерывную область, т.е. элементы могут быть разбросаны в памяти хаотическим образом;
Логическая последовательность элементов задаётся в явном виде с помощью одного или нескольких указателей, хранящихся в самих элементах. Как правило, каждый элемент, хранит своё значение и указатель на следующий элемент или на два соседних с ним элемента.
18 слайд
Связанный список
Самый распространенный ДСД – связанный список. Каждый элемент списка (узел) представляет собой запись, состоящую из двух частей. Первая часть – информационная, в ней хранятся данные, ради которых и создается список, вторая – указатель. Он отвечает за связь со следующим и, возможно, с предыдущим элементом списка. Список, в котором обеспечивается связь только со следующим элементом, называется односвязным или линейным.
19 слайд
Типовые действия со списками:
добавить новый узел непосредственно перед заданным узлом;
удалить заданный узел;
объединить два (или более) линейных списка в один список;
разбить линейный список на два (или более) списка;
сделать копию списка;
выполнить сортировку узлов списка в возрастающем порядке по некоторым полям в узлах;
найти в списке узел с заданным значением в некотором поле.
20 слайд
Стек, очередь, дек
Очень часто встречаются линейные списки, в которых добавления и удаления производится только в первом или последнем узлах. Это:
Стек – линейный список, в котором все добавления и удаления делают в одном конце списка;
Очередь – линейный список, в котором все добавления производятся на одном конце списка, а все удаления делаются на другом конце;
Дек – линейный список, в котором все добавления и удаления делаются на обоих концах списка.
Рабочие листы
к вашим урокам
Скачать
Выбранный для просмотра документ Уроки Делфи@SEP@6.ppt
Скачать материал "Презентации «Программирование на Delphi»"
Рабочие листы
к вашим урокам
Скачать
1 слайд
Занятие 6
Рекурсия
Новиков Алексей Константинович
Преподаватель СПК МГППУ
Программирование на Delphi
2 слайд
Рекурсивный свод правил
Найдите в словаре слово.
Прочитайте статью, объясняющую значение этого слова.
Если объяснение понятно, то есть статья не содержит слов, вызывающих затруднение, продолжите чтение с последнего прерванного места.
Если в объяснении встречается незнакомое слово, то прекратите чтение, запомните место прекращения и выясните значение слова, придерживаясь правилам 1-4.
3 слайд
Определение рекурсии
Рекурсия – это такой способ организации вычислительного процесса, при котором процедура или функция в ходе выполнения составляющих ее операторов обращается сама к себе. При использовании рекурсии необходимо обращать особое внимание на выход из подпрограммы в нужный момент.
4 слайд
Пример
Рекурсивное определение суммы первых n натуральных чисел. Сумма первых n натуральных чисел равна сумме первых (n-1) натуральных чисел плюс n, а сумма первого числа равна 1. Или Sn=S n-1+n;
S1=1.
5 слайд
Рекурсия полезна, прежде всего, в случаях, когда основную задачу можно разделить на подзадачи, имеющие ту же структуру, что и первоначальная задача. Подпрограммы, реализующие рекурсию, называются рекурсивными. Для понимания сути рекурсии лучше трактовать рекурсивный вызов как вызов другой подпрограммы.
6 слайд
Интерация
Интерация – повторяемое выполнение некоторых действий до тех пор, пока не будет удовлетворяться некоторое условие. Большинство алгоритмов можно реализовать двумя способами: интерацией и рекурсией.
7 слайд
Особенности рекурсии:
Использование рекурсивной формы организации алгоритма обычно выглядит изящнее интерационной и дает более компактный текст программы;
Недостатки рекурсии:
Если глубина рекурсии очень велика, то программа будет требовать во время выполнения много памяти – это может привести к переполнению стека;
Рекурсивные алгоритмы, как правило, выполняются более медленно;
При рекурсивном программировании велика вероятность ошибок, способных вынудить программиста к перезагрузке компьютера.
8 слайд
Пример
Рассмотрим листинг программы, которая вычисляет сумму первых n членов гармонического ряда 1+1/2+1/3+... с использованием процедуры sumset, предусматривающей традиционное накопление суммы в цикле for и процедуры recursion.
9 слайд
Var n: integer;
S: real;
Procedure sumset (n: integer; var sum: real); var i: integer;
Begin
Sum:=0;
For i:=1 to n do sum:=sum+1/i;
End;
10 слайд
Procedure recursion (n: integer; var sum: real);
Begin
If n=1 then sum:=1+sum
Elsebegin
Sum:=sum+1/n;
Recursion (n-1,sum);
End;
End;
11 слайд
Begin
Writeln (‘Введите количество суммированных членов ряда’); Readln (n);
Sumset (n, s);
Writeln (‘Сумма членов ряда равна (цикл)’,s);
S:=0; recursion (n, s);
Writeln (‘Сумма членов ряда равна (рекурсия)’,s); end.
12 слайд
Пример нахождения чисел ряда Фибоначчи с обычной процедурой.
Procedure fibo (n: integer);
var fn, fn1, fn2, k: integer;
begin
fn1:=1; fn:=0;
for k:=1 to n do begin
fn2:=fn1; fn1:=fn;
fn:=fn1+fn2;
writeln (fn);
end;
end;
13 слайд
{основная программа}
var
n: integer;
begin
write (‘Введите число членов рядов Фибоначчи ’);
readln(n),
fibo(n);
end.
14 слайд
F-1=1, F0=0.
Если превратить фиктивные члены в параметры, то можно получить процедуру, печатающую n членов ряда, идущих за двумя данными членами. Модифицируем процедуру с fibo, превратив переменные fn1 и fn в параметры, не приписывая им начальных значений.
15 слайд
{рекурсивная процедура вычисления и печати чисел Фибоначчи}
Procedure fibonachi (n, fn1, fn: integer);
begin if n>o then begin writeln (fn1+fn);
fibonachi (n-1, fn, fn1+fn);
end;
end;
16 слайд
{основная программа}
var n, a, b: integer;
begin
write (Введите число членов ряда Фибоначчи:);
readln (n);
write (‘…следующих за двумя данными членами:’)
readln (a, b); fibonachi (n, a, b);
end.
17 слайд
Если пользователь захочет вывести на экран n=10 первых членов ряда Фибоначчи, то он должен указать в качестве а и b два фиктивных члена - 1 и 0 соответственно. Если нужно вывести 10 членов ряда, начиная с 6-го, необходимо вывести для n, a, b числа 10, 3 и 5 соответственно.
Рабочие листы
к вашим урокам
Скачать
Рабочие листы
к вашим урокам
Скачать
Презентации, посвящённые программированию в среде Borlanr Delphi. Это мой авторский материал. Можно начинать изучение программирования с этих лекций, там описано всё с самого начала, с самых основ, вроде типов данных и компонентов. И заканчивается довольно сложными вещами, например рекурсивными процедурами. Данный материал можно использовать на занятиях по информатике в старшей школе или колледже.довольно сложными вещами, вроде рекурсивных процедур. Данный материал можно использовать на уроках информатики в старшей школе или на занятиях по програмированию, к примеру, в колледже. Я по этим лекциям веду занятия по предмету Основы програмирования в своём коллдже.
6 911 344 материала в базе
Настоящий материал опубликован пользователем Новиков Алексей Константинович. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВы сможете бесплатно проходить любые из 5111 курсов в нашем каталоге.
Перейти в каталог курсовМини-курс
3 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.