-
本實(shí)訓(xùn)是有關(guān)線性表的順序存儲(chǔ)結(jié)構(gòu)的應(yīng)用,在本實(shí)訓(xùn)的實(shí)例程序中,通過(guò)C語(yǔ)言中提供的數(shù)組來(lái)存儲(chǔ)兩個(gè)已知的線性表,然后利用數(shù)組元素的下標(biāo)來(lái)對(duì)線性表進(jìn)行比較。通過(guò)對(duì)本實(shí)訓(xùn)的學(xué)習(xí),可以理解線性表在順序存儲(chǔ)結(jié)構(gòu)下的操作方法。
在實(shí)訓(xùn)中,我們?cè)O(shè)A=(a1,a2,…,an)和B=(b1,b2,…,bm)是兩個(gè)線性表,其數(shù)據(jù)元素的類型是整型。若n=m,且ai=bi,則稱A=B 若ai=bi,而aj<bj,則稱A<B;除此以外,均稱A>B。設(shè)計(jì)一比較大小的程序。
標(biāo)簽:
線性
順序存儲(chǔ)
上傳時(shí)間:
2014-01-14
上傳用戶:www240697738
-
對(duì)PL0原編譯器進(jìn)行了以下的擴(kuò)充:1.增加以下保留字else(elsesym), for(forsym),to(tosym),downto(downtosym),return(returnsym),[(lmparen),](rmparen)
2.增加了以下的運(yùn)算符:+=(eplus),-=(eminus),++(dplus),--(dminus)
取址運(yùn)算符&(radsym),指向運(yùn)算符@(padsym)
3.修改單詞:修改不等號(hào)#為<>
4.擴(kuò)充語(yǔ)句:(1)增加了else子句
(2)增加了for語(yǔ)句
5.增加運(yùn)算:(1).++運(yùn)算 (2).--運(yùn)算;(3).+=運(yùn)算 (4).-=運(yùn)算;(5).&取址運(yùn)算;
(6).@指向運(yùn)算;
6.增加類型:(1).增加多維數(shù)組a[i1][i2][i3]……[i(n-1)][i(n-2)][in] (2).增加指針類型(任何變量都能存放指針,但不支持指針的指針,如b:=@@a應(yīng)該改寫為c:=@a,b:=@c)
7.將過(guò)程procedure擴(kuò)展為函數(shù):(1).允許定義過(guò)程時(shí)在其后加參數(shù)(var a, var b,……..,var n) (2)允許通過(guò)指針向函數(shù)形式參數(shù)傳地址;(3)允許返回值;可以用 a:=p(a,b,c….,n) 返回
標(biāo)簽:
downtosym
returnsym
elsesym
downto
上傳時(shí)間:
2016-07-02
上傳用戶:saharawalker
-
Trie樹既可用于一般的字典搜索,也可用于索引查找。對(duì)于給定的一個(gè)字符串a(chǎn)1,a2,a3,...,an.則采用TRIE樹搜索經(jīng)過(guò)n次搜索即可完成一次查找。不過(guò)好像還是沒(méi)有B樹的搜索效率高,B樹搜索算法復(fù)雜度為logt(n+1/2).當(dāng)t趨向大,搜索效率變得高效。怪不得DB2的訪問(wèn)內(nèi)存設(shè)置為虛擬內(nèi)存的一個(gè)PAGE大小,而且?guī)袚Q頻率降低,無(wú)需經(jīng)常的PAGE切換。
標(biāo)簽:
Trie
樹
搜索
上傳時(shí)間:
2016-07-06
上傳用戶:sk5201314
-
一元稀疏多項(xiàng)式計(jì)算器的基本功能是:
(1)輸入并建立多項(xiàng)式;
(2)輸出多項(xiàng)式,輸出形式為整數(shù)序列:n,c1,e1,c2,e2,….,cn,en, 其中n是多項(xiàng)式的項(xiàng)數(shù),ci和ei分別是第I項(xiàng)的系數(shù)和指數(shù),序列按照指數(shù)降序排列;
(3)多項(xiàng)式a和b相加,建立多項(xiàng)式a+b
(4)多項(xiàng)式a和b相減,建立多項(xiàng)式a-b.
標(biāo)簽:
多項(xiàng)式
稀疏
計(jì)算器
輸入
上傳時(shí)間:
2016-10-25
上傳用戶:時(shí)代電子小智
-
編寫一個(gè)java應(yīng)用程序。用戶從鍵盤輸入一個(gè)1-9999之間的數(shù),程序?qū)⑴袛噙@個(gè)數(shù)是幾位數(shù),并判斷這個(gè)數(shù)是否回文數(shù)。回文數(shù)是指將數(shù)含有的數(shù)字逆序排列后得到的數(shù)和原數(shù)相同,例如12121,4224,6778776等都是回文數(shù)。
1)程序具有判斷用戶的輸入是否為合法整數(shù)的功能。對(duì)非法輸入(例如含有字母)要進(jìn)行處理。
2)要判斷輸入數(shù)的位數(shù),并輸出相關(guān)信息。
3)要判斷是否回文數(shù)。
二、二戰(zhàn)期間,英國(guó)情報(bào)人員獲取德軍的一機(jī)密電報(bào),電報(bào)的內(nèi)容為:
bzdz izu sxgzd vs lh ,vpzg woflsh vs vwrh vhlsddlmp glm wrw gzy vsg .gflyz gstfzu bvsg gzsd hdmlp vml lm ,hghzvy wmz hwiry mvvdgvy izd z hzd vivsg ,ltz tmlo tmlO
情報(bào)人員已經(jīng)知道,這段電報(bào)的加密方式為:
1. 首先將字符串的順序顛倒。
2. 字母互換的規(guī)律為:A->Z, B-Y, C-X...X->C, Y->B, Z-A a->z, b->y, c-x...x->c, y->b, z->a.
3. 非字母字符保持不變。
請(qǐng)編程幫助情報(bào)人員破譯這份機(jī)密電報(bào)。給出注釋良好的源程序和程序運(yùn)行后的結(jié)果。
標(biāo)簽:
java
9999
編寫
應(yīng)用程序
上傳時(shí)間:
2017-06-02
上傳用戶:dengzb84
-
現(xiàn)在,有兩個(gè)正整數(shù)A和B,例如A是345,B是478,現(xiàn)在,需要把B插入到A里,
而A有三位,所以有四個(gè)位置選擇,所得結(jié)果分別是:
478345, 347845, 344785, 345478
我們通過(guò)對(duì)比可以知道,在這當(dāng)中最小的一個(gè)是344785
這兩個(gè)正整數(shù)長(zhǎng)度不超過(guò)100000位,各個(gè)位均不包含數(shù)字0
現(xiàn)在的目標(biāo)是,要找出插入后所能得到的最小的整數(shù),輸出這個(gè)整數(shù)
標(biāo)簽:
上傳時(shí)間:
2014-01-05
上傳用戶:jackgao
-
求a^b的后四位,a,b可為long long 型整數(shù)
標(biāo)簽:
求a^b的后四位
上傳時(shí)間:
2015-12-16
上傳用戶:afqwer
-
#include "iostream" using namespace std;
class Matrix
{
private:
double** A; //矩陣A
double *b; //向量b
public:
int size;
Matrix(int );
~Matrix();
friend double* Dooli(Matrix& );
void Input();
void Disp();
};
Matrix::Matrix(int x) {
size=x;
//為向量b分配空間并初始化為0
b=new double [x];
for(int j=0;j<x;j++)
b[j]=0;
//為向量A分配空間并初始化為0
A=new double* [x];
for(int i=0;i<x;i++)
A[i]=new double [x];
for(int m=0;m<x;m++)
for(int n=0;n<x;n++)
A[m][n]=0;
}
Matrix::~Matrix() {
cout<<"正在析構(gòu)中~~~~"<<endl;
delete b;
for(int i=0;i<size;i++)
delete A[i];
delete A;
}
void Matrix::Disp()
{
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
}
void Matrix::Input()
{
cout<<"請(qǐng)輸入A:"<<endl;
for(int i=0;i<size;i++)
for(int j=0;j<size;j++){
cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl;
cin>>A[i][j];
}
cout<<"請(qǐng)輸入b:"<<endl;
for(int j=0;j<size;j++){
cout<<"第"<<j+1<<"個(gè):"<<endl;
cin>>b[j];
}
}
double* Dooli(Matrix& A) {
double *Xn=new double [A.size];
Matrix L(A.size),U(A.size);
//分別求得U,L的第一行與第一列
for(int i=0;i<A.size;i++)
U.A[0][i]=A.A[0][i];
for(int j=1;j<A.size;j++)
L.A[j][0]=A.A[j][0]/U.A[0][0];
//分別求得U,L的第r行,第r列
double temp1=0,temp2=0;
for(int r=1;r<A.size;r++){
//U
for(int i=r;i<A.size;i++){
for(int k=0;k<r-1;k++)
temp1=temp1+L.A[r][k]*U.A[k][i];
U.A[r][i]=A.A[r][i]-temp1;
}
//L
for(int i=r+1;i<A.size;i++){
for(int k=0;k<r-1;k++)
temp2=temp2+L.A[i][k]*U.A[k][r];
L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r];
}
}
cout<<"計(jì)算U得:"<<endl;
U.Disp();
cout<<"計(jì)算L的:"<<endl;
L.Disp();
double *Y=new double [A.size];
Y[0]=A.b[0];
for(int i=1;i<A.size;i++ ){
double temp3=0;
for(int k=0;k<i-1;k++)
temp3=temp3+L.A[i][k]*Y[k];
Y[i]=A.b[i]-temp3;
}
Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1];
for(int i=A.size-1;i>=0;i--){
double temp4=0;
for(int k=i+1;k<A.size;k++)
temp4=temp4+U.A[i][k]*Xn[k];
Xn[i]=(Y[i]-temp4)/U.A[i][i];
}
return Xn;
}
int main()
{
Matrix B(4);
B.Input();
double *X;
X=Dooli(B);
cout<<"~~~~解得:"<<endl;
for(int i=0;i<B.size;i++)
cout<<"X["<<i<<"]:"<<X[i]<<" ";
cout<<endl<<"呵呵呵呵呵";
return 0;
}
標(biāo)簽:
道理特分解法
上傳時(shí)間:
2018-05-20
上傳用戶:Aa123456789
-
#include<stdio.h>
#include<windows.h>
int xuanxiang;
int studentcount;
int banjihao[100];
int xueqihao[100][10];
char xm[100][100];
int xuehao[100][10];
int score[100][3];
int yuwen;
int shuxue[000];
int yingyu[100];
int c[100];
int p;
char x[1000][100]="",y[100][100]="";/*x學(xué)院 y專業(yè) z班級(jí)*/
int z[100];
main()
{
void input();
void inputsc();
void alter();
void scbybannji();
printf("--------學(xué)生成績(jī)管理-----\n");
printf("請(qǐng)按相應(yīng)數(shù)字鍵來(lái)實(shí)現(xiàn)相應(yīng)功能\n");
printf("1.錄入學(xué)生信息 2.錄入學(xué)生成績(jī) 3.修改學(xué)生成績(jī)\n");
printf("4.查詢學(xué)生成績(jī) 5.不及格科目及名單 6.按班級(jí)輸出學(xué)生成績(jī)單\n");
printf("請(qǐng)輸入你要實(shí)現(xiàn)的功能所對(duì)應(yīng)的數(shù)字:");
scanf("%d",&xuanxiang);
system("cls");
getchar();
switch (xuanxiang)
{
case 1:input();
case 2:inputsc();
case 3:alter();
/*case 4:select score();
case 5:bujigekemujimingdan();*/
case 6:scbybanji;
}
}
void input()
{
int i;
printf("請(qǐng)輸入你的學(xué)院名稱:");
gets(x);
printf("請(qǐng)輸入你的專業(yè)名稱:");
gets(y);
printf("請(qǐng)輸入你的班級(jí)號(hào):");
scanf("%d",&z);
printf("請(qǐng)輸入你們一個(gè)班有幾個(gè)人:");
scanf("%d",&p);
system("cls");
for(i=0;i<p;i++)
{
printf("請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào):",i+1);
scanf("%d",xuehao[i]);
getchar();
printf("請(qǐng)輸入第%d個(gè)學(xué)生的姓名:",i+1);
gets(xm[i]);
system("cls");
}
printf("您已經(jīng)錄入完畢您的班級(jí)所有學(xué)生的信息!\n");
printf("您的班級(jí)為%s%s%s\n",x,y,z);
/*alter(p);*/
}
void inputsc()
{
int i;
for(i=0;i<p;i++)
{
printf("\n");
printf("--------------------------------------------------------------------------------\n\n");
printf("\t\t\t\t錄入學(xué)生的成績(jī)\n\n\n");
printf("--------------------------------------------------------------------------------\n\n");
printf("\t\t\t\t%s\n",xm[i]);
printf("\n");
printf("\t\t\t\t數(shù)學(xué):");
scanf("%d",&shuxue[i]);
printf("\n");
getchar();
printf("\t\t\t\t英語(yǔ):");
scanf("%d",&yingyu[i]);
printf("\n");
getchar();
printf("\t\t\t\tc語(yǔ)言:");
scanf("%d",&c[i]);
system("cls");
}
}
void alter()
{
int i;/*循環(huán)變量*/
int m[10000];/*要查詢的學(xué)號(hào)*/
int b;/*修改后的成績(jī)*/
char kemu[20]="";
printf("請(qǐng)輸入你要修改的學(xué)生的學(xué)號(hào)");
scanf("%d",&m);
for (i=0;i<p;i++)
{
if (m==xuehao[i])
{
printf("%s的數(shù)學(xué)成績(jī)?yōu)?d,英語(yǔ)成績(jī)?yōu)?d,c語(yǔ)言成績(jī)?yōu)?d,xm[i],shuxue[i],yingyu[i],c[i]");
printf("請(qǐng)輸入你想修改的科目");}
}
gets(kemu);
getchar();
if (kemu=="數(shù)學(xué)");
{
scanf("%d",&b);
shuxue[i]=b;}
if (kemu=="英語(yǔ)");
{
scanf("%d",&b);
yingyu[i]=b;}
if (kemu=="c語(yǔ)言");
{
scanf("%d",&b);
c[i]=b;
}
printf("%s的數(shù)學(xué)成績(jī)?yōu)?d,英語(yǔ)成績(jī)?yōu)?d,c語(yǔ)言成績(jī)?yōu)?d,xm[i],shuxue[i],yingyu[i],c[i]");
}
void scbybannji()
{
int i;
char zyname[20];
int bjnumber;
printf("請(qǐng)輸入你的專業(yè)名稱");
scanf("%s",&zyname);
printf("請(qǐng)輸入你的班級(jí)號(hào)");
scanf("%d",&bjnumber);
for (i=0;i<p;i++)
{
if (zyname==y[i]);
if (bjnumber==z[i]);
printf("專業(yè)名稱%s班級(jí)號(hào)%d數(shù)學(xué)成績(jī)%d英語(yǔ)成績(jī)%dc語(yǔ)言成績(jī)%d,y[i],z[i],shuxue[i],yingyu[i],c[i]");
}
}
標(biāo)簽:
c語(yǔ)言
上傳時(shí)間:
2018-06-08
上傳用戶:2369043090
-
在包 hugeinteger 中創(chuàng)建功能類 HugeInteger,該類用來(lái)存放和操作一個(gè)不超過(guò)
40 位的大整數(shù)。
(1) 定義一個(gè)構(gòu)造函數(shù),用來(lái)對(duì)大整數(shù)進(jìn)行初始化。參數(shù)為一個(gè)字符串。
(2) 定義 input 成員函數(shù),實(shí)現(xiàn)大整數(shù)的重新賦值。參數(shù)為一個(gè)字符串,無(wú)返回
值。
(3) 定義 output 成員函數(shù),將大整數(shù)輸出到屏幕上。無(wú)參數(shù)無(wú)返回值。
(4) 定義 add 成員函數(shù),實(shí)現(xiàn)兩個(gè)大整數(shù)的加法。參數(shù)為一個(gè) HugeInteger 對(duì)
象,無(wú)返回值,例如:
HugeInteger A = new HugeInteger("12345");
HugeInteger B = new HugeInteger("1234");
A.add(B);
此時(shí),A 為 13579,B 為 1234。
(5) 定義 sub 成員函數(shù),實(shí)現(xiàn)兩個(gè)大整數(shù)的減法。參數(shù)和返回值同 add 函數(shù)。
(6) 定義若干大整數(shù)關(guān)系運(yùn)算的成員函數(shù),包括 isEqualTo(等于,=)、
isNotEqualTo(不等于,≠)、isGreaterThan(大于,>)、isLessThan(小
于,<)、isGreaterThanOrEqualTo(大于等于,≥)和 isLessThanOrEqualTo
(小于等于,≤)。這些函數(shù)的參數(shù)為一個(gè) HugeInteger 對(duì)象,返回值為一個(gè)
布爾類型,表示關(guān)系運(yùn)算的結(jié)果,例如:
HugeInteger A = new HugeInteger("12345");
HugeInteger B = new HugeInteger("1234");
那么此時(shí) A.isGreaterThan(B)的結(jié)果應(yīng)當(dāng)為 True,表示 12345>1234。
標(biāo)簽:
java
整數(shù)
運(yùn)算
上傳時(shí)間:
2019-06-01
上傳用戶:idealist