Program progn;

usesWincrt;

Const

n=4;

m=4;

Var

i,j:byte;

a:array[1..n,1..m]ofinteger;

b:array[1..n]ofinteger;

s,k:byte;

{ аналогично предыдущей }

Begin

fori:=1toN do

read(b[i]);

forj:=1tomdo

Begin

s:=0;

fori:=1tondo

Begin

read(a[i,j]);

s:=s+b[i]*a[i,j];{выполнение

умножения}

End;

c[j]:=s;

End;

write(s);

End.

 

Пример7_11.Вычисление произведения всех элементов массива.

Programlupa3;

UsesWinCrt;

const

a:array[1..4,1..4]ofinteger=((4,2,-3,-6),

(1,8,3,2),{Ввод с помощью}

(1,4,98,3),{типизированной

константы}

(3,1,1,1));

var

p,i,j:integer;

begin

writeln(‘В двумерном массиве вычислить произведение’);

writeln (всех элементов массива.’);

writeln (‘== Дана матрица==’);

fori:=1to4do

Begin

forj:=1to4do

write(‘ ‘,a[i,j]:3);

writeln;

End;

p:=1;

fori:=1to4 do

forj:=1to4do

Begin

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

End;

writeln(‘ *Результат*’);

write(‘ ***’, p,’***’);

End.

 

Пример7_12.Вычисление произведения двух матриц а (2,3) и b (3, 2)

ProgramProg10;

UsesWinCrt;

Var

a,b,c:array[1..5,1..5]ofinteger;

i,j,f,s:byte;

Begin

writeln('Даны две матрицы');

randomize;

fori:=1to2do

Begin

forj:=1to3do

a[i,j]:=random(10);

End;

fori:=1to2 do

Begin

forj:=1to3do

Begin

write(a[i,J]:3);

End;

writeln;

end; {Заполение и вывод матриц}

writeln;

forj:=1to3do

forf:=1to2do

b[j,f]:=random(10);

forj:=1to3do

Begin

forf:=1to2 do

write(b[j,f]:3);

writeln;

End;

writeln;

writeln('3aдaние: найти произведение этих матриц');

writeln;

fori:=1to2do

forf:=1to2do

Begin

s:=0;

forj:=1to3do {поиск произведения}

s:=s+a[i,J]*b[j,f];

c[i,f]:=s;

End;

fori:=1to2do

Begin

forf:=1to2do {вывод результата}

write(c[i,f]:5);

writeln;

End;

readln;

readln;

End.

 

Пример7_13.Получить единичную матрицу путем замены элементов на главной диагонали на 1, а остальные – на 0

Programmas4;

Var

a:array[1..5,1..5]ofinteger;

i,j:byte;

Begin

writeln(‘Дана матрица:5*5’);

fori:=1to5do

forj:=1to5do {заполнение и вывод массива}

a[i,j]:=random(100);{датчик случайных чисел}

fori:=1to5 do

Begin

forj:=1to5do

write(a[i,j]:3);

writeln;

End;

writeln;

writeln(‘Задание: получить единичную матрицу’);

writeln(‘путем замены элементов на главной’);

writeln(‘диагонали на1, а остальные – на 0’);

for i:=1 to 5 do

for j:=1 to 5 do

if i=jthen {замена элементов массива в соответствии}

{с определением единичной матрицы }

a[i,j]:=1

Else

a[i,j]:=0;

writeln;

writeln(‘Результат’);

fori:=1to5do

Begin

forj:=1to5do {вывод результата}

write(a[i,j]:3);

writeln;

End;

End.

 

Пример7_14.Поменять местами два элемента в двумерном массиве

Programmas5;

useswincrt;

Const

n=4;

Type

t=array[1..n]ofinteger;

Var

b:boolean;

a:array[1..n]oft;

i,j,f.e,g,s:byte;

k:integer;

Begin

writeln(‘Дана матрица:’);

randomize;

fori:=1to n do

Begin

forj:=1to n do

begin {заполнение и вывод массива}

a[i,j]:=random(20);

write(a[i,j]:3);

End;

writeln;

End;

writeln(‘Задание: поменять местами любые два элемента’);

Repeat

writeln(‘введите номера строк’);

b:=false;

readln(f);

readln(e);{считывание номеров строк и столбцов}

writeln(‘введите номера столбцов’);

readln(g);

readln(s);

if(f<=n)and (e<=n)and(g<=n)and(s<=n)then

b:=true

Else

writeln(‘Массив', n,'х',n, 'Введите числа<4.’);

writeln;

untilb=true;

k:=a[e,s];

a[e,s]:=a[f,g];{перестановка элементов}

