شمارش تعداد کلمات در سی +++

a_fall27

New Member
سلام من واسه نوشتن پروژه درس ++c کمک میخوام.

سوال اینه که برنامه ای بنویسم که چند جمله از یک متن را از صفحه کلید بخونه و تعداد دفعات تکرار هر حرف اونو مشخص کنه........همین.
اگه ممکنه کمکم کنین..
ممنون
 

the_king

مدیرکل انجمن
این برنامه یک رشته را از ورودی می گیره و تعداد تکرار هر حرف الفبا (بدون توجه به بزرگی و کوچکی حروف) را اعلام می کنه :
(با ++Borland Turbo C کامپایل شده)

کد:
#include <stdio.h>
#include <conio.h>

int charset[26];

void resetcharset()
{
	for (int i=0;26>i;i++)
		charset[i]=0;
}

void showcount()
{
	for (int i=0;26>i;i++)
		if (charset[i]>0)
			printf ("%c = %d\t",i+'A',charset[i]);
}

void getcount(char s[])
{
	for (int pos=0;s[pos];pos++)
	{
		if ((s[pos]>='A') && (s[pos]<='Z'))
			charset[s[pos]-'A']++;
		else if ((s[pos]>='a') && (s[pos]<='z'))
			charset[s[pos]-'a']++;
	}
}


int main()
{
	char s[500];
	clrscr();
	printf("Please enter a text :\n");
	gets(s);
	resetcharset();
	getcount(s);
	showcount();
	printf ("\nPress any key to continue.\n");
	getch();
	return 0;
}

کد برنامه و فایل اجرایی exe را بصورت zip شده ضمیمه این پست کردم.
 

پیوست ها

  • ChrCount.zip
    8.4 کیلوبایت · بازدیدها: 23

a_fall27

New Member
سلام

از دوستان خواسته بودم که برنامه ای برای شمارش حروف توی ++c برام بنویسن. دستشون درد نکنه یکی از دوستان نوشتن ولی به زبون c بود....

حالا اگه ممکنه میخواستم همون برنامه رو با این تغییر که تعداد کلمه ها رو چاپ کنه به من بدید... از لطفتون واقعا ممنونم
 

the_king

مدیرکل انجمن
این یکی رو توش از cout استفاده کردم که به خیال خودم درصد ++c اش بیشتر بشه :lol:

کد:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

int getcount(char s[])
{
	int state=0,words=0;
	char chars[]=" !()*+,./:;<=>?[\\]^`{}~";
	for (int pos=0;s[pos];pos++)
	{
		if (((s[pos]>='A') && (s[pos]<='Z'))
		|| ((s[pos]>='a') && (s[pos]<='z'))
		|| ((s[pos]>='0') && (s[pos]<='9')))
			state=1;
		else
			for (int chpos=0;chars[chpos];chpos++)
				if (chars[chpos]==s[pos])
				{
					if (state)
						words++;
					state=0;
					break;
				}
	}
	if (state)
		words++;
	return words;
}


int main()
{
	char s[500];
	clrscr();
	cout << "Please enter a text :" << endl;
	gets(s);
	cout << endl << "Count of words = " << getcount(s);
	cout << endl << "Press any key to continue." << endl;
	getch();
	return 0;
}

کد برنامه cpp و فایل اجرایی exe کامپایل شده با Borland Turbo C را ضمیمه این پست کردم.
 

پیوست ها

  • WrdCount.zip
    15 کیلوبایت · بازدیدها: 38

a_fall27

New Member
آقا دمت واقعا گرم... نجاتم دادی

the_king عزیز واقعا با برنامت حال کردم.

ولی استادمون کم نمیاره خدا شاهده...منم همیشه اینجا مزاحمم دیگه

دوباره گیر داده که خودت ننوشتی.... باید این یکی رو هم بنویسی


میشه بازم کمکم کنی؟؟؟؟؟ سوال اینه...همون برنامه این بار با این تفاوت که تعداد تکرار هر کلمه در متن را مشخص کنه...

