Программирование в Lazarus. Массивы

Содержание

Слайд 2

Массивы

Массив – это упорядоченная последовательность данных одного типа, имеющих общее имя

Массивы Массив – это упорядоченная последовательность данных одного типа, имеющих общее имя
и занимающих непрерывное место в памяти.
Данные в массиве называются элементами массива.

Слайд 3

Массивы

A

массив

3

15

НОМЕР элемента массива
(ИНДЕКС)

A[1]

A[2]

A[3]

A[4]

A[5]

ЗНАЧЕНИЕ элемента массива

A[2]

НОМЕР (ИНДЕКС) элемента массива: 2

ЗНАЧЕНИЕ элемента массива: 10

Массивы A массив 3 15 НОМЕР элемента массива (ИНДЕКС) A[1] A[2] A[3]

Слайд 4

Объявление массивов

Зачем объявлять?
определить имя массива
определить тип массива
определить число элементов
выделить место в

Объявление массивов Зачем объявлять? определить имя массива определить тип массива определить число
памяти
Массив целых чисел:
Размер через константу:

имя

начальный индекс

конечный индекс

тип
элементов
var A: array[1.. ] of integer;

const N=5;

N

var A : array[ 1 .. 5 ] of integer ;

Слайд 5

Объявление массивов. Примеры.

Массивы других типов:
Другой диапазон индексов:
Индексы массива могут быть

Объявление массивов. Примеры. Массивы других типов: Другой диапазон индексов: Индексы массива могут
и других типов.

var X, Y: array [1..10] of real;
C: array [1..20] of integer;

var Q: array [0..9] of real;
C: array [-5..13] of integer;

Слайд 6

Что неправильно?

var a: array[10..1] of integer;
...
A[5] := 4.5;

[1..10]

var a: array [1..10]

Что неправильно? var a: array[10..1] of integer; ... A[5] := 4.5; [1..10]
of integer;
...
A[0] := 15;

var a: array [0..9] of integer;
...
A[10] := 'X';

Слайд 7

Массивы

Объявление:
Ввод массива из поля Memo:
Поэлементные операции:
Вывод в поле Memo :

const N =

Массивы Объявление: Ввод массива из поля Memo: Поэлементные операции: Вывод в поле
5;
var a: array[1..N] of integer;
i: integer;

for i:=1 to frm1.mem1.count do
a[i]:=strtoint(frm1mem1.lines[i-1]);

for i:=1 to N do a[i]:=a[i]+1;

Frm1.mem2.clear;
for i:=1 to n do
frm1.mem2.Lines.Append(inttostr(a[i]));

Слайд 8

Генератор случайных чисел в Паскале

Целые числа
var x: integer;
...
в интервале

Генератор случайных чисел в Паскале Целые числа var x: integer; ... в
[0,N):
x := random ( 100 ); { интервал [0,99] }
в интервале [a,b]:
x := random(b-a+1)+a;{ интервал [a,b] }
Вещественные числа
var x: real;
...
в интервале [0,1)
x := random; { интервал [0,1) }
в интервале [a,b]
x := random*(b-a)+a; { интервал [a,b] }

Слайд 9

Заполнение массива случайными числами

procedure TFrm1.Btn1Click(Sender: TObject);
var low,top:integer;
c:mas;
begin
inp(low,top); //задать границы массива

Заполнение массива случайными числами procedure TFrm1.Btn1Click(Sender: TObject); var low,top:integer; c:mas; begin inp(low,top);
zap(c,low,top); //заполнить массив случайными числами
vivod(c); // вывести в поле MEMO
end;

Слайд 10

const n=10;
type mas=array[1..n] of integer;
procedure inp(var n,m:integer);
begin
n:=strtoint(frm1.edt1.text);
m:=strtoint(frm1.edt2.text);
end;
procedure

const n=10; type mas=array[1..n] of integer; procedure inp(var n,m:integer); begin n:=strtoint(frm1.edt1.text); m:=strtoint(frm1.edt2.text);
zap(var c:mas; niz,ver:integer);
var i:integer;
begin
for i:=1 to n do
c[i]:=random(ver-niz+1)+niz;
end;
procedure vivod(c:mas);
var i:integer;
begin
frm1.mem1.lines.clear;
for i:=1 to n do
frm1.mem1.Lines.Append(inttostr(c[i]));
end;

Слайд 11

Программирование в Lazarus

Тема Обработка массивов

Программирование в Lazarus Тема Обработка массивов

Слайд 12

Подсчет элементов

Задача:
Заполнить массив случайными числами и подсчитать количество нулевых элементов.
Решение:
записать

Подсчет элементов Задача: Заполнить массив случайными числами и подсчитать количество нулевых элементов.
в счётчик ноль
просмотреть все элементы массива: если очередной элемент = 0, то увеличить счётчик на 1
вывести значение счётчика

Слайд 13

Подсчет количества нулевых элементов

const N = 5;
Type mas=array [1..N] of integer;
Var A:mas;

Подсчет количества нулевых элементов const N = 5; Type mas=array [1..N] of
i, count: integer;

begin
{ здесь надо заполнить массив }
count:= 0;
for i:=1 to N do
if A[i] = 0 then count:= count + 1;
lbl1.Caption:=inttostr(count);
End;

for i:=1 to N do
if A[i] = 0 then count:= count + 1;

перебираем все элементы массива

Слайд 14

Сумма выбранных элементов

Задача:
Заполнить массив случайными числами в интервале и подсчитать

Сумма выбранных элементов Задача: Заполнить массив случайными числами в интервале и подсчитать
сумму положительных элементов.
Используем переменную S для накопления суммы.

S:=0

S:= A[1]

S:= A[1]+A[2]

S:= A[1]+A[2]+A[3]

S:= A[1]+A[2]+…+A[N]

Слайд 15

Сумма выбранных элементов

Задача:
Заполнить массив случайными числами и подсчитать сумму положительных

Сумма выбранных элементов Задача: Заполнить массив случайными числами и подсчитать сумму положительных
элементов.
Решение:
записать в переменную S ноль
просмотреть все элементы массива: если очередной элемент > 0, то добавить к сумме этот элемент
вывести значение суммы