14568

Операторы управления программой в Java

Лабораторная работа

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

Лабораторная работа Java3 Тема: Операторы управления программой в Java. Цель изучить основные операторы Javaпрограмм. Операторы Как вы знаете любой алгоритм предназначенный для выполнения на компьютере можно разработать используя только линейные вычисления р

Русский

2013-06-08

194.5 KB

10 чел.

Лабораторная работа Java-3

Тема: Операторы управления программой в Java.

Цель - изучить основные операторы  Java-программ.

 

Операторы

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

Всякий язык программирования должен иметь средства записи алгоритмов. Они называются операторами (statements) языка. Минимальный набор операторов должен содержать оператор для записи линейных вычислений, условный оператор для записи разветвлении и оператор цикла.

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

Набор операторов языка Java включает:

·         операторы описания переменных и других объектов

·         операторы-выражения; 

·         операторы присваивания; 

·         условный оператор if;

·         три оператора цикла while, do-while, for;

·         оператор варианта switch;

·         Операторы перехода break, continue и return;

·         блок {};

·         пустой оператор — просто точка с запятой.

Здесь приведен основной набор операторов Java.

Замечание

В языке Java нет оператора goto.

Всякий оператор завершается точкой с запятой.

Можно поставить точку с запятой в конце любого выражения, и оно станет оператором (expression statement). Но смысл это имеет только для операций присваивания, инкремента и декремента и вызовов методов. В остальных случаях это бесполезно, потому что вычисленное значение выражения потеряется.

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

Блок 

Блок заключает в себе нуль или несколько операторов с целью использовать их как один оператор в тех местах, где по правилам языка можно записать только один оператор. Например, {х = 5; у = ?;}. Можно записать и пустой блок, просто пару фигурных скобок {}.

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

Операторы присваивания 

Точка с запятой в конце любой операции присваивания превращает ее в оператор присваивания. Побочное действие операции — присваивание — становится в операторе основным.

Разница между операцией и оператором присваивания носит лишь теоретический характер. Присваивание чаще используется как оператор, а не операция.

Условный оператор 

Условный оператор (if-then-else statement) в языке Java записывается так:

if (логВыр) оператор1 else оператор2

и действует следующим образом. Сначала вычисляется логическое выражение логвыр. Если результат true, то действует оператор! и на этом действие условного оператора завершается, оператор2 не действует, далее будет выполняться следующий за if оператор. Если результат false, то действует оператор2, при этом оператор,! вообще не выполняется.

Условный оператор может быть сокращенным (if-then statement):

if (логВыр) оператор!

и в случае false не выполняется ничего.

Синтаксис языка не позволяет записывать несколько операторов ни в ветви then, ни в ветви else. При необходимости составляется блок операторов в фигурных скобках. Соглашения "Code Conventions" рекомендуют всегда использовать фигурные скобки и размещать оператор на нескольких строках с отступами, как в следующем примере:

if (а < х) {

   х = а + b;
 }
else {

   х = а — b;  

}

Это облегчает добавление операторов в каждую ветвь при изменении алгоритма. Мы не будем строго следовать этому правилу, чтобы не увеличивать объем книги.

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

if (п == 0) { 

    sign = 0;

}
else if (n < 0){

   sign = -1;  

} else {
  
sign = 1;

 }

При этом может возникнуть такая ситуация ("dangling else"):

int ind = 5, х = 100;

if (ind >= 10) if (ind <= 20) x = 0; else x = 1;

Сохранит переменная х значение 0 или станет равной 1? Здесь необходимо волевое решение, и общее для большинства языков, в том числе и Java,. правило таково: ветвь else относится к ближайшему слева услдвию if, не имеющему своей ветви else. Поэтому в нашем примере переменная х останется равной 0.

Изменить этот порядок можно с помощью блока:

if (ind > 10) {if (ind < 20) x = 0; else x = 1;}

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