خداییش ممنونت میشم..

مرسی
 

the_king

مدیرکل انجمن
برای ساختن لیست کلمات از فرامین new و delete استفاده نکردم تا برنامه ساده تر باشه.
به همین دلیل حداکثر طول کلمات باید مشخص باشه (30 کاراکتر در نظر گرفتم) و حداکثر تعداد کلمات متفاوت را 100
کلمه در نظر گرفتم.

کد:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>

struct word
{
	char text[30];
	int count;
} words[100];

int wordcount=0;

void showwords()
{
	cout << endl << "Word List :" << endl;
	for (int i=0;i<wordcount;i++)
		cout << words[i].text << " (" << words[i].count << ")" << endl;
}

void addword(char word[],int length)
{
	char s[30];
	strncpy(s,word,length);
	s[length]=0;
	for (int i=0;i<wordcount;i++)
		if (strcmpi(s,words[i].text)==0)
			break;
	if (i==wordcount)
	{
		strcpy(words[wordcount].text,s);
		words[wordcount].count=1;
		wordcount++;
	}
	else
		words[i].count++;
}
int getcount(char s[])
{
	int state=0,count=0,start;
	char chars[]=" !()*+,./:;<=>?[\\]^`{}~";
	for (int pos=0;s[pos];pos++)
	{
		if (((s[pos]>='A') && (s[pos]<='Z'))
		|| ((s[pos]>='a') && (s[pos]<='z'))
		|| ((s[pos]>='0') && (s[pos]<='9')))
		{
			if (state==0)
			{
				state=1;
				start=pos;
			}
		}
		else
			for (int chpos=0;chars[chpos];chpos++)
				if (chars[chpos]==s[pos])
				{
					if (state)
					{
						addword(&s[start],pos-start);
						count++;
						state=0;
					}
					break;
				}
	}
	if (state)
	{
		addword(&s[start],pos-start);
		count++;
	}
	return count;
}


int main()
{
	char s[500];
	clrscr();
	cout << "Please enter a text :" << endl;
	gets(s);
	cout << endl << "Count of words = " << getcount(s);
	showwords();
	cout << endl << "Press any key to continue." << endl;
	getch();
	return 0;
}

کد برنامه cpp و فایل اجرایی exe کامپایل شده با Borland Turbo C را ضمیمه این پست کردم.
 

پیوست ها

  • WordCount2.zip
    15.9 کیلوبایت · بازدیدها: 40

armin_barname

New Member
یه کمک میخوام

سلام به تمام بچه های forum ،
من یه پروژه دارم که باید تا 20 ام همین ماه تحویلش بدم.
اگه کسی میتونه این پروژه رو بنویسه یا از جایی برام گیرش بیاره ممنون میشم اونو به ایمیلم بفرسته :
ایمیل من : [email protected]
پروژه :
- Barnamei benevisid ke yek file matni ra khande va mavarede zir ra bedast avarad:
A:tedade kole kalamat
B:tedade kalamate tekrar shode
C:kalamate file ra bar asase tedade tekrare anha az ziad be kam moratab konad.

از همتون ممنونم .
 

ninja6768

New Member
..........کمک........... ++c

لطفا اگه کسی بلده جواب بده . عین سوال استاد را مینویسم .

با استفاده از فایل برنامه ای بنویسید که یک متنی را خوانده موارد زیر را به دست آورد.
الف - تعداد کل کلمات
ب - تعداد کلمات تکرار نشده
ج - کلمات فایل را بر اساس تعداد تکرار آنها از زیاد به کم مرتب کند.

با تشکر
 

bedbed

New Member
salam.barnamey be zabane c++ mikhastat.(barnamey ke reshte va karakteri ra az vorudi daryaft konad sepas tedad dafa ati ke karaktere morede nazar dar reshteye mazboor vojud darad beshomarad va chap konad)merc.
 

جدیدترین ارسال ها

بالا