Вы находитесь на странице: 1из 11

Задание 1.

1
Листинг программы
program P1_1;

type
Ar = array[1..100] of real;

var
A: ar;
i, n: integer;

procedure InputArray(n, i: integer; var A: ar);


begin
writeln('Заполнение массива');
for i := 1 to n do
begin
Write('Введите', i, '-й элемент массива: ');
readln(A[i]);
end;
end;

procedure OutputArray(n, i: integer; var A: ar);


begin
write('Вывод массива: ');
for i := 1 to n do
write(A[i], ' ');
end;

procedure search_min(A: ar; n, i: integer);


var
min: real;
begin
min := A[1];
for i := 2 to n do
if A[i] < min then min := A[i];
writeln('Минимальный элемент массива: ', min);
end;

begin
write('Укажите размерность массива: ');
readln(n);
InputArray(n, i, A);
OutPutArray(n, i, A);
writeln;
search_min(A, n, i);
end.
Иллюстрация работы программы

Задание 1.2
Листинг программы
const
m = 100;

type
Ar = array[1..m] of real;

var
A: ar;
i, n: integer;
r1, r2: real;
k: integer;

procedure InputArray(n, i: integer; var A: ar);


begin
writeln('Заполнение массива');
for i := 1 to n do
begin
Write('Введите', i, '-й элемент массива: ');
readln(A[i]);
end;
end;

procedure Proverka(r1, r2: real; i, n: integer; var A: ar);


begin

k := 0;
for i := 1 to n - 1 do
if (A[i] * A[i] + A[i + 1] * A[i + 1] >= r1 * r1) and (A[i] * A[i] + A[i
+ 1] * A[i + 1] <= r2 * r2) then

k := k + 1;
Writeln(k);
end;
begin
n := 0;
repeat
writeln('Введите четное n');
readln(n);
writeln('Введите r1 и r2');
readln(r1, r2);
if (n mod 2 = 0) then
writeln(n)
else
writeln('Вы ввели нечетное число');
until (n mod 2 = 0);
InputArray(n, i, A);
Proverka(r1, r2, i, n, A);
end.

Иллюстрация работы программы

Задание 1.3
const
m=100;
type
ar2=array[1..m,1..m] of integer;
var
n:integer;
A,b:ar2;
i,j:integer;
sum:integer;
procedure InputArray(n, i,j: integer; var A: ar2);
begin
writeln('Заполнение массива');
for i := 1 to n do
for j:=1 to n do
begin
Writeln('введите элементы массива');
readln(A[i,j]);
end;
end;
begin

writeln('n');
readln(n);
InputArray(n,i,j,A);
sum:=1;
for i:=2 to n do
if (n mod i = 0) then
for j:=2 to n do

if (n mod j = 0) then break;


if (j=i div 2)or(i=2) then sum:=sum+i;
b[i,j]:=Sum;
For i:=1 to n do
For j:=1 to n do

write(b[i,j]:6);
end.

Задание 2.1
var
f: file of integer;
a: integer;

begin
assign (f, 'c:\Chislo.txt');
reset(f);
while not eof(f) do
begin
read(f, a);
if (a mod 2 = 0)
then writeln(a, ' ':3);
if (a mod 3 = 0)
then writeln(a, ' ':3);
if (a mod 7 = 0)
then writeln(a, ' ':3);
readln
end;
readln;
close(f);
end.
Задание 2.2
const nmax=20;
type mas=array [1..nmax,1..nmax] of integer;
var a: mas;
    n,m: byte;
   
procedure GenM (var ri,rj: byte; var z: mas);
var i,j: byte;
begin
randomize;
repeat
write('m (ne bolee ',nmax,')='); readln(ri);
until ri in [1..nmax];
repeat
write('n (ne bolee ',nmax,')='); readln(rj);
until rj in [1..nmax];
for i:=1 to ri do
    for j:=1 to rj do
        z[i,j]:=random(199)-99;
end;
 
procedure Print (ri,rj: byte; z: mas);
var i,j: byte;
begin
for i:=1 to ri do
    begin
    for j:=1 to rj do
        write(z[i,j]:4);
    writeln;
    end;
end;
 
procedure Swap (var x,y: integer);
var buf: integer;
begin
buf:=x;
x:=y;
y:=buf;
end;
 
procedure Sort (ri,rj: byte; var z: mas);
var i,j,r: byte;
begin
if ri>rj then r:=rj else r:=ri;
j:=0;
while j<=r do
      begin
      for i:=1 to r-1 do
          if abs(z[i,i])>abs(z[i+1,i+1])
             then Swap (z[i,i],z[i+1,i+1]);
      inc(j);
      end;
end;
 
begin
GenM (m,n,a);
writeln('Матрица до сортировки');
Print (m,n,a);
Sort (m,n,a);
writeln;
writeln('Матрица после сортировки');
Print (m,n,a);
readln;
end.