if (ind >= 10 && ind <= 20) х = 0; else х = 1;

В приведенном ниже листинге  вычисляются корни квадратного уравнения ах 2 + bх + с = 0 для любых коэффициентов, в том числе и нулевых.

Листинг  Вычисление корней квадратного уравнения

class QuadraticEquation{

public static void main(String[] args){

double a = 0.5, Ъ = -2.7, с = 3.5, d, eps=le-8; 

if (Math.abs(a) < eps) 

if (Math.abs(b) < eps)

if (Math.abs(c) < eps) // Все коэффициенты равны нулю

System.out.println("Решение —любое число");  

else

System.out.println("Решений нет"); 

else

System.out.println("xl = x2 = " +(-c / b) ) ;

else { // Коэффициенты не равны нулю  

if((d = b**b — 4*a*c)< 0.0){ // Комплексные корни  

d = 0.5 * Math.sqrt(-d) / a; 

a = -0.5 * b/ a; 

System.out.println("xl = " +a+ " +i " +d+

",x2 = " +a+ " -i " +d);  

} else {

// Вещественные корни

d =0.5 * Math.sqrt(d) / a; 

a = -0.5 * b / a;

System.out.println("x1 = " + (a + d) + ", x2 = " +(a - d)); 

}  

}

)

}

В этой программе использованы методы вычисления модуля abs() и квадратного корня sqrt о вещественного числа из встроенного в Java API класса Math. Поскольку все вычисления  с вещественными числами производятся приближенно, мы считаем, что коэффициент уравнения равен нулю, если его модуль меньше 0,00000001. Обратите внимание на то, как в методе println о используется сцепление строк, и на то, как операция присваивания при вычислении дискриминанта вложена в логическое выражение.

Операторы цикла 

Основной оператор цикла — оператор while — выглядит так:

while (логВьгр) оператор

Вначале вычисляется логическое выражение логВыр; если его значение true, то выполняется оператор, образующий цикл. Затеем снова вычисляется лог-выр и действует оператор, и так до тех пор, пока не получится значение false. Если логВыр изначально равняется false, то оператор не будет выполнен ни разу. Предварительная проверка обеспечивает безопасность выполнения цикла, позволяет избежать переполнения, деления на нуль и других неприятностей. Поэтому оператор while является основным, а в некоторых языках и единственным оператором цикла.

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

int i = 0;

double s = 0.0;

while ((s += 1.0 / ++i) < 10);

вычисляет количество i сложений, которые необходимо сделать, чтобы гармоническая сумма s достигла значения 10. Такой стиль характерен для языка С. Не стоит им увлекаться, чтобы не превратить текст программы в шифровку, на которую вы сами через пару недель будете смотреть с недоумением.

Можно организовать и бесконечный цикл:

while (true) оператор

Конечно, из такого цикла следует предусмотреть какой-то выход, например, оператором break, как в листинге 1.5. В противном случае программа зациклится, и вам придется прекращать ее выполнение "комбинацией из трех пальцев" <Ctrl>+<Alt>+<Del> в MS Windows 95/98/ME, комбинацией <Ctrl>+<C> в UNIX или через Task Manager в Windows NT/2000.

Если в цикл надо включить несколько операторов, то следует образовать блок операторов {}.

Второй оператор цикла — оператор do-while — имеет вид do оператор while (логВыр)

Здесь сначала выполняется оператор, а потом происходит вычисление логического выражения логвыр. Цикл выполняется, пока логвыр остается равным true.

Существенное различие между этими двумя операторами цикла только в том, что в цикле do-while оператор обязательно выполнится хотя бы один раз.

Например, пусть задана какая-то функция f(x), имеющая на отрезке,[a,b] ровно один корень. В листинге  приведена программа, вычисляющая этот корень приближенно методом деления пополам (бисекции, дихотомий).

Листинг  Нахождение корня нелинейного уравнения методом бисекции

