Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; {перевод курсора на новую строку} End; Обратите внимание, именно выделенные элементы этого фрагмента программы обеспечивают вывод элементов массива в виде четко выраженных строк и столбцов. Пример 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) элементов, т.е. для элементов , и наибольший из них помещают в (n –1)-ю позицию и т.д., вплоть до цепочки из 2 элементов: х 1 и х 2. Такой алгоритм имеет структуру двух вложенных друг в друга циклов. Причем внутренний цикл является циклом переменной (сокращающейся) длины.
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. Написать фрагмент программы, выводящий элементы двухмерного массива в виде матрицы.
Лекция 8. Работа с внешними файлами данных
Общие сведения Большие совокупности данных (списки, справочники и т.д.) удобно хранить на внешних носителях в виде файлов. Паскаль имеет средства для организации хранения информации на внешних носителях и доступа к этой информации. В качестве внешнего носителя может служить как винчестер, так и дискетка. Такие файлы называют внешними файлами данных (ВФ). До сих пор исходные данные вводились с клавиатуры. При этом ни исходные данные, ни результаты счета не сохранялись. Всякий раз их приходилось вводить заново. Это неудобно, особенно когда данных много (например, массивы), и трудоемко, особенно в процессе отладки программы. Таким образом, целесообразность применения внешних файлов данныхобоснована следующим: – ввод больших объемов исходных данных с клавиатуры утомителен и требует большого количества времени; гораздо удобнее создать файл данных заранее и использовать его неоднократно; – внешний файл данных может быть подготовлен другой программой, другим программистом. В Паскале существует несколько типов внешних файлов. По способу доступа к элементам различают файлы последовательного и прямого доступа. Файл последовательного доступа – это файл, доступ к элементам которого обеспечивается в той же последовательности, в какой они записывались в файл. Например, если нужно прочесть 100-й элемент, то предварительно нужно прочесть первые 99 элементов этого файла. Файл прямого доступа – это файл, доступ к элементам которого осуществляется по адресу этого элемента. В этом случае для чтения 100–го элемента достаточно указать номер его позиции. В этом курсе рассматриваются только внешние файлы последовательного доступа, в которых данные записываются в виде символов. Такие внешние файлы называются текстовыми файлами. Различная документация, информация, передаваемая по каналам электронной связи, – это все текстовые файлы. Текстовый файл представляет собой последовательность символов, разбитую на строки длиной от 0 до 256 символов. Каждая строка заканчивается специальным кодом – маркером конца стоки (МКС). А весь файл заканчивается маркером конца файла (МКФ). Схематично это выглядит так: Текущий указатель
В любой момент времени программе доступен только один элемент файла, тот, на который ссылается текущий указатель файла. Текстовый файл можно создать или отредактировать в текстовом редакторе или программно. Его можно просмотреть на экране, распечатать на принтере.
Файловая переменная Допустим, исходные данные хранятся во внешнем файле Dan1.pas на каком-либо носителе (на винчестере или на дискете). Вопрос, как он был создан, рассмотрим позже. Наряду с именем конкретного файла на конкретном носителе вводится понятие файловой переменной (ФП). Имя файловой переменной назначается в соответствии с синтаксисом, например F, F1, Finp, Fout. Прежде всего, файловая переменная должна быть объявлена в программе в разделе описаний. Для описания файловой переменной текстового файла используется стандартный тип – Text. Формат описания: Var <имя ФП>: Text; Затем в программе необходимо проинформировать компилятор о местонахождении внешнего файла. Для этого устанавливается связь между ФП и конкретным внешним файлом на конкретном носителе. Связь между внешним файлом и файловой переменной в программе устанавливается с помощью процедуры Assign. Формат процедуры: Assign(<имя ФП>,<имя ВФ>); Это можно представить следующей схемой: Например. Assign(Finp,’Dan1.pas’); {ВФ находится в текущей папке} Assign(Finp,’A:\Dan1.pas’); { ВФ находится на диске А:}
|
||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 560; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.14.12 (0.007 с.) |