Здавалка
Главная | Обратная связь

Примеры программ на языке ПАСКАЛЬ



 

{Программа № 1 - меняет местами строку с минимальным элементом и строку с максимальным}

program matr;

uses Crt;

type

mas=array[0..15,0..15] of real;

var

mtr :mas;

i,j,iMax,iMin,n,m :integer;

ff :char;

max,min,prom ,x :real;

begin TextBackGround(9);TextColor(14);ClrScr;GotoXY(10,5);

write('Введите размер матрицы (через пробел) ');read(n,m);

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

for i:=1 to n do begin

for j:=1 to m do begin

mtr[i,j]:=i*j*sin(0.5*i*j);

write(mtr[i,j]:6:2);

end;

writeln;

end;

max:=mtr[1,1];min:=mtr[1,1];{Выделяем максимальный и минимальный элементы}

iMax:=1;iMin:=1;

for i:=1 to n do begin

for j:=1 to m do begin

if max<mtr[i,j] then begin

max:=mtr[i,j];iMax:=i;

end;

if min>mtr[i,j] then begin

min:=mtr[i,j];iMin:=i;

end;

end;

end; { Меняем местами строки}

for j:=1 to m do begin

prom:=mtr[iMax,j];

mtr[iMax,j]:=mtr[iMin,j];

mtr[iMin,j]:=prom;

end;

writeln;writeln(' Измененная матрица ');writeln;

for i:=1 to n do begin

for j:=1 to m do begin

write(mtr[i,j]:6:2);

end; writeln;

end;

gotoXY(50,6); write('iMax = ',iMax,' iMin = ',iMin); ff:= readKey; end.

 

{Программа № 2 - создает функцию возведения в степень, процедуру для преобразования матриц и показывает как они используются в главной программе. Также демонстрируется работа с текстовыми файлами последовательного доступа }

 

program primer;

uses Crt;

 

function POWER(y,x:real):real; {vozvedenie y v stepen x}

begin {POWER}

if y>0 then

POWER:=exp(x*ln(y))

else

if y<0 then

POWER:=exp(x*ln(abs(y)))

else

if x=0 then

POWER:=1

else

POWER:=0;

end;{POWER}

 

const maxind=15;

type Matriza2=array[1..maxind,1..maxind] of real;

 

procedure ZAMENA(n:integer; {peredaetca kak znahenie}

var B :Matriza2); {to zto zdes, budet menatca i v glavnoi}

var i,j :integer;

begin

for i:=1 to n do B[i,1]:=0;

for j:=1 to n do B[1,j]:=0;

end;

{********** glavnay programma ********************}

var

i,j,n :integer;

x,y,z :real;

A :Matriza2;

f1 :text;

s :string[11];

begin textBackground(9);textColor(15);clrScr;gotoXY(10,10);

write('Vvedite y, x: ');readln(y,x);

z:=POWER(y,x);writeln;writeln(' rezultat = ',z:8:2);writeln;

 

write('Vvedite n ');read(n);writeln;

for i:=1 to n do

begin

for j:=1 to n do

begin

A[i,j]:=1;

write(A[i,j]:3:0);

end;

writeln;

end;

readkey;writeln;writeln;

ZAMENA(n,A);

for i:=1 to n do

begin

for j:=1 to n do

begin

write(A[i,j]:3:0);

end;

writeln;

end;

readkey;

{*** rabota s failami ***}

write('Vvedite name file:');

readln(s);{ bez nego ne rabotaet}

readln(s);

writeln;

assign(f1,s); {svazivanie file s peremennoy f1}

{$I-} {otkl kontrol za operaziymi vvod/vivoda.Esli ne sdelat,

to otsutstvie file dast osibku i ostanov progi}

rewrite(f1); {otkrili file dla zapisi}

{$I+}

if IORESULT<>0 then begin writeln('file error');readkey;exit;end;

for i:=1 to n do

for j:=1 to n do

write(f1,A[i,j]:3:0); {zapis v file}

close(f1); {zakrili file}

 

assign(f1,s);

{$I-}

reset(f1); {otkrili dla ztenia}

{$I+}

if IORESULT<>0 then begin writeln('Takogo file net');readkey;exit;end;

writeln('---- rezultat iz file ---- ');writeln;

while not EOF(f1) do

begin

for i:=1 to n do

begin

for j:=1 to n do

begin

read(f1,x); {ztenie iz file}

write(x:5:1);

end;

writeln;

end;

end;

close(f1);

readkey;

end.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.