- •Лабораторная работа 1. Программирование алгоритмов линейной структуры
- •Задания для самостоятельного выполнения лабораторной работы 1:
- •Лабораторная работа 2. Численные переменные и типы данных
- •Задания для самостоятельного выполнения лабораторной работы 2:
- •Лабораторная работа 3. Логические переменные
- •Задания для самостоятельного выполнения лабораторной работы 3.
- •Лабораторная работа 4. Управляющие конструкции языка. Условный и составной операторы.
- •Задания для самостоятельного выполнения лабораторной работы 4:
- •Лабораторная работа 5.
- •Задания для самостоятельного выполнения лабораторной работы 5
- •Лабораторная работа 6. Управляющие конструкции языка. Оператор безусловного перехода.
- •Задания для самостоятельного выполнения лабораторной работы 6:
- •Лабораторная работа 7. Графические возможности. Графический режим. Система координат
- •Задания для самостоятельного выполнения лабораторной работы 7.
- •Лабораторная работа 8. Циклические конструкции. Оператор цикла с предусловием
- •Задания для самостоятельного выполнения лабораторной работы 8.
- •Лабораторная работа 9. Циклические конструкции. Оператор цикла с постусловием
- •Задания для самостоятельного выполнения лабораторной работы 9.
- •Лабораторная работа 10. Циклические конструкции. Оператор цикла с параметром
- •Задания для самостоятельного выполнения лабораторной работы 10.
- •Лабораторная работа 11. Символьные переменные Тип данных "char"
- •Задания для самостоятельного выполнения лабораторной работы 11.
- •Лабораторная работа 12. Массивы.
- •Задания для самостоятельного выполнения лабораторной работы 12.
- •Лабораторная работа 13. Методы обработки массивов
- •Задания для самостоятельного выполнения лабораторной работы 13.
- •Лабораторная работа 14.
- •Задания для самостоятельного выполнения лабораторной работы 14.
Задания для самостоятельного выполнения лабораторной работы 11.
Дана последовательность из n символов. Подсчитать:
а) сколько раз среди данных символов встречается символ + и сколько раз - символ *.
б) общее число вхождений символов +, -, * в данную последовательность.
Вывести на экран изображение всех возможных символов вместе с их номерами.
Дана последовательность из n символов. Выяснить, имеются ли в последовательности два подряд идущих символа ",-".
Дана последовательность из n символов. Известно, что в последовательности имеется хотя-бы одна запятая. Найти номер:
а) первой по порядку запятой;
б) последней по порядку запятой.
Дана последовательность из n символов. Выяснить, каких символов в последовательности больше, запятых или точек с запятой. (Не исключается случай равенства).
Дана последовательность символов, заканчивающаяся символом ‘+’. Определить и вывести на экран номера символов, имеющих наибольший и наименьший номер.
Дана последовательность из n символов. Выяснить, в какой половине последовательности, в первой или во второй, больше вопросительных знаков. (Не исключается случай равенства).
Дана последовательность из n символов. Выяснить встречается ли в данной последовательности группа из трёх стоящих рядом точек.
Дана последовательность из n символов. Подсчитать наибольшее число букв "а" идущих подряд в данной последовательности.
Дана последовательность символов, заканчивающаяся символом ‘?’. Подсчитать наибольшее количество символов "пробел" идущих в строке подряд.
Лабораторная работа 12. Массивы.
Рассмотрение структурированных типов мы начнём с так называемых массивов "ARRAY". Массив объединяет элементы одного типа данных. Массивы бывают одномерными и многомерными. Размер массива (и число измерений) ограничивается только объёмом рабочей памяти ПЭВМ. До сих пор Вы сталкивались в основном с простыми типами данных. Типы данных в системе Turbo Pascal делятся на простые и сложные. К простым типам относятся стандартные, перечисляемые и ограниченные; к сложным типам - массивы, множества, записи, файлы. Элементами сложных типов могут быть простые типы, а также, в свою очередь, сложные типы. Введение сложных типов делает язык программирования более мощным и позволяет составлять эффективные программы. Всё сказанное нежно изобразить с помощью следующей схемы:
В математике и информатике массив называется одномерным, если для получения доступа к его элементам достаточно одной индексной переменной.
Декларация (объявление) одномерного массива выглядит следующим образом:
VAR
имя массива: ARRAY[нач инд..кон инд] OF тип данных;
Например:
VAR
mas: ARRAY [1.. 25] OF Integer;
Таким образом, мы объявили одномерный массив mas целых чисел. Номер (индекс) первого элемента 1, последний номер (индекс) 25.
Декларация массивов может производится и немного другим способом. Сначала объявляется тип пользователя (в нашем случае типа "ARRAY"), а затем и переменная на основе этого типа данных. Например:
TYPE
tab=ARRAY[l..25] OF Integer;
VAR
mas: tab;
Эта декларация аналогична приведённой выше. В следующем примере декларировано несколько переменных типа массив:
VAR
mas_l: ARRAY[1..10] OF Real; mas_2: ARRAY[5 .. 16] OF Integer; sst: ARRAY[20..40] OF Char;
Обратите внимание, что величины, обозначающие "начальный индекс" и "конечный индекс", в квадратных скобках разделяются двумя (!) точками, причём перед этими двумя точками и после них допускаются пробелы.
Тип элементов, составляющих массив, может быть любым (в том числе и сложным). Тип индексов элементов массива может быть только простым, хотя наиболее часто в качестве индексов элементов массива применяют целые числа.
В следующем примере объявлены массивы содержащие элементы различных типов, и индексы различных простых типов:
VAR
mas: array [1..15] of real; {описан массив из 15 вещественных чисел}
www: array [(mon,tue,wed)] of integer; {описан массив из трёх целых чисел, индексы элементов массива имеют перечислимый тип и принимают значение названий дней недели mon, tue, wed}
ast: array ['A'-'Z'] of boolean; {описан массив элементов логического типа, тип индексов - ограниченый символьный}
art: array [(black,white)] of 11..20; {описан массив целых чисел с индексами black, white. Каждый элемент массива может принимать значения от 11 до 20}
svz: array [byte] of integer; {описан массив из 256 целых чисел с индексами стандартного типа byte (от 0 до 256)}
Извлечения и присвоения в массивах
В отличие от стандартных переменных массивы не могут обрабатываться целиком. Но Вы можете получить доступ к каждому элементу-ячейке массива. Это выполняется путём указания значения индекса в квадратных скобках. Так, например, с помощью оператора
mas [2] :=34;
элементу массива с индексом 2 присваивается значение 34.
Оператор
Writeln(mas[2]);
вызовет вывод на экран пользователя значение хранящегося в элементе-ячейке N 2 массива mas.
Наряду с конкретным значением (константой) в качестве индекса может быть использована переменная, например, при обработке массива поэлементно в рамках цикла "FOR ... ТО ... DO". Так с помощью фрагмента программы
FOR i:=l ТО 25 DO mas[i]:=0;
всем элементом массива присваивается значение "0".
Использование массивов вместо одиночных переменных позволяет Вам благодаря применению циклов "FOR ... ТО ... DO" существенно сэкономить время и объём программы. Это демонстрируется следующим примером.
ПРИМЕР. Дана последовательность реальных чисел s1 ... s30. Организовать массив для хранения этих чисел. Определить сумму этих элементов.
PROGRAMM ех_1;
VAR
m: ARRAY[1..30] of real; {декларация массива} i: integer; {параметр цикла FOR}
s: real; {сумма элементов}
BEGIN
FOR i:=l TO 30 DO {заполнение массива}
Begin
Write('Введите элемент последовательности N ');
Readln(m[i]);
End;
s:=0; {обнуление счётчика суммы}
FOR i:=l TO 30 DO s:=s+m[i]; {вычисление суммы}
Write('CyMMa элементов последовательности равна ',s);
Readln; { пауза }
END.
Контрольные вопросы.
Какие типы данных Вы знаете?
Перечислите и приведите примеры простых типов данных.
Перечислите сложные типы данных.
Что такое массивы?
Что называют элементом массива?
Что называют индексом элемента массива?
Сколько элементов может содержать массив?
Сколько индексов может быть у одного элемента массива?
Элементы какого типа может содержать массив?
Какие типы данных допустимы для индексов элементов массива?