Лабораторная работа 5 работа с векторами
ЦЕЛЬ РАБОТЫ:
1. Усвоить правила работы с переменными типа
массив языка программирования Паскаль.
2. Научиться составлять алгоритмы и программы
для обработки одномерных массивов.
Краткие сведения из теории
Под массивом понимается упорядоченная совокупность конечного числа данных одного типа, об"единенных под общим именем. Имена массивов образуются так же, как и имена простых переменных. Одномерный массив называется вектором. Для описания массивов используется служебное слово array. Массив в Турбо-Паскале можно описывать двумя способами:
а) в разделе описания переменных VAR:
var
<имя переменной>: array [тип индекса] of <тип компоненты>;
б) определить сначала тип, а затем описать массив этим типом
type
<имя типа>: array [тип индекса] of <тип компоненты>;
var
<имя переменной>: <имя типа>;
где <тип индекса> - порядковый тип;
<тип компоненты> - любой тип.
ПРИМЕР 1: В векторе найти номера и значения первого мини-
мального и последнего максимального элементов.
А Л Г О Р И Т М
алг Первый минимум и последний максимум
арг n:цел; A:вещ таб [1..n]
рез n min, n max: цел;
a min, a max: вещ
раб i: цел
нач
ввод n
нц для i от 1 до n
ввод A[i]
кц
amin:=A[1]; nmin:=1;
amax:=A[1]; nmax:=1;
нц для i от 2 до n
если A[i] < amin
то amin:=A[i]; nmin:=i
все
если A[i] >= a max
то amax:=A[i]: nmax:=i
все
кц
вывод nmin, amin, nmax, amax
кон
П Р О Г Р А М М А
program min_and_max;
const n1=100;
var a: array [1 .. n1] of real;
n,i,nmin, nmax: integer;
amin, amax: real;
begin
writeln ('n=');
readln (n);
writeln ('Вводите элементы вектора');
for i:=1 to n do
readln (a[i]);
amin:=a[1]; nmin:=1;
amax:=a[1]; nmax:=1;
for i:=1 to n do
begin
if a[i] < amin then
begin
amin:=a[i]; nmin:=i
end;
if a[i] >= amax then
begin
amax:=a[i]; nmax:=i
end
end;
writeln ('min=', amin:8:3,',nmin=', nmin:3);
writeln ('max=', amax:8:3,',nmax=', nmax:3);
end.
ПРИМЕР 2: Создать массив из N случайных целых чисел, равно-
мерно распределенных в диапазоне от 0 до 100.
Вычислить среднее арифметическое этих чисел.
А Л Г О Р И Т М
алг Среднее арифметическое
арг n:цел;
рез m: цел таб [1..n];
s: вещ
раб i: цел
нач
ввод n
нц для i от 1 до n
m[i]:=random(101)
вывод m[i]
кц
s:=0;
нц для i от 1 до n
s:=s+m[i]
кц
s:=s/n;
вывод s
кон
П Р О Г Р А М М А
program SRED;
const
nmax=1000;
type
x=array [1 .. nmax] of integer;
var
m:x;
i,n:integer;
s:real;
begin
writeln ('n='); readln(n);
{создание массива}
for i:=1 to n do
begin
m[i]:=random (101);
writeln (m[i])
end;
s:=0;
for i:=1 to n do
s:=s+m[i];
s:=s/n;
writeln ('s='s)
end.