11822
Проектирование программ линейной структуры
Лабораторная работа
Информатика, кибернетика и программирование
Лабораторная работа №2. Проектирование программ линейной структуры 1 Цель и порядок работы Цель работы изучить структуру программы на языке C операторы присваивания ввода и вывода данных используемые при составлении программ линейной структуры. Порядок вып...
Русский
2013-04-12
261 KB
26 чел.
Цель работы изучить структуру программы на языке C++, операторы присваивания, ввода и вывода данных, используемые при составлении программ линейной структуры.
Порядок выполнения работы:
Выполнение всех программ, написанных на языке C++, начинается с функции, именуемой main. При запуске программы прежде всего выполняется первое выражение функции main.
Выражение это строка кодов, представляющая собой отдельную инструкцию для компьютера. (Функция состоит из группы выражений, собранных вместе для решения определенной задачи.) Затем поочередно выполняются все остальные выражения по одному за раз.
Структура программы выглядит следующим образом:
директивы_препроцессора int main() { определения_объектов; исполняемые операторы; return 0; } |
директивы_препроцессора void main() { определения_объектов; исполняемые операторы; return; } |
У функции есть имя (main), после которого в круглых скобках перечисляются аргументы или параметры функции (в данном случае у функции main аргументов нет). У функции может быть результат или возвращаемое значение. Если функция не возвращает никакого значения, то это обозначается ключевым словом void. В фигурных скобках записывается тело функции действия, которые она выполняет. Оператор return 0; означает, что функция возвращает результат целое число 0.
Вслед за заголовком функции main в фигурных скобках размещается тело функции, которое представляет последовательность определений, описаний и исполняемых операторов. Как правило, определения и описания размещаются до исполняемых операторов. Каждое определение, описание и оператор завершается «;».
Переменные используются для представления данных в программе. Например, если нужно запомнить имя пользователя, можно создать переменную Имя. Затем в любой момент, когда потребуется имя пользователя, можно просто сослаться на значение переменной Имя. В процессе выполнения программы значения переменных могут изменяться. Например, можно присвоить переменной Имя значение «Вася», а потом другим выражением присвоить этой же переменной значение «Степан». Но само по себе значение переменной никогда не меняется в любом случае вы должны написать какое-нибудь выражение, меняющее одно значение на другое.
Комментарии используются для описания того, что происходит в процессе выполнения программы. Вы можете добавлять их для расшифровки целей, с которыми пишутся те или иные фрагменты кодов, для фиксирования каких-то мыслей и идей, для описания решаемых задач. Добавляя комментарии, вы упрощаете чтение кодов вашей программы пользователями. Для вас комментарии также могут быть очень полезны. Если через некоторое время вы захотите внести изменения в уже набранные коды, вам, скорее всего, трудно будет вспомнить, для чего используется та или иная переменная и зачем нужно было создавать ту или иную функцию. В таких случаях, пожалуй, комментарии могут быть единственным средством, которое поможет вам вспомнить, что же именно вы хотели сделать, набирая эти коды. При преобразовании кодов C++ в машинные коды компилятор игнорирует строки, являющиеся комментариями, и просто пропускает их.
Множество символов используемых в языках C и C++ можно разделить на пять групп.
1. Символы, используемые для образования ключевых слов и идентификаторов. В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что одинаковые прописные и строчные буквы считаются различными символами, так как имеют различные коды.
Таблица 1 Символы, используемые для образования ключевых слов и идентификаторов
Прописные буквы латинского алфавита |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
Строчные буквы латинского алфавита |
a b c d e f g h i j k l m n o p q r s t u v w x y z |
Символ подчеркивания |
_ |
2. Группа прописных и строчных букв русского алфавита и арабские цифры.
Таблица 2 Символы прописных и строчных букв русского алфавита и арабские цифры
Прописные буквы русского алфавита |
А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я |
Строчные буквы русского алфавита |
а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я |
Арабские цифры |
0 1 2 3 4 5 6 7 8 9 |
3. Знаки нумерации и специальные символы. Эти символы используются с одной стороны для организации процесса вычислений, а с другой для передачи компилятору определенного набора инструкций.
Таблица 3 Знаки нумерации и специальные символы
Символ |
Наименование |
Символ |
Наименование |
, |
запятая |
) |
круглая скобка правая |
. |
точка |
( |
круглая скобка левая |
; |
точка с запятой |
} |
фигурная скобка правая |
: |
двоеточие |
{ |
фигурная скобка левая |
? |
вопросительный знак |
< |
меньше |
' |
апостроф |
> |
больше |
! |
восклицательный знак |
[ |
квадратная скобка |
| |
вертикальная черта |
] |
квадратная скобка |
/ |
дробная черта |
# |
номер |
\ |
обратная черта |
% |
процент |
~ |
тильда |
& |
амперсанд |
* |
звездочка |
^ |
логическое не |
+ |
плюс |
= |
равно |
- |
минус |
" |
кавычки |
4. Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка. Эти символы отделяют друг от друга объекты, определяемые пользователем, к которым относятся константы и идентификаторы. Последовательность разделительных символов рассматривается компилятором как один символ (последовательность пробелов).
5. Кроме выделенных групп символов в языках C и C++ широко используются так называемые, управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинацией латинских букв и цифр.
Таблица 4 Управляющие последовательности
Управляющая последовательность |
Наименование |
Шестнадцатеричная замена |
\a |
Звонок |
007 |
\b |
Возврат на шаг |
008 |
\t |
Горизонтальная табуляция |
009 |
\n |
Переход на новую строку |
00A |
\v |
Вертикальная табуляция |
00B |
\r |
Возврат каретки |
00C |
\f |
Перевод формата |
00D |
\" |
Кавычки |
022 |
\' |
Апостроф |
027 |
\0 |
Ноль-символ |
000 |
\\ |
Обратная дробная черта |
05C |
\0ddd |
Символ набора кодов ПЭВМ в восьмеричном представлении |
|
\xddd |
Символ набора кодов ПЭВМ в шестнадцатеричном представлении |
|
Последовательности вида \0ddd и \xddd (здесь d обозначает цифру) позволяет представить символ из набора кодов ПЭВМ как последовательность восьмеричных или шестнадцатеричных цифр соответственно. Например, символ возврата каретки может быть представлен различными способами:
\r - общая управляющая последовательность,
\015 - восьмеричная управляющая последовательность,
\x00D - шестнадцатеричная управляющая последовательность.
Следует отметить, что в строковых константах всегда обязательно задавать все три цифры в управляющей последовательности. Например, отдельную управляющую последовательность \n (переход на новую строку) можно представить как \010 или \xA, но в строковых константах необходимо задавать все три цифры, в противном случае символ или символы, следующие за управляющей последовательностью, будут рассматриваться как ее недостающая часть. Например:
"ABCDE\x009FGH" данная строковая команда будет напечатана с использованием определенных функций языка C++, как два слова ABCDE FGH, разделенные символом табуляции (по умолчанию 8-ю пробелами), в этом случае если указать неполную управляющую строку "ABCDE\x09FGH", то на печати появится ABCDE=|=GH, так как компилятор воспримет последовательность \x09F как символ "=+=".
Отметим тот факт, что, если обратная дробная черта предшествует символу не являющемуся управляющей последовательностью (т.е. не включенному в таблицу 4) и не являющемуся цифрой, то эта черта игнорируется, а сам символ представляется как литеральный. Например, символ \h представляется символом h в строковой или символьной константе.
Кроме определения управляющей последовательности, символ обратной дробной черты (\) используется также как символ продолжения. Если за (\) следует (\n), то оба символа игнорируются, а следующая строка является продолжением предыдущей. Это свойство может быть использовано для записи длинных строк.
Для символического обозначения величин, переменных, констант, функций и т.п. используются имена или идентификаторы.
Идентификаторы в языке C++ это последовательность знаков, начинающаяся с буквы или знака подчеркивания. В идентификаторах можно использовать заглавные и строчные латинские буквы, цифры и знак подчеркивания. Длина идентификаторов произвольная. Примеры правильных идентификаторов:
abc A12 NameOfPerson BITES_PER_WORD
abc и Abc два разных идентификатора, т.е. заглавные и строчные буквы различаются. Примеры неправильных идентификаторов:
23X a-b
Ряд слов в языке C++ имеет особое значение и не может использоваться в качестве идентификаторов. Такие зарезервированные слова называются ключевыми.
Список ключевых слов:
asm auto bad_cast
bad_typeid bool break
case catch char
class const const_cast
continue default delete
do double dynamic_cast
else enum extern
float for friend
goto if inline
int long mutable
namespace new operator
private protected public
register reinterpret_cast return
short signed sizeof
static static_cast struct
switch template then
this throw try
type_info typedef typeid
union unsigned using
virtual void volatile
while xalloc
Программа оперирует информацией, представленной в виде различных объектов и величин. Переменная это символическое обозначение величины в программе. Как ясно из названия, значение переменной (или величина, которую она обозначает) во время выполнения программы может изменяться.
С точки зрения архитектуры компьютера, переменная это символическое обозначение ячейки оперативной памяти программы, в которой хранятся данные. Содержимое этой ячейки это текущее значение переменной.
В языке C++ прежде чем использовать переменную, ее необходимо объявить. Объявить переменную с именем x можно так: int x;
В объявлении первым стоит название типа переменной int (целое число), а затем идентификатор x имя переменной. У переменной x есть тип в данном случае целое число. Тип переменной определяет, какие возможные значения эта переменная может принимать и какие операции можно выполнять над данной переменной. Тип переменной изменить нельзя, т.е. пока переменная x существует, она всегда будет целого типа.
Язык C++ строго типизированный язык. Любая величина, используемая в программе, принадлежит к какому-либо типу. При любом использовании переменных в программе проверяется, применимо ли выражение или операция к типу переменной. Довольно часто смысл выражения зависит от типа участвующих в нем переменных.
Например, если записать x+y, где x переменная, то переменная y должна быть одного из числовых типов.
Соответствие типов проверяется во время компиляции программы. Если компилятор обнаруживает несоответствие типа переменной и ее использования, он выдаст ошибку (или предупреждение). Однако во время выполнения программы типы не проверяются. Такой подход, с одной стороны, позволяет обнаружить и исправить большое количество ошибок на стадии компиляции, а, с другой стороны, не замедляет выполнения программы.
В языке C++ существует несколько стандартных основных типов данных. Основные типы, наиболее непосредственно отвечающие средствам аппаратного обеспечения, такие:
char short int long float double
Первые четыре типа используются для представления целых, последние два для представления чисел с плавающей точкой. Переменная типа char имеет размер, естественный для хранения символа на данной машине (обычно, байт), а переменная типа int имеет размер, соответствующий целой арифметике на данной машине (обычно, слово). Диапазон целых чисел, которые могут быть представлены типом, зависит от его размера. В C++ размеры измеряются в единицах размера данных типа char, поэтому char по определению имеет размер единица.
Для определения данных целого типа используются различные ключевые слова, которые определяют диапазон значений и размер области памяти, выделяемой под переменные.
Тип Размер памяти в байтах Диапазон значений
char 1 от -128 до 127
int 2 от -32768 до 32767
short 2 от -32768 до 32767
long 4 от -2 147 483 648 до 2 147 483 647
unsigned char 1 oт 0 до 255
unsigned int 2 от 0 до 65535
unsigned short 2 от 0 до 65535
unsigned long 4 от 0 до 4 294 967 295
Для переменных, представляющих число с плавающей точкой используются следующие модификаторы-типа: float, double, long double.
Величина с модификатором-типа float занимает 4 байта. Из них 1 байт отводится для знака, 8 бит для избыточной экспоненты и 23 бита для мантиссы. Отметим, что старший бит мантиссы всегда равен 1, поэтому он не заполняется, в связи с этим диапазон значений переменной с плавающей точкой приблизительно равен от 3.14E-38 до 3.14E+38.
Величина типа double занимает 8 бит в памяти. Ее формат аналогичен формату float. Биты памяти распределяются следующим образом: 1 бит для знака, 11 бит для экспоненты и 52 бита для мантиссы. С учетом опущенного старшего бита мантиссы диапазон значений равен от 1.7E-308 до 1.7E+308.
В программе можно явно записать величину число, символ и т.п. Например, выражение x + 4 сложить текущее значение переменной x и число 4. В зависимости от того, при каких условиях будет выполняться программа, значение переменной x может быть различным. Однако целое число четыре всегда останется прежним. Таким образом, явная запись значения в программе это константа и в данном случае она задаётся своим изображением.
Гораздо чаще используются символические константы. Для определения символической константы используется ключевое слово const. Например, если записать
const int BITS_IN_WORD = 32;
то затем имя BITS_IN_WORD можно будет использовать вместо целого числа 32.
Оператором называется элементарная структурная единица программы. Оператор предназначен как для записи алгоритмических действий по преобразованию данных, так и для задания порядка выполнения других действий. Операторы выполняются в порядке их следования в программе. Операторы отделятся друг от друга точкой с запятой. Операторы делятся на:
Переменной можно присвоить какое-либо значение с помощью операции присваивания. Присвоить это значит установить текущее значение переменной. По-другому можно объяснить, что операция присваивания запоминает новое значение в ячейке памяти, которая обозначена переменной.
int x; // объявить целую переменную x
int y; // объявить целую переменную y
x = 0; // присвоить x значение 0
y = x + 1; // присвоить y значение x + 1, т.е. 1
x = 1; // присвоить x значение 1
y = x + 1; // присвоить y значение x + 1, теперь уже 2
Механизм для ввода-вывода в C++ называется потоком, так как информация вводится и выводится в виде потока байтов символ за символом.
Библиотека потоков ввода-вывода (iostream.h) определяет три глобальных объекта: cout, cin и cerr.
Для использования возможностей библиотеки необходимо в начале программы указать директиву using namespace std;
cout называется стандартным выводом, cin стандартным вводом, cerr стандартным потоком сообщений об ошибках. cout и cerr выводят на терминал и принадлежат к классу ostream, cin имеет тип istream и вводит с терминала.
Вывод осуществляется с помощью операции <<, ввод с помощью операции >>. Выражение
cout << "Пример вывода: " << 34;
напечатает на терминале строку "Пример вывода", за которым будет выведено число 34. Выражение
int x;
cin >> x;
введет целое число с терминала в переменную x. (Разумеется, для того, чтобы ввод произошел, на терминале нужно напечатать какое-либо число и нажать клавишу возврат каретки.)
#include <iostream> подключает библиотеку потокового ввода-вывода. Файл заголовков определяет глобальный объект этого класса cout. Объект называется глобальным, поскольку доступ к нему возможен из любой части программы. Этот объект выполняет вывод на консоль. В функции main мы можем к нему обратиться и послать ему сообщение:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 1;
}
Операция сдвига << определена как "вывести". Таким образом, программа посылает объекту cout сообщения "вывести строку Hello world!" и "вывести перевод строки" (endl обозначает перевод на новую строку). В ответ на эти сообщения объект cout выведет строку "Hello world!" на консоль и переведет курсор на следующую строку.
Подключение заголовочного файла #include "stdafx.h" не является обязательным с точки зрения языка C++, однако среда разработки Visual Studio 2008 требует его подключения для включения прекомпиляции заголовочных файлов. Данная возможность позволяет ускорить компиляцию и запуск программы.
Часто бывает необходимо вывести строку или число в определенном формате. Для этого используются так называемые манипуляторы.
Манипуляторы это объекты особых типов, которые управляют тем, как обрабатывают последующие аргументы. Некоторые манипуляторы могут также выводить или вводить специальные символы. Манипуляторы позволяют задавать формат вывода чисел.
Таблица 1 Манипуляторы потокового ввода-вывода
Манипулятор |
Назначение |
endl |
при выводе перейти на новую строку; |
ends |
вывести нулевой байт (признак конца строки); |
flush |
вывести и очистить все промежуточные буферы; |
dec |
выводить числа в десятичной системе (по умолчанию); |
oct |
выводить числа в восьмеричной системе; |
hex |
выводить числа в шестнадцатеричной системе счисления; |
setw (int n) |
установить ширину поля вывода в n символов (n целое число); |
setfill(int n) |
установить символ-заполнитель, которым выводимое значение будет дополняться до необходимой ширины; |
setprecision(int n) |
установить количество цифр после запятой при выводе вещественных чисел; |
setbase(int n) |
установить систему счисления для вывода чисел; n может принимать значения 0, 2, 8, 10, 16, причем 0 означает систему счисления по умолчанию, т.е. 10. |
Использовать манипуляторы просто их надо вывести в выходной поток. Выведем одно и то же число в разных системах счисления:
int x=53;
cout <<"Десятичный вид: " << dec << x << endl
<< "Восьмиричный вид: " << oct << x << endl
<<"Шестнадцатиричный вид:" << hex << x << endl;
Аналогично используются манипуляторы с параметрами. Вывод числа с разным количеством цифр после запятой:
double x;
// вывести число в поле общей шириной
// 6 символов (3 цифры до запятой,
// десятичная точка и 2 цифры после запятой)
cout << setw(6) << setprecision(2) << x << endl;
Те же манипуляторы (за исключением endl и ends) могут использоваться и при вводе. В этом случае они описывают представление вводимых чисел. Кроме того, имеется манипулятор, работающий только при вводе, это ws. Данный манипулятор переключает вводимый поток в такой режим, при котором все пробелы (включая табуляцию, переводы строки, переводы каретки и переводы страницы) будут вводиться. По умолчанию эти символы воспринимаются как разделители между атрибутами ввода.
int x;
// ввести шестнадцатеричное число
cin >> hex >> x;
Все возможности организации ввода-вывода СИ реализованы в библиотечных функциях стандартной библиотеки stdio.h.
Для организации вывода используется функция
printf(форматная_строка,список_аргументов);
Форматная строка ограничивается кавычками «”» и может включать произвольный текст, управляющие символы и спецификации преобразования данных.
Список аргументов может отсутствовать.
#include "stdafx.h"
#include <stdio.h>
void main()
{
printf("\nhello!\n");
}
Препроцессорная директива #include <stdio.h> подключает стандартную библиотеку ввода-вывода. «\n» перевод строки (управляющий символ).
При организации вывода данных на экран используются спецификации преобразования, которые имеют следующий обобщённый вид:
%флажки ширина_поля.точность модификатор спецификатор
Обязательными являются «%» и спецификатор.
Таблица 5 Назначение флагов
Флаг |
Назначение |
- |
Выравнивание результата по левому краю поля. |
+ |
Результат всегда выводится с указанием знака «+» или «-». |
Пробел |
Если значение не отрицательное, то вместо плюса выводится пробел, для отрицательных значений выводится «-». |
# |
Аргументы могут быть преобразованы с использованием альтернативной формы |
ширина_поля целое положительное число, определяющее количество знакомест для вывода значения.
точность целое положительное число, определяющее количество цифр после десятичной запятой для вывода значения с плавающей точкой.
Возможные модификаторы представлены в таблице 6.
Таблица 6 Назначение модификаторов
Модификатор |
Назначение |
N |
Для близкого указателя |
F |
Для дальнего указателя |
h |
Для значения short int |
l |
Для значения long |
L |
Для значения long double |
Спецификаторы определяют тип выводимого значения и форму вывода.
Таблица 7 Назначение спецификаторов
Спецификатор |
Тип аргумента |
Назначение |
d |
Целого типа |
Для целых десятичных чисел (int) |
i |
Целого типа |
Для целых десятичных чисел (int) |
o |
Целого типа |
Для беззнаковых восьмеричных целых |
u |
Целого типа |
Для беззнаковых десятичных целых |
x |
Целого типа |
Для беззнаковых шестнадцатеричных целых (a,b,c,d,e,f) |
X |
Целого типа |
Для беззнаковых шестнадцатеричных целых (A,B,C,D,E,F) |
Спецификатор |
Тип аргумента |
Назначение |
f |
вещественный |
Знаковое вещественное число в формате [+/-]ddd.dddd |
e |
вещественный |
Знаковое вещественное число в формате [+/-]d.dddd или в экспоненциальной форме |
g |
вещественный |
Знаковое вещественное число в формате или f, или e (в зависимости от выводимого значения) |
E |
вещественный |
Такое же, как и e |
G |
вещественный |
Такое же, как и g |
s |
строковый |
ввод-вывод строковых данных |
c |
символьный |
ввод-вывод символов |
Например:
Printf(“|n summa=%f”,summa);
На экране будет выведено:
Summa=2102.3
После выполнения операторов:
float c=48.3, e=16.33;
int k=-83;
printf(“\nc=%f\tk=%d\te=%e”,c,k,e);
на экране будет выведено
c=48.299999 k=-83 e=1.63300e+01
Для тех же переменных:
printf(“\nc=%5.2f\tk=%5d\te=%8.2f\te=%11.4e”,c,k,e,e);
на экране будет выведено
c=48.30 k= -83 e=16.33 e= 1.6330e+01
В состав строки вывода могут входить управляющие последовательности:
\n перевод строки;
\t горизонтальная табуляция;
\r возврат каретки к началу строки;
\\ обратная косая черта \;
\ апостроф ;
\0 нулевой символ;
\a сигнал-звонок;
\b возврат на одну позицию;
\f перевод строки;
\v вертикальная табуляция;
\? знак вопроса.
Для организации ввода данных с клавиатуры используется функция
scanf(форматная_строка, список_аргументов);
Эта функция выполняет чтение значений вводимых с клавиатуры и присваивает их последовательно аргументам. Форматная строка представляет собой последовательность спецификаций, управляющих преобразованием вводимых значений.
%*ширина_поля модификатор спецификатор
* в настоящее время не используется;
Ширина_поля целое положительное число, позволяющее определить, какое количество байтов из входного потока соответствует вводимому значению.
модификатор и спецификатор аналогичны функции printf().
Аргументами функции ввода могут быть адреса переменных, которым будут присвоены вводимые значения. Они задаются при помощи операции взятия адреса “&имя_переменной”
Например:
scanf(“%d%f%f”,&n,&z,&x);
При организации ввода-вывода данных используются также функции, описанные в стандартной библиотеке ввода-вывода(<stdio.h>):
puts(const char* Строка); Выводит на экран строку символов и переводит курсор в начало следующей строки экрана. В качестве параметра функции можно использовать строковую константу или строковую переменную.
char *gets(char* s);Вводит с клавиатуры строку символов. Вводимая строка может содержать пробелы.
int putch(int с); Выводит на экран символ.
int getch(void);Возвращает код символа нажатой клавиши. Если нажата служебная клавиша, то функция getch возвращает 0. В этом случае, для того, чтобы определить, какая служебная клавиша нажата, нужно обратиться к функции getch еще раз. Замечание Функция getch не выводит на экран символ, соответствующий нажатой клавише.
cputs(const char* Строка); Выводит на экран строку.
Для выполнения математических вычислений в стандартной математической библиотеке <math.h> описаны следующие функции:
int abs (int к) ; double fabs(double x); Возвращает целое (abs) или дробное (fabs) абсолютное значение аргумента, в качестве которого можно использовать выражение соответствующего типа.
double acos (double x);
double asin (double x);
double atan (double x);
long double acosl(long double x) ;
long double asinl(long double x);
long double atanl(long double x);
Возвращает выраженную в радианах величину угла, арккосинус, арксинус или арктангенс которого передан соответствующей функции в качестве аргумента. Аргумент функции должен находиться в диапазоне от -1 до 1.
double cos (double x);
double sin (double x);
double tan (double x);
long double cosl(long double x);
long double sinl(long double x);
long double tanl(long double x);
Возвращает синус, косинус или тангенс угла. Величина угла должна быть задана в радианах.
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main(void)
{
double result;
double x = 0.5;
result = cos(x);
printf("Косинус числа %lf %lf\n", x, result);
return 0;
}
double exp(double x); long double exp(long double lx); Возвращает значение, равное экспоненте аргумента (е*, где е основание натурального логарифма).
double pow (double x, double y); long double powl(long double (x), long double (y)); Возвращает значение, равное хУ.
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main(void)
{
double result;
double x = 4.0;
result = exp(x);
printf("'e в степени %lf (e ^ %lf) = %lf\n", x, x, result);
return 0;
}
double sqrt(double к);
Возвращает значение, равное квадратному корню из аргумента.
double log(double x);
double log10(double x);
long double logl(long double (x));
long double log10l(long double (x));
log, logl возвращают значение натурального логарифма аргумента. log10, log10l возвращают значение логарифма аргумента по основанию 10.
В библиотеке <stdlib.h> описаны генераторы случайных чисел.
int rand(void); Возвращает случайное целое число в диапазоне от 0 до RAND_MAX. Перед первым обращением к функции rand необходимо инициализировать генератор случайных чисел. Для этого надо вызвать функцию srand. void srand(unsigned к); Инициализирует генератор случайных чисел. Обычно в качестве параметра функции используют переменную, значение которой предсказать заранее нельзя, например это может быть текущее время.
#include "stdafx.h" #include <iostream> using namespace std; void main() { int a,b; float c; cout<<"Input 3 nambers"<<endl; cin>>a>>b>>c; cout<<"Rezult="<<(a+b+c)/3; } |
#include "stdafx.h" #include <iostream> using namespace std; void main() { float c; cout<<"Input nambe"<<endl; cin>>c; cout<<"Rezult="<< c*2.54; } |
a = 12.4, b =1525, а w вводится с клавиатуры. Для возведения в степень используется функция pow заголовочного файла math.h.
#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; void main() { const float pi=3.14159; const float a=12.5; const float b=(15+25/60)*pi/180; float w; cout<<"Input w"<<endl; cin>>w; cout<<"Rezult="<<a*sin(b)/pow(w,15); } |
PAGE 11
А также другие работы, которые могут Вас заинтересовать | |||
2511. | Введение в физику низкотемпературной плазмы | 839.85 KB | |
Основные понятия физики плазмы. Экранирование зарядов в плазме. Дебаевский радиус. Элементарные процессы в плазме. Термоядерная плазма. Критерий Лоусона. Лазерный термоядерный синтез. Движение заряженных частиц в электромагнитных полях. Магнитный момент частицы в магнитном поле. | |||
2512. | Физика в биологических обследованиях лабораторные и семинарские занятия | 692.35 KB | |
Изучение механических колебаний. Изучение аппарата для ультразвуковой терапии. Определение скорости звука в воздухе методом стоячих волн. Изучение физической основы аускультативного метода измерения артериального давления крови. Изучение механических моделей биологических тканей. Биоэлектрическая активность биологических объектов. | |||
2513. | Определение удельного заряда электрона магнетрона | 153 KB | |
Непосредственное измерение массы электрона представляет значительные трудности ввиду ее малости. Легче определить удельный заряд электрона, т.е. отношение величины заряда к массе (е / m), а по величине заряда е и удельному заряду можно найти массу m электрона. Для определения е / m могут применяться различные методы. В данной работе применен метод магнетрона. | |||
2514. | Исследование свойств плоскостного полупроводникового триода (транзистора) | 609 KB | |
Изучить устройство и принцип действия полупроводникового триода, Снять вольт − амперные характеристики триода; Вычислить коэффициенты усиления триода по току, напряжению и мощности. | |||
2515. | Определение волны световой волны при помощи дифракции от щели | 386 KB | |
Рассмотрим прохождение волны через узкую прямоугольную щель. Согласно принципу Гюйгенса каждая точка фронта волны, достигающей щели, является источником вторичных волн, распространяющихся во все стороны. Поверхность, огибающая эти волны и представляющая фронт прошедшей через щель волны. | |||
2516. | Изучение колебательного контура | 277.81 KB | |
Колебательные процессы широко распространены в природе и технике. Примером колебаний различных физических величин являются колебания маятников, струн, мембран телефонов, звук, свет, а также переменный электрический ток, представляющий собой электрические колебания. | |||
2517. | Определение скорости звука в воздухе методом стоячей волны (или методом резонанса) | 183.89 KB | |
Любая частица среды, выведенная из положения равновесия, под действием упругих сил стремится возвратиться в первоначальное положение и совершает колебания. Вместе с ней начинают колебаться и соседние с ней частицы, затем следующие и т.д. Такое распространение колебательного процесса в среде называется волной. | |||
2518. | Определение ускорения силы тяжести при помощи оборотного маятника | 307 KB | |
Большинство косвенных методов измерения ускорения силы тяжести g основано на использовании известной формулы для: периода Т колебаний физического маятника. Измерение ускорения силы тяжести при помощи оборотного маятника. | |||
2519. | Способы определение удельного заряда электрона методом магнетрона | 48.15 KB | |
В пределах точности эксперимента электрон – стабильная частица. Характер движения и траектория заряженной частицы зависят не от ее заряда или массы в отдельности. Измеряя скорости и траектории частиц, движущихся в электрических и магнитных полях, можно определить величину и знак удельного заряда. | |||