56 lines
2.3 KiB
C
56 lines
2.3 KiB
C
/*
|
||
Это программа на языке C, для компиляции:
|
||
gcc 00point.c
|
||
./a.out
|
||
|
||
Опишем структуру точки в двумерном пространстве на языке C
|
||
|
||
Точка задаётся двумя координатами x и y
|
||
Так как эта структура имеет очень маленький размер (всего 8 байт), то в функции
|
||
её можно передавать по значению, а не по константному указателю.
|
||
*/
|
||
|
||
#include <stdio.h>
|
||
#include <math.h>
|
||
|
||
struct point
|
||
{
|
||
float x, y;
|
||
};
|
||
typedef struct point Point;
|
||
|
||
|
||
void point_print(Point a)
|
||
{
|
||
printf("(%.2f, %.2f)\n", a.x, a.y);
|
||
}
|
||
|
||
|
||
int main()
|
||
{
|
||
Point a = {7.2, 3.1};
|
||
Point b = {-4.6, 2.4};
|
||
|
||
point_print(a);
|
||
point_print(b);
|
||
}
|
||
|
||
/*
|
||
Задачи:
|
||
|
||
1) Напишите функцию point_add,
|
||
которая будет принимать две точки и возвращать их сумму
|
||
|
||
2) Напишите функцию point_norm,
|
||
которая будет принимать точку и возвращать расстояние до этой точки от начала координат
|
||
Будем называть расстояние от точки до начала координат нормой точки
|
||
Для вычисления корня числа можно использовать функцию sqrt из math.h
|
||
|
||
3) Напишите функцию point_mult,
|
||
которая будет принимать на вход точку и число k типа float и возвращать точку, координаты которой
|
||
равны координатам изначальной точки, умноженные на число k
|
||
|
||
4) Напишите функцию point_normalize,
|
||
которая будет принимать точку по указателю и делить координаты точки на норму точки
|
||
Эта функция не должна ничего возвращать
|
||
*/
|