![]() Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Задания для самостоятельного выполнения лабораторной работы 11.
1. Дана последовательность из n символов. Подсчитать: а) сколько раз среди данных символов встречается символ + и сколько б) общее число вхождений символов +, -, * в данную последовательность. Вывести на экран изображение всех возможных символов вместе с их номерами.
2. Дана последовательность из n символов. Выяснить, имеются ли в последовательности два подряд идущих символа ",-".
3. Дана последовательность из n символов. Известно, что в последовательности имеется хотя-бы одна запятая. Найти номер: а) первой по порядку запятой; б) последней по порядку запятой.
4. Дана последовательность из n символов. Выяснить, каких символов в последовательности больше, запятых или точек с запятой. (Не исключается случай равенства).
5. Дана последовательность символов, заканчивающаяся символом ‘+’. Определить и вывести на экран номера символов, имеющих наибольший и наименьший номер.
6. Дана последовательность из n символов. Выяснить, в какой половине последовательности, в первой или во второй, больше вопросительных знаков. (Не исключается случай равенства).
7. Дана последовательность из n символов. Выяснить встречается ли в данной последовательности группа из трёх стоящих рядом точек.
8. Дана последовательность из n символов. Подсчитать наибольшее число букв "а" идущих подряд в данной последовательности.
9. Дана последовательность символов, заканчивающаяся символом ‘?’. Подсчитать наибольшее количество символов "пробел" идущих в строке подряд.
Лабораторная работа 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; {декларация массива} 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. Какие типы данных допустимы для индексов элементов массива?
|
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 241. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |