Регулярные типы ::= Описание регулярных типов type M = array [ТИ] of ТЭ; Здесь: array (массив) и of (из) - служебные слова Паскаля; ТИ – тип индексов;

Презентация:



Advertisements
Похожие презентации
МассивМассив представляет собой совокупность данных одного типа с общим для всех элементов именем. Массив относится к структурированным типам данных (упорядоченная.
Advertisements

Задача. С клавиатуры вводится n чисел (числа могут повторяться). Необходимо подсчитать количество чисел равных наименьшему числу.
Массивы Вариант 1 Program upr1; Var s,a:real; I: integer; Begin S:=0; For I:=1 to 10 do Begin Writeln (введите очередное число'); Readln(a); S: =s+a; End;
Одномерные массивы. Понятие массива При решении задач с использо- ванием большого количества однотипных упорядоченных данных, удобно хранить эти данные.
Массивы Описание массива. Виды и назначение массивов. Заполнение и вывод элементов массива.
Тема: Массивы.. Массив представляет собой набор элементов одного типа, каждый из которых имеет свой номер, называемый индексом. Массив Одномерный Многомерный.
Двухмерные массивы Данникова Г.А.. Описание Массивы, положение элементов в которых описывается двумя индексами, называют двухмерными. Их можно представить.
Тема урока: Одномерные массивы. - Где в жизни мы можем встретиться с таблицами?
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
«Обработка массивов данных» Delphi. Тема 4:4: «Обработка массивов данных» План темы: l1l1. Понятие массива данных. l2l2. Описание массива в программе.
Множественный тип данных Множество в языке Паскаль – это ограниченный набор различных элементов одного (базового) типа, которые рассматриваются как единое.
Двумерные массивы ( матрицы ) на языке PASCAL Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера.
Организация данных в виде массива. Массив - это упорядоченный набор фиксированного количества некоторых значений, называемых элементами массива. Каждый.
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
К.Ю. Поляков, Е.А. Ерёмин, Программирование на языке Паскаль § 62. МассивыМассивы.
Статичні структури даних.. 2 Статические данные переменная (массив) имеет имя, по которому к ней можно обращаться размер заранее известен (задается при.
Тема урока Тема урока Массивы. Массив – это именованный набор с фиксированным количеством однотипных данных. В массивы объединены результаты экспериментов,
Язык программирования Паскаль 9 часть. Массивы.
При решении многих задач приходится обрабатывать большое количество однотипных данных. Для хранения этих данных пришлось бы вводить большое количество.
Транксрипт:

Регулярные типы ::= Описание регулярных типов type M = array [ТИ] of ТЭ; Здесь: array (массив) и of (из) - служебные слова Паскаля; ТИ – тип индексов; это любой простой тип, кроме real; ТЭ – тип элементов массива; это любой тип Паскаля. Примеры: type vector=array[1..10] of real; log=array['A'..'Z'] of boolean; Y=array[(вчера,сегодня,завтра)] of integer; code=array[char] of 0..9;

Описание переменных регулярного типа Переменные регулярного типа называются переменными-массивами или попросту массивами. Их значения - массивы (целиком, как единые объекты) соответствующего типа. Как и другие переменные нестандартных типов, массивы описываются двояко: 1) описывается регулярный тип и ему дается имя, после чего при описании переменной- массива указывается это имя: type M=array[ТИ] of ТЭ; var x: M; 2) при описании переменной-массива явно выписывается регулярный тип: var x: array[ТИ] of ТЭ; Конкретные примеры: type vector=array[1..50] of real; var x, y, z: vector; w: array [1..50] of real;

Операции над массивами В Паскале над массивами, как едиными объектами, допускается лишь одна операция – это присваивание: v1:=v2, где v1 и v2 - переменные-массивы обязательно одного и того же типа. Многомерные массивы Паскаль рассматривает такую матрицу A как массив из 2 элементов (из 2 строк), каждый из которых – это массив из 3 чисел. Условно это можно изобразить так: Матрица A описывается так: var A: array[1..2] of array[1..3] of integer; Допускается сокращение этой записи до такой: var A: array[1..2, 1..3] of integer; Здесь слово array выписывается только раз, а все типы индексов указываются в одних квадратных скобках через запятую А

var B: array[1..n1] of array[1..n2] of array[1..n3] of integer; или в сокращенном виде: var B: array[1..n1, 1..n2, 1..n3] of integer; Обращение же к элементам этой кубической таблицы выглядит так: B[i1][i2][i3] или сокращенно B[i1,i2,i3] Точный синтаксис регулярный тип array [ тип ], of тип переменная с индексом [ выражение ], переменная- массив

Пример 1. Даны два вещественных 20-элементных вектора x и y. Требуется вычислить их скалярное произведение S=(x,y)=x 1 *y 1 +x 2 *y x 20 *y 20. Прежде всего договоримся о том, как будут задаваться числа для ввода. По смыслу задачи сначала должны быть заданы все 20 чисел вектора x, а затем – все 20 чисел вектора y: x 1, x 2,..., x 20, y 1, y 2,..., y 20 Но для программы было бы удобнее, если бы числа задавались иначе: x 1, y 1, x 2, y 2,..., x 20, y 20 program scalar(input,output); const N=20; {размер массивов} var x, y: array[1..N] of real; S: real; i: integer; begin {ввод массивов} write('1-й массив: '); for i:=1 to N do read(x[i]); write('2-й массив: '); for i:=1 to N do read(y[i]); {S=(x,y)} S:=0; for i:=1 to N do S:=S+x[i]*y[i]; {вывод S} writeln(S:15:5) end.

Пример 2. Дан текст из малых латинских букв, содержащий не менее 2 букв и оканчивающийся точкой. Подсчитать, сколько различных пар букв входит в этот текст. Пояснения: в текст abaabz входят пары ab (2 раза), ba, aa, bz - всего 4 различных пары. Интересной особенностью этой задачи является то, что в ее постановке никак не фигурирует массив. Однако для решения массив нужен, точнее - нужна матрица, причем в качестве индексов ее строк и столбцов удобно использовать символы - малые латинские буквы. Идея решения. Заведем логическую таблицу T ab…z a b … z и вначале запишем false во все ее клетки. Затем будем вводить символы текста и заносить true в ту клетку, индекс строки которой – это первая буква очередной пары, а индекс столбца - вторая буква пары; например, для пары bz значение true надо присвоить элементу T['b', 'z']. В конце же надо будет подсчитать, в скольких клетках стоит true.

program pairs(input,output); var T: array['a'..'z','a'..'z'] of boolean;; c1,c2: char; {с 1 - первая буква пары, с 2 – вторая} k: integer; begin {начальное заполнение Т} for c1:='a' to 'z' do for c1:='a' to 'z' do T[с 1,c2]:=false; {посимвольный ввод текста и запись true в Т} write('>'); {приглашение к вводу} read(c1); read(c2); {1-я пара} repeat T[c1,c2]:=true; c1:=c2; {к следующей паре} read(c2) until c2='.'; {подсчет числа пар с true} k:=0; for c1:='a' to 'z' do for c2:='a' to 'z' do if T[c1,c2] then k:=k+1; writeln(Ответ:, k) end.