95712

Объекты Delphi и логика описания программы

Контрольная

Информатика, кибернетика и программирование

Процесс создания программы в Delphi состоит из двух шагов: сначала нужно создать форму программы (диалоговое окно), затем — написать процедуры обработки событий. Форма приложения (так принято называть прикладные программы, работающие в Windows) создается путем добавления в форму компонентов и последующей их настройки.

Русский

2015-09-29

158 KB

6 чел.

PAGE  21

Содержание

Введение ………………………………………………………..

3

1.

Базовые компоненты …………………………………..

4

2.

Работа с кнопками и полями ………………………….

5

3.

Работа с графическими объектами ……………………

14

Заключение ……………………………………………………..

23

Литература ……………………………………………………...

24


Введение

Задачи обработки данных с помощью среды визуального проектирования в информатике занимают особую ступень в решении прикладных задач, построенных из «кирпичиков» составляющих окна и функции любой операционной системы, то есть построенным по строго определённым правилам. Решение задач опирается на операторы и структуру языка Pascal, однако высоко организованный интерфейс обеспечивает комфортное общение пользователя и ЭВМ. Следовательно, изучение спектра задач визуального проектирования актуально, а определение классов задач со стандартными компонентами, изучаемыми в базовом курсе информатики или профильных курсах определяют проблему исследования.

Целью исследования является определение стандартных объектов и решение задач начального уровня с применением этих объектов.

Объектом исследования выступают объекты Delphi и логика описания программы. Предметом исследования является классификация тренировочных задач на стандартные объекты и элементы графики, и степень рациональности их решения.

Выдвинем гипотезу о том, что существует спектр тренировочных задач Delphi  разрешимых только с помощью стандартных объектов и элементов графики. Они рационально при условии правильно организованных алгоритмов решения. Для обоснования гипотезы выдвинем задачи исследования: 1) изучить разработки и провести анализ литературных источников по данной проблеме; 2) обработать и апробировать решение найденных алгоритмов на языке программирования Delphi 7.

Значимость исследования состоит в выборе спектра тренировочных задач, разрешимых только с использованием стандартных объектов Delphi.


1. Базовые компоненты

Процесс создания программы в Delphi состоит из двух шагов: сначала нужно создать форму программы (диалоговое окно), затем — написать процедуры обработки событий. Форма приложения (так принято называть прикладные программы, работающие в Windows) создается путем добавления в форму компонентов и последующей их настройки.

В форме практически любого приложения есть компоненты, которые  обеспечивают интерфейс  (взаимодействие)  между программой и пользователем. Такие компоненты называют базовыми. К базовым компонентам можно отнести:

Label — поле вывода текста;

Edit — поле ввода/редактирования текста;

Button — командную кнопку;

CheckBox — независимую кнопку выбора;                     

RadioButton — зависимую кнопку выбора;                     

ListBox — список выбора;                                                

ComboBox — комбинированный список выбора.      

Вид компонента, его размер и поведение определяются значениями свойств (характеристик) компонента.

Основную работу в программе выполняют процедуры обработки событий.

Исходную информацию программа может получить из полей ввода/редактирования (компонент Edit), списка выбора (компонент ListBox) или комбинированного списка (компонент ComboBox). Для ввода значений логического типа можно использовать компоненты CheckBox и RadioButton.

Результат программа может вывести в поле вывода текста (компонент    Label)    или    в    окно    сообщения    (функция MessageDlg).

Для преобразования текста, например находящегося в поле ввода/редактирования, в целое число нужно использовать функцию strToint, а в дробное — функцию strToFloat.

Для преобразования целого, например значения переменной, в строку нужно использовать функцию intTostr, а для преобразования дробного — функцию FloatToStr или FloatToStrF. [2, 8]

2. Работа с кнопками и полями

1. Написать программу, которая пересчитывает скорость ветра из "метров в секунду" в "километров в час". Программа должна быть спроектирована таким образом, чтобы пользователь мог ввести в поле Скорость только целое положительное число. [1, 45-49]

// щелчок на кнопке Пересчет

procedure TForm1.ButtonlClick(Sender: TObject);

var

  ms:  integer; // скорость м/с

  kmh: real;   // скорость км/час

 begin

