PDA

View Full Version : سوال: چاپ حروف انگلیسی با کارکتر ستاره



sh_sahragard
دوشنبه 11 خرداد 1388, 18:09 عصر
سلام ممنون میشم که برنامه ای به زبان C برام بنویسید که حروف انگلیسی کوچک را با کارکتر ستاره زیر هم چاپ کنه.
مثلا حرفb

*
*
****
****

tdkhakpur
دوشنبه 11 خرداد 1388, 20:52 عصر
سلام
ببینید شما با این کارتون میخواهید به نحوی کار یک فونت ساز رو انجام بدید.
بهترین راه براتون استفاده از آرایه برای تک تک کاراکتر ها است.
ببینید نگفتم آخرین راه بلکه بهترین و راحتترین راه این هست . برای کاراکتر b کد رو قرار میدم برای کاراکتر های دیگه خودتون ادامه بدید.


bool *b_ch ={ // 8*8
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,1,1,1,1,0,0,
1,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,0
};
void PrintChar(bool *b_chptr )
{
for( int j=0; j<8; j++){
cout<<"\n";
for( int i=0; i<8; i++)
if( b_chptr[j*8+i] )
cout<<"*";
else
cout<<" ";
}
}

آرایه بالا باید 8 در 8 در نظر گرفته بشود.
موفق باشید.(دست براتون کد رو ارسال کردم اگه ایرادی داشت خودتون اصلاح کنید فقط یک کار ساده چاپ هست.)

sh_sahragard
سه شنبه 12 خرداد 1388, 09:15 صبح
سلام خیلی ممنونم از لطفتون

anita_jojo20
دوشنبه 27 اردیبهشت 1389, 12:04 عصر
اقا اين خط خطا ميدهههههههههههه
void PrintChar(bool *b_chptr )
ميگه b_chaptrچيه؟
:گریه::گریه::گریه::گریه::گریه: :گریه::گریه::عصبانی++::عصبانی+ +::عصبانی++::عصبانی++::عصبانی++:

ميشه با اينلود و بقيه جزيات كامل بنويسي تراخداااااااااااااااااااا ااااجانهركي دوست داري

sasan_vm
دوشنبه 27 اردیبهشت 1389, 14:26 عصر
اقا اين خط خطا ميدهههههههههههه
void PrintChar(bool *b_chptr )
ميگه b_chaptrچيه؟
:گریه::گریه::گریه::گریه::گریه: :گریه::گریه::عصبانی++::عصبانی+ +::عصبانی++::عصبانی++::عصبانی++:

ميشه با اينلود و بقيه جزيات كامل بنويسي تراخداااااااااااااااااااا ااااجانهركي دوست داري

از کمپایلری استفاده میکنی که bool را نمی شناسه، توی این 2 خط bool را به int تبدیل کنی
درست میشه.

