計算機語言運用--數值計算9-方程的計算機處理95(1)_C++v6
計算機:電子線路組成的計算機器。人與計算機則是通過計算機語言-符號系統說給計算機聽而交流。
計算機語言有低級語言-機器語言、彙編、高級語言-C/C++/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千種之多。
作為一種計算機器—可以協助人類處理各種事情—數值計算問題、文字處理問題、圖形圖像處理問題、事務問題……。自從有了數字計算的計算機器,幾乎所有的可以交給計算機的事情,都交給計算機來處理—是輔助處理—按照人們的要求—事先安排的模式進行處理。
數值計算
代數的計算、初等函數的計算、代數方程的求解、解析幾何與微分幾何的求解、矢量-張量與場論的求解、抽象代數-空間及泛函分析、級數與變換、特殊函數問題、概率統計與隨機過程分析計算、誤差分析與實驗數據處理、最優化方法分析、有限單元法求解、數論分析、集合論及其計算、拓撲學分析與計算、組合數學的計算、圖結構處理、數理邏輯分析與處理、……、……
或者說:
自然數的計算、整數的計算、實數的計算、複數的計算、矢量-向量的計算、矩陣的計算、函數的計算、代數方程的計算、函數方程的計算、微分的計算、積分的計算、常微分-一元微分方程的計算、偏微分-多元微分方程的計算、連續數量的計算、離散數量的計算、集合的計算、組合數學的計算、……、……
或者說:科學與工程技術應用中的數值計算、……、……
方程的計算機處理
這裡說的方程,是以實數域為計算範圍。
這裡說的方程:是含有未知數的等式。
可以是a+5=8,或X+A=B,或ax2+bx+c=0,或ax+by=c與dx-ey=f,或ax"+bx=c,或,
或
……、……
計算機如何處理這些問題呢?,問題的描述是什麼樣子的,才能充分利用計算機呢?
當然是代數形式的。便於計算機發揮特長,便於程序軟體的重用性。通過用戶交互,決定將什麼樣的具體問題交給計算機進行數值處理。
方程的計算機處理
MATLAB語言及其平臺、Fotran語言平臺 C語言平臺v6 C語言平臺vs
C++語言平臺v6
先來看一下最簡單的,再逐級複雜,以便體會程序編寫、方程的手工預處理及其人機互動。
按照自然習慣, a+8=12
按照計算機習慣,Error:The expression to the left of the equals sign is not a valid target for anassignment.
按照計算機習慣,在C++中是這樣(換一個想法—符合計算機的處理模式)
int a;
a=12-8;
cout<<a;
對於任何一個計算機語言來說,X+a=b型的方程也需要進行改造:
成為----X=b-a的樣式;
感覺咋樣?什麼是方程的計算機處理—算法及其描述,運行及其人機互動。
接下來是說:C++是編譯型語言,因此需要將所做工作用計算機語言編製程序,再交給計算機來處理。作為靜態數據的模式,需要對計算的數據—數值或代數預先聲明變量,以便申請到內存來放置。
可以用C++語言編寫為文件形式,接著編譯成*.exe文件,再運行—人機互動。
程序文件
//Equation_1.cpp : Defines the entry point for the console application.
//
#include"stdafx.h"
#include<iostream.h>
#include<fstream>
usingnamespace std;
intmain(int argc, char* argv[])
{
/*變量聲明*/
int i,N;
floata,b,x,y;
char Fout_name[10];
/*數據輸入-標準IO_鍵盤顯示器*/
cout<<"輸入1個整數N,指定你的計算次數"<<endl;
cin>>N;
for(i=0;i<N;i++)
{
cout<<"輸入2個實數,各自回車確認"<<endl;
cin>>a;
cin>>b;
//數據處理過程
x=b+a;
y=b*a;
//處理結果的標準IO
cout<<"輸出計算結果b+a= "<<x<<endl;
cout<<"輸出計算結果b-a= "<<b-a<<endl;
cout<<"輸出計算結果b*a= "<<y<<endl;
cout<<"輸出計算結果b/a= "<<b/a<<endl;
//磁碟操作--文件IO
//鍵盤輸入數據的計算結果輸出-文件保存
cout<<"數據處理完畢,請輸入保存文件名,格式為:*.txt"<<endl;
cin>>Fout_name;
ofstream file_out(Fout_name);
file_out<<"鍵盤輸入的待處理數據為:"<<a<<"與 "<<b<<endl;
file_out<<endl;
file_out<<"計算機處理結果如下:"<<endl;
file_out<<"b+a="<<x<<endl;
file_out<<"b-a="<<b-a<<endl;
file_out<<"b*a="<<y<<endl;
file_out<<"b/a="<<b/a<<endl;
cout<<"計算機處理結果被保存為"<<Fout_name<<" 請檢查!"<<endl;
}
return 0;
}
處理過程
輸入1個整數N,指定你的計算次數
3
輸入2個實數,各自回車確認
2.3
4.9
輸出計算結果 b+a=7.2
輸出計算結果 b-a=2.6
輸出計算結果 b*a=11.27
輸出計算結果 b/a=2.13043
數據處理完畢,請輸入保存文件名,格式為:*.txt
1.txt
計算機處理結果被保存為1.txt 請檢查!
輸入2個實數,各自回車確認
5
18
輸出計算結果 b+a= 23
輸出計算結果 b-a= 13
輸出計算結果 b*a= 90
輸出計算結果 b/a=3.6
數據處理完畢,請輸入保存文件名,格式為:*.txt
2.txt
計算機處理結果被保存為2.txt 請檢查!
輸入2個實數,各自回車確認
13.7
37.1
輸出計算結果 b+a=50.8
輸出計算結果 b-a=23.4
輸出計算結果 b*a=508.27
輸出計算結果 b/a=2.70803
數據處理完畢,請輸入保存文件名,格式為:*.txt
3.txt
計算機處理結果被保存為3.txt 請檢查!
Pressany key to continue
處理結果