Экранные формы задания № 1
Структура экранных форм генерируемых программой отражена на рисунке А.1. …
Рисунок 1.4 – Пример оформления названия приложения
Тексты программ должны оформляться в соответствии с «хорошим стилем» программирования, т.е. должны быть легко читаемы и хорошо документированы. В тексте программ должны быть комментарии, облегчающие ее понимание постороннему лицу. Комментарии не должны затенять структуру текста и должны быть ясными и краткими.
Наименования программ и подпрограмм должны отражать их назначение.
Логическая структура программы должна быть отражена в ее тексте с помощью:
- пустых строк между текстами подпрограмм и отдельных ее функционально законченных частей;
сдвигами текста в строке при написании заголовков вложенных циклов, тела цикла после его заголовка, альтернатив разветвлений процесса обработки данных.
ПРИЛОЖЕНИЕ Б
Примеры программ на языке ПАСКАЛЬ
{Программа № 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.