bool *b_ch ={ // 8*8
void PrintChar(bool *b_chptr )

anita_jojo20
دوشنبه 27 اردیبهشت 1389, 20:49 عصر
سلام من تبديل كردم (درضمن من با برنامه را مينويسمc++ win)
#include<iostream.h>
int main(){
int b[8][8];
int *b_ch ={ // 8*8
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,1,1,1,1,0,0,
1,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,0
};
void PrintChar(int *b_chptr )
{
for( int j=0; j<8; j++){
cout<<"\n";
for( int i=0; i<8; i++)
if( b_chptr[j*8+i] )
cout<<"*";
else
cout<<" ";
}
}
بازم خطا ميده
شرمنده ولي ميشه كمكم كني دعات ميكنم:عصبانی++::عصبانی++::عصب نی++::عصبانی++::عصبانی++::گریه: :گریه::گریه::گریه:

sasan_vm
دوشنبه 27 اردیبهشت 1389, 22:40 عصر
کد تان ایراد داشت، اصلاح شد:


#include<iostream.h>

int b_ch [] ={ // 8*8
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,0,
1,1,1,1,1,1,0,0,
1,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,0
};

void PrintChar(int *b_chptr)
{
for( int j=0; j<8; j++){
cout<<"\n";
for( int i=0; i<8; i++)
if( b_chptr[j*8+i] )
cout<<"*";
else
cout<<" ";
}
}

int main()
{
PrintChar(b_ch);
return 0;
}

anita_jojo20
سه شنبه 28 اردیبهشت 1389, 09:25 صبح
جناب(sasan_vm (http://barnamenevis.org/forum/member.php?u=3284))
خيلي ماهيييييييييييييييييييييي يييييييي
دعات ميكنم تشكر دستت درد نكنه خدا هرچي بخواي بهت بده نجاتم دادي:بوس::بوس::بوس::بوس::بوس:: وس::بوس::بوس::بوس::بوس::بوس::ب س::بوس::بوس::بوس::بوس::بوس::بو ::بوس::بوس::بوس::بوس::بوس::بوس: :بوس::بوس::گیج::گیج::گیج::گیج:: یج::گیج:
خيلي خوبيييييييييييييييييييييي يي

anita_jojo20
سه شنبه 28 اردیبهشت 1389, 09:49 صبح
اقايون خانما جسارت است
ميشه براي تمام اعاد انگليسي بخايم چاپ كنه چكار كنم
خودم يه خورده تغير دادم a.b. را چاپ ميكنه ولي ميخوام مثل اگر حرف w را زدم w را با ستاره نشان بده يعني تصادفي حروف را انتخاب كنيم و چاپ كنه با ستاره منون ميشم بگين چطوري
يك دنيا ممنون

sasan_vm
چهارشنبه 29 اردیبهشت 1389, 14:19 عصر
برای این کار باید با سیستم فونت dos آشنا باشید، در سیستم dos (خدا رحمتش کنه) شکل و شمایل کاراکتر ها (font) در جدولی 4KB ذخیره می شه. که هنگام بوت سیستم این جدول به آدرسی خاصی در حافظه منتقل میشه و نمایش هر کاراکتر Ascii با ارجاع به این جدول خواهد بود که
شما می توانید با تغییر این جدول فونت خودتان را در سیستم نصب کنید. (همه فارسی ساز های dos در ان زمان همین کار را می کردند)
در این جدول برای هر کاراکتر 16 بایت در نظر گرفته شده است که برای 256 کاراکتر Ascii می شود 4KB ، این 16 بایت را بصورت یک ماتریس 16 در 8 در نظر بگیرید، 16 سطر و 8 ستون هر خانه این ماتریس می تواند صفر (خاموش) یا یک (روشن) باشد که خانه های روشن نمایش کارکتر مورد نظر است. (تصویر ضمیمه)
شما احتیاج به خواندن این جدول دارید و برای این کار باید با interrupt های dos و نحوه استفاده ان اشنا باشید. در دوران دانشجویی یک برنامه font editor برای dos نوشتم که ضمیمه شده (این کد خیلی قدیمی و مربوط به زمان دانشجویی هست هر گونه خندیدن ممنوع :لبخند:).
کلاس TFont فونت نصب شده در سیستم را به 4KB حافظه داخلی خودش کپی میکند و با 2 تابع getChar , setChar امکان خواندن و نوشتن کاراکتر مورد نظر در جدول را می دهد. (هر کاراکتر را باید بصورت یک ارایه 16 بایتی منتقل کنید.)
برای نمایش هر کاراکتر باید یک ارایه 16x8 داشته باشید و می توانید از تابع setTable کلاس TMapFont استفاده کنید. بعد از قرار گرفتن نمای کاراکاتر مورد نظر (در ارایه 16x8) می توانید هر سطر ان را در یک خط چاپ کنید.
در ضمن در dos 2 تا جدول فونت موجود است ولی در ان واحد فقط یکی فعال میشود (رجوع شود به TFont::active) در برنامه FontEditor مشهود است. برنامهII FontEdit با استفاده از Borland C++ 3.1 , Turbo Vision 2 نوشته شده است.

anita_jojo20
چهارشنبه 29 اردیبهشت 1389, 20:13 عصر
اقاي ساسان ولي من ميخوام مثلا اسم ali را وارد كنم اسم را با ستاره نشان دهد با زبان ++c
متشكرم

sasan_vm
پنج شنبه 30 اردیبهشت 1389, 17:31 عصر
اقاي ساسان ولي من ميخوام مثلا اسم ali را وارد كنم اسم را با ستاره نشان دهد با زبان ++c
متشكرم

مثل اینکه برنامه FontEdit رو اصلا ندید، این برنامه یک ابزاری داره که فونت مورد نظر را بصورت یک ارایه برای زبان های (C, Pascal, Assembly) ذخیره میکنه که میشه از آن در هر برنامه ای استفاده کرد. :لبخند:

برنامه ضمیمه را ببینید.

metalica
چهارشنبه 05 خرداد 1389, 12:19 عصر
سلام . ميشه لطفا كمي كمك كنيد تا برنامه چاپ حروف به شكل ستاره حروفو از ورودي بگيره مثل يك اسم و در خروجي در يك سطر به شكل ستاره چاپ كنه ؟ خواهش مي كنم كمكم كنيد.
:ناراحت::ناراحت::ناراحت::افس ده::افسرده::افسرده:

h-qazvini
پنج شنبه 06 خرداد 1389, 18:35 عصر
اين يك برنامه ساده و ابتدايي است كه نام كاربر را مي گيرد و به صورت ستاره چاپ مي كند.
در همين تايپيك ( پست 10 ) اطلاعات خوبي درباره ساختار فونت‌ها و نرم افزار ويرايش فونت داده شده است كه مي شود به آنها مراجعه كرد. توضيحات دست و پا شكسته يي هم در برنامه من وجود دارد.
اگر كسي اين برنامه را كامل تر كرد در همين تايپيك قرار دهد.

metalica
جمعه 07 خرداد 1389, 11:46 صبح
ببخشيد . ميشه راهنمايي كنيد چه طوري حروف تو يك سطر چاپ شند نه زير هم ؟ ممنون ميشم:متفکر:

metalica
جمعه 07 خرداد 1389, 11:48 صبح
ممنون از راهنماييتون .

h-qazvini
جمعه 07 خرداد 1389, 18:23 عصر
تمام عملیات در تابع print_star انجام می شود و کدی که تابع gotoxy را کنترل می کند 10 خط هم نمی شود. ممکن است اگر برنامه نویس بهتری اینکار را انجام میداد کد خواناتری می نوشت به هر حال توضیح مختصری را برایت توی یک فایل word ضمیمه کردم.

metalica
دوشنبه 10 خرداد 1389, 14:10 عصر
سلام . شرمنده دوست عزيز كه زودتر ازتون بابت توضيحاتتون تشكر نكردم . اميد وارم ناراحت نشده باشيد . بازم ممنون از لطفتون . موفق باشيد:خجالت:

metalica
دوشنبه 10 خرداد 1389, 14:13 عصر
خداييش خيلي خوب توضيح دادي ممنون . اگه سوالي بود ازتون ميپرسم . :لبخند::چشمک::تشویق::تشویق::ت ویق::تشویق::تشویق:

metalica
دوشنبه 10 خرداد 1389, 14:40 عصر
سلام . من فايل ضميمه رو خواندم و خيلي خوب بود . براي چاپ همه ي حروف قطعه تابع زير كافيه ؟ يه فايل ضميمه كردم كه كدي هست كه راهنمايي كردين
يه فايل هم خودم نوشتم و كامل كردم ضميمه كردم اگه امكانش هست ببينيد و اشكالش رو بگين تو كجاست . حروف رو چاپ ميكنه ولي زير هم نه در يك سطر . ممنون ميشم .

metalica
سه شنبه 11 خرداد 1389, 08:11 صبح
سلام به همه ي دوستان توروخدا يكي يه نظري در باره سوالي كه داشتم بده كدم چه مشكلي داره كه حروف زير هم چاپ ميشه نه در يك سطر ؟:متفکر::متفکر::متفکر::ناراح ::ناراحت::ناراحت::افسرده::اف رده::افسرده:

farzadyazdan
سه شنبه 11 خرداد 1389, 11:13 صبح
سلام
برنامه ای رو گه می خواید می تونید تو سایت www.downloadproje.com (http://www.downloadproje.com)پیدا کنید. تو این سایت یه سری برنامه برای همین موضوع گذاشته شده.
موفق باشید.:چشمک:

anita_jojo20
سه شنبه 11 خرداد 1389, 12:50 عصر
از همه دوستن كهلطف دارن و در حل اين سوال كمك ميكنند تشكر

metalica
سه شنبه 11 خرداد 1389, 13:48 عصر
سلام خيلي ممنونم از شما دوست عزيز farzadyazdan .ممنون:خجالت::بوس::لبخند::لبخ ندساده::لبخندساده:

metalica
چهارشنبه 12 خرداد 1389, 16:43 عصر
اين آدرستون توش برنامه ي مورد نظر ما نبود يه برنامه بود كه يه حرفو چاپ ميكرد ولي ما ميخوايم يا اسمو توي يك سطر چاپ كنه

mahdi1373ar
جمعه 29 فروردین 1393, 10:12 صبح
چرا این خطا میاد؟
1 21 F:\project\Untitled1.c [Error] iostream.h: No such file or directory
جان من کمک کنید

Mohammad3212
چهارشنبه 21 آبان 1399, 20:16 عصر
این کد برای c# هم هست سی شارپ