- •Лекция 6 Массивы. Множества. Строки Массивы
- •1 Одномерные массивы
- •1.1 Основные понятия
- •1.2 Описание массива
- •1.3 Заполнение массива
- •2. Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •3. Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •2 Двумерные массивы
- •2.1 Основные понятия
- •2.2 Описание массива
- •2 Алгоритмы формирования одномерного массива
- •3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •3.Множества
- •3. 1 Операции над множествами
- •3.2 Примеры решения задач
- •4. Строки
- •4.1 Строковые выражения
- •4.2 Стандартные процедуры и функции для обработки строковых данных
- •Insert(St1, St2, Poz)
- •4.3 Примеры решения задач
- •1.Задачи на подсчет символов.
- •2. Задачи на замену символов.
- •3. Задачи на удаление символов.
- •4. Задачи на вставку символов.
1.3 Заполнение массива
1 Способ (заполнение с клавиатуры. Динамический ввод данных)
Var
M:array[1..10] of integer;
I: byte;
Begin
For I:=1 To 10 Do Begin
Write('Введите ',I,' значение ');
ReadLn(M[I]);
End;
End.
2 Способ (с использованием генератора случайных чисел)
Var
M: array[1..25] of integer;
I: byte;
Begin
For I:=1 To 25 Do Begin
M[I]:=Random(50);
Write(M[I]:4);
End;
End.
3 Способ (статический ввод данных)
Const
M: array[1..12] of integer = (31,28,31,30,31,30,31,31,30,31,30,31);
Var
I: Integer;
Begin
For I:=1 To 9 Do
Write(M[I]:3);
End.
1.4 Примеры решения задач
1. Алгоритмы поиска и присвоения значений элементам массива
1. Составить программу обработки массива размерностью n, заполненного целыми числами, введенными с клавиатуры. Вывести индексы и значения положительных элементов массива.
USES Crt;
CONST N=10;
VAR
A:ARRAY[0..N] OF INTEGER;
I:BYTE;
BEGIN
ClrScr;
{ Заполнение массива }
FOR I:=1 TO N DO Begin
Write('Введите ',I,' элемент массива '); ReadLn(A[I]);
End;
{ Обработка элементов массива }
FOR I:=1 TO N DO
IF A[I]>0 THEN WriteLn('Положительный элемент = ',A[I],' его индекс = ',I);
END.
2. Составить программу вычисления и печати значений функции Y=sin(x-1)/2x. Значения аргументов задать в массиве X, состоящего из 6 элементов. Значения функции записать в массив Y.
USES Crt;
VAR
X,Y:ARRAY[0..6] OF REAL;
I: BYTE;
BEGIN
ClrScr;
FOR I:=1 TO 6 DO Begin
Write('Введите ',I,' значение аргумента '); ReadLn(X[I]);
End;
FOR I:=1 TO 6 DO Begin
Y[I]:=SIN(X[I]-1)/(2*X[I]);
WriteLn(' X= ',X[I]:4:1,' Y=',Y[I]:5:2);
End;
END.
3. Дан массив M, состоящий из 30 элементов. Элементы массива - произвольные целые числа. Выдать на экран значение каждого пятого и положительного элемента. Указанные элементы выдать в строку.
USES Crt;
VAR
M:ARRAY[0..30] OF INTEGER;
I: BYTE;
BEGIN
ClrScr; Randomize;
WriteLn(' Значения элементов массива');
FOR I:=1 TO 30 DO Begin
M[I]:=Random(20)-4; Write(M[I]:3);
End; WriteLn;
I:=5;
WriteLn(' Значения каждого пятого и положительного элемента массива');
While I<=30 DO Begin
IF M[I] > 0 THEN Write(M[I]:3);
I:=I+5;
End;
END.
Примеры для самостоятельного решения:
Дан одномерный массив размерностью 10, заполненный целыми числами, введенными с клавиатуры, и величина N. Отрицательные элементы заменить на N. Измененный массив вывести на экран одной строкой.
Дан одномерный массив размерностью N, заполненный случайными числами в интервале от -15 до 20. Вывести на экран значения элементов массива, абсолютное значение которых >10.
Дан одномерный массив размерностью N, заполненный случайными числами. Каждый третий элемент массива возвести в квадрат, если элемент отрицательный. Измененный массив вывести на экран.
Составить программу вычисления и печати значений функции Y=(sinx+1)cos4x. Значения аргументов задать в массиве X, состоящего из 10 элементов. Значения функции записать в массив Y.
Из элементов массива А, состоящего из 25 элементов, сформировать массив D той же размерности по правилу: первые 10 элементов находятся по формуле Di=Ai+i, остальные - по формуле Di=Ai-i.
