抽象數據c語言,抽象數據c語言複數

本文目錄一覽:

試用C語言的結構類型定義表示複數的抽象數據類型

#include stdio.h

//結構體

typedef struct

{

double a;

double b;

} COMPLEX;

//加

COMPLEX add (COMPLEX a, COMPLEX b)

{

a.a += b.a;

a.b += b.b;

return a;

}

//減

COMPLEX subtract (COMPLEX a, COMPLEX b)

{

a.a -= b.a;

a.b -= b.b;

return a;

}

//乘

COMPLEX multiply (COMPLEX a, COMPLEX b)

{

COMPLEX c;

c.a = a.a*b.a – a.b*b.b;

c.b = a.a*b.b + a.b*b.a;

return c;

}

//除

COMPLEX divide (COMPLEX a, COMPLEX b) {

COMPLEX c;

double divisor = b.a*b.a + b.b*b.b;

if (divisor – 0 == 0)

exit (0);

c.a = (a.a*b.a + a.b*b.b) / divisor;

c.b = (a.b*b.a – a.a*b.b) / divisor;

return c;

}

然後讀入數據,判斷運算符號就行了。

從C語言的角度來解釋什麼是抽象數據類型?

簡單的說一下吧,所謂抽象數據類型ADT,是指

我們在邏輯上定義的

一種

數據類型。

如你所知道的,計算機內,無論是內存還是外存,都只是一組二進位的數位而已。

大多數時候,比如我們所熟知的

Char類型、Int類型等等,都是一組已經定義好的二進位數位。

所謂定義好,是指,在這一組數位中,如Char類型,8位,即一組8個二進位數位,我們如何標識和處理每一位,以及解讀每一位所代表的意義。

你學過C,應該知道ASCII碼,和二進位計數。

Char的這個數據類型的含義就是說

以二進位計數

算出對應的數值,

再以ASCII碼為標準,解讀出這8位二進位位中所表示的字母。

事實上,我想說的是,這就是一個基本的抽象數據類型了。

當然,ADT不僅僅是一組數位的定義,他還包括一組定義在這個結構上的一組操作。

struct這個方法,在後來的演變中,成為了C++和其他高等語言中的類(class)。

我知道,這樣講你肯定不是很明白,但關於這個東西,有一門課程叫做《數據結構》,中間詳細敘述了所有有關

抽象數據類型的概念

其中,有一本

《數據結構C語言版》清華大學出版社

嚴蔚敏著

的教材,是所有計算機專業學生必修的一門課程。你可以看看。

祝好運!

為何說C語言在對抽象數據類型的支持上是欠缺的?

因為C語言是面向過程的,它沒有類的概念。雖然C的結構體在一定程度上有類似類的概念,它僅僅是個結構體,沒有對應的方法。結構體和結構體之間也沒有關聯。

我想問一下C語言中抽象數據類型中的基本操作中的操作名是自定義的還是系統定義了?

全都是自定義的。

C語言沒什麼抽象數據類型。都是教學參考書,為了一般化,假裝假設一個抽象數據類型,然後假設一些基本操作,主要目的是為了講解數據結構,比如鏈表啊,堆棧啊。

真正實現中,都是具體的。

C語言本身,操作系統本身根本不會定義這些內容。

試用C語言的結構類型定義表示複數的抽象數據類型。

定義:

class complex

{

private:

double real; //複數的實部

double imag; //複數的虛部 複數表示為 real + imag i (如 2 + 3i)

public:

complex()

{

real=0;

image=0;

}

complex(double r, double i)

{

real=r;

imag=i;

}

void input(); //輸入函數

void output(); //輸出函數

void add(complex a);

void sub(complex a);

……………………………… //加、減、乘、除為成員函數 運算時直接調用就行

//建議您先實現加法和減法

}

祝您成功,加油!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311123.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相關推薦

  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29

發表回復

登錄後才能評論