當前位置:首頁 » 操作系統 » 演算法程序

演算法程序

發布時間: 2022-01-12 12:41:11

1. 演算法源程序

C# 程序如下,思想是用位移運算(符號「<<」、「>>」)。

private void button1_Click(object sender, System.EventArgs e)
{
string str1,str2,str3,str4;
str4 = textBox1.Text;
str1 = str4.Substring(0,str4.IndexOf("."));
str4 = str4.Remove(0,str4.IndexOf(".")+1);
str2 = str4.Substring(0,str4.IndexOf("."));
str4 = str4.Remove(0,str4.IndexOf(".")+1);
str3 = str4.Substring(0,str4.IndexOf("."));
str4 = str4.Remove(0,str4.IndexOf(".")+1);
long int1,int2,int3,int4;
int1 = long.Parse(str1);
int2 = long.Parse(str2);
int3 = long.Parse(str3);
int4 = long.Parse(str4);
int3 = int3<<8;
int2 = int2<<16;
int1 = int1<<24;
long result;
result = int1+int2+int3+int4;
textBox1.Text = result.ToString();
}
程序還沒判斷輸入數據的合法性,樓主自己加上去就可以了。
判斷IP地址的合法性可以用System.Net里的IPAddress類型。就是用IPAddress.Parse方法嘗試著把一個string轉換成IP地址,如果失敗,就表示不合法。
如果還有什麼疑問可以加我QQ15076723

-----------------------------------
恩。現在把整個程序寫好了,貼上來:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;

namespace ConvertIP
{
/// <summary>
/// Form1 的摘要說明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox2;
/// <summary>
/// 必需的設計器變數。
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 調用後添加任何構造函數代碼
//
}

/// <summary>
/// 清理所有正在使用的資源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗體設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.textBox2 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(8, 40);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(168, 23);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "127.0.0.1";
//
// button1
//
this.button1.Location = new System.Drawing.Point(40, 104);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(104, 24);
this.button1.TabIndex = 1;
this.button1.Text = "Go!";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label1
//
this.label1.Location = new System.Drawing.Point(8, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(168, 23);
this.label1.TabIndex = 2;
this.label1.Text = "將IP地址轉換成數字:";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(8, 72);
this.textBox2.Name = "textBox2";
this.textBox2.ReadOnly = true;
this.textBox2.Size = new System.Drawing.Size(168, 23);
this.textBox2.TabIndex = 3;
this.textBox2.Text = "";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(7, 16);
this.ClientSize = new System.Drawing.Size(192, 136);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Name = "Form1";
this.Text = "ConvertIP";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

private void Form1_Load(object sender, System.EventArgs e)
{

}

private void button1_Click(object sender, System.EventArgs e)
{
textBox1.Enabled = false;
IPAddress InputIP;
try
{
InputIP = IPAddress.Parse(textBox1.Text);
textBox1.Text = InputIP.ToString();
}
catch
{
MessageBox.Show("請輸入正確合法的IP地址!","錯誤");
textBox1.Enabled = true;
return;
}
string str1,str2,str3,str4;
str4 = textBox1.Text;
str1 = str4.Substring(0,str4.IndexOf("."));
str4 = str4.Remove(0,str4.IndexOf(".")+1);
str2 = str4.Substring(0,str4.IndexOf("."));
str4 = str4.Remove(0,str4.IndexOf(".")+1);
str3 = str4.Substring(0,str4.IndexOf("."));
str4 = str4.Remove(0,str4.IndexOf(".")+1);
long int1,int2,int3,int4;
int1 = long.Parse(str1);
int2 = long.Parse(str2);
int3 = long.Parse(str3);
int4 = long.Parse(str4);
int3 = int3<<8;
int2 = int2<<16;
int1 = int1<<24;
long result;
result = int1+int2+int3+int4;
textBox2.Text = result.ToString();
textBox1.Enabled = true;
}
}
}

2. 演算法與程序的區別與聯系

演算法和程序的區別是:

(1) 兩者定義不同。演算法是對特定問題求解步驟的描述,它是有限序列指令。而程序是實現預期目的而進行操作的一系列語句和指令。

說通俗一些演算法是解決一個問題的思路,程序,是解決這些問題所具體好寫的代碼。演算法沒有語言界限。他只是一個思路。為實現相同的一個演算法,用不同語言編寫的程序會不一樣。

(2)兩者的書寫規定不同。程序必須用規定的程序設計語言來寫,而演算法很隨意。演算法是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。演算法常常含有重復的步驟和一些邏輯判斷。

簡單演算法舉例 例:求 1*2*3*4*5

步驟 1 :先求 1*2 ,得到結果 2 。

步驟 2 :將步驟 1 得到的乘積 2 再乘以 3 ,得到結果 6 。

步驟 3 :將步驟 2 得到的乘積 6 再乘以 4 ,得到結果 24 。

步驟 4 :將步驟 3 得到的乘積 24 再乘以 5 ,得到最後結果 120 。

演算法與程序的聯系 :

演算法和程序都是指令的有限序列 ,但是程序是演算法,而演算法不一定是 程序。程序 = 數據結構 + 演算法。演算法的主要目的在於為人們提供閱讀了解所執行的工作流程與步驟。數據結構與演算法要通過程序的實現,才能由計算機系統來執行。可以這樣理解,數據結構和演算法形成了可執行的程序。

(2)演算法程序擴展閱讀

演算法的要素:

一、數據對象的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:

1、算術運算:加減乘除等運算。

2、邏輯運算:或、且、非等運算。

3、關系運算:大於、小於、等於、不等於等運算。

4、數據傳輸:輸入、輸出、賦值等運算。

二、演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。

3. 設計一個演算法程序

試題答案:(1)演算法步驟:
第一步:使i=1;
第二步:使S=0;
第三步:使S=S+2i;
第四步:使i+1;
第五步:如果i>10,則輸出S,結束演算法;否則,返回第三步,繼續執行演算法.
(2)演算法的程序框圖:

4. 演算法與程序有何區別和聯系

聯系:程序是計算機指令的有序集合,是演算法用某種程序設計語言的表述,是演算法在計算機上的具體實現。

區別:

一、形式不同

1、演算法:演算法在描述上一般使用半形式化的語言。

2、程序:程序是用形式化的計算機語言描述的。

二、性質不同

1、演算法:演算法是解決問題的步驟。

2、程序:程序是演算法的代碼實現。

三、特點不同

1、演算法:演算法要依靠程序來完成功能。

2、程序:程序需要演算法作為靈魂。

5. 什麼是演算法,程序

程序 = 演算法+數據結構
演算法就是要實現某個功能的方法,比如要算加法a+b+c,我們可以用(a+b)+c來實現,也可以用a+(b+c)來實現,當然這個例子很幼稚,但是說明一個問題,就是說演算法就是解決問題的一種方法。但是從深的來說,演算法又有很多種,常見的有分治演算法,動態規劃,NP不完全理論,遞歸演算法.....很多了,演算法是一個程序的核心,演算法比較難,但是學好演算法的話,對以後的工作等等都是有很大幫助的。

6. 程序=數據結構+演算法

