Новые книги

Master the fundamental concepts of real-time embedded system programming and jumpstart your embedded projects with effective design and implementation practices. This book bridges the gap between higher abstract modeling concepts and the lower-level programming aspects of embedded systems development. You gain a solid understanding of real-time embedded systems with detailed practical examples and industry wisdom on key concepts, design processes, and the available tools and methods.

Delve into the details of real-time programming so you can develop a working knowledge of the common design patterns and program structures of real-time operating systems (RTOS). The objects and services that are a part of most RTOS kernels are described and real-time system design is explored in detail. You learn how to decompose an application into units and how to combine these units with other objects and services to create standard building blocks. A rich set of ready-to-use, embedded design “building blocks” is also supplied to accelerate your development efforts and increase your productivity.

Experienced developers new to embedded systems and engineering or computer science students will both appreciate the careful balance between theory, illustrations, and practical discussions. Hard-won insights and experiences shed new light on application development, common design problems, and solutions in the embedded space. Technical managers active in software design reviews of real-time embedded systems will find this a valuable reference to the design and implementation phases.

Qing Li is a senior architect at Wind River Systems, Inc., and the lead architect of the company’s embedded IPv6 products. Qing holds four patents pending in the embedded kernel and networking protocol design areas. His 12+ years in engineering include expertise as a principal engineer designing and developing protocol stacks and embedded applications for the telecommunications and networks arena. Qing was one of a four-member Silicon Valley startup that designed and developed proprietary algorithms and applications for embedded biometric devices in the security industry.

Caroline Yao has more than 15 years of high tech experience ranging from development, project and product management, product marketing, business development, and strategic alliances. She is co-inventor of a pending patent and recently served as the director of partner solutions for Wind River Systems, Inc.

About the Authors
В книге рассматриваются основные моменты технологии продаж рекламных услуг. Автор подробно и популярно объясняет, что и как нужно сделать рекламному агенту (менеджеру) для того, чтобы преуспеть в продажах рекламных возможностей.

Книга рассчитана на действующих на рекламном рынке агентов и менеджеров, так и на тех, кто только планирует заняться рекламными продажами. Кроме того, книга представляет интерес для студентов и преподавателей дисциплин, связанных с рекламной деятельностью.

11. Структрура программы

11. Структрура программы

   Программа на языке ПАСКАЛЬ состоит из заголовка, разделов описаний

и раздела операторов.

   Заголовок программы содержит имя программы, например:

 

      Program PRIM;

 

   Описания могут  включать в себя раздел подключаемых библиотек (мо-

дулей), раздел  описания меток, раздел описания констант, раздел опи-

сания типов,  раздел описания переменных,  раздел описания процедур и

функций.

   Раздел описания  модулей  определяется служебным словом USES и со-

держит имена подключаемых модулей (библиотек)  как входящих в  состав

системы TURBO PASCAL, так и написанных пользователем. Раздел описания

модулей должен быть первым среди разделов описаний. Имена модулей от-

деляются друг от друга запятыми:

 

    uses  CRT, Graph;

 

   Любой оператор  в программе может быть помечен меткой.  В качестве

метки используются произвольные целые без знака,  содержащие не более

четырех цифр, либо имена. Метка ставится перед оператором и отделяет-

ся от него двоеточием.  Все метки,  используемые в программе,  должны

быть перечислены в разделе описания меток, например:

 

      label 3, 471, 29, Quit;

 

   Описание констант  позволяет использовать имена как синонимы конс-

тант, их необходимо определить в разделе описаний констант:

 

      const K= 1024;   MAX= 16384;

 

   В разделе описания переменных необходимо определить тип всех пере-

менных, используемых в программе:

 

      var P,Q,R: Integer;

          A,B:   Char;

          F1,F2: Boolean;

 

   Описание типов,  прцедур и функций будет рассмотрено ниже. Отдель-

ные разделы описаний могут отсутствовать,  но следует помнить,  что в

ПАСКАЛЬ - программе   должны  быть обязательно описаны все компоненты

программы.

   Раздел операторов  представляет собой составной оператор,  который

содержит между служебными словами

 

         begin.......end

 

последовательность  операторов.  Операторы  отделяются  друг от друга

символом ;.

   Текст программы заканчивается символом точка.

   Кроме описаний  и  операторов  ПАСКАЛЬ - программа может содержать

комментарии, которые  представляют собой произвольную  последователь-

ность символов,  расположенную между открывающей скобкой комментариев

{ и закрывающей скобкой комментариев }.

   Текст ПАСКАЛЬ - программы может содержать ключи компиляции,  кото-

рые позволяют управлять режимом компиляции.  Синтаксически ключи ком-

пиляции записываются как комментарии. Ключ компиляции содержит символ

$ и букву-ключ с последующим знаком + (включить режим)  или - (выклю-

чить режим). Например:

 

   {$E+} - эмулировать математический сопроцессор;

   {$F+} - формировать дальний тип вызова процедур и функций;

   {$N+} - использовать математический сопроцессор;

   {$R+} - проверять выход за границы диапазонов.

 

   Некоторые ключи компиляции могут содержать параметр, например:

 

   {$I имя файла} - включить в текст компилируемой программы  назван-

ный файл.

 

    Пример записи простой программы:

 

         Program TRIANG;

          var A, B, C, S, P: Real;

          begin

           Read(A,B,C);

           WriteLn(A,B,C);

            P:=(A+B+C)/2;

            S:=Sqrt(P*(P-A)*(P-B)*(P-C));

           WriteLn('S=',S:8:3)

          end.