a[f,g]:=k;

writeln(‘измененная матрица’);

fori:=1to n do

Begin

forj:=1to n do

write(a[i,j]:3);{ вывод результата }

writeln;

End;

End.

Пример7_15.В двумерном массиве найти сумму максимальногои минимального элементов, если она меньше 0, тогда все отрицательные элементы матрицы, лежащие выше главной диагонали, заменить на нули.

 

prodramkonst1;

Var

a:array[1..6,1..6]ofinteger;

max, min,i,j,p:integer;

Begin

writeln(‘В двумерном массиве найти сумму макс. и мин.

элемента,’);

writeln(‘если она меньше 0, тогда все отрицательные элементы

матрицы,’);

writeln(‘лежащие выше главной диагонали, заменить на нули.’);

writeln(‘Исходная матрица’);

fori:=1to6do

forj:=1to6do

read (a[i,j]);{считывание массива из файла}

fori:=1to6do

Begin

forj:=1to6do

write(a[i,j]:3); {вывод массива в матричной форме}

writeln;

End;

writeln;

max:=a[1,1];

fori:=1to6do

forj:=1to6do {поиск и вывод максимального элемента}

ifmax<a[i,j]thenmax:=a[i,j];

writeln(‘максимальный элемент’, max);

min:=a[1,1];

fori:=1to6do

forj:=1to6do

ifmin>a[i,j]thenmin:=a[i,j];{поиск и вывод

минимального элемента}

writeln(‘минимальный элемент’,min);

p:=min+max;{поиск и вывод суммы}

writeln(‘сумма макс. и мин. элемента’,p);

ifp<0then begin

fori:=1to6do

forj:=1to6do

if(i<j) and (a[i,j]<0)thena[i,j]:=0; {замена

элементов по условию}

End;

 

writeln(‘измененная матрица”);

fori:=1to6do

Begin

forj:=1to6do {вывод измененного массива в

матричной форме}

write(a[i,j]:3);

writeln:

End;

readln;

End.

Пример7_16. Пусть надо посчитать общее количество продукции, е пускаемой каждым заводом, и количество продукции каждого наимено ния, выпускаемой всеми заводами.

Вычисляемые и исходные данные объединить в одну таблицу.

Изделие1 Изделие 2 изделие 3 Изделие 4 Всего

Завод 1          
Завод 2          
Завод 3          
Всего          

 

Для представления таблицы в программе используем двумерный массив:

ргоd: аггау [1..zab+1,1..izd+].

Ниже приведен текст программы, решающей поставленную задачу.

cost:

zab=3 ;

izd=4;

Var

prod:аггау[1..zab+1,1..izd+1]ofinteger;

i:integer; { номер завода }

j:integer; { номер изделия }

Begin

writeln ( 'Ввод исходных данных. ' ) ;

for i:=1 to zav do

Begin

writeln ('Завод', i:2);

for j:=1 to izd do

begin

write ('Изделие', j:2, ' ');

readln (prod[i,j]);

end;

end;

{вычислим общее колическтво изделий

выпускаемых каждым заводом}

for i:=1 to zav do

begin

prod [i,izd+1]:=0;

for j:=1 to izd do

prod[i,izd+1]:= prod [i,izd+1]+prod[i,j];

end;

{вычислим количество изделий одного наименованияб

выпущенных всеми заводами}

for j:=1 to izd do

begin

prod [zav+1,j]:=0;

for i:=1 to zav do

prod [zav+1,j]:=prod[zav+1]+prod[i,j];

end;

{вывод итоговой таблицы}

writeln (' 1 2 3 4 Всего');

for i:=1 to zav+1 do

begin

if i< zav then write ('Завод ', i:2)

else write ('Всего ');

for j:=1 to izd +1 do

write (prod[i,j]:5;

writeln;

end;

end.

Пример работы программы:

Ввод исходных данных. Завод 1

Изделие1->120

Изделие2->100

Изделие3->100

Изделие4->25Завод 2

Изделие1->100

Изделие2->50

Изделие3->75

Изделие4->40

Завод 3

Изделие 1->75

Изделие2->50

Изделие3->50

Изделие4->50

 

1 2 3 4 Всего

Завод 1 120 100 100 25 345

Завод 2 100 50 75 40 265

Завод 3 75 50 50 50 225 <

Зсего 295 200 225 115 835

 

Обратите внимание на использование констант в программе. Если изменятся исходные данные, например, число заводов, то надо будет внести изме­нения только в разделе описания констант.

Следующая программа обрабатывает результаты соревнований по легкой атлетике.

Завоевано медалей:








Дата добавления: 2015-01-13; просмотров: 890;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.07 сек.