class Bisection{

static double f(double x){

return x*x*x — 3*x*x +3; // Или что-то другое  

}

public static void main(String!] args){

double a = 0.0, b = 1,5, с, y, eps = le-8; 

do{

с = 0.5 *(a + b); у = f(с);

if (Math.abs(y) < eps) break;

// Корень найден. Выходим из цикла

// Если на концах отрезка [а; с]  

// функция имеет разные знаки:  

if (f (а) * у < 0.0) b = с;

// Значит, корень здесь. Переносим точку b в точку с

//В противном случае:  

else а * с;  

// Переносим точку а в точку с

// Продолжаем, пока отрезок [а; Ь] не станет мал  

} while (Math, abs (b-a) >= eps); 

System.out.println("x = " +c+ ", f(" +c+ ") = " +y) ; 

}  

}

Класс Bisection сложнее предыдущих примеров: в нем кроме метода main () есть еще метод вычисления функции f(x). Здесь метод f о очень прост: он вычисляет значение многочлена и возвращает его в качестве значения функции, причем все это выполняется одним оператором:

return выражение

В методе main о появился еще один новый оператор break, который просто прекращает выполнение цикла, если мы по счастливой случайности наткнулись на приближенное значение корня. Внимательный читатель заметил и появление модификатора static в объявлении метода f(). Он необходим потому, что метод f о вызывается из статического метода main о.

Третий оператор цикла — оператор for — выглядит так:

for ( списокВыр ; логНьр; слисокВыр2) оператор

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

Затем вычисляется логическое выражение логвьр. Если оно истинно, true, то действует оператор, потом вычисляются слева направо выражения из списка выражений списокВыр2. Далее снова проверяется логвыр. Если оно ис тинно, то выполняется оператор и списокВыр2 и т. д. Как только логйыр станет равным false, выполнение цикла заканчивается.

Короче говоря, выполняется последовательность операторов

списокВыр1; while (логВыр){

оператор

слисокВыр2; }

с тем исключением, что, если оператором в цикле является оператор

continue, то слисок_выр2 все-таки выполняется.

Вместо списокВыр1 может стоять одно определение переменных обязательно с начальным значением. Такие переменные известны только в пределах этого цикла.

Любая часть оператора for может отсутствовать: цикл может быть пустым, выражения в заголовке тоже, при этом точки с запятой сохраняются. Можно задать бесконечный цикл:

for (;;) оператор

В этом случае в теле цикла следует предусмотреть какой-нибудь выход.

Хотя в операторе for заложены большие возможности, используется он, главным образом, для перечислений, когда их число известно, например, фрагмент кода ,

int s=0;

for (int k = 1; k <= N; k++) s += k * k;

// Здесь переменная k уже неизвестна

вычисляет сумму квадратов первых N натуральных чисел.

Оператор continue и метки 

Оператор continue используется только в операторах цикла. Он имеет две формы. Первая форма состоит только из слова continue и осуществляет немедленный переход к следующей итерации цикла. В очередном фрагменте кода оператор continue позволяет обойти деление на нуль:

