2-5 Алгоритмические языки
.docМинистерство образования Российской Федерации
Томский государственный университет Систем управления и радиоэлектроники (ТУСУР)
Контрольная работа № 2
по Алгоритмическому языку
Вариант № 5
Выполнил:
Студент ТМЦ ДО
Ф.И.О.
Код доступа: ************
Пароль: **********
Норильск – 2002г.
-
Даны действительные числа а 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.
-
Дана последовательность из 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.
-
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.
-
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.