Автор работы: Пользователь скрыл имя, 17 Ноября 2010 в 14:28, отчет по практике
Цель практики является закрепление и расширение теоретических знаний и практических навыков разработки программ в областях
◦модульного программирования,
◦организации экранного (графического) пользовательского интерфейса,
◦использования процедур и функций стандартных модулей CRT и GRAPH.
Задачи практики является освоение теоретического материала и разработка на его основе трех программ:
◦Программы с модульной структурой,
◦Программы с оконным интерфейсом и меню для текстового режима (использующей процедуры и функции модуля CRT),
◦Программы с оконным интерфейсом и меню для графического режима (использующей процедуры и функции модуля GRAPH).
1:p1; {n=1, Выполняется процедура р1 из модуля B}
2:p2; {n=2, Выполняется процедура р2 из модуля B}
3:p3; {n=3, Выполняется процедура р3 из модуля C}
4:p4; {n=4, Выполняется процедура р4 из модуля D}
5:p5; {n=5, Выполняется процедура р5 из модуля E}
end; {Конец оператора выбора}
window(1,1,80,24) {Окно, в котором ведутся работы}
until n=0;
textbackground(black);
textcolor(white);
clrscr
end. {Конец программы}
unit B;
interface
procedure P1; { процедура P1}
procedure P2; {процедура
P2}
implementation
procedure P1;
var y,x:real;
begin
read(x);
y:=exp(sqr(x*x)+sin(x)*sin(x)+
write(y);
end;
procedure P2;
var x,y,p,z:real;
begin
write (‘vvedi x’);read(x);
p:=3.14;
if x<0
then writeln (‘ln ne schitaet’)
else
if cos (sqr(x)+P/4)<0
then writeln (‘koren ne vischitivaet’)
else
if ln(x)-2*(x)=0
then writeln (‘na 0 delit’)
else
begin
z:=(exp(1/3*ln(sqr(x))+6)))*(
writeln (‘z=’,z)
end
end. {конец модуля
B}
unit C;
interface
procedure P3;
implementation
procedure P3;
var S:real;
I,n:integer;
begin
writeln(‘N=’);
readln(N);
S:=1;
For i:=1 to n do begin
S:=S+1/(exp(i*ln(4))+exp((i+2)
End;
Writeln(‘S=’,S);
Readln;
end. {конец модуля С}
unit D;
interface
procedure P4;
implementation
uses f;
procedure P4;
begin {начало процедуры P4}
f1 {вызов процедуры f1}
end; {конец процедуры
P4}
end. {конец модуля
D}
unit E;
interface
procedure P5;
implementation
uses f;
procedure P5;
begin {начало процедуры P5]
f2 {вызов процедуры f2}
end; {конец процедуры
P5}
end.
unit f;
interface
procedure f1;
procedure f2;
implementation
procedure f1;
var s,p,n,i: integer;
a: array [1..10] of integer;
begin
randomize; for i:=1 to 10 do a[i]:=(random(21)-10);
s:=0;
p:=1;
n:=0;
for i:=1 to 10 do
begin
if a[i]<0 then s:=s+a[i];
if a[i]<>0 then n:=n+1;
if a[i]>0 then p:=p*a[i];
end;
for i:=1 to 10 do write (a[i]:3);
writeln;
writeln ('summa ravna',s);
writeln ('proizvedenie ravno',p);
writeln ('kolichestvo nenulevuh ravno',n);
end;
procedure f2;
var x,y,i,t,m,n:integer;
a: array [1..12] of array [1..10] of integer;
begin
m:=10;
n:=12;
i:=1;
for y:=1 to m do
for x:=1 to n do
a[x,y]:=random(21)-10;
for y:=1 to m do
begin
writeln;
for x:=1 to n do
write(a[x,y]:3);
end;
writeln;
for y:=1 to m do
begin
i:=1;
for x:=7 to n do
begin
t:=a[x-i,y];
a[x-i,y]:=a[x,y];
a[x,y]:=t;
i:=i+2;
end;
end;
for y:=1 to m do
begin
writeln;
for x:=1 to n do
write(a[x,y]:3);
end;
writeln;
writeln;
end;{конец процедуры
P3}
end. {конец модуля F}
unit g;
interface
procedure frame1;
procedure frame2;
procedure menushow;
function menuselect:byte;
implementation
uses crt;
const menutexts:array [0..5] of string [10]=
('Выход','Задача 1','Задача 2',
'Задача 3','Задача 4','Задача 5');
var n:byte;
menux:array [0..5] of byte;
procedure frame1;
var i:byte;
begin {начало работы процедуры frame1}
for i:=2 to 23 do
begin {начало цикла}
gotoxy(1,i); {Помещает курсор в то место, где должен оказаться символ}
write(#179); {
gotoxy(80,i);{Помещает курсор в то место, где должен оказаться символ}
write(#179)
end; {конец цикла рисования вертикальных линий для первой рамки}
for i:=2 to 79 do
begin {начало цикла}
gotoxy(i,1); {Помещает курсор в то место, где должен оказаться символ}
write(#196);
gotoxy(i,24);{Помещает курсор в то место, где должен оказаться символ}
write(#196)
end; {конец цикла рисования горизонтальных линий для первой рамки}
gotoxy(1,1);write(#218);
gotoxy(1,24);write(#192);
gotoxy(80,1);write(#191);
gotoxy(80,24);write(#217)
end; {конец работы процедуры frame1}
procedure frame2; {процедура рисования второй одиночной рамки}
var i:byte;
begin
for i:=4 to 22 do
begin
gotoxy(2,i);write(#186);
gotoxy(79,i);write(#186)
end;
for i:=3 to 78 do
begin
gotoxy(i,3);write(#205);
gotoxy(i,23);write(#205)
end;
gotoxy(2,3);write(#201);
gotoxy(2,23);write(#200);
gotoxy(79,3);write(#187);
gotoxy(79,23);write(#188)
end; {конец процедуры рисования второй одиночной рамки}
procedure menushow; {процедура оформления меню}
var i:byte;
begin
textbackground(lightgray);
textcolor(black);
for i:=0 to 5 do
begin
gotoxy(menux[i],2);write(
end;
textbackground(lightcyan);{
textcolor(white);
gotoxy(menux[n],2);write(
end; {конец процедуры оформления меню}
function menuselect:byte; {функция выбор пункта меню}
var c:char; {код нажатой клавиши символьный}
begin
repeat
c:=readkey;
case c of
#75: if n=0
then n:=5
else n:=n-1;
#77: if n=5
then n:=0
else n:=n+1
end;
menushow
until c=#13;
menuselect:=n
end;
begin {секция инициализации}
menux[0]:=5;
for n:=1 to 5 do
menux[n]:=menux[n-1]+length(
n:=0
end.{конец модуля G}
«Скриншоты» с результатами работы программы.
Задача
№ 2.
Список литературы:
Информация о работе Отчет по учебной практике технологии программирования