Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Одномерные и двумерные массивы
Массив – это упорядоченная последовательность из фиксированного числа однотипных элементов, которая обозначается одним именем. Упорядоченность элементов заключается в том, что все эти элементы располагаются в последовательных ячейках оперативной памяти. В программировании различают следующие типы массивов: 1) Одномерные массивы (линейные таблицы); 2) Двумерные массивы (прямоугольные таблицы); 3) Многомерные массивы (трехмерные и т.д. таблицы). Для того, чтобы обратиться к нужному элементу массива необходимо указать имя массива и его индекс. Индекс – это порядковый номер элемента в массиве. Т.е. обращение происходит по правилу: идентификатор_массива[индекс] Общее количество элементов в массиве называется размерностью массива. Прежде чем в программе использовать массив или его элементы этот массив нужно, как и любую переменную, описать. Для описания массива в Паскале использую два метода: 1. с описанием пользовательского типа: Type идентификатор_типа=array[размерность] of базовый_тип_элементов; Var идентификатор_массива: идентификатор_типа; 2. без описания пользовательского типа: Var идентификатор_массива: array[размерность] of базовый_тип_элементов; Здесь размерность указывается следующим образом: [1..10] [10..100] [5..10] одномерные массивы [1..5] [1..10, 1..10] – двумерные массивы
6.1. Стандартные алгоритмы обработки массивов: 1. Ввод-вывод элементов: Program _1; Uses Crt; Const n=10; Type massiv= array [1..n] of integer; Var a: massiv; i: byte; Begin ClrScr; Writeln (‘Введите элементы массива: ’); For i: =1 to n do Begin write (‘a[‘, i, ’]=’); Readln (a[i]); end; For i: =1 to n do Write (a[i], ’ ‘); Readkey; End. 2. Нахождение суммы, произведения, среднего арифметического элементов массива: Program Summa; Uses Crt; Type massiv= array [1..10] of integer; Var a: massiv; i: byte; S: integer; Begin ClrScr; Writeln (‘Введите элементы массива: ’); For i: =1 to 10 do Begin write (‘a[‘, i, ’]=’); Readln (a[i]); end; For i: =1 to 10 do S: =s+a[i]; Writeln (‘S=’, S); Readkey; End. Program Proizvedenie; Uses Crt; Var a: array [1..10] of integer; i: byte; P: integer; Begin ClrScr; Writeln (‘Введите элементы массива: ’); For i: =1 to 10 do Begin write (‘a[‘, i, ’]=’); Readln (a[i]); end; P: =1; For i: =1 to 10 do P: =P*a[i]; Writeln (‘P=’, P); Readkey; End.
Program SrArifmet; Uses Crt; Var a: array [1..1000] of integer; S, n, i: integer; Sr: real; Begin ClrScr; Writeln (‘Введите размерность массива: ’); Readln (n); Writeln (‘Введите элементы массива: ’); For i: =1 to n do Begin write (‘a[‘, i, ’]=’); Readln (a[i]); end; For i: =1 to n do s: =s+a[i]; Sr: =s/n; Writeln (‘Sr=’, Sr); Readkey; End.
3. Нахождение максимального и минимального элемента массива. Program Maximum; Uses Crt; Var a: array [1..1000] of integer; max, n, i: integer; Begin ClrScr; Writeln (‘Введите размерность массива: ’); Readln (n); Writeln (‘Введите элементы массива: ’); For i: =1 to n do Begin write (‘a[‘, i, ’]=’); Readln (a[i]); end; max: =a[1]; For i: =1 to n do if a[i]> max then max: =a[i]; Writeln (‘max=’, max); Readkey; End. Минимальный находится аналогично. 4. Нахождение суммы элементов двумерного массива: Program Summa; Uses Crt; Type massiv= array [1..10, 1..10] of integer; Var a: massiv; i, j: byte; S: integer; Begin ClrScr; Writeln (‘Введите элементы массива: ’); For i: =1 to 10 do For j: =1 to 10 do Begin write (‘a[‘, i, ’, ’, j, ’]=’); Readln (a[i, j]); end; For i: =1 to 10 do For j: =1 to 10 do S: =s+a[i, j]; Writeln (‘S=’, S); Readkey; End.
Рассмотрим еще пример: дан массив. Найти сколько в нем пар соседних одинаковых чисел. Program massiv; Const m=100; Begin Var mas: array [1..m] of integer; Write (‘Ввести длину массива N=’); Readln (N); K: =0; For i: =1 to n do Begin Write (‘Ввести элементы массива ‘); Readln (mas[i]); End; For i: =1 to n-1 do if mas[i]=mas[i+1] then k: =k+1; Writeln (‘ Количество пар=’, k); End.
|