Реферат по предмету "Радиоэлектроника"


Трассировка печатной платы

Министерство народного образованияРоссийской Федерации
КиГИТ
Кафедра информатики
 вычислительной техники
 
Курсовая работа
По курсу « Программирования ВТ  и  АС »
На тему: «Трассировка печатной платы»
Разработал:                                     студент группы ДПО-42       КудрявцевК.В.
 
Принял:                                           к.т.н., доцент кафедры ВТ  Гафаров Р.М.
Ижевск 2005
Текст программы
Рrogramplata;  {Находит кротчайший путь от одной точки до другой}           
uses crt;            {не пересекая уже проведенные линии}                         
constXm=80;Ym=24; c:word=14;                                                
      d:array[0..3]of record x,y:integerend=                                 
       ((x:-1;y:0),(x:0;y:-1),(x:1;y:0),(x:0;y:1));                          
      str='* — draw; del — clear; 1,2 — contact pointers;';                  
type  plt=array[1..Ym,1..Xm] of integer;                                      
var   Pl:plt;  ch:char;    x1,y1,x2,y2,s:integer;   p1:boolean;             
{-----------------------------------------------------------------------------------------------------------------}   
procedureInitPlata;                                       {Создаетфонэкрана}                                     
varx,y:integer;                                                             
beginTextBackGround(0);TextColor(7);                                         
 for y:=1 to Ym do for x:=1 to Xm do  begin Pl[y,x]:=0; write('.'); end;     
end;                                                                         
{-----------------------------------------------------------------------------------------------------------------}  
procedureClrPlata; {Восстанавливает экран в прежний вид послепрохождения}
var x,y:integer;                      {волны оставляяпроведенные линии}                      
beginTextBackGround(0);TextColor(7);                                         
 for y:=1 to Ym do for x:=1 to Xm do                                          
  if Pl[y,x]>0 then begin Pl[y,x]:=0;GotoXY(x,y); write('.'); end;           