// Если поле Editl пустое, то при выполнении функции

// StrToInt возникает ошибка.

// Проверим, ввел ли пользователь скорость в поле Edit1

if Length(Editl.Text) = 0 than

begin

  ShowMessage('Надо ввести скорость');

  exit; // завершить обработку события

end;

ms := StrToInt(Editl.Text); // ввести исходные данные

 kmh := ms * 3.6;                             // пересчитать

// вывести результат

Label3.Caption :=

IntToStr(ms) + `м/с - это ' + FloatToStr(kmh) + ' км/час'

end;

// нажатие клавиши в поле Edit1

procedure TForml.EditlKeyPress(Sender: TObject; var Key: Char)

begin

// В поле Скорость   (Editl) можно ввести только

// цифры.  Процедура проверяет, является ли символ

// допустимым.  Если нет,  то она заменяет

// введенный символ нулевым.  В результате символ

// в поле редактирования не отображается.

// Key символ,  соответствующий нажатой клавише 

if not   ((Key >=  '0')   and  (Key <='9')  or   (Key = #8)) then Key := Chr(O);

end;

2. Написать программу, которая вычисляет скорость (км/час), с которой бегун пробежал дистанцию. Количество минут задается целым числом, секунд — дробным. [2, 21-23]

// Если символ недопустимый,  то процедура, заменяет его

// на символ с кодом 0.  В результате этого символ в поле

// редактирования не появляется и у пользователя создается

// впечатление,  что программа не реагирует на нажатие

// некоторых клавиш:

case Key of

 О.. '9':                             ;   // цифры

  #8     :                                   ; // клавиша <Backspace>

  #13    : Edit2.SetFocus; // при нажатии <Enter> курсор

// переводится в поле Время: минут

// остальные символы запрещены

  else Key :=Chr(0);  // символ не отображать

  end;

end;

// нажатие клавиши в поле Время: минут

procedure TForml.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

  case Key of  

  0 .. ' 9' :                              ;

  #8     :                                   ;  // клавиша <Backspace>

  #1.3    : Edit3.SetFocus; // при нажатии <Enter> курсор

// переводится в поле Время :секунд

// остальные символы запрещены

  else Key:=Chr(O);  // символ не отображать

  end;

end;

// нажатие клавиши в поле Время: секунд

procedure TForml.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

case Key of 0' ..' 9' : ;

',','.' : // десятичный разделитель

 begin

Key := DecimalSeparator;#13 : Buttonl.SetFocus; // при нажатии клавиши <Enter>

// активируется кнопка Вычислить

// остальные символы — запрещены

If Pos(DecimalSeparator, Edit3.Text)<>0

thenKey:=Char(0);

end;

#8:   ;

#13: Button1.SetFocus;

else Key :=Chr(0); // символ не отображать 

end;

end;

// щелчок на кнопке Вычислить

procedure TForml.ButtonlClick(Sender: TObject);

var

dist : integer; // дистанция, метров

min : integer;  // время, минуты

sek : real;    // время, секунды

v: real;      // скорость

begin

// получить исходные данные из полей ввода

dist := StrToInt(Editl.Text);

min := StrToInt(Edit2.Text);

sek := StrToFloat(Edit3.Text);

// дистанция и время не должны быть равны нулю if (dist = 0) or ((min = 0) and (sek = 0)) then begin

ShowMessage('Надо задать дистанцию и время.');

exit;

and;

// вычисление

v := (dist/1000) / ((min*60 + sek)/3600);

// вывод результата

Label5.Caption := 'Дистанция: '+ Editl.Text + ' м' + #13 +'Время: ' + IntToStr(min) + ' мин ' +FloatToStrFfsek, ffGeneral, 4,2) + сек ' +

#13 + 'Скорость: ' +FloatToStrF(v,ffFixed,4,2) + ' км/час'; end;

// щелчок на кнопке Завершить

procedure TForml.Button2Click(Sender: TObject);

begin

Forml.Close; // закрыть главную форму — завершить работу

// программы end;

3. Напишите программу, которая вычисляет доход по вкладу. Программа должна обеспечивать расчет простых и сложных процентов. Простые проценты начисляются в конце срока вклада, сложные — ежемесячно и прибавляются к первоначальной сумме вклада и в следующем месяце проценты начисляются на новую сумму. [3, 267-268]

// щелчок на кнопке Вычислить

procedure TFontil.ButtonlClick(Sender:   TObject);

var

sum :real;   // сумма вклада 

pr:  real;   // процентная ставка

srok: integer; // срок вклада

dohod: real;  // доход по вкладу

buf: real;

i: integer;

begin

// получить исходные данные

 sum := StrToFloat(Editl.Text);

pr := StrToFloat(Edit2.Text);

srok := StrTolnt(Edit3.Text);

if RadioButtonl.Checked then

// выбран переключатель Простые проценты 

dohod := sum * (pr/100) * (srok/360)

   else

// т. к. в труппе два переключателя, то если

// не выбран RadioButtonl, то выбран

// RadioButton2 — Сложные проценты

      begin

buf:= sum;

for i:=l to srok do

      buf:= buf + buf * (pr:/100);

// здесь buf — сумма в конце срока вклада

             dohod := buf — sum;

end;

sum := sum + dohod;

Label4.Caption := 'Доход: ' + Float-ToStrF(dohod,ffGeneral,9,2) + #13 +

'Сумма в конце срока вклада: ' + FloatToStrF(sum,ffGeneral, 9, 2) ;

end;

// выбор переключателя Простые проценты

procedure TForml.RadioButtonlClick(Sender: TObject);

begin

Label2.Caption := 'Срок (дней)';

Label4.Caption := ";

end;

// выбор переключателя Сложные проценты

procedure TForml.RadioButton2Click(Sender: TObject);

begin

Label2.Caption := 'Срок (мес.)';

Label4.Caption := ;

end;

4. Написать программу, которая вычисляет сопротивление электрической цепи, состоящей из двух сопротивлений. Сопротивления могут быть соединены последовательно или параллельно. Если величина сопротивления цепи превышает 1 000 Ом, то результат должен быть выведен в килоомах. [4, 451-452]

// щелчок на кнопке Вычислить

procedure TForml.ButtonlClick(Sender: TObject);

var

rl,r2: real; // величины сопротивлений

r: real;    // сопротивление цепи

begin

// получить исходные данные

rl := StrToFloat(Editl.Text);

r2 := StrToFloat(Edit2.Text);

if (rl = 0) and (r2 = 0) then

      begin

ShowMessage('Надо задать величину хотя бы одного сопротивления');

exit;

      end;

// переключатели RadioButton1 и RadioButton2

// зависимые, поэтому о типе соединения можно

// судить по состоянию одного из этих

// переключателей

if RadioButtonl.Checked

           then // выбран переключатель Последовательно

                r:= rl+r2

           else // выбран переключатель Параллельно

                 r:= (rl*r2)/(rl+r2);

Label4.Caption := 'Сопротивление цепи: ';

if r < 1000 then

Label4.Caption := Label4.Caption +FloatToStrF(r,ffGeneral,3,2) + ' Ом

      else

         begin

r:=r/1000;

Label4.Caption := Forml.Label4.Caption + FloatToStrF(r,ffGeneral,3,2) + ' кОм';

        end

end;

// щелчок на переключателе Последовательно 

procedure TForml.RadioButtonlClick(Sender: TObject);

begin

// пользователь изменил тип соединения

Label4.Caption := ";

and;

// щелчок на переключателе Параллельно

procedure TForml.RadioButton2Click(Sender: TObject);

begin

// пользователь изменил тип соединения

Label4.Caption := ";

end;

5. Напишите программу "Электронные часы", на поверхности формы которой отображается текущее время. [2, 34-36]

unit eclock_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ExtCtrls, StdCtrls;

type

TForm1=class(TForm)

Timerl: TTimer;

Labell: TLabel;

procedure FormPaint(Sender: TObject);

procedure TimerlTimer(Sender: TObject);

procedure FormCreate(Sender: TObject);

// объявление процедуры ShowTime

// помещено сюда вручную

// это сделано, чтобы функция имела

// доступ к компонентам формы напрямую

procedure ShowTime;

private

    { Private declarations )

public

    { Public declarations )

end;

var

Forml: TForml;

implementation

{$R *.dfm}                                                                                    :

// отображает текущее время

procedure TForml.ShowTime;

var

Time: TDateTime; // текущее время

begin

Time := Now();  // получить системное время

Labell. Caption := FormatDateTime ('hh-.mn:ss' ,Time) ;

end;

// обработка события Paint

procedure TForml.FormPaint(Sender: TObject);

begin

ShowTime;  // отобразить часы

end;

// обработка сигнала таймера

procedure TForml.TimerlTimer(Sender: TObject);

begin

ShowTime;  // отобразить время 

end;

procedure TForml.FormCreate(Sender: TObject);

begin

// настроить и запустить таймер

Timerl.Interval := 1000;  // период сигналов таймера 1 с

Timerl.Enabled := True;   // пуск таймера 

end;

end.

3. Работа с графическими объектами

6. Напишите программу, в диалоговом окне которой, в точке щелчка кнопкой мыши, вычерчивается контур пятиконечной звезды. [2, 37-39]

iunit Stars_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;

type

TForml = class(TForm)

          procedure FornMouseDown(Sender: TObject; Button: TMouseButton;

               Shift: TShiftState; X, У: Integer);

private

 { Private declarations }

public

 { Public declarations )

     procedure StarLine(xO,yO,r: integer); // рисует звезду 

   end;

var

Forml: TForml;

implementation

{$R *.dfm}

// рисует звезду

procedure TForml.StarLine(xO,yO,r: integer);

// x0, y0 координаты центра звезды

//rрадиус звезды

Var

р : array[l..ll] of TPoint; // массив координат лучей и впадин 

a: integer;  // угол между осью ОХ и прямой, соединяющей центр звезды и конец луча или впадину

 i: integer;

begin

а := 18; // строим от правого горизонтального  луча

for i:=l to 10 do begin

if (i mod 2=0) then begin // впадина

p[i].x := xO+Round(r/3*cos(a*2*pi/360));

p[i].y:=yO-Round(r/3*sin(a*2*pi/360));

end

else

begin // луч

p[i].x:=x0+Round(r*cos(a*2*pi/360));

p[i].y:=yO-Round(r*sin(a*2*pi/360));

end;

a := a+36;

end;

p[ll].X := p[l].X; // чтобы замкнуть контур звезды 

p[ll].Y :=p[l].Y;

Canvas.Polyline (p); // начертить контур звезды

 end;

// нажатие кнопки мыши

procedure TForml.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

if Button = mbLeft // нажата левая кнопка?

then Canvas.Pen.Color := clBlack

else Canvas.Pen.Color := clRed;

StarLine(x, y, 30);

end;

end.

7. Напишите программу, которая на поверхности формы вычерчивает график функции, например 2 sin(x) ex/5. Вид окна во время работы программы приведен на рисунке. [1, 61-62]

// Функция, трафик которой надо построить

Function f(x:real):real;

begin

f:=2*Sin(x)*exp(x/5);

end;

// строит график функции

procedure GrOfFunc;

var

xl,x2:real;   // границы изменения аргумента функции

yl,y2:real;   // границы изменения значения функции

x:real;      // аргумент функции

у:real;      // значение функции в точке х

dx:real;      // приращение аргумента

l,b:integer;  // левый нижний угол области вывода трафика

w,h:integer;  // ширина и высота области вывода графика

mx,my:real;   // масштаб по осям X и У

хО,уО:integer; // точка — начало координат

begin

// область вывода графика

1:=10;         // X — координата левого верхнего угла

b:=Forml.ClientHeight-20;  // Y - координата левого верхнего  угла

h:=Forml.ClientHeight-40;     // высота

 w:=Forml.Width-40;                // ширина

xl:=0;         // нижняя граница диапазона аргумента

х2:=25;         // верхняя граница диапазона аргумента

dx:=0.01;    // шаг аргумента

//найдем максимальное и минимальное значения функции на отрезке [xl,x2]

yl:=f(xl); // минимум

у2:=f(xl); // максимум

х: =xl;

repeat

у := f(x);

if у < yl then yl:=y;

if у > у2 then у2:=у;

x:=x+dx;

until (х>=х2);

// вычислим масштаб

my:=h/abs(y2-yl); // масштаб по оси У

mx:=w/abs(x2-xl);  // масштаб по оси X

// оси

 хО:=1;

yO:=b-Abs(Round(yl*my));.

with forml. Canvas do

begin

// оси

MoveTo(1,b);LineTo(1,b-h);

MoveTo(xO,yO);LineTo (xO+w,yO) ;

Text0ut(l+5,b-h, FloatToStrF(y2,ffGeneral,6,3)) ;

TextOut(l+5,b,FloatToStrF(yl,ffGeneral,6,3)) ;

// построение графика

x:=xl;

repeat

y:=f(x);

Pixels[xO+Round(x*mx),yO-Round(y*my)]:=clRed;

x:=x+dx;

until (x>=x2);

end;

end;

procedure TForml.FormPaint(Sender: TObj ect);

begin

GrOfFunc;

end;

// изменился размер окна программы

 procedure TForml.FormResize(Sender: TObject);

begin

// очистить форму

forml.Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight));

// построить график

GrOfFunc;

end;

8. Напишите программу, по поверхности формы которой движется изображение. Изображение перемещающегося объекта и фоновый рисунок должны загружаться из файла. [3, 321-322]

unit aplane_;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons;

type              

TForml = class(TForm)

Timerl: TTimer;

Image1; T Image;

procedure TimerlTimer(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

 end;

var

Forml: TForml;

implementation

($R *.DFM)

var

Back, Picture: TBitMap; // фон и картинка

BackRct : TRect;      // положение и размер области фона,

// которая должна быть восстановлена

х,у:integer; // текущее положение картинки

W,H: integer; // размеры картинки

procedure TForml.FormCreate(Sender: TObject);

begin

{ Свойству AutoSize обязательно надо присвоить значение False. Это можно сделать во время создания формы, )

Imagel.AutoSize := False;

// создать два объекта битовых образа

Back := TBitmap.Create;    // фон 

Picture := TBitmap.Create;  // картинка

// загрузить и вывести фон

Back.LoadFromFile('factory.bmp);

Image1.Width  := Back.Width;

Imagel.Height := Back.Height;

Imagel.Canvas.Draw(0,0,Back);

// загрузить картинку, которая будет двигаться

Picture.LoadFromFile('aplane.bmp');

W := Picture.Width;

H := Picture.Height;

// определим "прозрачный" цвет

Picture.Transparent := True;

// прозрачный цвет картинки определяет

// левый верхний пиксел картинки

Picture.TransParentColor := Picture.Canvas.Pixels[1,1];

// начальное положение картинки

 x := -W;

у := 20;

// определим сохраняемую область фона

BackRct:=Bounds(х,у,W,Н);

end;

// обработка сигнала таймера

procedure TForml.TimerlTimer(Sender: TObject);

begin

// восстановлением фона удалим рисунок

Imagel.Canvas.CopyRect(BackRct,Back.Canvas,BackRct);

x:=x+2;

if x > Imagel.Width then x:=-W;

// определим сохраняемую область фона

BackRct:=Bounds(x, у, W, H) ;

// выведем рисунок 

Imagel.Canvas.Draw(x,y,Picture);

end;

// завершение работы программы

procedure TForml.FormClose(Sender: TObject;  var Action: TCloseAction);

begin

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

Back.Free;

Picture.Free;

end;

end.

9. Напишите программу, в окне которой отображается "мультик", загруженный из BMP-файла. Пример мультика (картинка, которая находится в BMP-файле) — на рисунке [4, 472-473]

implementation

($R *.DFM)

const

FILMFILE = 'delphi.bmp'; /, фильм - BMP-файл

N_KADR=12; // кадров в фильме (для данного файла)

var

Film: TBitMap;                  // фильм — все кадры

WKadr,HKadr: integer;   // ширина и высота кадра

CKadr: integer;                // номер текущего кадра

RectKadr: TRect;              // положение и размер кадра в фильме

RectScr : Trect;            // координаты и размер области

                                     // отображения фильма

procedure TForml.FormCreate(Sender: ТОЬj ect);

begin

Film := TBitMap.Create;      // создать объект типа TBitMap

Film.LoadFromFile(FILMFILE); // загрузить "фильм" из файла

WKadr := Round(Film.Width/N_Kadr);

HKadr := Film.Height;

RectScr := Bounds(10,10,WKadr,HKadr);

Ckadr:=0;

Timerl.Interval := 150; // период обновления кадров — 0.15 сек Timer1.Enabled:=True; // запустить таймер 

end;

// обработка сигнала от таймера

procedure TForml.TimerlTimer(Sender: TObject);

begin

// определим положение текущего кадра в фильме

RectKadr:=Bounds(WKadr*CKadr,0,WKadr,HKadr);

// вывод кадра из фильма

Forml.Canvas.CopyRect(RectScr,Film.Canvas,RectKadr);

// подготовимся к выводу следующего кадра 

CKadr := CKadr+1;

if CKadr =. NJCADR then CKadr:=0;

end;

end.


Заключение

Исследование в области решения тренировочных задач со стандартными объектами Delphi 7, предпринято в связи с тем, что данный тип задач весьма актуален в работе с объектами операционных систем и подобных оконных приложений и является неотъемлемой частью информационной сферы деятельности, широко изучается в программировании  и базовом курсе информатики.

В процессе выполнения работы изучена литература по вопросам условий и выборки. Проанализированы и обработаны девять программ в среде Delphi 7. Программное решение наиболее распространённых задач дало положительный результат. Выдвинутая гипотеза о существовании спектра задач разрешимых только с помощью стандартных объектов Delphi 7 обоснована и доказана.

Предложенные алгоритмы имеют характер традиционных, решаемых в при изучении базового курса информатики. Все предложенные в работе программы имеют, с той или иной условностью, практическое применение.

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


Литература

  1.  Бобровский С.Ю. Delphi 7. Учебный курс. СПб.: Питер, 2007. – 736с.
  2.  Культин Н.Б. Delphi 7 в задачах и примерах. – СПб.: БХВ-Петербург, 2005. – 288 с.
  3.  Могилёв А.В., Пак Н.И., Хеннер Е.К. Информатика. – М.: ACADEMIA, 2001. – 816 с.
  4.  Могилёв А.В., Пак Н.И., Хеннер Е.К. Практикум по информатика. – М.: ACADEMIA, 2002. – 786 с.


 

А также другие работы, которые могут Вас заинтересовать

49365. Разработка ЭТС, обеспечивающей увеличение объема и снижение себестоимости продукции сельскохозяйственных предприятий 367 KB
  Характеристика парка электрооборудования и Расчет объема работ по обслуживанию электрооборудования Разработка квартального графика технического обслуживания электрооборудования...
49366. Прямий перетворювач Фурє (з використанням ШПФ) 881 KB
  Вибір певної структури побудови мікропроцесорного пристрою обробки сигналів залежить від особливостей реалізуємого алгоритму і певного набору мікропроцесорних засобів
49370. Расчет шума при зондовой микроскопии 698.72 KB
  Некоторые виды шума неустранимы принципиальнонапример флуктуации измеряемой величины и с ними надо бороться только методами усреднения сигнала и сужения полосы. Другие виды шума например помехи на радиочастоте и âпетли заземленияâ можно уменьшить или исключить с помощью разных приемов включая фильтрацию а также тщательное продумывание расположения проводов и элементов схем или другими методами. Джонсон впервые экспериментально установил закономерности этого вида шума в Bell Lbs. Реактивные цепи не имеют теплового шума.
49372. Амортизатор роликовый 3.07 MB
  Поэтому такой способ был выбран для изготовления корпуса которое происходит в следующей последовательности: Вначале строятся пять параллелепипедов со следующим взаимным расположением рис. 1 затем четыре из них расположенные по бокам вычитаются из самого большого получается такая фигура рис. 2 Далее следует наклонить две боковые грани фигуры для чего из неё вычитаются два клина расположенные как показано на рис. Этого можно добиться вычтя из детали фигуру сложной формы рис.
49373. Проектирование усилителя мощности звуковой частоты 208 KB
  Содержание Техническое задание Расчет структурной схемы: выбор транзистора для оконечного каскада. выбор транзистора для предоконечного каскада. расчет входных и выходных электрических показателей предоконечного каскада выбор транзистора для первого входного каскада расчет входных параметров первого каскада распределение частотных и нелинейных искажений в цепях усилителя структурная схема...