for (int i = 0; i < N; i++){

if (i '== j) continue;

s += 1.0 / (i - j);  

}

Вторая форма содержит метку:

continue метка

метка записывается, как все идентификаторы, из букв Java, цифр и знака подчеркивания, но не требует никакого описания. Метка ставится перед оператором или открывающей фигурной скобкой и отделяется от них двоеточием. Так получается помеченный оператор или помеченный блок.

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

Оператор break 

Оператор break используется в операторах цикла и операторе варианта для немедленного выхода из этих конструкций.

Оператор break метка

применяется внутри помеченных операторов цикла, оператора варианта или помеченного блока для немедленного выхода за эти операторы. Следующая схема поясняет эту конструкцию.

Ml: { // Внешний блок

М2: { // Вложенный блок — второй уровень  

М3: { // Третий уровень вложенности...  

if (что-то случилось) break M2;  

// Если true, то здесь ничего не выполняется   

}  

// Здесь тоже ничего не выполняется

}

// Сюда передается управление

}

Поначалу сбивает с толку то обстоятельство, что метка ставится перед блоком или оператором, а управление передается за этот блок или оператор. Поэтому не стоит увлекаться оператором break с меткой.

Оператор варианта 

Оператор варианта switch организует разветвление по нескольким направлениям. Каждая ветвь отмечается константой или константным выражением какого-либо целого типа (кроме long) и выбирается, если значение определенного выражения совпадет с этой константой. Вся конструкция выглядит так.

switch (целВыр){  

case констВыр1: оператор1  

case констВыр2: оператор2

. . . . .  

case констВырN: операторN 

default: операторDef 

}

Стоящее в скобках выражение целвыр может быть типа byte, short, int, char, но не long. Целые числа или целочисленные выражения, составленные из констант, констВыр тоже не должны иметь тип long.

Оператор варианта выполняется так. Все константные выражения вычисляются заранее, на этапе компиляции, и должны иметь отличные друг от друга значения. Сначала вычисляется целочисленное выражение ;целйыр. Если. ОHO совпадает с одной из констант, то выполняется оператор, отмеченный этой константой. Затем выполняются ("fall through labels") все следующие операторы, включая и операторОе£, и работа оператора вариайтазаканчивается.

Если же ни одна константа не равна значению выражения, то выполняется операторОе£ и все следующие за ним операторы. Поэтому ветвь default должна записываться последней. Ветвь default может отсутствовать, тогда в этой ситуации оператор варианта вообще ничего не делает.

Таким образом, константы в вариантах case играют роль только меток, точек входа в оператор варианта, а далее выполняются все оставшиеся операторы в порядке их записи.

Знатокам Pascal

После выполнения одного варианта оператор switch продолжает выполнять все оставшиеся варианты.

Чаще всего необходимо "пройти" только одну ветвь операторов. В таком случае используется оператор break, сразу же прекращающий выполнение оператора switch. Может понадобиться выполнить один и тот же оператор в разных ветвях case. В этом случае ставим несколько меток case подряд. Вот простой пример.

switch(dayOfWeek){

case 1: case 2: case 3: case 4:case 5:

System.out.println("Week-day");, break; 

case 6: case 7:

System.out.println("Week-end"); break; 

default:

System.out.printlnt"Unknown day");

}

Замечание

He забывайте завершать варианты оператором break.

Массивы 

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

Массивы в языке Java относятся к ссылочным типам и описываются своеобразно, но характерно для ссылочных типов. Описание производится в три этапа.

Первый этап — объявление (declaration). На этом этапе определяется только переменная типа ссылка (reference) на массив, содержащая тип массива. Для этого записывается имя типа элементов массива, квадратными скобками указывается, что объявляется ссылка на массив, а не простая переменная, и перечисляются имена переменных типа ссылка, например,

double[] а, b;

Здесь определены две переменные — ссылки а и ь на массивы типа double. Можно поставить квадратные скобки и непосредственно после имени. Это удобно делать среди определений обычных переменных:

int I = 0, ar[], k = -1;

Здесь определены две переменные целого типа i и k, и объявлена ссылка на целочисленный массив аг.

Второй этап — определение (installation). На этом этапе указывается количество элементов массива, называемое его длиной, выделяется место для массива в оперативной памяти, переменная-ссылка получает адрес массива. Все эти действия производятся еще одной операцией языка Java — операцией new тип, выделяющей участок в оперативной памяти для объекта указанного в операции типа и возвращающей в качестве результата адрес этого участка. Например,

а = new double[5]; 

b = new double[100]; 

ar = new int[50];

