русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ввод и вывод элементов массива


Дата добавления: 2013-12-23; просмотров: 3693; Нарушение авторских прав


 

Ввод и вывод элементов массивов происходит поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания или путем считывания из файла, но на практике они чаще всего вводятся с клавиатуры или с помощью генератора случайных чисел. Последний способ целесообразно использовать тогда, когда количество элементов массива достаточно велико.

Примеры ввода одномерных массивов:

а) ввод с клавиатуры

FOR I: = 1 TO N DO READ ( M [I] );

б) ввод с помощью генератора случайных чисел

RANDOMIZE; { инициализация генератора случайных чисел }

FOR I: = 1 TO N DO M [I]: = - 25 + RANDOM (D);

Замечание 2: Стандартная функция Random формирует случайное целое число из диапазона от 0 до D-1. При этом i-му элементу массива будет присвоена сумма выбранного случайного числа и -25. Таким образом, массив будет заполняться целыми случайными числами от -25 до -25 + (D-1). Например, если выбрать D равным 51, то массив будет заполняться случайными числами от -25 до +25.

Вывод одномерных массивов происходит аналогичным образом, например:

FOR I: = 1 TO N DO WRITELN ( M [I] ); {вывод элементов в столбец}

Ввод двумерных массивов (матриц) производится с помощью вложенных циклов, а именно с помощью вложенных операторов FOR, т.к. количество элементов массива заранее определено:

 

 

FOR I: = 1 TO N DO

FOR J: = 1 TO K DO READ ( M [I, J] );

Вывод значений элементов двухмерных массивов производится аналогичным образом с использованием операторов вывода WRITE и WRITELN:

………………

FOR I: = 1 TO N DO

BEGIN

FOR J: = 1 TO K DO WRITE (M [I, J]); {вывод элементов первой строки матрицы в одну строку}

WRITELN {перевод курсора на новую строчку для того, чтобы элементы 2-й, 3-й и т.д. строк выводились с новой строки}

END;

……………..

Таким же образом, поэлементно, происходит ввод и вывод многомерных массивов.



 

Замечание 3: Самой распространенной ошибкой при работе с массивами является выход индексов за допустимые диапазоны. Для исключения таких ошибок в среде Turbo Pascal предусмотрена директива компилятора {R}. При указании в программе директивы {$R+} все массивы проверяются на предмет нахождения их внутри указанных границ. Если обнаруживается нарушение диапазона, программа завершает свою работу, выводя сообщение об ошибке выполнения. Если директива не используется (этот режим принят по умолчанию), выход индекса за пределы допустимого диапазона не приведет к прекращению работы программы. Но при обращении к ''несуществующему'' элементу массива даст неопределенный результат, что может сделать ход дальнейшего выполнения программы непредсказуемым.

Замечание 4: Следует заметить, что применение директивы {R+} несколько замедляет выполнение программы и увеличивает ее размер. Поэтому рекомендуется использовать эту директиву при отладке, а затем ее удалить из текста программы.

 

В качестве примера рассмотрим решение двух задач с одномерным и двумерным массивами.

Пример 1. Создать одномерный вещественный массив из 25 элементов. Определить максимальный и минимальный элементы массива и поменять их местами. Полученный результат вывести на экран.

Схема алгоритма:

 
 

 

 


Текст программы на языке Turbo Pascal:

PROGRAM MAS;

VAR

M: ARRAY [1.. 25] OF REAL; {Вещественный массив}

MAX, MIN, MN: REAL;

I, K, N: INTEGER; {Вспомогательные переменные}

BEGIN

{Ввод вещественного массива из 25 элементов с клавиатуры}

FOR I: = 1 TO 25 DO READ ( M [I] );

{Переменным MAX и MIN присваиваем значение первого элемента массива}

MAX: = M [1]; K: = 1; {Определяем максимальный и минимальный элементы

MIN: = M [1]; N: = 1; массива и их индексы}

FOR I:= 2 TO 25 DO

BEGIN

IF M [I] > MAX THEN

BEGIN

MAX: = M [I];

K: = I;

END;

IF M[I] < MIN THEN

BEGIN

MIN: = M [I];

N: = I;

END;

END;

MN: = M [K]; {Меняем местами максимальный и минимальный элементы}

M [K]: = M [N];

M [N]: = MN;

{ Вывод полученного массива на экран }

FOR I: = 1 TO 25 DO WRITELN ( M[I] );

READLN

END.

Пример 2. Создать целочисленную матрицу А размером 10х8. Сформировать одномерный массив В, который содержит суммы положительных элементов каждой строки матрицы А и вывести его на экран.

 

 


Текст программы на языке Turbo Pascal:

PROGRAM PRIM;

VAR

A: ARRAY [1.. 10, 1.. 8] OF INTEGER;

B: ARRAY [1.. 10] OF INTEGER;

I, J, S: INTEGER;

BEGIN

{Ввод целочисленной матрицы А 10х8 с клавиатуры}

FOR I:= 1 TO 10 DO

FOR J: = 1 TO 8 DO READ ( A[ I, J] );

{ Вычисление суммы положительных элементов каждой строки матрицы А и формирование массива В}

FOR I: = 1 TO 10 DO

BEGIN

S: = 0;

FOR J: = 1 TO 8 DO IF A [ I, J ] > 0 THEN S: = S + A [ I, J ];

B [ I ]: = S;

END;

{Вывод сформированного массива В на экран}

FOR I: = 1 TO 10 DO WRITELN ( B [ I ] );

READLN

END.

 

 



<== предыдущая лекция | следующая лекция ==>
Действия над элементами массивов | Работа с матрицами


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.