Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <limits.h>
- #include <stdio.h>
- #include <stdlib.h>
- struct NVec {
- int n; //liczba wymiarow
- double v[INT_MAX]; //skladowe wektora, nie mam pomyslu innego niz wstawienie INT_MAX z limits.h, ale myśle, że to przejdzie - raczej w tym zadaniu chodzi o kumanie struktur, a nie zabawy w alokacje pamięci.
- }
- // typedef trzeba to zrobić, zeby potem używać typu "NVec" zamiast "struct NVec"
- typedef struct NVec NVec;
- //funkcja do inicjalizacji, tylko nie wiem czy na pewno o cos takiego chodzi...
- NVec createNVecInstance(double* init_vec, int init_vec_length); {
- NVec newVector;
- newVector.n = init_vec_length;
- for(int i = 0; i< newVector.n; i++) {
- newVector.v[i] = init_vec[i];
- }
- return newVector;
- }
- //funkcja dodawania input: 2 wektory, output: wektor, który jest suma 2 wektorów
- NVec addNVec(NVec vec1, NVec vec2)
- {
- // na poczatku takiej funkcji mozna sprawdzić czy mają tyle samo wymiarów JEZELI (v1.n != v2.n) TO wypisz komunikat, ze dodawanie niemozliwe.
- // jak już wiadomo, że można dodawać to:
- NVec result;
- result.n = vec1.n; //wynikowy wektor ma tyle wymiarow co vec1 lub vec2
- for(int i = 0; i< result .n; i++) {
- result.v[i] = vec1.v[i] + vec2.v[i];
- }
- return result ;
- }
- // funckja odejmowania analogicznie jak dodawanie tyle, że argumenty wypada nazwać Minuend − Subtrahend
- NVec substractNVec(NVec vec_minuend, NVec vec_subtrahend) {
- //obliczenia...
- return result;
- }
- // funckja mnożenia skalarnego będą 2 argumenty (NVec vec, double multiplicator)
- // funkcja length to pewnie tylko tyle
- int vecLenght(NVec vec)
- {
- return vec.n;
- }
- // dot product
- double vecDotProduct(NVec vec1, NVec vec2) {
- // obliczenie vec1*vec2 https://en.wikipedia.org/wiki/Dot_product
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement