Отчет по учебной практике технологии программирования

Автор работы: Пользователь скрыл имя, 17 Ноября 2010 в 14:28, отчет по практике

Описание

Цель практики является закрепление и расширение теоретических знаний и практических навыков разработки программ в областях

◦модульного программирования,
◦организации экранного (графического) пользовательского интерфейса,
◦использования процедур и функций стандартных модулей CRT и GRAPH.


Задачи практики является освоение теоретического материала и разработка на его основе трех программ:

◦Программы с модульной структурой,
◦Программы с оконным интерфейсом и меню для текстового режима (использующей процедуры и функции модуля CRT),
◦Программы с оконным интерфейсом и меню для графического режима (использующей процедуры и функции модуля GRAPH).

Работа состоит из  1 файл

Отчет. Практика..doc

— 722.50 Кб (Скачать документ)

   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)+cos(x)/sin(x+1)*sin(x+1))-0.14e-1;

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)))*(y+(sqrt(cos(x)+P/4))))/ln(x)-2*x);

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)*ln(5)));

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(menutexts[i])

    end;

   textbackground(lightcyan);{окрашивает курсор в светло-бирюзовый цвет}

   textcolor(white);

   gotoxy(menux[n],2);write(menutexts[n])

  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(menutexts[n-1])+4;

n:=0

end.{конец модуля G} 
 
 
 
 
 
 
 
 
 

  «Скриншоты» с результатами работы программы.

Задача  № 2. 
 

 

 

 

 

 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 

     Список  литературы:

  1. Фаронов В.В. Turbo Pascal 7.0: учебный курс. Учебное пособие для ВУЗов. КноРус, 2009 г
  2. Фаронов В.В. Turbo Pascal 7.0. практика программирования.(изд:7). КноРус, 2009 г
  3. Фаронов В.В. Turbo Pascal. Учебное пособие для ВУЗов. Питер, 2009 г
  4. Ван Тассел, Д.Стиль, разработка, эффективность, отладка и испытание программ. М.: Мир, 1981
  5. Перминов Р.С.Программирование на языке Паскаль. М.: Мир, 1995 г.
  6. Титовская Н.В. Титовский С.Н.Программирование. Методические указания к лабораторным работам Красноярск.: КрасГАУ,2009 г.

Информация о работе Отчет по учебной практике технологии программирования