Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2-5 Алгоритмические языки

.doc
Скачиваний:
56
Добавлен:
22.06.2014
Размер:
45.06 Кб
Скачать

Министерство образования Российской Федерации

Томский государственный университет Систем управления и радиоэлектроники (ТУСУР)

Контрольная работа № 2

по Алгоритмическому языку

Вариант № 5

Выполнил:

Студент ТМЦ ДО

Ф.И.О.

Код доступа: ************

Пароль: **********

Норильск – 2002г.

  1. Даны действительные числа а 1, а 2, … а n, b 1, b 2, … b n.

Вычислить (a 1 + b n)*(a 2 + b n - 1)* … *(a 2 + b 1).

program K2z1;

Uses crt;

const n=10;

type mass=array[1..n] of integer;

var a,b:mass; i,j:integer; ob:longint;

Begin

clrscr;

randomize;

ob:=1;

for i:=1 to n do

Begin

a[i]:=random(5);

b[i]:=random(5);

writeln('a[':10,i:2,'] =',a[i]:2,' ','b[',i:2,'] =',b[i]:2);

End;

writeln('press':24);

readkey;

for i:=0 to n-1 do

begin

ob:=ob*(a[i+1]+b[n-i]);

writeln('a[':10,i+1:2,'] + b[',n-i:2,'] = ', a[i+1]+b[n-i])

end;

writeln('proiz = ':15,ob);

write('press':24);

readkey;

End.

  1. Дана последовательность из n различных целых чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).

uses crt;

program k2z2;

var

pos:array [1..100] of integer;

i,j,x,max,min,n,mai,mii:integer;

t,zero,nz:boolean;

Begin

zero:=true;

clrscr;

randomize;

write('Введите число n 1..100 - ');readln(n);

for i:=1 to n do

begin

nz:=false;

t:=false;

x:=random(100);

if (x = 0)and(zero) then

begin

zero:=false;

nz:=true

end;

if not nz then

for j:=1 to n do

if x = pos[j] then

begin

t:=true;

i:=i-1;

break;

end;

if not t then

begin

pos[i]:=x;

end;

end;

if n < 50 then

for i:=1 to n do

writeln(' X',i,' = ',pos[i]);

if n >=50 then

begin

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

writeln(' X',i,' = ',pos[i]);

write('---- Нажмите клавишу <Enter> ----');readkey;

writeln;

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

writeln(' X',i,' = ',pos[i]);

end;

write('---- Нажмите клавишу <Enter> ----');readkey;

if pos[1]<pos[2] then

begin

min:=pos[1];

mii:=1;

max:=pos[2];

mai:=2;

end

else

begin

max:=pos[1];

mai:=1;

min:=pos[2];

mii:=2;

end;

for i:=3 to n do

begin

if pos[i] < min then

begin

min:=pos[i];

mii:=i;

end;

if pos[i] > max then

begin

max:=pos[i];

mai:=i;

end;

end;

writeln;

writeln;

writeln('min = ',min,' ','MinIndex = ',mii);

writeln('max = ',max,' ','maxIndex = ',mai);

writeln;

writeln('---- Нажмите клавишу <Enter> ----');

readkey;

clrscr;

writeln;

writeln;

if mai<mii then

begin

i:=mii;

mii:=mai;

mai:=i;

end;

j:=0;

for i:=mii to mai do

begin

write(j:4);

j:=j+pos[i];

writeln(' + ',pos[i]:2,' = ',j:4,' ', i:3);

end;

writeln;

writeln('Сумма последовательности между min и max = ', j);

writeln;

writeln('---- Нажмите клавишу <Enter> ----');

readkey;

End.

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

Заполнить массив А следующим образом:

1 2 3 ….. 10

0 1 2 ….. 9

0 0 1 ….. 8

………….

000 ….. 1

uses crt;

program matrix;

const n=10;

var

i,j,x,x1,k:integer;

mat:array [1..n,1..n] of word;

begin

clrscr;

k:=1;

for j:=1 to 10 do

begin

x:=x+1;

k:=1;

for i:=x to n-x1 do

begin

mat[i,j]:=k;

k:=k+1;

end;

end;

for j:=1 to n do

begin

writeln;

for i:=1 to n do

begin

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

delay(10000);

end;

end;

writeln('----Нажмите клавишу <Enter>----');

readkey;

End.

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

b : array [1..4] of boolean;

По массиву А получить массив b, присвоив его k-му элементу значение true, если элементы k-й строки массива A упорядочены по убыванию, и значение false иначе.

Program zadanie4;

var

a:array[1..4,1..5] of integer; {два}

b:array[1..4] of boolean; {массива}

i,j:integer; {счётчики в циклах}

begin {ввод целочисленного массива}

for i:=1 to 4 do

for j:=1 to 5 do

begin

write(‘введите элемент’);

readln(a[i,j]);

end; {проверка этого массива и получение по нему второго}

for i:=1 to 4 do

for j:=1 to 4 do

begin

if a[i,j]<=a[i,j+1] then

begin

b[i]:=false;

break;

end

else b[i]:=true;

end; {вывод результата}

for i:=1 to 4 do

begin

for j:=1 to 5 do

begin

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

end;

writeln('5',b[i]);

end;

readln;

end.