這幾天做簡單的演算法題目,在學校發的教材裡面挑選了幾道稍微難一點的題目做了一下。花了一天時間做了出來。如此一來稍微找回了一點程式設計的感覺。
下面是題目:
下面是我的**:
#include #include typedef struct my_pluralplural;
#define pi 3.14159265354
void initx2(double x); //初始化一維訊號第一組
void inity1(double y[15]); //初始化二維訊號第一組
void inity3(double y[15]); //初始化二維訊號第一組
void eulerformula(double p, plural * mp); //尤拉公式
void onedimension(double x, plural y, int n); //一維訊號處理從實數空間到複數空間
void onedimensionreverse(plural x, int n); //一維訊號處理從複數空間到實數空間
void doubledimension(double x[15], plural y[15], int m, int n); //二維訊號處理從實數空間到複數空間
void doubledimensionreverse(plural x[15], int m, int n); //二維訊號處理從複數空間到實數空間
int main()
; plural x2[4];
onedimension(x1, x2, 4);
onedimensionreverse(x2, 4);
//一維訊號處理2
double x3[12];
plural x4[12];
initx2(x3);
onedimension(x3, x4, 12);
onedimensionreverse(x4, 12);
//二維訊號處理1
double y1[15][15];
plural y2[15][15];
inity1(y1);
doubledimension(y1, y2, 15, 15);
doubledimensionreverse(y2, 15, 15);
//二維訊號處理2
double y3[15][15];
plural y4[15][15];
inity1(y3);
doubledimension(y3, y4, 14, 12);
doubledimensionreverse(y4, 14, 12);
return 0;
}void initx2(double x2)
}void inity1(double y[15]) }}
void inity3(double y[15]) }}
void eulerformula(double p, plural * mp)
void onedimension(double x, plural y, int n)
y[k].rp = sum.rp;
y[k].vp = sum.vp;
printf("一維訊號公式正向結果x(%d)實部%.2lf, 虛部%.2lf\n", k, sum.rp, sum.vp);
} printf("\n");
}void onedimensionreverse(plural x, int n)
sum.rp /= n;
sum.vp /= n;
printf("一維訊號公式反向結果x(%d)實部%.2lf, 虛部%.2lf\n", k, sum.rp, sum.vp);
} printf("\n");
}void doubledimension(double x[15], plural y[15], int m, int n)
sita = 2 * pi / n * s * k * -1.0;
eulerformula(sita, &mp);
all[j].rp += sum[k].rp * mp.rp - sum[k].vp * mp.vp; //all裡面存放的是一維訊號計算出來的值
all[j].vp += sum[k].rp * mp.vp + sum[k].vp * mp.rp;
} y[s][j].rp = all[j].rp;
y[s][j].vp = all[j].vp;
printf("二維訊號公式正向結果x(%d, %d)實部%.2lf, 虛部%.2lf\n", s, j, all[j].rp, all[j].vp);
} }printf("\n");
}void doubledimensionreverse(plural x[15], int m, int n)
sita = 2 * pi / n * s * k * 1.0;
eulerformula(sita, &mp);
all[j].rp += sum[k].rp * mp.rp - sum[k].vp * mp.vp; //all裡面存放的是一維訊號計算出來的值
all[j].vp += sum[k].rp * mp.vp + sum[k].vp * mp.rp;
} all[j].rp = all[j].rp / m / n;
all[j].vp = all[j].vp / m / n;
printf("二維訊號公式反向結果x(%d, %d)實部%.2lf, 虛部%.2lf\n", s, j, all[j].rp, all[j].vp);
} }printf("\n");
}
程式設計與演算法 演算法 STL初步
標頭檔案 sortsort 陣列名 n,陣列名 m 能,m為整數 適用於基本型別 範圍為下標n到m 1,下標m不參與排序 自定義排序 struct rule sort a,a sizeof a rule 二分查詢 在排好序的陣列上進行二分查詢 等於的含義 a等於b 等價於a b 和a增,刪,查都能在...
LinuxNP 訊號與訊號處理函式
程序a向程序b傳送訊號 忽略 恢復某訊號 訊號是當作業系統中某些情況發生改變時,由作業系統向程序傳送,程序可對訊號進行捕捉並處理 程序缺省會對不同的訊號進行處理,使用者可通過自定義訊號處理函式並使用signal 將自定義的訊號處理函式與指定訊號進行繫結,訊號處理函式在訊號預設處理方式之前呼叫,原先處...
C 訊號處理程式設計風格規範
1.背景 c 做數字訊號處理很普遍,如何編寫高效穩定的 是c 程式設計師的一項必備技能,本文結合matlab做預言,c 做實現來談程式設計風格和習慣的問題。2.技術預言 做技術預言一般使用matlab,matlab是一種高度智慧型化的預言,它對變數的型別和運算會自動選擇相應的操作,演算法工程師不用去...