Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМП к заданиям по информатике “Обработка массив...doc
Скачиваний:
5
Добавлен:
15.11.2019
Размер:
651.26 Кб
Скачать

4.2.3.5. Вывод информации Алгоритм процедуры writevect

n ,k,f [1..n]

нет

д а

Таблица результатов

Имя

Тип

Назначение

Параметр

n

целый

размерность

формальный

f[1..n]

вектор

i

параметр цикла

локальный

k

кол-во строк

procedure writevect(n,k:integer; f:vect);

var i:integer;

begin

for i:=1 to n do

begin

write(f[i]:5);if i mod round(n/k)=0 then writeln;

end;

writeln;

end {writevect};

3.3. Паскаль-программа

program kurslab1;{Хасанов А. А. ст.гр. АГ 98-02 вар. 111}

uses crt;

type vect=array[1..99] of integer;

var f: vect; n,a,b,s,mx:integer;

{-----------Часть 1--------------}

procedure vector(n,a,b:integer;var f:vect);

var i:integer;

begin

for i:=1 to n do f[i]:=round((b-a)*random(100)/100+a);

end;

{-----------Часть 2--------------}

function sum(n:integer;f:vect):integer;

var i,s:integer;

begin

s:=0;

for i:=round(n/2)+1 to round(3*n/4) do

if f[i] > 0 then s:=s+f[i];

sum:=s;

end;

{-----------Часть 3-------------}

function max(n:integer; f:vect):integer;

var i,mx:integer;

begin

mx:=-1000;

for i:=round(n/3)+1 to round(2*n/3) do

if odd(i) then

if f[i] > mx then mx:=f[i];

max:=mx;

end;

{-----------Часть 4----------------}

procedure porjadok(n:integer;var f:vect);

var k,j,c:integer;

begin

for i:=round(n/2)+1 to n-1 do

if odd(i) then

begin k:=i;

for j:=i+2 to n do

if odd(j) then

if sqr(f[j]) > sqr(f[k]) then k:=j;

if i <> k then

begin

c:=f[i];

f[i]:=f[k];

f[k]:=c;

end;

end;

end;

{--------Вывод вектора--------------}

procedure writevect(n,k:integer; f:vect);

var i:integer;

begin

for i:=1 to n do

begin

write(f[i]:5);if i mod round(n/k)=0 then

writeln;

end;

if n mod k <> 0 then writeln;

end;

{----------Основная программа-----}

begin

clrscr;

write('Введите размерность вектора ');readln(n);

write('Интервал значений от ');read(a);

write('до ');readln(b);

writeln;writeln(' ':25,’Исходные данные’);

writeln('Размерность вектора n = ',n);

writeln('Интервал [',a,',',b,']');writeln;

writeln(' ':26,'Результаты расчета');

randomize;

vector(n,a,b,f);

writeln('--------------------Часть 1---------------------------');

writeln(‘Вектор F из ‘,n,’ элементов в интервале [‘,a,’,’,b,’], полученных’);

writeln(‘при помощи генератора случайных чисел’);

writevect(n,4,f);

writeln('--------------------Часть 2---------------------------');

writeln('Сумма положительных элементов третьей четверти вектора');

s:=sum(n,f); writeln(‘ s=’,s);

writeln('--------------------Часть 3---------------------------');

writeln('Наибольший элемент второй трети среди нечетных по номеру');

writevect(n,3,f);

mx:=max(n,f);writeln(‘ mx=’,mx);

writeln('--------------------Часть 4---------------------------');

writeln(‘Вектор F с упорядоченными по убыванию квадратов значений’);

writeln(‘нечетными по номеру элементами второй половины’);

porjadok(n,f);

writeln('Упорядоченный вектор F’);

writevect(n,2,f);

writeln('----------------Конец задачи-----------------------');

end.