Задание 3
Запись массива в файл
var
f:text;
n,m,i,j:integer;
a:array[1..50,1..50] of real;
begin
assign(f,'c:\file.txt');
rewrite(f);
writeln('n');
readln(n);
writeln('m');
readln(m);
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(200)-100;
write(f,a[i,j]:5:2);
end;
writeln(f,'');
end;
close(f);
writeln('Fail sozdan!');
readln;
end.

Листинг программы
const
n=100;
m = 100;

type
Ar2 = array[1..n,1..m] of real;
var
A:ar2;
n,m:integer;
procedure InputArray(n,m, i: integer; var A: ar);
begin
writeln('Заполнение массива');
for i := 1 to n do
for j:=1 to m do
begin
Write('Введитe элемент массива: ');
readln(A[i,j]);
end;
end;

procedure OutputArray(n,m, i: integer; var A: ar);


begin

write('Вывод массива: ');


for i := 1 to n do
for j:=1 to m do
write(A[i,j], ' ');
end;
procedure chteniefaila;
var
n,m:integer;
i,j:integer;
begin
assign(f,'c:\file.txt');
reset(f);
read(f,n);
read(f,m);
for i:=1 to n do
begin
for j:=1 to m do
begin
read(f,b[i,j]);
wtrite(b[i,j]:4);
end;
writeln;
end;
close(f);
end;

procedure min(n,m:integer;var b:ar2);

var
i,j,k: integer;
begin
writeln('n,m=');
readln(n,m);
writeln('Дан массив');
for i:=1 to n do
begin
for j:=1 to m do
begin
b[i,j]:=random(11)-5;
write(b[i,j]:3);
if b[i,j]<0 then inc(k);
end;
writeln;
end;
writeln('Количество отрицательных элементов в массиве = ',k);
readln
end;

procedure perestanovka(n,m:integer;var b:ar2);


var
S:Integer;
Q, P:Integer;
i, j:Integer;
Begin
For i := 1 To n Do
For j := 1 To m Do
Begin
Write ('b[', i: 2, ',', j: 2, ']', ' = ');
End;
WriteLn ('Введите номера переставляемых строк:');
Write ('Q = '); ReadLn (Q);
Write ('P = '); ReadLn (P);
For i := 1 To m Do
Begin
S := b [Q, i];
b [Q, i] := b [P, i];
b [P, i] := S;
End;
WriteLn ('массив после перестановки:');
For i := 1 To n Do
Begin
For j := 1 To m Do
Write (b [i, j] : 4);
WriteLn;
End;
end;
begin
OutputArray(n,m,i,A);
chteniefaila;
min(n,m,b);
perestanovka(n,m,b);
readln
end.
Задание 2
Листинг программы
Const
Nmax=100;
Type Information = record
model:string;
number:integer;
year:integer;
Vdvigatel:real;
zavod:string;
moshnost:string;
uchet:char;
end;
type
Ar=array[1..Nmax] of Information;
procedure InPutAr(N:integer;var A:Ar);
var
I:integer;
begin
for I:=1 to N do
begin
Write('Модель: ');
Readln(A[I].model);
Write('идентификационный номер: ');
Readln(A[I].number);
Write('год изготовления: ');
Readln(A[I].year);
Write('завод-изготовитель: ');
Readln(A[I].zavod);
Write('мощьность: ');
Readln(A[I].moshnost);
Write('объем двигателя: ');
Readln(A[I].Vdvigatel);
Write('Стоит ли на учете(да или нет: ');
Readln(A[I].uchet);
end;;
end;
procedure proverka(N:integer;A:Ar;var C:real);
var
I:integer;
begin
C:=0;
for I:=1 to N do
begin
if A[I].uchet= 'нет' then
C:=C+1;
end;
end;
procedure proverka2(N:integer;Var A:Ar);
var
I,J:integer;
buf:integer;
begin
for I:=2 to n do
for J:=N downto I do
if A[J-1].year>A[J].year then
begin
buf:=A[J-1].year;
A[J-1].year:=A[J].year;
A[J].year:=buf;
end;
begin
WriteLn('Распределение автомобилей по возрастанию года изготовления');
for J:=1 to N do
write(A[J].year,' ');
writeLN()
end;

end;
procedure proverka3(N:integer;A:Ar);
var
I:integer;
begin
for I := 1 to N do
begin
if A[I].model='ВАЗ-2109' then
writeln (A[I]);
end;
writeln

end;
var
N:Integer;
A:Ar;
C:real;
procedure OutPut(N:integer;C:real);
begin
WriteLn('Количество автомобилей не стоящих на учете = ', C);

END;
begin
Writeln('введите колличество Автомобилей');
Readln(N);
InPutAr(N,A);
proverka(N,A,C);
proverka2(N,A);
proverka3(N,A);
OutPut(N,C);
end.
Иллюстрация работы приложения