Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка для заочников_практика.doc
Скачиваний:
1
Добавлен:
10.12.2018
Размер:
5.2 Mб
Скачать

6.2 Условие задачи №2

Ввести одномерный массив , состоящий из элементов. Каждый второй элемент увеличить в 10 раз. Массив вывести до изменения и после.

Блок-схема к задаче №2

Листинг программы на Pascal к задаче №2

program Zad6_2;

const Nmass=100;

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

i,N: byte;

begin

writeLn('Введите число элементов в массиве A');

readLn(N);

writeLn('Вводим элементы массива A:');

for i:=1 to N do

begin

write('A[',i,']=');

readLn(A[i]);

end;

//вывод массива до измененния

writeLn('Исходный массив A:');

for i:=1 to N do

write(A[i]:5);

writeLn;

// модификация массива

for i:=1 to N do

if i mod 2 = 0 then

A[i]:=A[i]*10;

//вывод массива поле измененния

writeLn;

writeLn('массив A после изменения:');

for i:=1 to N do

write(A[i]:5);

end.

6.3 Условие задачи №3

Ввести одномерный массив , вывести его. Определить – сколько раз в нём встречаются две тройки идущие подряд. Если таковых нет, то заменить нулями минимальный элемент среди тех, что стоят на нечётных позициях, а если есть, то поменять максимум среди элементов расположенных после , с первым элементом массива.

Блок-схема к задаче №3

Листинг программы на Pascal к задаче №3

program Zad6_3;

const Nmass=100;

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

N,i,k,Imax,Imin: byte;

buf:integer;

begin

cls;

writeLn('Введите число элементов в массиве A');

readLn(N);

writeLn('Вводим элементы массива A:');

for i:=1 to N do

begin

write('A[',i,']=');

readLn(A[i]);

end;

//вывод массива до измененния

writeLn('Исходный массив A:');

for i:=1 to N do

write(A[i]:5);

writeLn;

// определение серий троек

k:=0;

for i:=1 to N-1 do

if (A[i]=3) and (A[i+1]=3) then

k:=k+1;

// проверка условия наличия серий троек

if k=0 then

begin

WriteLn('В массиве нет серий из двух троек');

//если троек нет, то k=0,

//потому обнуляем минимум

//среди элементов стоящих на нечётных местах

Imin:=1;

for i:=1 to N do

if (A[i]<A[Imin]) and (i mod 2=0) then

Imin:=i;

A[Imin]:=0;

end

else

begin

WriteLn('В массиве всего ',k,' серий из двух троек');

//если k>0, то ищем максимум

//среди элементов после A[k]

Imax:=k+1;

for i:=k+1 to N do

if A[i]>A[Imax] then

Imax:=i;

//замена в 3 действия

buf:=A[1];

A[1]:=A[Imax];

A[Imax]:=buf;

end;

//вывод массива поле измененния

writeLn;

writeLn('массив A после изменения:');

for i:=1 to N do

write(A[i]:5);

end.

7. Двумерные массивы

7.1 Условие задачи №1

Ввести двумерный массив . Определить среднее геометрическое положительных чётных элементов, считая, что они в нём есть.

Блок-схема к задаче №1

Листинг программы на Pascal к задаче №1

program Zad7_1;

var A:array[1..3,1..4] of integer;

i,j,k: byte;

P,SrG:real;

begin

cls;

//ручной ввод массива

writeLn('Вводим элементы массива A:');

for i:=1 to 3 do

for j:=1 to 4 do

begin

write('A[',i,',',j,']=');

readLn(A[i,j]);

end;

k:=0;

P:=1;

for i:=1 to 3 do

for j:=1 to 4 do

if (A[i,j] mod 2=0) and (A[i,j]>0) then

begin

p:=p*A[i,j];

k:=k+1;

end;

// вычисление среднего геометрического как корня

// k-й степени из произведения P, составленного

// из k сомножителей

SrG := exp((1/k)*ln(p));

writeLn('всего чётных элементов ', k);

writeLn('их произведение ', p);

writeLn('среднее геометрическое ', SrG:8:2);

end.