Индексы массивов всегда начинаются с 0. Массив а состоит из пяти переменных а[0], а[1], , а[4]. Элемента а[5] в массиве нет. Индексы можно задавать любыми целочисленными выражениями, кроме типа long, например, a[i+j], a[i%5], a[++i]. Исполняющая система Java следит за тем, чтобы значения этих выражений не выходили за границы длины массива.

Третий этап — инициализация (initialization). На этом этапе элементы массива получают начальные значения. Например,

а[0] = 0.01; а[1] = -3.4; а[2] = 2:.89; а[3] = 4.5; а[4] = -6.7;

for (int i = 0; i < 100; i++) b[i] = 1.0 /i;

for (int i = 0; i < 50; i++) ar[i] = 2 * i + 1;

Первые два этапа можно совместить:

doublet] a = new double[5], b = new double[100]; 

int i = 0, ar[] = new int[50], k = -1;

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

double[] а = {0.01, -3.4, 2.89, 4.5, -6.7};

Можно совместить второй и третий этап:

а = new doublet] {0.1, 0.2, -0.3, 0.45, -0.02};

Можно даже создать безымянный массив, сразу же используя результат операции new, например, так:

System.out.println(new char[] {'H', 'e', '1', '1', 'o'});

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

Ссылка может присвоить "пустое" значение null, не указывающее ни на какой адрес оперативной памяти:

ar = null;

После этого массив, на который указывала данная ссылка, теряется, если на него не было других ссылок.

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

Замечание - Массивы в Java всегда определяются динамически, хотя ссылки на них задаются статически.

Кроме ссылки на массив, для каждого массива автоматически определяется целая константа с одним и тем же именем length. Она равна длине массива. Для каждого массива имя этой константы уточняется именем массива через точку. Так, после наших определений, константа a.length равна 5, константа b. length равна 100, a ar. length равна 50.

Последний элемент массива а можно записать так: a [a. length - 1], предпоследний — a [a. length - 2] и т. д. Элементы массива обычно перебираются в цикле вида:

double aMin = a[0], aMax = aMin; 

for (int i = 1; i < a.length; i++){

if <a[i] < aMin) aMin = a[i];

if (a[i] > aMax) aMax = a[i]; 

}  

double range = aMaxaMin;

Здесь вычисляется диапазон значений массива.

Элементы массива — это обыкновенные переменные своего типа, с ними можно производить все операции, допустимые для этого типа:

(а[2] + а[4]) / а[0] и т. д.

Многомерные массивы 

Элементами массивов в Java могут быть снова массивы. Можно объявить:

char[] [] с;

что эквивалентно

char с[] с[];

или

char с[][];

Затем определяем внешний массив:

с = new char[3][];

Становится ясно, что с — массив, состоящий из трех элементов-массивов. Теперь определяем его элементы-массивы:

с[0] = new char[2];

с[1] = new char[4];

с[2] = new char[3];

После этих определений переменная с.length равна з, с[0] .length равна 2,

c[l].length равна 4 и с[2.length равна 3.

Наконец, задаем начальные значения с [0] [0] = 'a', с[0][1] = 'r', 

с[1][0] = 'г',с[1][1] = 'а',с[1][2] = 'у' и т.д.

Замечание

Двумерный массив в Java не обязан быть прямоугольным.

Описания можно сократить:

int[] [] d = new int[3] [4];

А начальные значения задать так:

int[][] inds = {{I, 2, 3}, {4, 5, 6}};

В листинге приведен пример программы, вычисляющей первые 10 строк треугольника Паскаля, заносящей их в треугольный массив и выводящей его элементы на экран. Рис.  показывает вывод этой программы.

Листинг  Треугольник Паскаля

class PascalTriangle{

public static final int LINES = 10; // Так определяются констан

public static void main(String[] args) { 

int[][] p, = new int [LINES] []; 

p[0] = new int[1];

System, out. println (p [0] [0] = 1);

p[l] = new int[2]; 

p[l][0] = p[l][1] = 1;

System.out.println(p[1][0] + " " + p[l][l]); 

for (int i = 2; i < LINES; i++){ 

p[i] = new int[i+l];

System.out.print((p[i][0] = 1) + " "); 

for (int j = 1; j < i; j++)

System.out. print ( (p[i] [j] =p[i-l][j-l] -bp[i-l][j]) + " "); 

System, out. println (p [ i] [i] = 1)

}

}

Рис.  Вывод треугольника Паскаля в окно-Gomrriand - Prompt

 =========================================================

Как можно «получить» «случайные» числа:

 Random rand = new Random();

  z[i]=(int) (100 * rand.nextDouble());

Постановка задачи

"Вычисление функций с использованием их разложения в степенной ряд"

Цель: Практика в организации итерационных и арифметических циклов, использование функций.

Постановка задачи

Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в трех случаях:

а) для заданного n;

б) для заданной точности a (a=0.0001);

