- •Программирование на языке си
- •Ввод-вывод в языке си. Структура программы
- •Порядок выполнения лабораторных работ
- •Основы программирования в среде языка си. Оператор присваивания
- •Программирование разветвленных алгоритмов. Операторы передачи управления Оператор if
- •Оператор goto
- •Оператор выбора switch
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием. Оператор цикла while
Порядок выполнения лабораторных работ
Изучить теоретические сведения по теме.
Построить схему алгоритма для решения задач в соответствии с вариантом, выданным преподавателем, для каждого задания.
Подготовить текст программы и набрать его в окне редактирования.
Откомпилировать программу и исправить синтаксические ошибки.
Выполнить программу для реальных (нескольких) исходных данных
Результаты и записать в тетрадь.
Оформить отчет по текущей лабораторной работе, в который включить:
- номер работы (лабораторная работа № 1);
- тему работы;
- условия задач;
- схемы алгоритмов;
- тексты программ;
- результаты выполнения программ, выводы.
Защитить лабораторную работу.
Лабораторная работа 1
Основы программирования в среде языка си. Оператор присваивания
Оператор присваивания имеет вид <идентификатор> = <выражение>;
Пример: int x = 1;
В арифметических выражениях могут использоваться операции (приложение Б) и математические функции из библиотек <stdlib.h> и <math.h> [7].
Наиболее часто применяются функции библиотеки <math.h>:
double sin(double x) – sin x; double exp(double x) – ех ;
double cos(double x) – cos x; double log(double x) – ln х;
double tan(double x) – tg x; double log10(double x) – lg х;
double fabs(double x) – |x|; long labs(long x) – |x| для целого x;
double
sqrt(double
x) –
; double
pow(double
x, double
y) – xy;
double sinh(double x) – sh x; double cosh(double x) – сh x;
double tanh(double x) – th x; double atan(double x) – arctan х;
double acos(double x) – arccos x; double asin(double x) – arcsin x;
double ceil(double x) – ближайшее целое, не меньшее, чем х;
double floor(double x) – ближайшее целое, не превышающее х;
double fmod(double x, double y) – остаток от деления нацело x на y;
double modf(double x, double *ptr) – расчленение числа с плавающей точкой на целую и дробную части. Дробная часть возвращается функцией. Целая часть записывается в область памяти, на которую указывает ptr.(
Приоритет операций в выражении
Ранг |
Операции |
Ассоциативность |
1 |
( ) [ ] -> :: . |
→ (слева – направо) |
2 |
! ~ + - ++ -- & * |
← (справа - налево) |
3 |
.* ->* |
→ |
4 |
* / % |
→ |
5 |
+ - |
→ |
6 |
<< >> |
→ |
7 |
< <= >= > |
→ |
8 |
== != |
→ |
9 |
& |
→ |
10 |
^ |
→ |
11 |
| |
→ |
12 |
&& |
→ |
13 |
| | |
→ |
14 |
?: |
← |
15 |
= *= /= %= += -= &= ^ = |= <<= >>= |
← |
16 |
, |
→ |
Таблица типов данных С/С++ приведена в приложении В.
Пример 1. Вычислить площадь прямоугольника по длинам его сторон А и В. Обозначим площадь переменной S, необходимо найти S=A*B.
Программа набирается в окне редактора С++ и компилируется
Сначала подключаются библиотеки
#include <stdio.h> // для ввода/вывода
#include <conio.h> // для функций работы с экраном
void main () // Заголовок главной программы
{
int A=2, B=3, S; // объявление переменных целого типа
S=A*B ; // оператор «выражение»
printf ("\n Площадь прямоугольника = %d\n", S); // вывод
getch(); // вызов функции задержки работы до нажатия любой клавиши
}
В результате выполнения программы на экран выводится сообщение: Площадь прямоугольника = 6.
П
ример
2.
Найти площадь равностороннего
треугольника. Если стороны треугольника
имеют размер А, то его площадь S = A2
sin(π/3)/2.
Схема
алгоритма (СА) для этой задачи (рис.1)
выполнена по ГОСТ 19.701-90 (прил. Г
[2]).
Текст программы:
#include <math.h>
#include <stdio.h>
#include <conio.h>
#define PI 3.1413 //директива постановки
void main()
{
float A,S; //объявление переменных плавающего типа
printf ( " Введите А");
scanf ("%f",&A); // ввод
S=A*A*sin(PI/3)/2;
printf (" Результат : S=%6.2f для A=%f\n", S, A);
getch(); // из библиотеки <conio.h>
}
После выполнения программы на экран выводится:
Результат: S = 10.8 для А = 5.
Предварительно рассчитанный при подготовке к лабораторной работе на калькуляторе результат для А = 5 составил S = 10.8253, что подтверждает верность программы.
Задание 1 (программа 1_1)
№ |
x1 |
x2 |
a |
b |
c |
Вычислить |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
1 |
1 |
2 |
1.5 |
2 |
-0.7 |
|
2 |
1 |
2 |
0.7 |
- |
2.1 |
|
3 |
0 |
2 |
2 |
1.2 |
1 |
|
4 |
1 |
2 |
4.1 |
-2.3 |
- |
|
5 |
-1 |
1 |
0.5 |
2 |
1.5 |
|
6 |
2 |
4 |
0.5 |
1.3 |
- |
|
7 |
0 |
2 |
0.5 |
1 |
- |
|
8 |
-1 |
1 |
2.7 |
1.7 |
- |
|
9 |
0 |
π/2 |
2 |
0.7 |
0.5 |
|
10 |
1 |
0 |
0.5 |
2.9 |
1.5 |
|
11 |
1 |
2 |
1.5 |
-1.2 |
- |
|
12 |
1 |
2 |
0.5 |
1.7 |
2 |
|
13 |
-1 |
1 |
0.5 |
1.2 |
- |
|
Окончание задания 1
№ |
x1 |
x2 |
a |
b
|
c |
Вычислить |
14 |
1 |
2 |
0.5 |
3.1 |
- |
|
15 |
1 |
2 |
0.5 |
3.2 |
- |
|
16 |
0 |
1 |
1 |
2 |
4 |
|
17 |
0 |
1 |
1 |
3 |
- |
|
18 |
-1 |
2 |
1 |
2 |
- |
|
19 |
1 |
2 |
2 |
3 |
1 |
|
20 |
-1 |
1 |
2 |
π/6 |
0,5 |
|
Задание 2 (программа 1_2)
Идет k секунда суток. Определить, сколько целых часов (h) и целых минут (m) и секунд (s) прошло к этому моменту.
Определить площадь трапеции с основаниями а, b, высотой h и объем усеченного конуса, если считать а, b - площадями оснований.
3. Определить координаты центра тяжести трех материальных точек с массами m1,m2,m3 и координатами (x1,y1), (x2,y2), (x3,y3).
4. Вычислить по заданному радиусу R объем шара и площадь круга, найти соотношение между ними.
5. Вычислить медианы треугольника по заданным сторонам a, b, c.
6. Вычислить площадь поверхности и объем конуса по заданным радиусам и высоте h.
7. По заданному радиусу найти объем шара и площадь поверхности.
8. Вычислить, какая идет секунда суток при положении стрелок в h часов, m минут и s секунд, а также угол (в градусах) между положением часовой стрелки в начале суток и ее положением в указанный момент.
9. Ввести двузначное целое число х<15. Написать программу перевода его в восьмеричную систему счисления.
10. Ввести координаты двух точек (х1, y1), (x2,y2). Найти расстояние между ними.
Лабораторная работа 2