數據結構:線性(Linear)、樹型(Tree)、圖(Graph)
演算法:排序(Sort)、查找(Search)、枚舉(Enum)等等...
演算法解決的是數據結構中的「增刪改查」,數據結構為的是讓計算機理解我們需要解決的問題是什麼東西。
一個問題,讓計算機理解它是什麼,然後我們通過『增刪改查』來達到解決問題的期望。
框架(framework)這個在2000年之前,其實計算機軟體開發當中並不怎麼使用這個詞,那個時候我們經常會說的是庫,SDK,API,例如:Win32 API,游戲開發中,我們也不叫框架,叫「引擎」,後來2000年後才逐步的開始使用這個名詞。框架實際上是利用設計模式,將某類型軟體開發中的常見問題,常用功能進行"封裝"(框架名詞與OOP關系很深)以達到更好的代碼復用率(少寫代碼),並且讓程序的設計工作以框架為主幹(骨骼)進行擴展和開發,也就是給你畫個框框,你的開發在這個框框中,框架決定你的開發模式、框架中提供的API決定了你編碼方式(介面),所謂的框架無非是利用了所謂的23種常見「軟體設計模式」中的一些模式來組織代碼,然後讓使用框架的人,陷入這個條條框框中,按照對方給你的API來進行軟體開發。
好處就是:標准化、簡單化
壞處就是:(依賴)框架的人,嚴格來說都是程序搬磚工而已
從開發成本的角度來看,框架可以縮短我們的開發周期,但從學習的角度來看,還不如深入的去了解數據結構與演算法以及設計模式,我們可以使用框架,但不要依賴框架。

數據結構:就是讓基本數據類型和復合數據類型以某種結構化的組織方式在計算機上進行數據的存儲,而演算法就是我們如何利用這些結構化的數據來解決實際問題方法。
計算就是一個IO設備,input -> (CPU、Memory、Storage) -> output
數據結構解決如何組織數據的輸入、數據的存儲、數據的輸出
演算法解決如何輸入、如何處理數據計算、如何輸出
數據結構與演算法是(心法),設計模式是(內功),編程語言是(招式)
沒有心法,內功等於0,招式就是假把式
有了心法,內功才有依靠,有了心法和內功,招式才能產生效果!

7. 演算法與程序

???雖然不知道你想問的是什麼。。但是
①程序是你寫完源代碼後,計算機編譯後得到的可執行文件。
②演算法一般結合數學思想,以下內容算是演算法:
給數組按大小排序、查找數組某元素、圖形處理演算法、音頻識別處理。
但廣義上,用了順序分支循環就是演算法。

8. 程序演算法

Basic類
Dim Count,i
Count=0

For i=1 To 100
Count=Count+i^2
Next

C#
long Count
For (int i=1;i<100;i++){
Count=Count+(long)i^2
}

9. 演算法與程序有什麼異同

用一句說話答你的話, 那就是 : 演算法只是程序中可以處理的其中一件事.
演算法, 基本上就是以數學的形式去對一個 "模式" 的模術, 例如最簡單的畢氏定理 a^2 + b^2 = c^2 . 當然還有更多更復雜的演算法, 例如 OpenCV 對面容辨識的各種演算法, 從距離, 比例, 顏色深淺來定位那裡是雙眼, 嘴巴, 人面... 但總言之, 演算法離不開 f(x) = ..... 這個框架. 你可以從演算法中求 x 等於甚麼, 又或者從已知的 x 去找出演算法中其他的未知數.. 演算法, 就是數學

程序, 基本有: 輸入 -> 處理 -> 輸出 -> 存取檔案這幾個部份, 當中便有豪多樣的可能性, 光是輸入, 就已可分由用者輸入, 從檔案輸入, 甚至... 從演算法中輸入!! 又來到處理, 演算法所不能做到的的一件事, 就是程序可以做出邏輯的分支, if ... elseif... else... 整個流程可以隨意跳躍...

最後一句就是, 演算法是死的, 程序是活的.

熱點內容
歡太會員密碼是什麼 發布:2024-12-22 20:57:28 瀏覽:71
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:123
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:299
手掛機腳本游 發布:2024-12-22 19:38:00 瀏覽:429
層次原理圖如何編譯 發布:2024-12-22 19:27:17 瀏覽:371
android計算緩存大小 發布:2024-12-22 19:16:54 瀏覽:660
php訪問模塊 發布:2024-12-22 19:05:24 瀏覽:272
電梯IC加密 發布:2024-12-22 19:04:47 瀏覽:376
腳本圈是引流加粉嗎 發布:2024-12-22 18:41:26 瀏覽:392
ajax文件上傳表單提交 發布:2024-12-22 17:55:00 瀏覽:856