с) для «точного» значения (по аналитической формуле).

Для сравнения найти относительную погрешность вычисления функции значение функции
 
     
о_погр = ABS(точ_значприближ_знач)/ точ_знач)

Варианты

 

(посмотреть варианты заданий в формате pdf)

 

функция

диапазон

изменения аргумента

n

сумма

1

10

 

 

2

40

 

3

10

 

4

      

10

 

5

15

 

6

25

 

7

10

 

8

40

 

9

3

 

10

20

 

 

11

10

 

12

35

13

10

 

 

14

20

 

15

30

 

16

40

 

17

10

 

18

50

 

19

20

 

20

30

 

21

40

 

22

35

23

15

 

24

40

 

25

20

 

Методические указания

1.   Алгоритм решения задачи сводится к циклу по переменной х. В теле цикла вызываются три функции – две пользовательские и комбинация библиотечных (результат их работы считается условно точным значением). Необходимо спроектировать и реализовать пользовательские функции расчета F(x) = S по указанным выше алгоритмам.

2.   Результаты расчетов отпечатать в следующем виде:

         Вычисление функции

X=...... Y=......  SN=...... SE=.....   о_погрSN   о_погрSE

X=...... Y=......  SN=...... SE=.....   о_погрSN   о_погрSE

         ..........

X=...... Y=......  SN=...... SE=.....   о_погрSN   о_погрSE

Здесь X- значение параметра; SN- значение суммы для заданного n; SE- значение суммы для заданной точности; Y-точное значение функции; о_погрSN, о_погрSE – относительные погрешности приближенных вычислений.

Содержание отчета

1.   Постановка задачи.

2.   Вариант задания.

3.  Математическая модель (формулы, по которым выполняются вычисления слагаемых ряда).

4.   Программа.

5.   Полученные результаты.


 

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

45948. Конструкционные стали: классификация, маркировка, химический состав, механические и технологические свойства, применение 50.2 KB
  Конструкционные стали: классификация маркировка химический состав механические и технологические свойства применение. Широкое использование стали в промышленности обусловлено сочетанием комплекса механических физикохимических и технологических свойств. Сталью называются сплавы железа с углеродом и некоторыми другими элементами причем углерода в стали должно содержаться меньше 214 . Постоянными примесями в стали являются: кремний до 04 марганец до 08 сера до 005 фосфор до 005 и газы NOH и др.
45949. Инструментальные стали: классификация, маркировка, свойства, применение 24.34 KB
  Инструментальные стали: классификация маркировка свойства применение. ИНСТРУМЕНТАЛЬНЫЕ СТАЛИ. Инструментальные стали предназначены для изготовления режущего измерительного инструмента и штампов холодного и горячего деформирования. Основные свойства которыми должны обладать инструментальны стали: износостойкость прочность при удовлетворительной вязкости теплостойкость прокаливаемость и хорошая обрабатываемость давлением и резанием.
