- •1. Классификация и обзор языков программирования.
- •2. Основные синтаксические конструкции языков программирования. Типы данных.
- •3. Логический тип. Реализация ветвлений в языках программирования.
- •Программирование вложенных ветвлений
- •4. Реализация циклов в языках программирования. Цикл while - цикл с предусловием
- •Цикл repeat - цикл с постусловием
- •5. Реализация вспомогательных алгоритмов в языках программирования.
- •6. Обработка символьных и строковых величин в языках программирования.
- •Процедуры преобразования типов
- •7. Структурированные типы данных. Массивы.
- •8. Структурированные типы данных. Записи.
- •9. Структуры данных. Адреса и указатели.
- •Операции с указателями
- •10. Работа с файлами. Типизированные и текстовые файлы.
Процедуры преобразования типов
Процедура Str (x, s)преобразует числовое значение x в строку s, при этом для x может быть задан формат, как в процедурах вывода write и writeln. Например:
x := 123;
s := str(x:6,s);
Результат: s = ' 123'.
Процедура Val (s, x, errcode)преобразует строку s в значение числовой переменной x, при этом строка s должна содержать символьное представление числа. В случае успешного преобразования переменная errcode равна нулю. Если же обнаружена ошибка, то errcode будет содержать номер позиции первого ошибочного символа, а значение x не определено.
7. Структурированные типы данных. Массивы.
Массив – это упорядоченная совокупность данных, обозначаемых одним именем, доступ к элементам массива осуществляется по их номерам (индексам). Элементами массива могут быть данные любого типа, включая структурированные, но в одном массиве могут храниться данные только одного типа (real, integer, string, char и пр.).
Одномерные массивы Описать одномерный массив можно несколькими способами:1)В разделе переменных Var имя массива : Array [тип индекса] of тип элементов ; 2) В разделе описания типов
Type имя типа = Array [тип индекса] of тип элементов ; Var имя массива : имя типа ;
3)В разделе констант Constимя массива: Array [тип индекса] ofтип элементов= (список элементов);
Многомерные – каждый элемент получает более 2-х индексов (пр. [1,1,k]).
Массивы, положение элементов в которых описывается двумя индексами, называютсядвумерными. Их можно представить в виде прямоугольной таблицы или матрицы.
Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел - номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, a12 - это элемент, стоящий в первой строке и во втором столбце.
объявления двумерного массива.Type dmyarray = Array[1..n, 1..m] Of <тип элементов>;
Операции с массивами. ;1)ввод массива 2. Печать в виде таблицы. 3. Вычисление суммы элементов каждой строки и каждого столбца.4. Поиск максимального (минимального) элементов каждой строки (столбца) и ихиндексов.5. Сумма элементов массива.6. Максимальный (минимальный) элемент массива.
8. Структурированные типы данных. Записи.
(Турбо Паскаль).
Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними располагается список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.
Формат:
type
<имя типа> = record
<идентификатор поля>:<тип компонента>;
<идентификатор поля>:<тип компонента>
end;
var
<идентификатор, ...> : <имя типа>;
Оператор присоединения WITH:
WITH <переменная> DO <оператор>
Здесь WITH, DO - ключевые слова (с, делать);
<переменная> - имя переменной типа запись, за которым, возможно, следует список вложенных полей; <оператор> - любой оператор Турбо Паскаля.
Например:
with c.bd do month := 9;
Это эквивалентно
with с do with bd do month := 9;
Для вложенных полей приходится продолжать уточнения:
type
BirthDay = record
day,month: Byte;
year : Word
end;
var
с : record
name : String;
bd : BirthDay
end;
begin
.....
if c.bd.year = 1939 then ...
end.
Ввод записей: type anketa=record fio: string[45]; dat_r: string[8]; adres: string[50]; curs: 1..5; grupp: string[3] end; var student: array [1..100] of anketa; I: integer; begin {последовательно вводим каждую запись} for I:=1 to 100 do begin writeln (‘введите сведения о’, I , ‘-м студенте’); writeln (‘введите фамилию, имя и отчество’); readln (student[I].fio);
Вывод записей осуществляется по полям writeln (‘фамилия студента: ’, student . fio );
Области использования:Как мы уже выяснили, массивы объединяют однородные единицы информации – элементы одного и того же типа. Но многообразие информации нельзя свести только к какому-то одному типу данных. Например, указывая положение точки в пространстве, мы можем воспользоваться одним и тем же типом для указания ее координат, но, описывая человека, мы должны указать его имя, рост, цвет глаз и волос, то есть в одном описании объединимразнороднуюинформацию. Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называютзаписью (record).