Действия с одномерными массивами
Условимся, что в векторе а содержится n элементов.
• Вычисление суммы элементов:
s:=0; for i:=1 to n do s:=s+a[i]; { обычное накопление суммы в s }
• Вычисление произведения элементов:
s: =1; for i:=l to n do s:=s*a[i]; { накопление произведения в s }
• Подсчет количества элементов, удовлетворяющих какому-либо условию. Например, подсчет количества четных чисел в целочисленном массиве:
k:=0; for i:=l to n do if a[i] mod 2=0 then k:=k+l; { увеличиваем на 1 счетчик четных чисел, если число делится на 2 }
• Поиск элемента с заданным значением. Найти элемент — это значит выяснить его номер в массиве (см. листинг 4.1).
i:=0; { номер элементов массива } repeat i:=i+l; until(a[i]=0) { нашли } or (i=n) { массив кончился }; if a[i]=0 then writeln('Номер первого нулевого элемента = ',i) else writeln('Таких элементов нет');
• Поиск максимального элемента и его номера (см. листинг 4.2).
Переменная max хранит значение максимума, k — его номер в массиве:
max:=а[1]; к:=1; { поиск начинаем с первого элемента } for i:=2 to n do { перебираем элементы, начиная со второго } if a[i]>max then begin max:=a[i]; k:=i; { запоминаем значение и номер элемента, который больше всех предыдущих} end;
Аналогично, при смене знака min>a[i] находится минимальный элемент min.
47.Двухмерный массив. И так разберём, что такое двумерный массив и как он выглядит. Для тех кто не в теме, следует прочитать для начала урок посвящённый массивам вообще и одномерному массиву в частности.
Конец формы
Начало формы
Название урока Одномерный массив.
Конец формы
Начало формы
Сказать простым языком двумерный массив это массив, элементами которого выступают другие массивы с данными (массив в массиве). Кстати сказать вложенность массивов может быть не только двумерной, но на практике такое встречается крайне редко. Причина тому, затраты на обработку. Начиная работу с массивом на странице, скрипт загружает всё содержимое массива в оперативную память, тем самым процесс работы с таким массивом становится слишком ресурсоёмким, не оправданным. В таких случаях применяется база данных, за счёт чего происходит увеличение быстродействия.
Конец формы
Начало формы
Двумерный массив это по сути матрица, т.е. таблица с данными.
48. Строковый тип (в программировании) — тип данных, значениями которого является произвольная последовательность символов алфавита. Каждая переменная такого типа может быть представлена фиксированным количеством байтов или иметь произвольную длину.
Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений, как констант, так и переменных.
Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=). В результате сравнения двух строк получается логическое значение (true или false). Сравнение строк производится слева направо посимвольно до первого несовпадающего символа, большей считается та строка, в которой первый несовпадающий символ имеет больший код в таблице кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что короткая строка меньше. Строки равны, если они имеют равную длину и соответствующие символы совпадают.
49. Файловые типы данных введены в язык для работы с внешними устройствами - файлами на диске, портами, принтерами и так далее. Передача данных с внешнего устройства в оперативную память называется чтением, или вводом, обратный процесс - записью, или выводом.
Файловые типы языка Паскаль бывают стандартные и определяемые программистом. Стандартными являются текстовый файл (text) и бестиповой файл(file). Они описываются в программе, например, так:
var ft : text;
fb : file;
Программист может определить файл, состоящий из элементов определенного типа. Такой файл называется компонентным, или типизированным:
var fc : file of <тип_компонент>
Компоненты могут быть любого типа, кроме файлового. Любой файл, в отличие от массива и записи, может содержать неограниченное количество элементов.
Текстовые файлы предназначены для хранения информации в виде строк символов. При выводе в текстовый файл данные преобразуются из внутренней формы представления в символьную, понятную человеку, при вводе выполняется обратное преобразование. Бестиповые и компонентные файлы хранят данные в том же виде, в котором они представлены в оперативной памяти.
Доступ к файлам может быть последовательным, когда очередной элемент можно прочитать/записать только после аналогичной операции с предыдущим элементом, и прямым, при котором выполняется чтение/запись произвольного элемента по заданному адресу. Текстовые файлы позволяют выполнять только последовательный доступ, в бестиповых и компонентных можно использовать оба метода.Чтобы не путать файлы в программе и файлы на диске, переменные файлового типа называютлогическими файлами, а реальные устройства и файлы на диске - физическими файлами. Их имена задаются с помощью строк символов, например:
'primer.pas' - имя файла в текущем каталоге
'd:\pascal\input.txt' - полное имя файла
'CON' 'NUL' 'COM1' 'PRN' - имена устройств
Для организации ввода-вывода в программе необходимо выполнить следующие действия:
объявить файловую переменную;
связать ее с физическим файлом;
открыть файл для чтения и/или записи;
выполнить операции ввода-вывода;
закрыть файл.
Ввод-вывод выполняется не непосредственно между внешним устройством и переменными программы, а через так называемый буфер - специальную область оперативной памяти. Буфер выделяется для каждого открытого файла. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь буфер не заполнится. Только после этого или после специальной команды сброса происходит передача данных на внешнее устройство. При чтении из файла данные вначале считываются в буфер, причем данных считывается не столько, сколько запрашивается, а сколько поместится в буфер.
Конец формы