- •1. Свойства и этапы построения алгоритма.
- •2.Постановка задачи. Разработка модели. Построение алгоритма.
- •3. Величины в алгоритмах.
- •4.Способы записи алгоритмов
- •5. Структуры алгоритмов.
- •Оператор цикла Паскаля с параметром
- •Оператор цикла Паскаля с постусловием
- •Оператор цикла Паскаля с предусловием
- •6. Исполнение (тестирование) алгоритма.
- •7. Переменные с индексами. Массивы. Таблицы.
- •8. Примеры алгоритмов линейных и с разветвлением.
- •9. Пример циклического алгоритма вычисления суммы десяти чисел.
- •10. Поиск минимального и максимального элемента последовательности.
- •11. Поиск номера элемента последовательности с заданным значением.
- •12. Сортировка. Простой выбор.
- •13. Редактирование текста программы. Копирование, вставка и удаление.
- •15. Завершение работы выхода из программы. Возобновление сеанса отладки.
- •16 Отладка в среде языка программирования. Классификация ошибок.
- •17. Программа в Object Pascal
- •18. Операторы
- •19. Выражения – синтаксис выражений.
- •25. Типы, переменные, константы и типизированные константы.
- •22.Строки программы и комментарии к программе
- •23. Типы величин. Простые типы
- •21. Числа
- •20. Специальные символы и их назначение
- •25. Тип Массив
- •21. Метки
- •26.Переменные и константы. Раздел описания данных констант.
- •21. Идентификаторы
- •24. Строковый тип
- •27. Массивы, строки и индексы
- •24.Вещественный тип
- •29. Совместимость по присваиванию
- •28. Арифметические операции
- •29. Оператор присваивания.
- •30. Составные операторы.
- •31. Условный и безусловный операторы.
- •32. Оператор цикла с постусловием(repeat).
- •34. Оператор цикла с параметром for
- •33. Оператор цикла с предусловием while
- •35. Стандартные процедуры и функции.
- •36. Стандартные арифметические функции.
- •37.Среда Delphi. Компиляция и выполнение готовых программ
- •38.Среда Delphi. Формат меню. Настройка меню Delphi
- •39.Среда Delphi. Визуальные компоненты для редактирования
- •40. Среда Delphi. Конструирование формы – реализация диалога
- •41.Особенности объектно-ориентированного программирования
- •44.Компоненты редактирования в Delphi – текстовые окна, поля, метки
- •42.Визуальные и невизуальные компоненты Deplhi
- •43.Delphi. Основные свойства. События. Методы
- •45.Конструирование форм в Delphi
- •47.Создание меню в Delphi
- •48.Параметры проекта
- •51.Ввод и редактирование информации
24.Целые типы
Целый
тип присваивается данным ( переменным
и константам), которые во время работы
программы могут принимать лишь
целочисленные значения. Например,
программа вычисления функции факториал
для натурального числа N
ооперирует целыми числовыми значениями.
В стандарте языка Паскаль определен
единственный целый тип данных Integer.
В современных реализациях языка целый
тип данных представлен множеством
типов: Integer(-32768..32767)
– 2(4) байта, Shortint(-128..127),
Smallint(-32768..32767),
Longint(-231..231-1)
, Byte(0..255)
– 1 байт, Word(0..216-1),Longword(0..4294967295).
Переменные физических целых типов
имеют разные диапазоны значений в
зависимости от того, сколько байтов
памяти они занимают.
Строка символов
представляет собой последовательность
символов из расширенного набора символов
кода ASCII, заключенную в одиночные
кавычки. Необходимо также, чтобы вся
последовательность располагалась в
одной строке программы.
В разделе var строки
описываются следующим образом:
var <имя_строки>:
string[[<длина>]]
Максимальная длина
строки - 255 символов. Нумеруются ее
компоненты начиная с 0, но этот нулевой
байт хранит длину строки. Если <длина>
не указана, то считается, что в строке
255 символов. Поэтому для экономии памяти
следует по возможности точно указывать
длину используемых строк.
Примеры описаний:
Var
S1:
string;
St1,St2=string[7];
St1:=строка_`;
St2:=`очень_длинная`;
линная –автоматически оборвется
Поскольку каждый
символ имеет определенный вес в
соответствии с общим, таблицу всех
символов строки можно сравнивать с
помощью условного оператора.
If St1>St2 then
S1:=`St1
больше
чем
St2`;
Var S1,S2:String[5];
St1: String(12);
St1:=S1+S2;
St1:=S1&S2; St1:= Concat(S1,S2);
Стандартные
функции и процедуры обработки строк
Для обработки
символьных массивов, которыми являются
строки, в языке Pascal существуют специальные
подпрограммы:
1. Функция
concat(s1,_,sN:string):string осуществляет слияние
(конкатенацию) всех перечисленных строк
или символов в указанном порядке. Если
длина итоговой строки больше 255-ти
символов, то произойдет отсечение
"хвоста". Кроме того, даже если
результат конкатенации не был усечен,
но программа пытается сохранить его в
переменную заведомо меньшей длины, то
усечение все равно состоится:
concat('abc','3de','
','X','yz')
= 'abc3de
Xyz'
2. Функция
copy(s:string;i,k:byte):string вычленяет из строки
s подстроку длиной k символов, начиная
с i-го. Если i больше длины строки, то
результатом будет пустая строка. Если
же k больше, чем длина оставшейся части
строки, то результатом будет только ее
"хвост":
copy('abc3de Xyz',2,4) =
'bc3d'
copy('abc3de Xyz',12,4) =
''
copy('abc3de Xyz',8,14) =
'Xyz'
3. 3.
Процедура
delete(s:string;i,k:byte) удаляет
из
строки
s подстроку
длиной
k символов,
начиная
с
i-го.
Если i
больше длины строки, то ничего удалено
не будет. Если же k больше, чем длина
оставшейся части строки, то удален
будет только ее "хвост":
{s = 'abc3de Xyz'} {s =
'abc3de Xyz'}
delete(s,2,3); delete(s,8,13);
{s = 'ade Xyz'} {s =
'abc3de '}
4.Процедура
insert(ss,s:string;i:byte) вставляет подстроку ss
в строку s, начиная с i-го символа. Если
i выходит за конец строки, то подстрока
ss припишется в конец строки s (если
результат длиннее, чем допускается для
строки s, произойдет его усечение):
{s
= 'abc3de
Xyz'} {s
= 'abc3de'}
insert('xyz',s,2); insert('xyz',s,12);
{s = 'axyzbc3de Xyz'} {s =
'abc3dexyz'}
5. Функция
length(s:string):byte
определяет длину строки или количество
символов строки:
length('abc3de
Xyz')
= 10
6. Функция
pos(ss,s:string):byte определяет позицию, с
которой начинается первое (считая слева
направо) вхождение подстроки ss в строку
s. Если ss не встречается в s ни разу,
функция вернет 0. Если необходимо
определить ермепа всех позиций подстроки
ss
к s
можно обозначить каждый X
с которых начинается символ или подстроку
ss
другим символом одинаковым для всех
ss
например *. Если этого не делать, то
происходит зацикливание всех подстрок
ss:
pos('X', 'abc3de Xyz') = 8
7.Процедура
str(x[:w[:d]],s:string) преобразует число x (можно
указать, что в этом числе w цифр, из них
d дробных) в строку s. Если число короче
указанных величин, то спереди и/или
сзади оно будет дополнено пробелами:
str(156.4:7:2,s);
{s = ' 156.4 '}
8. Процедура
val(St,x,code);
x
– числовое значение в которое переводим.
Преобразовывает символьное значение
S1
в числовое значение целого или
вещественного типа. (в случае ошибки в
переменную code
будет записан номер первого недопустимого
символа):
{s = '15.47'}
val(s,x,code);
{x =
15.47}
Массивом
называется
совокупность однотипных данных связанных
общим именем.
Переменная
с индексом позволяет представить
большое количество величин или
компонентов с одним общим именем. Каждая
отдельная величина определяется
индексом в скобках после наименования
переменной. Полная система таких величин
называется массивом, а каждая отдельная
величина – компонентом или элементом
массива. Массив может быть
одномерным(вектор), двумерным(матрица
или таблица), трехмерным(тензор) и т.д.
Термин «одномерный»
определяет
количество индексов, а не количество
переменных. Количество индексов в
линейном массиве определяется номером
последнего элемента, если 1й номер
массива был единица. Первый компонент
одномерного массива – это элемент с
номером 1, второй – 2 и.т.д, до тех пор,
пока не будут пронумерованы все элементы
массива. Двумерный
массив
представляет собой таблицу или матрицу
из горизонтальных строк и вертикальных
столбцов. Первый индекс – определяет
номер строки, он изменяется от 1 до М,
где М – полное количество строк. Второй
номер столбца изменяется от 1 до N,
где N
– полное число столбцов. Индексы
отделяются запятыми. Главная диагональ
в двумерном массиве это, где номер
строки = номеру столбцов. Квадратная
матрица – если количество строк равная
количеству столбцов. Задавая
соответствующие значения индексов,
можно выполнить прямой доступ к любому
компоненту массива. Текущие значения
индексов не должны выходить за пределы
заданного диапазона. В противном случае
переменная с индексом не может быть
определена. Обычный прием работы с
массивами, в особенности с большими
массивами, - выборочное изменение
отдельных его компонентов. На месте
индекса может быть выражение
соответствующее значению индекса,
которое идентифицирует соответствующий
компонент массива. Основные характеристики:
имя массива, типа компонентов, размерность,
равная количеству индексных позиций
массива, порядок нумерации компонентов
в последовательности, количество
компонентов – длина массива или размер
массива. Последовательную обработку
массивов позволяет обеспечить цикл с
параметром, который осуществляет прямой
доступ к каждому элементу массива. Для
обработки двумерных массивов используются
те же приемы, что и для одномерных
массивов.
Массивы в Object
Pascal во многом схожи с аналогичными
типами данных в других языках
программирования. Отличительная
особенность массивов заключается в
том, что все их компоненты по сути данные
одного типа. Эти компоненты можно легко
упорядочить и обеспечить доступ к
любому из них простым указанием его
порядкового номера. Описание типа
массива задается следующим образом:
<имя
типа> = array [ <сп.инд.типов> ] of <тип>; В
качестве индексных типов в Object Pascal
можно использовать любые порядковые
типы, имеющие объем не более 2 Гбайт (т.
е. кроме LongWord И Int64).
Определить
переменную как массив можно и
непосредственно при описании этой
переменной, без предварительного
описания типа массива, например:
var a,b
: array [1..10] of Real; - одномерный var
a:
array
[1..5,1..] of
real
– двумерный ( строки потом столбцы)
24. Строковый тип
27. Массивы, строки и индексы