45950. Статические и динамические испытания металлов: основные механические свойства и их определение 186.98 KB
  В этих испытаниях создаётся однородное напряжённое состояние по сечению образца причём доля нормальных напряжений является преобладающей поэтому эти испытания считаются жёсткими. Машины автоматически фиксируют величины приложенной нагрузки и изменение длины образца в виде диаграммы растяжения по которой производятся все необходимые расчеты. длинные образцы где F0 площадь сечения рабочей части образца. При этом необходимо соблюдать важное условие: заготовки не должны нагреваться до температуры 150С иначе изменится структура и свойства...
45951. Сплавы на основе меди: классификация, маркировка, свойства, применение 21.83 KB
  По техническим свойствам медные сплавы делятся на деформируемыеГОСТ1817578 и литейные ГОСТ61383; по способности к закалке термоупрочняемые и нетермоупрочняемые; по химическому составу на бронзы Cu другие элементы кроме Zn и латуни СuZn и другие элементы. Бронзы маркируются буквами Бр бронза и буквами и цифрами: буквы означают название элемента а цифры его количество в сплаве в процентах. Бронзы имеют более высокие по сравнению с латунями прочностные антифрикционные коррозионостойкие свойства но являются более...
45952. Сплавы на основе алюминия: классификация, маркировка, свойства, применение 16.94 KB
  Сплавы на основе алюминия: классификация маркировка свойства применение. Единой цифровой маркировки алюминиевых сплавов не существует деформируемые литейные и спеченные сплавы маркируются поразному. Деформируемые сплавы имеют буквенную и буквенноцифровую маркировку причем выбор букв и цифр производится случайным образом: сплав lSiCuMg обозначается АВ авиаль сплав lMn обозначается АМц а сплав LMg обозначается АМг. Для группы сплавов первые цифры после букв обозначают соответственно: 1сплавы упрочняемые Сu и Mg...
45953. Теория и технология термической обработки стали: виды, применение 13.64 KB
  Основными видами термической обработки являются: отжиг закалка и отпуск. Отжиг бывает полный неполный диффузионый рекристаллизационный и нормализа Закалка. Закалкавид термической обработки заключающийся в нагреве изделий с контролируемой скоростью1000С час до температуры АС330500С выше линии окончания фазовых переходов GS диаграммы железо углерод выдержке при этойтемпературе для выравнивания температуры по сечению и осуществления фазовых переходов Fe3C Feα Feγ и быстром охлаждении в воде или масле. Закалка бывает обычная...
45954. Пластмассы: состав, структура, классификация, свойства, применение 13.75 KB
  Полиэтилен со степенью полимеризации 20 предет собой жидкость обладающая смазывающими сввами. Полиэтилен со степенью полимеризации 2000 предет собой твердый пластичныйупругий металл испмый для изгния пленок. К не полярным относятся: полиэтилен второпласты орг. Полиэтилен.
45955. Каучук и резина: строение, состав, свойства, методы получения, применение 14.01 KB
  Особенно важным и спецким сввом каучука явлся его эластть упругость способть каучука восстанавливать свою первоначую форму после прекращения действия сил вызвавших деформацию. Резинами наз высоко молекулярный матл редко сетчатые стрры которые получают в резте вулканизации каучука с наполнителями. В состав входят: связующие в виде каучука естеств. сера в колве 13 которая служит для смешивания каучука наполнители в виде порошковой сожи материала ткани или другие волокнакапронмягчители парафин стеориновая кислота...
45956. Химико-термическая обработка стали: виды, технология, оборудование, свойства, применение 187.39 KB
  ХТО - процесс насыщения поверхности детали различными легирующими элементами с целью изменения состава структуры и свойств поверхностного слоя детали. Поверхность детали может насыщаться следующими элементами: углерод азотом хромом кремний алюминий бром. Цель: получить на поверхности детали высокую тв. достаточной вязкости и пластичности сердцевины деталикулачки эксцентрики.