Ибрагимова Лариса Фларидовна, 452206, Чекмагушевский район, с. Старокалмашево, ул. Нефтяников, 1А,

advertisement
Ибрагимова Лариса Фларидовна,
452206, Чекмагушевский район, с. Старокалмашево, ул. Нефтяников, 1А,
МБОУ-СОШ с.Старокалмашево
Электронная почта: aidy10@rambler.ru
Задание 1
Разработайте программу, которая формирует таблицу 10 на 10,
заполняет ее случайными числами и сортирует по строкам.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const infile='input.txt';
outfile ='output.txt';
var n,i,min,k,r,j:integer;
x:array [1.. 10,1..10] of integer;
begin
assign (input,infile);
reset (input);
assign (output,outfile);
rewrite (output);
Randomize;
for i:=1 to 10 do
for j:=1 to 10 do
x[i,j]:=Random(1000)+1;{Создаем массив случайных чисел}
for i:=1 to 10 do
for j:=1 to 9 do
for n:=j+1 to 10 do if x[i,j]>x[i,n] then
begin
min:=x[i,j];
{Упорядочиваем строку методом пузырька}
x[i,j]:=x[i,n];
x[i,n]:=min;
end;
for i:=1 to 10 do begin
for j:=1 to 10 do
write (x[i,j]:4); writeln ; end;
close (input); close (output);
end.
Задание 2
Разработайте программу, которая формирует таблицу 10 на 10,
заполняет ее случайными числами и сортирует по столбцам.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const infile='input.txt';
outfile ='output.txt';
var n,i,min,k,r,j:integer;
x:array [1.. 10,1..10] of integer;
begin
assign (input,infile);
reset (input);
assign (output,outfile);
rewrite (output);
Randomize;
for i:=1 to 10 do
for j:=1 to 10 do
x[i,j]:=Random(1000)+1;{Создаем массив случайных чисел}
for j:=1 to 10 do
for i:=1 to 9 do
for n:=i+1 to 10 do if x[i,j]>x[n,j] then
begin
min:=x[i,j]; {Упорядочиваем столбец методом пузырька}
x[i,j]:=x[n,j];
x[n,j]:=min;
end;
for i:=1 to 10 do begin
for j:=1 to 10 do
write (x[i,j]:4); writeln ; end;
close (input); close (output);
end.
Задание 3
Разработайте программу, которая формирует таблицу 10 на 10,
заполняет ее случайными числами и находит наибольшие четные значения в
каждом столбце.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const infile='input.txt';
outfile ='output.txt';
var n,i,min,k,r,j:integer;
x:array [1.. 4,1..4] of integer;
max:array [1..4] of integer;
begin
assign (input,infile);
reset (input);
assign (output,outfile);
rewrite (output);
Randomize;
for i:=1 to 10 do begin
for j:=1 to 10 do begin
x[i,j]:=Random(100)+1;
{Создаем массив случайных чисел}
write (x[i,j]:3);end; writeln;end;
for j:=1 to 10 do begin if x [1,j] mod 2 =0 then max[j]:=x[1,j];
for i:=1 to 10 do
{ищем наибольшее четное число}
if (max[j]< x[i,j]) and (x[i,j] mod 2=0) then max[j]:=x[i,j]; end;
Write ('Наибольшее четное число в каждом столбце =');
for i:=1 to 10 do begin
write (max[i]:3) end;
close (input); close (output);
end.
Задание 4
Разработайте программу для кодирования последовательности из N
символов, которая использует неравномерный минимальный двоичный код,
позволяющий однозначно декодировать
полученную
двоичную
последовательность.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const infile='input.txt';
outfile ='output.txt';
var i:integer;
A,B,C,D,E,F,n,s1:string;
begin
assign (input,infile);
reset (input);
assign (output,outfile);
rewrite (output);
A:='000'; {коды букв}
B:='10';
C:='01';
D:='110';
E:= '001';
readln (n);
for i:=1 to length (n) div 2 do
begin s1:=copy ( n, 1, 2);{декодируем двоичную последовательность}
if C=s1 then begin write ( 'C'); delete (n, 1,2);end
else if B=s1 then begin write ('B'); delete (n, 1,2);end
else begin s1:= copy ( n,1,3);
if s1=A then begin write ('A'); delete (n, 1,3);end
else if s1 =D then begin write ('D');delete (n, 1,3);end
else if s1=E then begin
write ('E');delete (n, 1,3);
end
end;
end;
close( input);close(output);
end.
Задание 5
Разработайте программу, которая по четырехбайтовому IP-адресу узла
и IP-адресу маски подсети вычисляет сетевой адрес.
program Project21;
{$APPTYPE CONSOLE}
uses
SysUtils;
const infile='input.txt';
outfile ='output.txt';
var i,j,f,o,y,r,x1,x32,l:integer;
m,s,e: array [1..8] of integer; a,h,b:array [1..4] of integer;
function up( ol,om :integer): integer; {возводим число во 2 степень}
var el,si : integer;
begin si:=1; for el:=1 to ol do si:=si*om;
up:=si;end;
begin
assign (input,infile);
reset (input);
assign (output,outfile);
rewrite (output);
for o:=1 to 4 do read (a[o]) ; {ввод IP-адреса}
for o:=1 to 4 do read (b[o]); {ввод маски}
for o:=1 to 4 do begin
for i:=1 to 8 do {числа переводим в двоичную систему}
begin m[i]:=a[o] mod 2; a[o]:=a[o] div 2; end;
for r:=1 to 8 do
begin e[r]:=b[o] mod 2; b[o]:=b[o] div 2; end;
for r:=1 to 8 do
begin s[r]:=m[r]*e[r]; j:=r-1; h[o]:=s[r]*up(j , 2)+h[o]; end;
end;
for o:=1 to 4 do write (h[o],' ');
close (input); close (output);
end.
Задание 6
Разработайте программу для выдачи денег банкоматом по заданной
клиентом сумме денег M кратной 50 рублям и наличию в банкомате X1
купюр по 50 рублей, X2 купюр по 100 рублей, X3 купюр по 1000 рублей, X4
купюр по 5000 рублей. Известно, что максимальная сумма для выдачи M не
превышает 50000 рублей, минимальная сумма выдачи денег 50 рублей. После
каждой выдачи денег, программа подсчитывает минимально возможные
количества купюр X1, X2, X3, X4 и выдает сообщение "Банкомат временно
не работает" в случае нехватки купюр для следующей выдачи денег по
указанным условиям. Программа выполняет сначала учет ввода денег в
банкомат для выдачи, а затем выдачу произвольных сумм клиентам банка.
var M,x1,x2,x3,x4,r1,r2,r3,r4,k1,k2,k3,k4,a:integer;
begin
M:=50000;
X1:=50;X2:=100;X3:=1000;X4:= 5000;
r4:=4;r3:=10;r2:=100;r1:=200; {количество купюр}
While M<>0 do
begin Write ('Введите сумму: ');
readln (a); k1:=0;k2:=0; k3:=0;k4:=0; {количество выданных
купюр }
if M-a>=0 then begin M:=m-a; if r4>0 then
while a-x4>=0 do begin a:=a-x4;k4:=k4+1;
r4:=r4-1; end;
if r3>0 then while a-x3>=0 do begin a:=a-x3;k3:=k3+1;
r3:=r3-1; end;
if r2>0 then while a-x2>=0 do
begin a:=a-x2;k2:=k2+1;
r2:=r2-1; end;
if r1>0 then while a-x1>=0 do begin a:=a-x1; k1:=k1+1;
r1:=r1-1; end;
end
else writeln ('Банкомат временно не работает');
writeln ('Купюр по 5000 выдал = ',k4);
writeln('Купюр по 1000 выдал = ',k3);
writeln('Купюр по 100 выдал = ',k2);
writeln('Купюр по 50 выдал = ',k1);end;end.
Задание 7
Представим
себе
бесконечную
последовательность
цифр,
составленную из записанных друг за другом возрастающих степеней десятки.
Вот начало этой последовательности: 110100100010000… Всё, что надо —
определить, какая цифра находится в такой последовательности на
определённом месте.
Исходные данные
В первой строке находится целое число N (1 ≤ N ≤ 65535). В i-й
из N последующих строк записано целое число Ki — номер позиции в
последовательности (1 ≤ Ki ≤ 231 − 1).
Результат
Выведите через пробел N цифр. i-я цифра должна равняться цифре, которая
находится в описанной выше последовательности на позиции с номером Ki.
Пример
исходные данные
4
3
14
7
6
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const infile='input.txt';
outfile ='output.txt';
var N,b,r,u,i:integer;
x:array [1.. 4,1..4] of integer;
max:array [1..4] of integer;
begin
assign (input,infile);
reset (input);
assign (output,outfile);
rewrite (output);
readln(N);
for i:=1 to N do begin
readln(b);
if b=1 then write ('1',' ')
else begin
u:=1;
r:=1;
repeat {1 находится в определенном позиции}
u:=u+r;
r:=r+1;
until b-u<=0;
if b=u then write ('1',' ') else write('0',' ');
end; end;
close (input); close (output); end.
результат
0 0 1 0
Задание 8
Условие этой задачи очень простое: вам всего лишь надо определить,
сколько клеток находится под боем шахматного коня, одиноко стоящего на
шахматной доске. На всякий случай напомним, что конь ходит буквой «Г» —
на две клетки по горизонтали или вертикали в любом направлении, и потом
на одну клетку в направлении, перпендикулярном первоначальному.
Исходные данные
В первой строке находится единственное число N, 1 ≤ N ≤ 100 — количество
тестов. В каждой из последующих Nстрок содержится очередной тест: два
символа (маленькая латинская буква от 'a' до 'h' и цифра от 1 до 8) —
стандартное шахматное обозначение клетки, на которой стоит конь. При
этом буква обозначает вертикаль, а цифра — горизонталь.
Результат
Выведите N строк: в каждой из них должно находиться единственное число
— количество клеток шахматной доски, находящихся под боем коня.
Пример
исходные данные
результат
3
2
a1
8
d4
6
g6
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const rx: array[1..8] of integer=(1, 2, 2, 1,-1,-2,-2,-1);{ходы шахматного коня}
ry: array[1..8] of integer=(2, 1,-1,-2,-2,-1, 1, 2);
infile='input.txt';
outfile ='output.txt';
var
i, j, x, y, n, s: integer;
e: char;
begin
assign (input,infile);
reset (input);
assign (output,outfile);
rewrite (output);
readln (n);
for i:=1 to n do
begin read (e);
x:=1+ord(e)-ord('a'); {дает положения коня по горизонтали}
readln (e);
y:=1+ord(e)-ord('1'); { дает положения коня по вертикали}
s:=0;
for j:=1 to 8 do
if ((x+rx[j]) in [1..8]) and ((y+ry[j]) in [1..8])
then s:=s+1;
writeln (s);
end;
close (input); close (output);
end.
Download