![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ввод и вывод двухмерного массиваСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
При обработке элементов двумерного массива используются сложные (вложенные) циклы. Пример 7.10. Ввести с пульта элементы массива A[M, N]. Приведем блок-схему сложного цикла.
![]() ![]()
![]() Здесь используются две целочисленные переменные I и J, определяющие номера строк и столбцов, т.е. положение элемента массива. Программисту надлежит внимательно относиться к назначению и изменению индексов (в циклах) и неукоснительно выполнять следующие требования к сложным (вложенным) циклам: – параметры внутреннего и внешнего циклов имеют различные имена; – внутренний цикл полностью лежит внутри внешнего; – недопустим вход во внутренний цикл, минуя внешний. Фрагмент программы имеет вид For I:=1 to m do For J:=1 to n do Readln(A[I, J]); или For I:=1 to m do For J:=1 to n do Begin Write(‘A[‘, I:2, ‘,’, J:2, ’]=’); Readln(A[I, J]); End; Подумайте, в чем разница этих фрагментов, и в каких случаях удобнее использовать тот или иной вариант. Пример 7.11. Вывести элементы двухмерного массива в виде матрицы. For I:=1 to m do begin For J:=1 to n do Write(A[I, J]:10:2); Writeln; {перевод курсора на новую строку}
Обратите внимание, именно выделенные элементы этого фрагмента программы обеспечивают вывод элементов массива в виде четко выраженных строк и столбцов. Пример 7.12. Вычислить сумму элементов квадратной матрицы X[N, N], стоящих на главной диагонали (элементов X[I, I]. 1-й способ
For I:=1 to n do For J:=1 to n do If I=J then Sum:=Sum+X[I, J]; Writeln(Sum); Пример 7.13. Сортировка массива. В одномерном массиве X[N] произвести перестановку так, чтобы элементы были расположены по возрастанию, т.е. Рассмотрим метод «пузырьков». Идея метода заключается в последовательном упорядочении смежных пар элементов массива
В итоге максимальный элемент переместится в конец, т.е. в n -ю позицию. Затем эту процедуру повторяют для (n -1) элементов, т.е. для элементов Такой алгоритм имеет структуру двух вложенных друг в друга циклов. Причем внутренний цикл является циклом переменной (сокращающейся) длины.
For I:=1 to N-1 do For K:=1 to N-1 do If X[K]> X[K+1] then Begin A:= X[K] X[K]:= X[K+1]; X[K+1]:=A; End;
Типизированная константа
В процессе отладки программы вводить каждый раз элементы массива занятие весьма утомительное. В этих случаях для ввода элементов массива удобно использовать типизированную константу. В отличие от нетипизированной константы, в описании типизированной константы указываются как тип, так и значение константы.
Формат типизированной константы: Const <Имя массива>: Array[<тип индексов>] of (<тип элементов>) = (<значения элементов массива>); Например. Var A1: Array[1..5] of integer = (1, 2, 3, 4, 5); A2: Arrey[1..2,1..3] of real = ((0.5, 1.2, 3), (6, 7, 3.2)); Здесь инициализированы два массива: одномерный массив А1 с элементами {1, 2, 3, 4, 5} и двухмерный массив – матрица
Контрольные вопросы и задания 1. Что такое массив? Что такое индекс, каким требованиям он удовлетворяет? 2. Два способа описания массивов (явное и неявное). 3. Понятие размера и размерности массива. 4. Особенности расположения элементов массива в памяти ПК. 5. Организация ввода и вывода элементов массива. 6. На плоскости своими координатами задано 5 точек. Найти расстояние от самой удаленной от начала координат точки. 7. Написать фрагмент программы, выводящий элементы двухмерного массива в виде матрицы.
Работа с внешними файлами данных
Общие сведения Большие совокупности данных (списки, справочники и т.д.) удобно хранить на внешних носителях в виде файлов. Паскаль имеет средства для организации хранения информации на внешних носителях и доступа к этой информации. В качестве внешнего носителя может служить как винчестер, так и дискетка. Такие файлы называют внешними файлами данных (ВФ). До сих пор исходные данные вводились с клавиатуры. При этом ни исходные данные, ни результаты счета не сохранялись. Всякий раз их приходилось вводить заново. Это неудобно, особенно когда данных много (например, массивы), и трудоемко, особенно в процессе отладки программы. Таким образом, целесообразность применения внешних файлов данныхобоснована следующим: – ввод больших объемов исходных данных с клавиатуры утомителен и требует большого количества времени; гораздо удобнее создать файл данных заранее и использовать его неоднократно; – внешний файл данных может быть подготовлен другой программой, другим программистом.
В Паскале существует несколько типов внешних файлов. По способу доступа к элементам различают файлы последовательного и прямого доступа. Файл последовательного доступа – это файл, доступ к элементам которого обеспечивается в той же последовательности, в какой они записывались в файл. Например, если нужно прочесть 100-й элемент, то предварительно нужно прочесть первые 99 элементов этого файла. Файл прямого доступа – это файл, доступ к элементам которого осуществляется по адресу этого элемента. В этом случае для чтения 100–го элемента достаточно указать номер его позиции. В этом курсе рассматриваются только внешние файлы последовательного доступа, в которых данные записываются в виде символов. Такие внешние файлы называются текстовыми файлами. Различная документация, информация, передаваемая по каналам электронной связи, – это все текстовые файлы. Текстовый файл представляет собой последовательность символов, разбитую на строки длиной от 0 до 256 символов. Каждая строка заканчивается специальным кодом – маркером конца стоки (МКС). А весь файл заканчивается маркером конца файла (МКФ).
Текущий указатель
В любой момент времени программе доступен только один элемент файла, тот, на который ссылается текущий указатель файла. Текстовый файл можно создать или отредактировать в текстовом редакторе или программно. Его можно просмотреть на экране, распечатать на принтере.
Файловая переменная Допустим, исходные данные хранятся во внешнем файле Dan1.pas на каком-либо носителе (на винчестере или на дискете). Вопрос, как он был создан, рассмотрим позже.
Имя файловой переменной назначается в соответствии с синтаксисом, например F, F1, Finp, Fout. Прежде всего, файловая переменная должна быть объявлена в программе в разделе описаний. Для описания файловой переменной текстового файла используется стандартный тип – Text. Формат описания: Var <имя ФП>: Text; Затем в программе необходимо проинформировать компилятор о местонахождении внешнего файла. Для этого устанавливается связь между ФП и конкретным внешним файлом на конкретном носителе.
Формат процедуры: Assign(<имя ФП>,<имя ВФ>); Это можно представить следующей схемой: Например. Assign(Finp,’Dan1.pas’); {ВФ находится в текущей папке} Assign(Finp,’A:\Dan1.pas’); { ВФ находится на диске А:}
|
||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 566; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.251.50 (0.013 с.) |