Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания по ЯиСП 1-14 ИВТ.doc
Скачиваний:
53
Добавлен:
01.04.2015
Размер:
648.7 Кб
Скачать

Задания для самостоятельного выполнения лабораторной работы 11.

  1. Дана последовательность из n символов. Подсчитать:

а) сколько раз среди данных символов встречается символ + и сколько раз - символ *.

б) общее число вхождений символов +, -, * в данную последовательность.

Вывести на экран изображение всех возможных символов вместе с их номерами.

  1. Дана последовательность из n символов. Выяснить, имеются ли в пос­ледовательности два подряд идущих символа ",-".

  1. Дана последовательность из n символов. Известно, что в последова­тельности имеется хотя-бы одна запятая. Найти номер:

а) первой по порядку запятой;

б) последней по порядку запятой.

  1. Дана последовательность из n символов. Выяснить, каких символов в последовательности больше, запятых или точек с запятой. (Не исклю­чается случай равенства).

  1. Дана последовательность символов, заканчивающаяся символом ‘+’. Оп­ределить и вывести на экран номера символов, имеющих наибольший и наименьший номер.

  1. Дана последовательность из n символов. Выяснить, в какой половине последовательности, в первой или во второй, больше вопросительных знаков. (Не исключается случай равенства).

  1. Дана последовательность из n символов. Выяснить встречается ли в данной последовательности группа из трёх стоящих рядом точек.

  1. Дана последовательность из n символов. Подсчитать наибольшее число букв "а" идущих подряд в данной последовательности.

  1. Дана последовательность символов, заканчивающаяся символом ‘?’. Подсчитать наибольшее количество символов "пробел" идущих в строке подряд.

Лабораторная работа 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.

Контрольные вопросы.

  1. Какие типы данных Вы знаете?

  2. Перечислите и приведите примеры простых типов данных.

  3. Перечислите сложные типы данных.

  4. Что такое массивы?

  5. Что называют элементом массива?

  6. Что называют индексом элемента массива?

  7. Сколько элементов может содержать массив?

  8. Сколько индексов может быть у одного элемента массива?

  9. Элементы какого типа может содержать массив?

  10. Какие типы данных допустимы для индексов элементов массива?