8.3
這幾天等ms通知中…在家沒啥事只好yy C++builder....家里還是比較爽啊..就是沒有網(wǎng)…很多東西都不能查..只好自己YY…..
這幾天熟悉了一下C++ builder..把下好的一堆教程拿出來看….發(fā)現(xiàn)只有一個還比較實用…..YY…..把萬老師的程序翻出來研究…自己先搭了一個簡單界面…我負責的是編輯功能..然后把萬老師的文檔拿出來看..發(fā)現(xiàn)編輯功能是最繁瑣的- -||….有很多疑問啊…
比如C++builder定義了很多類如Tlist,AnsiString,Set等…那Cstring之類的在這里還能用嗎,C++builderms還有自己的一套語法?比如..現(xiàn)在只是搭了一個框架,一些控件的消息響應函數(shù)應該怎么加進去呢....C++builder是不是還有自己的一堆函數(shù)庫,結構,Tbitmap是C++builder里面的圖像的結構體嗎,Tform又是啥??很多都不知道…
下一步:先學下語法…再熟悉下如何制作工具欄之類的….然后繼續(xù)研究萬老師代碼…奇怪的是萬老師的代碼運行出來為什么沒有界面呢…
8.7
Builder玩了幾天….比較熟悉了..但是不能上網(wǎng)..很多問題還不明白…比如說TForm的響應函數(shù)FormPaint是怎么產(chǎn)生的還是不知道…隨便亂點只產(chǎn)生FormCreate函數(shù)…FormPaint和FormCreate的區(qū)別….還有為什么我建的工程里面加的控件,在對象檢查窗口里面的顏色比較淡….感覺不太正常好像…..大概把握了一下…對于C++builder里面的對象還要多了解,比如窗口,按鈕的屬性….C++builder控制鼠標的函數(shù),,畫圖的函數(shù)都怎么用….
發(fā)現(xiàn)我犯了一個錯誤…跟著人家把編輯器改成黑色的…結果看萬老師的代碼的中文注釋看不到了….還想著萬老師要是加點中文注釋就好了….一堆函數(shù)都不知道干嘛的….結果發(fā)現(xiàn)….真是杯具….
Ms連個拒信都不肯發(fā)…氣人..
8.8
終于知道FormPaint如何產(chǎn)生了….原來雙擊events里面的onpain的編輯框就可以了…..- -|||…..不過還有響應函數(shù)的作用google后才知道….
重新畫了一遍框架…
8.11
ToolBar->ToolButton
ImageList
將圖標加到ToolButton
Csdn真是好東西
Clipboard()
8.16
今天看我8.3號寫的東西...覺得我很白癡..
C++builder有許多封裝的類..很適合寫圖形界面等面向對象的東西..比MFC簡單多了..
總之...感想:
學會google...
學會YY...
I like CSDN...
posted @
2010-08-12 13:11 ccyy 閱讀(738) |
評論 (0) |
編輯 收藏
1、廣度優(yōu)先搜索二叉樹
typedef struct btree
{
int data;
btree *L;
btree *R;
}btree;
void BST(btree *Tree)
{
queue<btree*> q;
btree *p=Tree;
q.push(p);
while(!q.empty())
{
p=q.front();
q.pop();
printf("%d",p->data);
if(p->L)
q.push(p->L);
if(p->R)
q.push(p->R);
}
}
2、輸出一個字符串的所有排列(字符串可能有重復字符)
void search(char s[], int i, int n)
{
int j;
char temp;
for(j=0;j<n;++j)
{
if(j!=0 &&s[j]==s[j-1])
;
else if(s[j]!='@')
{
p[i]=s[j];
s[j]='@';
if(i==n-1)
{
p[n]='\0';
printf("%s\n", p);
}
else
{
search(s,i+1,n);
}
s[j]=p[i];
}
}
}
3、判斷一個鏈表是否有環(huán)
typedef struct node
{
int data;
node *next;
}node;
bool IsLoop(node *head)
{
node *p=head;
node *q=head->next;
node *tmp;
if(q->next==p)
return true;
while(p!=NULL&&q!=NULL&&p!=q)
{
p=p->next;
tmp=q->next;
q=tmp->next;
}
if(p==NULL||q==NULL)
return false;
else
return true;
}
4、一個0-n的數(shù)組的元素大小為0-n,判斷是否有重復
bool IfDuplicate(int *a,int n)
{
for(int i=0;i<n;i++)
{
while(a[i]!=i&&a[i]!=-1)
{
if(a[a[i]]==-1)
return true;
int j=a[i];
a[i]=a[a[i]];
a[j]=-1;
}
if(a[i]==i)
a[i]=-1;
}
return false;
}
|
posted @
2010-07-28 16:49 ccyy 閱讀(443) |
評論 (1) |
編輯 收藏
今天去微軟面試...緊張ing...
中午11:00從學校出發(fā)..1號線轉5號線然后打D到上海科技園..到了以后不知道怎么聯(lián)系面試官...囧...打電話問了下DY...然后1個mm來帶我去了某個空會議室...等了大概10min...一個胖胖的面試官進來了...先問了我一些項目經(jīng)歷之類的...然后問我會玩24點嗎?我說會。然后讓我算6,6,10,10....算不出來(后來發(fā)現(xiàn)這個根本沒有答案- -||)然后問我要怎么寫個程序來出24點的難題.....
思考中.我說如果4個數(shù)可以化成2個數(shù)想乘積等于24,這四個數(shù)應該算是比較簡單的..然后他又提醒我從數(shù)學的角度定義..哎..還是想不出..后來才其實這個題目ms是開放性的....當時腦抽了..早知道和他胡扯一堆可以自圓其說就好了..然后他讓我做了一道比較水 的字符串的題目..當場在白板上寫代碼..就是給一個字符串,這個字符串由有空格隔開的單詞組成,處理這個字符串,使輸出的字符串相鄰的單詞不重復;如輸入what is is this,輸出what is this,實在是ACM的水題..但是還是出現(xiàn)了一些腦殘的錯誤,,回來重新敲了下代碼
#include<stdio.h>
#include<string.h>
void Noduplicate(char *str,char *res)
{
int i=0,j=0,pre=-1;
int l=strlen(str);
while(i<l)
{
if(str[i]==' ')
{
res[j++]=str[i++];
continue;
}
if(pre==-1||str[i]!=str[pre])
{
pre=i;
while(i<l&&str[i]!=' ')
{
res[j++]=str[i++];
}
}
else
{
int flag=0;
int tmp_p=pre,tmp_i=i;
while(tmp_i<l&&str[tmp_i]!=' '&&str[tmp_p]!=' ')
{
if(str[tmp_p]!=str[tmp_i])
{
flag=1;
break;
}
tmp_i++;tmp_p++;
}
if(flag)
{
pre=i;
while(str[i]!=' ')
{
res[j++]=str[i++];
}
}
else
i=tmp_i+1;
}
}
res[j]='\0';
}
int main()
{
int i,j;
char str[100],res[100];
while(gets(str)!=NULL)
{
memset(res,0,sizeof(str));
Noduplicate(str,res);
printf("%s\n",res);
}
return 0;
}
第一輪面完后又來了一個mm...進來讓我自我介紹幾句,就讓我做題..也是比較水的字符串匹配的題目..給兩個字符串是*s和*str,s由子母'*’組成,*可以表示i個*號前面的一個字符,i=0-n;str只有子母,問兩個串是否相同,例如*s="AB*C",*str="ABBBBBC",則連個字符串相同..
我先想了一個線性掃描的做法..但是ms有很多細節(jié)問題..然后我又寫了一個DP的做法..但是復雜度太高了..然后面試官讓我我改線性的做法..ms怎么改都有點問題..我只好想了一個優(yōu)化的方法..大概混過去了..
回來問了天哥..改了下,可以先處理一下字符串,如將AB*B改為ABB*,因為兩者是等價的..然后線性掃描就可以了...代碼如下
#include<stdio.h>
#include<string.h>
bool ifmatch(char *s,char *str)
{
int i=0,j=0,k,pre=-1;
int s_len=strlen(s);
int str_len=strlen(str);
for(i=0;i<s_len;i++)
{
if(s[i]!='*')
pre=i;
if(s[i]=='*')
{
if(s[i+1]!='*'&&s[i+1]==s[pre])
{
k=i;
while(s[k]=='*')
k--;
k++;
char temp=s[k];
s[k]=s[i+1];
s[i+1]=temp;
}
}
}
//printf("%s\n",s);
pre=-1;
i=0;j=0;
while(i<s_len&&j<str_len)
{
if(s[i]!=str[j]&&s[i]!='*')
return false;
if(s[i]=='*')
{
while(str[j]==s[pre])
j++;
i++;
}
else
{
pre=i;
i++;j++;
}
}
if(j<str_len)
return false;
while(i<s_len)
{
if(s[i]!='*')
return false;
i++;
}
return true;
}
int main()
{
char s[200],str[200];
while(scanf("%s %s",s,str)!=EOF)
{
if(ifmatch(s,str))
printf("yes\n");
else
printf("no\n");
}
return 0;
}
只面了兩輪就出來了..ms還比較水...明顯比DY大牛的水....累..還是感覺比較搓...
posted @
2010-07-28 16:26 ccyy 閱讀(205) |
評論 (0) |
編輯 收藏
今天糾結了一下二叉排序樹的一些操作..插入,查找,前序,中序和后序遍歷
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct bTree
{
int data;
int key;
struct bTree *L;
struct bTree *R;
};
bTree *insertnode(bTree *root,int key,int value)
{
bTree *newnode;
bTree *current;
bTree *back;
newnode=(bTree*)malloc (sizeof(bTree));
newnode->data=value;
newnode->L=NULL;
newnode->R=NULL;
newnode->key=key;
if (root==NULL)
{
//printf("\nIt is error!No element!\n");
return newnode;
}
else
{
current=root;
while(current!=NULL)
{
back=current;
if (current->key>value)
current=current->L;
else
current=current->R;
}
if (back->key>value)
back->L=newnode;
else
back->R=newnode;
}
return root;
}
bTree *createbtree()
{
bTree *root=NULL;
int data,key,n;
scanf("%d",&n);
while(n--)
{
scanf("%d %d",&key,&data);
root=insertnode(root,key,data);
}
return root;
}
void PreOrder(bTree *p)
{
if(p)
{
printf("%d ",p->key);
PreOrder(p->L);
PreOrder(p->R);
}
}
void InOrder(bTree *p)
{
if(p)
{
InOrder(p->L);
printf("%d ",p->key);
InOrder(p->R);
}
}
void PostOrder(bTree *p)
{
if(p)
{
PostOrder(p->L);
PostOrder(p->R);
printf("%d ",p->key);
}
}
bool search(bTree *p,int key,int &data)
{
if(p)
{
if(p->key==key)
{
data=p->data;
return true;
}
else if(key<p->key)
return search(p->L,key,data);
else
return search(p->R,key,data);
}
return false;
}
void depth(bTree *p,int lev,int *pe)
{
if(p)
{
if(lev>*pe)
{
*pe=lev;
}
depth(p->L,lev+1,pe);
depth(p->R,lev+1,pe);
}
}
int main()
{
bTree *p;
int n,i=1,j=0;
p=createbtree();
PreOrder(p);
printf("\n");
InOrder(p);
printf("\n");
PostOrder(p);
printf("\n");
depth(p,i,&j);
int key,data;
scanf("%d",&key);
if(search(p,key,data))
printf("%d\n",data);
printf("\n");
return 0;
}
posted @
2010-07-26 17:05 ccyy 閱讀(165) |
評論 (0) |
編輯 收藏
終于把《哈利波特與死亡圣器》看完了..頭腦還處于興奮狀態(tài)...哈利波特還是如此令我著迷...哈利波特可以說陪我度過了初中,高中的時光...還記得以前新華書店里一邊聽著書店里放的《go home》一邊津津有味的沉浸在哈利波特中....日子真是無憂無慮..當時特別向往JK.羅琳所描又述出來的魔方學校霍格沃茨...真的是一個既虛幻又真實而又有趣的世界..每個巫師有都特制的魔杖...畫框里面的人都會說話還有思想..學校里有各種有趣的東西.比如說分院帽,哈利神奇的隱形衣。。各種有趣的課程,魔藥課,黑魔法防御術..里面還有相當于政府部門的魔法部。。相當于銀行的古靈閣(由妖精看守的)...相當于死牢的阿茲卡班(由恐怖的攝魂怪看守)...有了魔杖,很多事情好像念念咒語就可以輕松解決..還可以幻影移形..多好玩....還有魁地奇這種類似與現(xiàn)實生活中世界杯的活動..不過比世界杯ms好玩多了..運動員都騎在掃帚上飛來飛去...總之這是一個羅琳YY出來的世界..并且還可以自圓其說.
JK.羅琳真的是個了不起的作家...感覺整個哈利波特的故事的情節(jié)跌宕起伏,環(huán)環(huán)相扣,而且前呼后應...最后一本書寫的東西好像在第一本已經(jīng)埋下伏筆了...每次讀哈利波特都讓我愛不釋手..總是一拿起來就不愿放下..而且每個人物都塑造的非常鮮活...總感覺都能想象出每個人物的樣子..勇敢的哈利.聰明,成績好的不得了的赫敏.格蘭杰...搞笑的雙胞胎兄弟..慈祥而且睿智的鄧布利多...大大咧咧的海格..愚鈍但是充滿正義感的挪威.隆巴頓...有點神經(jīng)質的盧娜.洛夫古德..驕傲冷漠的德拉科.馬爾福..沒有一個人物不是活靈活現(xiàn)...
據(jù)說JK.羅琳原來是個單身母親...為了寫哈利.波特..每天到一個咖啡館區(qū).把哈利波特的故事寫在小紙片上...功夫不負有心人。。哈利.波特給他帶來了巨大的財富..更給了我們一個奇特的想象空間...
看完了哈利波特..有好多值得回味的地方..如鄧布利多精心的策劃安排..比如阿茲卡班囚徒中時間倒轉的機器...火焰杯中的三強爭霸賽的陰謀...尋找魂器的艱辛探索過程..也有許多感人的場面..例如小精靈多比為了救哈利.波特而犧牲...小天狼星的殉職..
告一段落..最近墮落了..都沉浸在魔幻世界中.....該干點正事了..睡覺去..
posted @
2010-07-26 03:18 ccyy 閱讀(226) |
評論 (0) |
編輯 收藏
昨天晚上和帥哥聊天...竟然考我i++和++i的區(qū)別...只是到++i比i++更快一些,i++是先執(zhí)行后自增,++i是先自增然后執(zhí)行..于是google之.....
The answer is :
1、++i的效率確實比i++的要高,因為對++i來說,整個表達式的值就是i的值,沒有進行中間值的考貝工作,所以效率高;而對于i++來說,整個表達式的值是i增1之前的值,它會考貝一份i增1之前的值作為整個表達式的值,所以效率低。
2、++i這個表達式產(chǎn)生的是一個左值,可以把這個表達式用在一個需要一個左值的地方,如賦值表達式的左邊:++i = 8; 而i++產(chǎn)生的是一個右值,不能用在一個需要左值的地方。
學習了...但是還是不太清楚那個拷貝時啥意思...
posted @
2010-07-25 14:32 ccyy 閱讀(226) |
評論 (0) |
編輯 收藏
今天微軟電面...有一個題目是將鏈表反轉,返回頭結點...差點嗝屁..于是把鏈表糾結了一下...
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct st
{
int data;
struct st *next;
};
//reverse list
struct st *reverse(struct st *head)
{
struct st *p=head->next,*q;
struct st *Head;
q=p->next;
p->next=NULL;
Head=p;
p=q;
while(p!=NULL)
{
q=p->next;
p->next=Head;
Head=p;
p=q;
}
head->next=Head;
return head;
}
//insert list
void Insert(struct st *head,int x, int i)
{
struct st *p=head->next,*q=head;
i--;
while(i--)
{
q=p;
p=p->next;
}
struct st *now = (struct st*)malloc(sizeof(struct st));//
now->data=x;
now->next=p;
q->next=now;
}
//delete list
void Delete(struct st *head, int x)
{
struct st *p=head->next,*q=head;
while(p!=NULL)
{
if(p->data==x)
{
q->next=p->next;
}
q=p;
p=p->next;
}
}
int main()
{
int n,m,i,j;
struct st head;
head.next=NULL;
for(i=1;i<=8;i++)
{
insert(&head,i,i);
}
struct st *Head=reverse(&head);
struct st *p=Head->next;
while(p!=NULL)
{
printf("%d\n",p->data);
p=p->next;
}
Insert(&head,10,1);
Delete(&head,4);
Delete(&head,10);
Delete(&head,8);
p=Head->next;
while(p!=NULL)
{
printf("%d\n",p->data);
p=p->next;
}
return 0;
}
posted @
2010-07-22 21:55 ccyy 閱讀(117) |
評論 (0) |
編輯 收藏
大一大二的acmer都在緊張的集訓中..無聊切PE中..。發(fā)現(xiàn)一個很不錯的函數(shù)
可以將int型的整數(shù)轉換為任意進制字符串表示形式,函數(shù)調用形itoa(int number,char buf,int type),如果number=5,type=2.,則執(zhí)行后buf="1001",相應的如果type=3,就把number轉換為相應的三進制的字符串的表示形式。
int main()
{
int temp;
char buf[300];
sprintf(buf,"%d",temp);
char buf1[300];
itoa(temp,buf1,2);
return 0;
}
posted @
2010-07-21 10:42 ccyy 閱讀(193) |
評論 (0) |
編輯 收藏
嵌入式答辯完畢…突然覺得人很空虛…不知道該干什么了..答辯杯具了..講ppt還好的…演示的時候由于光線太亮…手勢識別都不準了…在實驗室測的時候都準的..…只能聽天由命了…答辯以前還信心滿滿的…
今天離開112,有點不舍..回到210坐臥某個猥瑣的位置…才發(fā)現(xiàn)112真是圣地啊….想到三個月的時間和心血就要付諸東流了……….最后半個月的時間…嵌入式+考試+EDA大作業(yè)…….基本都是杯具…成績很難看….每次考試的成績都比期望值低….以失望告終…什么時候才可以RP++…..可惡EDA大作業(yè)…被maxplus2折磨了整整一天一夜...科技英語都來不及復習了….辛辛苦苦的敲代碼…結果還可憐的70+…..某些人直接拿上屆的程序仿真了一下80+…不公平….決定告誡以后的學弟學妹們….千萬不要自己做..只要百度就可以了….
說到嵌入式競賽…隊友還是挺好的…雖然某個人ms經(jīng)常BS我說話還很怎么說…直接?..
首先開始沒有一個總體的規(guī)劃….以至于做完手寫板后不知道要做什么了…沒有具體的分工…
其次,遇到問題沒有及時解決..答辯前一天晚上我們還在糾結zigbee發(fā)送的圖像數(shù)據(jù)出現(xiàn)鏡像的問題…我都急死了,這樣的效果跟本沒法拿出去見人的...(這次用zigbee簡直就是一個巨大的杯具,zigbee本身就速度慢…..而且發(fā)送的時候會出現(xiàn)各種錯誤…答辯的時候果然被專家問到… 杯具….)又比如說屏幕操作不夠精確的問題….答辯的時候也嗝屁了…總之我們之間還是缺乏交流….該解決的問題沒有提前解決…效果沒有達到。
如果最后真的很杯具什么獎都沒拿…我也沒什么好說的..平心而論,也并有花100%的精力做嵌入式競賽….個人能力來說,覺得提高的也不多,對c++的工程有了比較深入的了解,以前都沒有什么概念,做ACM的題目的時候都只是隨便建個cpp文件就開始敲了..自己寫了一個基于手勢識別的虛擬鋼琴的程序,感覺一下子明白了很多,雖然最后由于時間問題,這個功能還是沒有加進去…實踐還是很重要的..還有就是對圖像處理的類庫openCV比較熟悉了一些 …
回到210看到大二一的acmer都在集訓了…好像回到大二,變成他們的一分子….每天研究算法,切題,背背CFOP公式…..去年的這個時候,對regional是那么向往,話說昨天shmm問我是否想去regional,還是猶豫了一下,當然想是想的..可是還要準備保研,實習什么的,去regional也是打醬油…..組隊賽也ms比較緊張,萬一連去的資格都爭取不到。。。。so 還是算了…
突然感覺很沒方向感,轉眼大三就結束了….何去何從,沒有像一些人一樣早就下定決心要考研,高數(shù)都看好幾遍了..實習也沒有著落….或許這時候實習生都招滿了…投了MS簡歷后一個月后終于有電話過來…可是還是感覺希望渺茫….前兩天想嵌入式一結束就回家的…現(xiàn)在又感覺無所謂了….
好好想想….
posted @
2010-07-20 22:07 ccyy 閱讀(782) |
評論 (2) |
編輯 收藏
周日下午的組隊賽….我和天哥做的…由于感冒比較嚴重….頭暈眼花..基本上是天哥一人在辛苦的敲代碼….
11:30 到210,和天哥糾結了下隊名,一直感覺我RP比較差….干脆叫RP++吧…天哥同意….開始的時候天哥從前往后,我從后往前,瞄一眼題目,發(fā)現(xiàn)EScrpt MSM 很眼熟,看了一下…感覺比較水,這時天哥跟我說C是個概率題,ms比較水,吩咐我搞B,他搞C,天哥噼里啪啦搞定…交了下,WA,發(fā)現(xiàn)犯了SB錯誤….再交…WA…一直wa….這時很多人都過了B…于是先把我的B交了….CE一次..memset忘了加string.h……哭死….Ac后rank5,然后天哥吩咐我把其他題目都看一遍他繼續(xù)搞C.....突然發(fā)現(xiàn)Crejudge了…過了…….rank2 ,可以安心了…和天哥說了下其他題的意思…天哥說第一題題目不太清楚…..要我?guī)兔纯?#8230;于是一起搞A,wonder team。天哥覺得這題n較大的時候一定排名是最后的…就是要搞清楚小數(shù)據(jù)的情況,于是和天哥一起算n=4的情況,確定是2后天哥噼里啪啦搞定代碼兩三百B的樣子跟我說要交了….把我雷到了…一交竟然AC了…更把我雷到了…師父眼光就是犀利….不過感覺這題在欺騙別人感情?…這時rank1…不過很快ACHuntler也發(fā)現(xiàn)了這題大水,迅速過掉了這題
…又奪回rank1….后面三個小時我們近乎頹廢了….研究了剩下來的題…天哥說第五題還是可做的,然后和天哥研究第五題….天哥想出先求每對點之間的最短路徑..然后從最大的邊開始刪,每次都判斷一下。。能刪就刪掉。。但是那樣復雜度太高….想不出復雜度較小的方法…天哥說以前ms寫過這樣的一個模板…但是怎么都找不到…于是放棄之…轉來看F,ACHuntler剛過掉的題
,搞了半天….天哥辛苦的敲了3000+B的代碼….最后時刻WA…賽后才發(fā)現(xiàn)原來題意理解錯了….最終以罰時少rank2…
關于組隊:
由于周末要做嵌入式不想奔波于徐匯和奉賢之間…..所以找了大三的組隊…感覺除了sh.和天哥談acm最多了….和師父一起組隊….開心…..由于帥哥自費不去…….意外的找了大牛組隊…囧……..
大牛:“在我們隊你想負責什么?”
我:“DP不行,圖論ms做的比較多….”
大牛:”那你去看網(wǎng)絡流
,搞搞差分約束吧….”
我:“.……..那要不我
看模擬吧?”
大牛:“那你把三階魔方還原的程序寫了吧”
我:“.………………..”
和二位大牛組隊壓力ms很大…感覺我很菜……
組隊賽ms還有2場?繼續(xù)加油…..首先別再感冒了……
posted @
2010-04-13 22:24 ccyy 閱讀(191) |
評論 (0) |
編輯 收藏