end;      
{----------------------------------------------------------------------------------------------------------------}  
procedure Trassa(xn,yn,xk,yk:integer);{Этапроцедуранаходиткротчайший}   
var xt,yt,x1,y1,min,xp,yp,p:integer;          {путь от одной точки до другой}     
beginxt:=xk; yt:=yk; Pl[yt,xt]:=-1;                                         
 repeat min:=maxint;                                                          
  for p:=0 to 3 do                                                            
   begin x1:=xt+d[p].x; y1:=yt+d[p].y; Sound(p*abs((xk-x1)*(yk-y1)));        
    if(x1>0)and(x10)and(y10)and(Pl[y1,x1]
      then begin min:=Pl[y1,x1]; xp:=x1; yp:=y1;end;                        
   end;                                                                       
  xt:=xp; yt:=yp; Pl[yt,xt]:=-1; TextColor(9+c mod6);                       
  GotoXY(xt,yt); write(#219); Delay(130);                                     
 until (xt=xn)and(yt=yn);                                                     
 TextColor(12); GotoXY(xn,yn); write(#219); GotoXY(xk,yk);write(#219);      
 NormVideo; ClrPlata; inc(c); NoSound;                                       
end;                                                                          
{---------------------------------------------------------------------------------------------------------------}   
procedurevolna(xn,yn,xk,yk:integer; var s:integer); {Процедурапрохожденияволны}                       
var A:array[1..600] of record x,y:integer; end;                             
    i,p,k,l,xt,yt,x1,y1,ia,ib,f:integer;                                     
begin f:=2;Pl[yn,xn]:=1; A[1].x:=xn; A[1].y:=yn; ib:=300; ia:=1; k:=1;      
repeatl:=0;  {Sound(l*170);}                                                
  for i:=ia to ia+k-1 do                                                      
   begin xt:=A[i].x; yt:=A[i].y;Sound(i*70);                                 
    for p:=0 to 3 do                                                          
     begin x1:=xt+d[p].x; y1:=yt+d[p].y; Sound(p*k*7);                       
     if(x1>0)and(x10)and(y1
       begin A[ib+l].x:=x1; A[ib+l].y:=y1; inc(l);TextColor(9+f mod 6);     
        Pl[y1,x1]:=f; GotoXY(x1,y1); write((f mod10):1);                    
        if(x1=xk)and(y1=yk)then begin NoSound;s:=0;exit;end; Delay(13);     
       end;                                                                   
     end;                                                                     
   end;                                                                       
  i:=ia;ia:=ib; ib:=i; k:=l; inc(f);                                         
 until l=0; NoSound;                                                          
 s:=1; GotoXY(20,25); TextColor(12); write(‘ Трасса не может быть проведена!!!’);
 Delay(3000); GotoXY(xk,yk); TextColor(7); write('.');GotoXY(20,25);        
 write(str); ClrPlata;                                                        
end;                                                                          
{----------------------------------------------------------------------------------------------------------------}     
begin                                                                         
 ClrScr; InitPlata; GotoXY(20,25); write(str); GotoXY(40,12);  p1:=false;    
  repeat                                                                      
  ch:=ReadKey; if ch=#0 then ch:=ReadKey;                                     
  case ch of                                                                  
{up}   #72: if WhereY=1 then GotoXY(WhereX,24) elseGotoXY(WhereX,WhereY-1); 
{left} #75:if WhereX=1 then GotoXY(80,WhereY) else GotoXY(WhereX-1,WhereY); 
{right}#77:GotoXY((WhereX+1) mod 80+(WhereX+1) div 80 ,WhereY);             
{down} #80:GotoXY(WhereX,(WhereY+1) mod 25+(WhereY+1) div 25);              
{*} #56:begin Pl[WhereY,WhereX]:=-1; TextColor(10);write(#176); GotoXY(Where X-1,WhereY);
{del}  #83: begin Pl[WhereY,WhereX]:=0;  write('.'); GotoXY(WhereX-1,WhereY);end;
{1}    #49: if(not p1)and(Pl[WhereY,WhereX]=0)                                
             then begin x1:=WhereX; y1:=WhereY;p1:=true;                    
              TextBackGround(14);TextColor(12);write(#176);NormVideo; end;  
{2}    #50: if p1 and(Pl[WhereY,WhereX]=0)                                   
             then begin x2:=WhereX; y2:=WhereY;p1:=false;                   
              TextBackGround(14);TextColor(12);write(#176);NormVideo;       
              Volna(x1,y1,x2,y2,s);                                           
              if s=0 then trassa(x1,y1,x2,y2);  end;                         
  end;                                                                        
 until ch=#27;                                                                
 NormVideo;                                                                   
END.                                                                         
 
                                                                  

Результаты моделирования программы нареальной ЭВМ
        
 






Задание
Составить программутрассировки платы (программа, которая соединяет две точки линией кротчайшимпутем, не пересекаясь и обходя все препятствия).
Цель работы
Целью курсового проектирования являетсяприобретение и закрепление навыков в организации вычислительных процессов ипрограммирования на алгоритмическом языке ПАСКАЛЬ. Основной акцент в работеуделяется рассмотрению модульного программирования, использованию процедур и функций.Полученные знания помогут в будущем более эффективно подходить к процессуразработки программного обеспечения.
Постановка задачи
   В данной курсовой работе будет осуществляться  соединение двух точек кротчайшим путем, непересекая друг друга. Сначала пользователь при помощи курсора должен поставитьпервую точку, затем вторую и программа соединит эти точки. Для наибольшейнаглядности волна при прохождении раскрашивается разными цветами, а такжераскрашивается проведенная линия.
 
                                                                
Анализ и разработка алгоритма
Эта программа работает на принципе волны
которая начинаетраспространяться от первой
точки заполняя экран числамиот 0 до 9 пока
не достигнет второй точки см. рис.1.
Волна работает по такому принципу:
Когда вы ставите первую точку
то с этого места экран начнет
заполняться числами
Волна начинает расходиться
рис.2          с 1 и до 0 т. е. место которое вы
отметили первой точкой
на волне будет отмечено единицей«1»,
вокруг нее появляются двойки,вокруг двоек тройки                                                                                    рис.1
 и т.д. до нуля, после нуля все начинается с 1
 см.рис2. Как только волна достигнет второй точки              
см. рис.1распространение прекращается и начинает проводитьсялиния между точками(линии не могут пересекаться потому что после того как линиябудет создана место где она находится будет отмечено отрицательными числами, апри распространении волны экран заполняется положительными числами т.е. линияможет пройти только по положительным числам). Прежде чем пройдет трасса отодной точки до другой сначала пройдет волна и если нет мест отмеченныхотрицательными числами — (уже проведенные лини или что-то нарисовано), трассапройдет напрямую ко второй точке, а если есть места отмеченные отрицательнымичислами, то трасса идет напрямую ко второй точке, огибает преграду и доходитдо  второй точки не пересёкшись с другойлинией.  Выбор места установки контактов (первойи второй точек) производится  пользователемпри помощи курсора.
Принцип работы процедуры управления курсоромзаключается в том, что экран имеет размеры 80x25 верхний левый угол имеет координаты — (1,1), правыйнижний — (80,25) и если при движении курсора по оси Х курсор доходит конца экрана(например — 80), т.к. курсор не может переходить дальше координаты (80), то онавтоматически становится на начальную позицию см. рис. 3. То же самое происходит с курсором при его движении                                                                                                      рис.3
пооси У.                                                                                        
 
Вывод
Полученный мною практический опытприменительно к программированию на ПАСКАЛЕ позволяет использовать эффективноемодульное программирование. Кроме того, изучив представленный в курсовомпроектировании материал, я приобрел практические навыки использования процедур,функций. Эта курсовая для меня была интересна и увлекательна потому,  что с таким заданием я столкнулся впервые. Раньше я сам занимался радио –электроникой и думаю раньше, мне бы эта программа пригодилась.  

Алгоритмпрограммы
                                                    
Введение
Язык программирования Pascal был разработан в 1968—1971 гг.Никлаусом Виртом в Цюрихском Институте информатики (Швейцария). Первоначальнаяцель разработки языка диктовалась необходимостью инструмента «для обученияпрограммированию как систематической дисциплине». Однако очень скорообнаружилась чрезвычайная эффективность языка Pascal в самых разнообразныхприложениях, от решения небольших задач численного характера до разработкисложных программных систем — компиляторов, баз данных, операционных систем ит.п. К настоящему времени Pascal принадлежит к группе наиболее распространенныхи популярных в мире языков программирования. Существуют многочисленныереализации языка практически для всех машинных архитектур; разработаны десяткидиалектов и проблемно-ориентированных расширений языка Pascal; обучениепрограммированию и научно-технические публикации в значительной степенибазируются на этом языке.
Характеристика и особенностиязыка. Существует ряд объективных причин, обусловивших выдающийся успех языкаPascal. Среди них в первую очередь необходимо указать следующие:
1. Язык в естественной иэлегантной форме отразил важнейшие современные концепции технологии разработкипрограмм: развитая система типов, ориентация на принципы структурногопрограммирования, поддержка процесса пошаговой разработки.
2. Благодаря своейкомпактности, концептуальной целостности и ортогональности понятий, а такжеудачному первоначальному описанию, предложенному автором языка, Pascal оказалсявесьма легок для изучения и освоения. В противоположность громоздкиммноготомным описаниям таких языков, как PL/I, Cobol, FORTRAN, достаточно полноеописание языка Pascal занимает около 30 страниц текста, а его синтаксическиеправила можно разместить на одной странице.
3. Несмотря на относительнуюпростоту языка, он оказался пригоден для весьма широкого спектра приложений, втом числе для разработки очень больших и сложных программ, напримероперационных систем.
4. Pascal весьма технологичендля реализации практически для всех, в том числе и нетрадиционных, машинныхархитектур. Утверждается, что разработка Pascal-транслятора «почти непревышает по трудоемкости хорошую дипломную работу выпускника вуза».Благодаря этому для многих ЭВМ существует несколько различных реализации языка,отражающих те или иные практические потребности программистов.
Язык Pascal стандартизован во многих странах. В 1983 году был принятмеждународный стандарт (ISO 7185:1983). Готовится (сведения на 1989 год)стандарт СЭВ на Pascal.
Содержание
Введение………………………………………………………………….3
Задание........................................................................................................4
Цельработы………………………………………………………………4
Постановказадачи………………………………………………………..4
Анализ и разработка алгоритма………………………………………….5
Алгоритмпрограммы……………………………………………………..6
Текст программы………………………………………………………....7
Результаты моделированиепрограммы на реальной ЭВМ…………….9
Вывод………………………………………………………………………10


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Adolf Hittler Essay Research Paper Hitler
Реферат Грузинский коллаборационизм во Второй мировой войне
Реферат Оппозиция дела и оппозиция мысли николаевской России.
Реферат Автоматические системы управления химико-технологическими процессами
Реферат Нормирование загрязнений сельскохозяйственных почв
Реферат Русские юродивые
Реферат Разработка программы- тренажера "Управление электросетями"
Реферат Сюжет и герои одного из рассказов В.Шукшина
Реферат Земснаряды для разработки траншей
Реферат Межпредметные связи на уроках географии во вспомогательной школе
Реферат Проблемы государственного регулирования отечественной экономики
Реферат Ответственность за нарушение обязательств 3
Реферат Страхування майна
Реферат Подследственность в уголовном судопроизводстве РФ
Реферат Численное решение уравнения Шредингера средствами Java