یک نگاه به این لینک بندازهمچنین در خصوص case یک مثال ساده میشه بذارید؟
http://www.intap.net/~drw/cpp/cpp04_02.htm
موفق باشی
یک نگاه به این لینک بندازهمچنین در خصوص case یک مثال ساده میشه بذارید؟
http://www.intap.net/~drw/cpp/cpp04_02.htm
موفق باشی
مشکل من اینه که من نمی دونم این گزاره ها رو چه نوعی تعریف کنم
ضمنا من تازه کارم
وقتی مثلا
aاجتماعb رووارد می کنم خوب باید تو یه نوع متغییر ذخیره شه؟
گفتید a یک مجموعه هست، یعنی در C/C++ یک آرایه هست.
محتویان آن ها چه هست؟ عدد صحیح، اعشاری، رشته ، ؟؟
متناسب با آن نوع متغیر را تعریف کنید، یعنی آرایه ای از همان نوع متغیر.
برای اجتماع، یک لیست پیوندی باید بسازید، به ترتیب دو آرایه را مقایسه کنید، هر کدام در یکی بود و در دیگری نبود، آن را اضافه می کنید به لیست پیوندی، به علاوه مشترک ها.
لیست پیوندی را یا باید بسازید یا از vector / list در C++ استفاده کنید که دوستان برایتان مثال زدند.
اگر هم می خواهید به شکل حرفه ای تر برنامه بنویسید، در C++ از کلاس Set استفاده کنید که در آن، مجموعه تعریف می کنید و می توانید مقایسه انجام دهید و تغییرات لازم را بدون لیست پیوندی یا آرایه انجام دهید.
برای مثال این لینک
برای مثال عبارت زیر باید در چه نوع متغیری ذخیره شه
مقادیر مجموعه ها عدد صحیح است
ببین شما وقتی که اجتماع و اشتراک رو داشته باشین هر طرف تساوی رو می تونید در یک آرایه نگه داری کنید و سپس با یک مقایسه از نوع Bool تعیین کنید که تساوی دو مجموعه برابر است یا نه.
اینم برای اجتماع دو مجموعه با استفاده از سر فایل الگوریتم
شما بهتر سر فایل الگوریتم را مرور کنید ولی اگه دوست دارید بدون استفاده از این سر فایل برنامتون رو بنویسید راه نیما جون بهتره.....
// set_union example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main () {
int first[] = {5,10,15,20,25};
int second[] = {50,40,30,20,10};
vector<int> v(10); // 0 0 0 0 0 0 0 0 0 0
vector<int>::iterator it;
sort (first,first+5); // 5 10 15 20 25
sort (second,second+5); // 10 20 30 40 50
it=set_union (first, first+5, second, second+5, v.begin());
// 5 10 15 20 25 30 40 50 0 0
cout << "union has " << int(it - v.begin()) << " elements.\n";
return 0;
}
سلام امین جان،
بابت لینک ارسالی فوق العاده مفیدت ممنونم.
ببین من برنامه 2 رو با این روش نوشتم؛ البته فعلا تا 4 رقم جواب میده که خب افزایش به ارقام بعدی با توجه به الگوریتمی که نوشتم کاری نداره (فقط به ازای هر رقم چند خطی به کد اضافه میشه) ولی میخواستم ببینم آیا این روش خوبه؟ منظور شما استفاده از همین روش بوده یا روش بهتری هم داریم؟ اگه داریم روشی که من نوشتم چه جوریه؟
توجه: با توجه به اینکه برنامه هنوز کامل نیست و من حروف رو از اعداد جدا نکردم و داخل خود عبارت هستند ، لطفا عبارت حروفی رو از راست به چپ بخونید تا در صورت درست بودن الگوریتم اون رو هم اصلاح کنم.
با تشکر
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a,d=8547;
int b=1;
while(d)
{
int r=d%10;
cout<<r<<'*'<<b<<'+';
//---------------- for first number(baraye raghame aval)
switch(r*b)
{
case 1:
cout<<"yek";
break;
case 2:
cout<<"do";
break;
case 3:
cout<<"se";
break;
case 4:
cout<<"chahar";
break;
case 5:
cout<<"panj";
break;
case 6:
cout<<"shesh";
break;
case 7:
cout<<"haft";
break;
case 8:
cout<<"hasht";
break;
case 9:
cout<<"noh";
break;
}
//--------------------for second number(baraye raghame dovom)-----------------------
switch(r*b)
{
case 10:
cout<<"dah";
break;
case 11:
cout<<"yazdah";
break;
case 12:
cout<<"davazdah";
break;
case 13:
cout<<"sizdah";
break;
case 14:
cout<<"chahardah";
break;
case 15:
cout<<"panzdah";
break;
case 16:
cout<<"shanzdah";
break;
case 17:
cout<<"hefdah";
break;
case 18:
cout<<"hejdah";
break;
case 19:
cout<<"nozdah";
break;
case 20:
cout<<"bisto";
break;
case 30:
cout<<"sio";
break;
case 40:
cout<<"chehelo";
break;
case 50:
cout<<"panjaho";
break;
case 60:
cout<<"shasto";
break;
case 70:
cout<<"haftado";
break;
case 80:
cout<<"hashtado";
break;
case 90:
cout<<"navado";
break;
}
//--------------------for 3nd number(baraye raghame 3)-----------------------
switch(r*b)
{
case 100:
cout<<"sado";
break;
case 200:
cout<<"devisto";
break;
case 300:
cout<<"sisado";
break;
case 400:
cout<<"chaharsado";
break;
case 500:
cout<<"pansado";
break;
case 600:
cout<<"sheshsado";
break;
case 700:
cout<<"haftsado";
break;
case 800:
cout<<"hashtsado";
break;
case 900:
cout<<"nohsado";
break;
}
//-------------------for number forth 4nd(baraye raghame chaharom)-----------------------
switch(r*b)
{
case 1000:
cout<<"hezaro";
break;
case 2000:
cout<<"dohezaro";
break;
case 3000:
cout<<"sehezaro";
break;
case 4000:
cout<<"chaharhezaro";
break;
case 5000:
cout<<"panjhezaro";
break;
case 6000:
cout<<"sheshhezaro";
break;
case 7000:
cout<<"hafthezaro";
break;
case 8000:
cout<<"hashhezaro";
break;
case 9000:
cout<<"nohhezaro";
break;
}
b*=10;
d/=10;
}
_getch();
}
درسته همینه راهش فقط ببین دو رقم آخر رو درست بر نمی گردونه مثلا این عدد رو باید بنویسه 1111
hezar o sado o yazdah
ولی برنامه می نویسه
hezar o sado o dah o yek
ولی خیلی خوبه
سلام زحمت نکشید اینم برنامه :
#include<iostream.h>
#include<conio.h>
void write(int y)
{
int a,b;
a=y/100;
switch (a)
{
case 1:cout<<"sad";break;
case 2:cout<<"divist";break;
case 3:cout<<"sisad";break;
case 4:cout<<"chaharsad";break;
case 5:cout<<"ponsad";break;
case 6:cout<<"sheshsad";break;
case 7:cout<<"haftsad";break;
case 8:cout<<"hashtsad";break;
case 9:cout<<"nohsad";break;
default:;
}
y=y%100;
if((y>=10)&&(a>0))
cout<<" o ";
b=y/10;
if ((b>=2)||(b==0))
{
switch (b)
{
case 2:cout<<"bist ";break;
case 3:cout<<"si ";break;
case 4:cout<<"chehel ";break;
case 5:cout<<"panjah ";break;
case 6:cout<<"shast ";break;
case 7:cout<<"haftad ";break;
case 8:cout<<"hashtad ";break;
case 9:cout<<"navad ";break;
default:;
}
y=y%10;
if (y>0)
cout<<" o ";
switch (y)
{
case 1:cout<<"yek ";break;
case 2:cout<<"do ";break;
case 3:cout<<"se ";break;
case 4:cout<<"chahar ";break;
case 5:cout<<"panj ";break;
case 6:cout<<"shesh ";break;
case 7:cout<<"haft ";break;
case 8:cout<<"hasht ";break;
case 9:cout<<"noh ";break;
default:;
}
}
else if((y<20)&&(y>=10))
switch (y)
{
case 10:cout<<"dah";break;
case 11:cout<<"yazdah";break;
case 12:cout<<"davazdah";break;
case 13:cout<<"sinzdah";break;
case 14:cout<<"chahardah";break;
case 15:cout<<"poonzdah";break;
case 16:cout<<"shonzdah";break;
case 17:cout<<"hivdah";break;
case 18:cout<<"hijdah";break;
case 19:cout<<"noozdah";break;
default:;
}
}
int main()
{
unsigned long m1=1000,m2=1000000,m3=1000000000,M1=999999,M2=9999 99999,M3=4000000000,x;
int y;
clrscr();
cout << "pleas enter a number : ";
cin>>x;
if(x==0)
cout<<"sefr";
if ((x>=m3)&&(x<M3))
{
y=x/m3;
write(y);
x=x%m3;
if (x>0)
cout<<"milyard o ";
else
cout<<"milyard";
}
if ((x>=m2)&&(x<M2))
{
y=x/m2;
write(y);
x=x%m2;
if (x>0)
cout<<"melyon o ";
else
cout<<"melyon";
}
if ((x>=m1)&&(x<M1))
{
y=x/m1;
write(y);
x=x%m1;
if (x>0)
cout<<"hezar o ";
else
cout<<"hezar";
}
if ((x>=1)&&(x<1000))
write(x);
getch();
return 0;
}
این برنامه تا میلیارد هم جواب میده .
البته چون متغیر ها رو unsigned long تعریف کردم . شما میتون یه متغیر بهم معرفی کنید که بتونه اعااد خسلس بزرگ مثلا 30 رقمی رو بگه یا اعداد خیلی . البته نمب خوام از متغیر های double,float استفاده کنم میخوام متغیرم از نوع صحیح باشه .
ممنون
آخرین ویرایش به وسیله Arcsinos : چهارشنبه 11 فروردین 1389 در 16:56 عصر
درسته جواب.....
.........Aaaaaaaaaaaaa
Arcsinos خودت نوشتيييييي؟؟؟
هم سوالش جالب بود هم جوابش
بازم مرسي
آره
مثل اینکه شک داری ؟
ببین من دنیال یه سوالم که تا به حال کسی حلش نکرده اگه دارید بذارید تا استفاده کنیم البته سوالی باشه که جواب داشته باشه . ممنون میشم .
برنامه ایی بنویسید که جذر یک اعداد بزرگ(10 رقمی و یا بیشتر) را شبیه سازی کند؟ببین من دنیال یه سوالم که تا به حال کسی حلش نکرده اگه دارید بذارید تا استفاده کنیم البته سوالی باشه که جواب داشته باشه . ممنون میشم .
وقتی حرف از شبیه سازی هست یعنی اینکه بدون سرفایل math باید اینکار انجام بشه
خب اینو از اول میگفتی دیگه :
این برنامه جذر اعداد رو میگیره . من برای 12 رقمی هم امتحان کردم درست بود . البته اعدادی که مربع هستند رو دقیق محاسبه میکنه و لی از اونجایی که اعدادی مثل رادیکال 2 گنگ هستند هر چقدر تکرار حلقه بالاتر باشه عدد دقیق تری به ما میده . ولی باز با 100 تکرار هم خوب جواب میده .
#include<iostream.h>
#include<conio.h>
float sqrt(float y)
{
int i;
float a;
a=y;
for (i=1;i<=100;i++)
y=(y+(a/y))/2;
return y;
}
int main()
{
float x;
clrscr();
cout << "pleas enter a number : ";
cin>>x;
cout<<sqrt(x);
getch();
return 0;
}
درسته....
برنامه ایی بنویسید که یک جدول ضرب 10*10 را با خطوط حاشیه جدول رسم کند در مد تکست.
(از کارکتر های ویژه استفاده کنید)
یک برنامه ایی هم بود این دوستمون گفتند پاکش کردند من اینجا می گم شاید جالب باشه
برنامه ایی بنویسید که یک قرعه کشی جوایز را شبیه سازی کند که در آن از توپ هایی که از 1 تا 10 شماره گذاری شده اند استفاده شود.فرض بر این است که سه توپ به صورت تصادفی انتخاب می شود. از کاربر تعداد دفعاتی که باید قرعه کشی انجام شود را دریافت کنید. و جواب سوالات زیر را بدهید :
چه زمان هایی بر حسب درصد نتیجه شامل سه عدد زوج می شود؟
چه زمان هایی بر حسب درصد عدد 7 در بین اعداد شبیه سازی شده موجود است؟
چه زمان هایی بر حسب درصد اعداد 1 و 2 و 3 در شبیه سازی ظاهر می شوند؟
راهنمایی:
از تابع randint() استفاده کنید و یک برنامه نویسی پیمانه ایی (ساخت یافته) را در این مثال نمایش دهید.
نکته:
شما نمی توانید دو قرعه شبیه به هم انتخاب کنید و همه توپ ها برای شبیه سازی بعدی وجود دارند. شما باید فقط یک بار و در ابتدای برنامه از seed (هسته تابع راندوم) استفاده کنید.
سوال اصلی اینه شاید خوب ترجمه نکرده باشم:
write a program to simulate a lottery drawing that uses balls numbered from 1 to 10.Assume that three balls are drawn at
random.Allow the user to enter the number of lottery drawings to simulate.What percentage of the time does the result contain
three even numbers in the simulation?what percentage of the time does the number 7 occur in the three numbers in the simulation?what percentage of the time do the numbers 1,2, and 3 occur in the simulation?
Hint:Use the function randint() and demonstrate good modular programming with this problem.Note:you can not draw the same ball twice and all balls are returned for the next simulation.you should set the random number generator seed at least once at the beginning of the program.
آخرین ویرایش به وسیله amin1softco : جمعه 13 فروردین 1389 در 22:14 عصر
جواب جدول ضرب : فکر کنم اشتباهه و لی من بهتر ازین نمی تونم .
#include<iostream.h>
#include<conio.h>
int main()
{
int i,j,k;
clrscr();
for (i=1;i<=10;i++)
{
for(k=1;k<=41;k++)
cout<<"-";
cout<<endl;
for(k=1;k<=41;k++)
if (((k-1)%4)==0)
cout<<"|";
else
cout<<" ";
cout<<endl;
for (j=1;j<=10;j++)
{
if((i*j)<10)
cout<<"| ";
else if(((i*j)>=10)&&((i*j)<100))
cout<<"| ";
else
cout<<"|";
cout<<i*j;
}
cout<<"|"<<endl;
for(k=1;k<=41;k++)
if (((k-1)%4)==0)
cout<<"|";
else
cout<<" ";
cout<<endl;
}
for(k=1;k<=41;k++)
cout<<"-";
getch();
return 0;
}
ما چند تا انتخاب داریم ؟ یکی یا سه تا ؟ منظورم اینکه کاربر فقط یه بار و یه ورودی وارد میکنه بعد برنامه سه تا گوی از اون 7 تا گوی باقی مانده انتخاب مبکنه و به کاربر نشون میده درسته یا من بد متوجه شدم .
من خودم هنوز متوجه سوال نشدم من فقط ترجمه کردم اما فکر کنم منظور سوال اینه که از بین 10 تا توپ 3 تا رو به صورت تصادفی انتخاب کنیم و seed یا هسته تابع راندوم را از کاربر دریافت کنیم و ببینیم با هر seed نتیجه ها چطوری میشه ؟ که سوال ها رو جواب بدیم پس باید کاربر یک دفعه عدد رو وارد کنه با این حساب...ما چند تا انتخاب داریم ؟ یکی یا سه تا ؟ منظورم اینکه کاربر فقط یه بار و یه ورودی وارد میکنه بعد برنامه سه تا گوی از اون 7 تا گوی باقی مانده انتخاب مبکنه و به کاربر نشون میده درسته یا من بد متوجه شدم .
اما اگه سه توپ را کامپیوتر باید انتخاب کنه و 7 توپ رو کاربر مسئله یک چیزه دیگه است ؟
خواهشا کسایی که انگلیسی خوبی دارند ما رو یاری کنند...
ببینید اگه بر فرض جواب رو هم بتونیم بدست بیاریم برای یه حالته رندومه . یعنی اون کل اتفاقات رو بررسی نمیکنه . من یه چرت و پرتایی که البته خیلی خنده داره رو نوشتم برای سوال 2 جواب داد و برای بقیه ی حالتها هم باید همین رو تغییر بدیم سوال 1 هم تقریبا درست بود ولی باز مشکل داره . اگه این برنامه رو قبول نداشته باشیم باید از راه محاسبات ریاضی بریم که مربوط به درس جبر و احتماله ولی تا اونجا که من درس جبر رو مرور کردم نمیشه این معادله رو محاسبه کرد . شایدم بشه ولی خیلی سخته . ما که عقلمون بیشتر از این راه نداشت . البته چون من مبتدیم این برنامه رو نوشتم .
#include<iostream.h>
#include<conio.h>
int main()
{
int h[10]={1,2,3,4,5,6,7,8,9,10};
int b[9],c[8],d[7],e[6],f[5],a[3];
int i,j,k,l,m,n,i1,j1,k1,l1,m1,n1;
float count,seven,tow;
float darsad;
tow=seven=count=0;
clrscr();
for(i=1;i<=10;i++)
{
for(i1=1;i1<i;i1++)
b[i1]=h[i1];
for(i1=i;i1<=9;i1++)
b[i1]=h[i1+1];
for(j=1;j<=9;j++)
for(i1=1;i1<j;i1++)
c[i1]=b[i1];
for(i1=i;i1<=8;i1++)
c[i1]=b[i1+1];
for(k=1;k<=8;k++)
for(i1=1;i1<k;i1++)
d[i1]=c[i1];
for(i1=i;i1<=7;i1++)
d[i1]=c[i1+1];
for(l=1;l<=7;l++)
{
a[1]=d[l];
for(i1=1;i1<l;i1++)
e[i1]=d[i1];
for(i1=i;i1<=6;i1++)
e[i1]=d[i1+1];
}
for(m=1;m<=6;m++)
{
a[2]=e[m];
for(i1=1;i1<m;i1++)
f[i1]=e[i1];
for(i1=i;i1<=5;i1++)
f[i1]=e[i1+1];
}
for(n=1;n<=5;n++)
a[3]=f[n];
if (((a[1]%2)==0)&&((a[2]%2)==0)&&((a[3]%2)==0))
count=count+1;
if ((a[1]==7)||(a[2]==7)||(a[3]==7))
seven=seven+1;
if (((a[1]==1)||(a[2]==2)||(a[3]==3))&&((a[2]==1)||(a[2]==2)||(a[2]==3))&&((a[3]==1)||(a[3]==2)||(a[3]==3)))
tow=tow+1;
}
darsad=(count/151200)*100;
cout<<"1-darsade in ke har se zooj bashad : "<<darsad<<"%"<<endl;
darsad=(seven/151200)*100;
cout<<"2-darsade in ke 7 biayad : "<<darsad<<"%"<<endl;
darsad=(tow/151200)*100;
cout<<"3-darsade in ke se adade 1,2,3 biayad : "<<darsad<<"%";
getch();
return 0;
}
خودمونیم ها چقدرم سوال ساده ایی بوده گفته ما می خواهیم سه توپ از بین 10 توپ که از 1 تا 10 شماره گزاری شده را به تعداد دفعاتی که کاربر تعیین می کنه انتخاب کنیم و ببینیم که بر حسب درصد چه زمانی عدد 7 رخ میده تو این قرعه های سه تایی کی سه عدد زوج و کی 1 و 2 و 3 در اعدا قرعه کشی هستند.... واقعا یک ترجمه بد چقدر آدم رو از سوال اصلی دور می کنه
/* This program simulates a lottery drawing that uses balls */
/* numbered from 1 to 10. */
#include <stdlib.h>
#include <stdio.h>
#define MIN 1
#define MAX 10
#define NUMBER 7
#define NUM_BALLS 3
/*******************************************/
/* this function generates a random integer*/
/* between specified limits a and b (a<b)*/
int rand_int(int a,int b){
return rand()%(b-a+1)+a;
}
int main(void)
{
/* Define variables and function prototypes. */
unsigned int alleven = 0, num_in_sim = 0, onetwothree = 0, first,
second, third;
int lotteries = 0, required = 0;
int rand_int(int a ,int b);
/* Prompt user for the number of lotteries. */
printf("\n\nEnter number of lotteries: ");
scanf("%i",&required);
while (required <= 0)
{
printf("The number of lotteries must be an integer number, "
"greater than zero.\n\n");
printf("Enter number of lotteries: ");
scanf("%i",&required);
}
/* Get three lottery balls, check for even or odd, and NUMBER. */
/* Also check for the 1-2-3 sequence and its permutations. */
while (lotteries < required)
{
lotteries++;
/* Draw three unique balls. */
first = rand_int(MIN,MAX);
do
second = rand_int(MIN,MAX);
while (second == first);
do
third = rand_int(MIN,MAX);
while ((second==third) || (first==third));
printf("Lottery number is: %u-%u-%u\n",first,second,third);
/* Are they all even? */
if ((first % 2 == 0) && (second % 2 == 0) && (third %2 == 0))
alleven++;
/* Are any of them equal to NUMBER? */
if ((first == NUMBER) || (second==NUMBER) || (third == NUMBER))
num_in_sim++;
/* Are they 1-2-3 in any order? */
if ((first <= 3) && (second <= 3) && (third <= 3))
if ((first != second) && (first != third) && (second != third))
onetwothree++;
}
/* Print results. */
printf("\nPercentage of time the result contains three even numbers:"
" %f\n",100.0*alleven/lotteries);
printf("Percentage of time the number %u occurs in the three"
" numbers: %f\n",NUMBER,100.0*num_in_sim/lotteries);
printf("Percentage of time the numbers 1,2,3 occur (not necessarily"
" in order): %f\n",100.0*onetwothree/lotteries);
/* Exit program. */
return 0;
}
ببین این جواب سواله می تونی تحلیلش کنی
آخرین ویرایش به وسیله amin1softco : جمعه 13 فروردین 1389 در 22:21 عصر
برنامه ایی بنویسید که حرکت یک موج را در مد تکست بوسیله کارکتر ستاره پیاده سازی کند یعنی
* *
* *
* *
* * *********
البته باید این موج حرکت کند به سمت راست صفحه نمایش اگر امکان اضافه کردن قسمت طول موج و غیره وجود داشته باشد بهتر است
سوالات خوبی بودن سوال 3 رو نفهمیدم بقیه سوال ها رو حل کردم ولی چون بقیه نوشتن و دیر کردم نمی ذارم لطفا یه سری سوال دیگه مطرح کنید
هنوز سوال 7 رو کسی حل نکرده
سوال 3 مقلوب یک عدد یعنی اینکه عدد رو به صورت برعکس بنویسیم 987 مقلوبش می شه 7897- برنامه ایی بنویسید که به صورت مار پیچ دور تا دور صفحه نمایش را با ستاره * پر کند به صورت انیمیشن .
برنامه ایی بنویسید که کار یک دستگاه خود پرداز را شبیه سازی کند مثلا به برنامه عدد 100 هزار داده می شود و برنامه بایدبوسیله 1000 و 500 و 200 و 100 این عدد را خرد کند
برنامه ایی بنویسید که محاسبه کند به چند طریق می توان سوال قبل را حل کرد
برنامه ایی بنویسید که لگاریتم یک عدد را شبیه سازی کند. (بدون سر فایل math)
اینم یک پازل به قبل و بعد قطعه کد زیر دستوراتی اضافه کنید تا بدون خطا کامپایل شود
// inja mitavan code ezafe kard
void ta(){
yek = 1;
}
// inja mitavan code ezafe kard
اینم یک پازل به قبل و بعد قطعه کد زیر دستوراتی اضافه کنید تا بدون خطا کامپایل شود
[/quote]
// inja mitavan code ezafe kard
void ta(){
yek = 1;
}
// inja mitavan code ezafe kard
خوب اولش */ و آخرش /* اینو می زنیم ، به کل منتفی میشه
خوب خیلی کارا میشه کرد !!!! اصلا نوع yek گفته نشده
نگفتم که کلا حذفش کن
باید بشه از تابع استفاده کرد
سلام.
int yek;
void ta(){
yek = 1;
}
void main(){ta();}
چند تا برنامه کوچک که با مد گرافیک پیاده سازی شده.
دوستان برنامه هایی که گفته بودم پیدا نکردم ولی چند تا تمرین پیدا کردم با سورس گفتم بزارم شاید مفید باشه.
سطح برنامه ها : مبتدی
مد: گرافیک
موفق باشید.
توابع گرافیک c/C++ :
مد: گرافیک
نمونه: فایل زیپ بالا چند تا تابع رو استفاده کرده.
امیدوارم مفید واقع بشه.
رسم کمان :
arc(x,y,s,e,r)
رسم خط:
line(x1,y1,x2,y2)
مربع یا مستطیل تو پر:
bar(x1,y1,x2,y2)
مکعب مربع :
bar3d(x1,y1,x2,y2,DEPTH,STATUS)
STATUS (وضعیت) شامل 2 مقدار 0 و 1
DEPTH (عمق)
بیضی یا دایره تو پر:
fillellipse(x,y,r1,r2)
دایره تو خالی:
circle(x,y,r)
رنگ امیزی اشکال تو پر:
setfillstyle(MOULD,COLOR)
MOULD تا جایی که یادم می یاد مقادیر بین 0 تا 12 می گیره و حالات مختلفی نظیر هاشور ، خط راست ، خط چپ و ... رنگ امیزی انجام می دهد.
تنظیم خصوصیات متن:
settextstyle(Font,SAKE,size)
SAKE (جهت)
رنگ امیزی نواحی بسته :
floodfill(x,y,color)
رنگ امیزی کادر ها:
setcolor(color)
لازم به ذکر هست که ما چیزی به نام ، نام رنگ نداریم!! و باید شماره ی رنگ داده شود که مجموع اعداد 1 تا 15 هست اگر اشتباه نکنم.
این موضوع در تمام ارگمان ها توابع باید رعایت شود .
ننویسید :
setfillstyle(5,red)
باید نوشته شود مثلا :
setfillstyle(7,4)
نوشتن متن در مکان نمای فعال:
outtex("Text")
نوشتن متن در یک مختصات مشخص :
outtextxy(x,y,"Text")
جابجا کردن محل مکان نما:
moveto(x,y)
رسم نقطه:
putpixel(x,y,color)
نقطه :
lineto(x,y)
گرفتن یک کلید برای اتمام کار:
این تابع رو ما داخل حلقه ، برای خاتمه حلقه استفاده می کردیم ، دقیق یادم نمی یاد ، ولی فکر کنم خروجی true یا false دارد که این خروجی با توجه به فشردن کلیدی از صفحه کلید ، رخ می دهد.
kbhit()
تابع بالا ورودی نداره!!!
این هم در حلقه می یاد و مثل یه تایمر عمل می کنه :
مقداری که به این تابع فرستاده می شه ، فاصله زمان اجرای دستور بعد ( گردش بعدی حلقه) هست.
delaye(x)
موفق باشید.
درسته.... این یک راهشه در ضمن مد گرافیک داس که BGI باشه دورانش سر رسیده ولی برای استفاده از این ها در محیط ویژوال 2008 میشه از کتابخانه هایی که نوشتند و کامل نیست استفاده کرد یک نمونشو ضمیمه کردم باید محتویاتشو به پوشه include کامپایلر اضافه کنید و graphic2.h را اول برنامه تون include کنید.
سلام دوستان
مي خوام يه راهنمايي بكنين مي خوام يه رشته به صورت زير بگيرم
بعد مي خوام با استفاده از درخت ها يا هر روش ديگه اي (البته به درخت ها علاقه مندم) اين گزاره رو جدا كنم و بعد اجتماع و اشتراك و .... رو حساب كنم
راهي رو لطفا پيش پام بزارين كه راحت تره دفعه قبل يه سوال پرسيم بيشتر گيج شدم تا راهنمايي
خيلي ممنون
سلام دوستان.
برنامه ای بنویسید که با تابع بازگشتی + * )( را محاسبه کند؟
سلام
اكه ما هم بخوايم شركت كنيم بايد جكار كنيم؟
برنامه اي كه قراره بنويسيم جيه؟(البته من حرفه اي نيستما)ولي دوس دارم سعي خودمو كنم
سلام
چندتا تمرین هم من میذارم
1- برنامه ای بنویسید که با استفاده ازتوابع آرایه ای به طول n را به صورت پویا ایجاد و سپس مقادیر آنرا بخواند و درنهایت انرا در خروجی چاپ نماید.
2- تابعی بنویسید که دو عدد صحیح گرفته ، عدد اول را به مبنای عدد دوم ببرد.(عدد دوم می تواند عددی در مبناهای 2 ، 8 ، 16 باشد)
3- تابعی بنویسید که رشته ای ه طول حداکثر 80 کاراکتر را گرفته ، تماممی کلمه های انرا معکوس نماید.
(مثال : s i h t s i a k o o b <------------- This is a book)
اینم یکی دیگه
این خیلی سخته خودم هنوز نتونستم بنویسمش
برنامه ای بنویسید که نام فایلی را گرفته و آنرا Zip کند؟
بیا این برنامشه اولش توضیح دادiه که کی نوشتتش اما این zip نمی کنه unzip می کنه
/*
* Copyright 1987, 1989 Samuel H. Smith; All rights reserved
*
* This is a component of the ProDoor System.
* Do not distribute modified versions without my permission.
* Do not remove or alter this notice or any other copyright notice.
* If you use this in your own program you must distribute source code.
* Do not use any of this in a commercial product.
*
*/
/*
* UnZip - A simple zipfile extract utility
*
*/
#define version "UnZip: Zipfile Extract v1.0ل of 03-05-89; (C) 1989 S.H.Smith"
typedef unsigned char byte;
typedef long longint;
typedef unsigned word;
typedef char boolean;
#define STRSIZ 256
#include <stdio.h>
#include <io.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
/* ----------------------------------------------------------- */
/*
* Zipfile layout declarations
*
*/
typedef longint signature_type;
#define local_file_header_signature 0x04034b50L
typedef struct local_file_header {
word version_needed_to_extract;
word general_purpose_bit_flag;
word compression_method;
word last_mod_file_time;
word last_mod_file_date;
longint crc32;
longint compressed_size;
longint uncompressed_size;
word filename_length;
word extra_field_length;
} local_file_header;
#define central_file_header_signature 0x02014b50L
typedef struct central_directory_file_header {
word version_made_by;
word version_needed_to_extract;
word general_purpose_bit_flag;
word compression_method;
word last_mod_file_time;
word last_mod_file_date;
longint crc32;
longint compressed_size;
longint uncompressed_size;
word filename_length;
word extra_field_length;
word file_comment_length;
word disk_number_start;
word internal_file_attributes;
longint external_file_attributes;
longint relative_offset_local_header;
} central_directory_file_header;
#define end_central_dir_signature 0x06054b50L
typedef struct end_central_dir_record {
word number_this_disk;
word number_disk_with_start_central_directory;
word total_entries_central_dir_on_this_disk;
word total_entries_central_dir;
longint size_central_directory;
longint offset_start_central_directory;
word zipfile_comment_length;
} end_central_dir_record;
/* ----------------------------------------------------------- */
/*
* input file variables
*
*/
#define uinbufsize 512L /* input buffer size */
byte inbuf[uinbufsize];
boolean zipeof;
longint csize;
int cmethod;
int inpos;
int incnt;
int pc;
int pcbits;
int pcbitv;
int zipfd;
char zipfn[STRSIZ];
local_file_header lrec;
/* ----------------------------------------------------------- */
/*
* output stream variables
*
*/
byte outbuf[4096]; /* for rle look-back */
longint outpos; /* absolute position in outfile */
int outcnt;
int outfd;
char filename[STRSIZ];
char extra[STRSIZ];
/* ----------------------------------------------------------- */
/*
* shrink/reduce working storage
*
*/
int factor;
byte followers[256][64];
byte Slen[256];
int ExState;
int C;
int V;
int Len;
#define max_bits 13
#define init_bits 9
#define hsize 8192
#define first_ent 257
#define clear 256
typedef int hsize_array_integer[hsize+1];
typedef byte hsize_array_byte[hsize+1];
hsize_array_integer prefix_of;
hsize_array_byte suffix_of;
hsize_array_byte stack;
int cbits;
int maxcode;
int free_ent;
int maxcodemax;
int offset;
int sizex;
/* ------------------------------------------------------------- */
void skip_csize(void)
{
lseek(zipfd,csize,SEEK_CUR);
zipeof = 1;
csize = 0L;
incnt = 0;
}
/* ------------------------------------------------------------- */
void ReadByte(int * x)
{
if (incnt == 0)
{
if (csize == 0L)
{
zipeof = 1;
return;
}
inpos = sizeof(inbuf);
if (inpos > csize)
inpos = (int)csize;
incnt = read(zipfd,inbuf,inpos);
inpos = 1;
csize -= incnt;
}
*x = inbuf[inpos-1];
inpos++;
incnt--;
}
/* ------------------------------------------------------------- */
void ReadBits(int bits,
int * x)
/* read the specified number of bits */
{
int bit;
int bitv;
*x = 0;
bitv = 1;
for (bit = 0; bit <= bits-1; bit++)
{
if (pcbits > 0)
{
pcbits--;
pcbitv = pcbitv << 1;
}
else
{
ReadByte(&pc);
pcbits = 7;
pcbitv = 1;
}
if ((pc & pcbitv) != 0)
*x = *x | bitv;
bitv = (int) (bitv << 1);
}
}
/* ---------------------------------------------------------- */
void get_string(int len,
char * s)
{
read(zipfd,s,len);
s[len] = 0;
}
/* ------------------------------------------------------------- */
void OutByte(int c)
/* output each character from archive to screen */
{
outbuf[outcnt /* outpos % sizeof(outbuf) */] = c;
outpos++;
outcnt++;
if (outcnt == sizeof(outbuf))
{
write(outfd,outbuf,outcnt);
outcnt = 0;
printf(".");
}
}
/* ----------------------------------------------------------- */
int reduce_L(int x)
{
switch (factor) {
case 1: return x & 0x7f;
case 2: return x & 0x3f;
case 3: return x & 0x1f;
case 4: return x & 0x0f;
}
return 0; /* error */
}
int reduce_F(int x)
{
switch (factor) {
case 1: if (x == 127) return 2; else return 3;
case 2: if (x == 63) return 2; else return 3;
case 3: if (x == 31) return 2; else return 3;
case 4: if (x == 15) return 2; else return 3;
}
return 0; /* error */
}
int reduce_D(int x,
int y)
{
switch (factor) {
case 1: return ((x >> 7) & 0x01) * 256 + y + 1;
case 2: return ((x >> 6) & 0x03) * 256 + y + 1;
case 3: return ((x >> 5) & 0x07) * 256 + y + 1;
case 4: return ((x >> 4) & 0x0f) * 256 + y + 1;
}
return 0; /* error */
}
int reduce_B(int x)
/* number of bits needed to encode the specified number */
{
switch (x - 1) {
case 0:
case 1: return 1;
case 2:
case 3: return 2;
case 4:
case 5:
case 6:
case 7: return 3;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15: return 4;
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
case 25:
case 26:
case 27:
case 28:
case 29:
case 30:
case 31: return 5;
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 58:
case 59:
case 60:
case 61:
case 62:
case 63: return 6;
case 64:
case 65:
case 66:
case 67:
case 68:
case 69:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
case 77:
case 78:
case 79:
case 80:
case 81:
case 82:
case 83:
case 84:
case 85:
case 86:
case 87:
case 88:
case 89:
case 90:
case 91:
case 92:
case 93:
case 94:
case 95:
case 96:
case 97:
case 98:
case 99:
case 100:
case 101:
case 102:
case 103:
case 104:
case 105:
case 106:
case 107:
case 108:
case 109:
case 110:
case 111:
case 112:
case 113:
case 114:
case 115:
case 116:
case 117:
case 118:
case 119:
case 120:
case 121:
case 122:
case 123:
case 124:
case 125:
case 126:
case 127: return 7;
default: return 8;
}
}
/* ----------------------------------------------------------- */
void Expand(int c)
{
#define DLE 144
switch (ExState) {
case 0:
if (c != DLE)
OutByte(c);
else
ExState = 1;
break;
case 1:
if (c != 0)
{
V = c;
Len = reduce_L(V);
ExState = reduce_F(Len);
}
else
{
OutByte(DLE);
ExState = 0;
}
break;
case 2: {
Len = Len + c;
ExState = 3;
}
break;
case 3: {
int i;
longint offset = reduce_D(V,c);
longint op = outpos - offset;
for (i = 0; i <= Len + 2; i++)
{
if (op < 0L)
OutByte(0);
else
OutByte(outbuf[(int)(op % sizeof(outbuf))]);
op++;
}
ExState = 0;
}
break;
}
}
/* ----------------------------------------------------------- */
void LoadFollowers(void)
{
int x;
int i;
int b;
for (x = 255; x >= 0; x--)
{
ReadBits(6,&b);
Slen[x] = b;
for (i = 0; i < Slen[x]; i++)
{
ReadBits(8,&b);
followers[x][i] = b;
}
}
}
/* ----------------------------------------------------------- */
/*
* The Reducing algorithm is actually a combination of two
* distinct algorithms. The first algorithm compresses repeated
* byte sequences, and the second algorithm takes the compressed
* stream from the first algorithm and applies a probabilistic
* compression method.
*
*/
void unReduce(void)
/* expand probablisticly reduced data */
{
int lchar;
int lout;
int I;
factor = cmethod - 1;
if ((factor < 1) || (factor > 4))
{
skip_csize();
return;
}
ExState = 0;
LoadFollowers();
lchar = 0;
while ((!zipeof))
{
if (Slen[lchar] == 0)
ReadBits(8,&lout);
else
{
ReadBits(1,&lout);
if (lout != 0)
ReadBits(8,&lout);
else
{
ReadBits(reduce_B(Slen[lchar]),&I);
lout = followers[lchar][i];
}
}
Expand(lout);
lchar = lout;
}
}
/* ------------------------------------------------------------- */
/*
* Shrinking is a Dynamic Ziv-Lempel-Welch compression algorithm
* with partial clearing.
*
*/
void partial_clear(void)
{
int pr;
int cd;
/* mark all nodes as potentially unused */
for (cd = first_ent; cd < free_ent; cd++)
prefix_of[cd] |= 0x8000;
/* unmark those that are used by other nodes */
for (cd = first_ent; cd < free_ent; cd++)
{
pr = prefix_of[cd] & 0x7fff; /* reference to another node? */
if (pr >= first_ent) /* flag node as referenced */
prefix_of[pr] &= 0x7fff;
}
/* clear the ones that are still marked */
for (cd = first_ent; cd < free_ent; cd++)
if ((prefix_of[cd] & 0x8000) != 0)
prefix_of[cd] = -1;
/* find first cleared node as next free_ent */
free_ent = first_ent;
while ((free_ent < maxcodemax) && (prefix_of[free_ent] != -1))
free_ent++;
}
/* ------------------------------------------------------------- */
void unShrink(void)
{
int stackp;
int finchar;
int code;
int oldcode;
int incode;
/* decompress the file */
maxcodemax = 1 << max_bits;
cbits = init_bits;
maxcode = (1 << cbits) - 1;
free_ent = first_ent;
offset = 0;
sizex = 0;
for (code = maxcodemax; code > 255; code--)
prefix_of[code] = -1;
for (code = 255; code >= 0; code--)
{
prefix_of[code] = 0;
suffix_of[code] = code;
}
ReadBits(cbits,&oldcode);
finchar = oldcode;
if (zipeof)
return;
OutByte(finchar);
stackp = 0;
while ((!zipeof))
{
ReadBits(cbits,&code);
while (code == clear)
{
ReadBits(cbits,&code);
switch (code) {
case 1: {
cbits++;
if (cbits == max_bits)
maxcode = maxcodemax;
else
maxcode = (1 << cbits) - 1;
}
break;
case 2:
partial_clear();
break;
}
ReadBits(cbits,&code);
}
/* special case for KwKwK string */
incode = code;
if (prefix_of[code] == -1)
{
stack[stackp] = finchar;
stackp++;
code = oldcode;
}
/* generate output characters in reverse order */
while (code >= first_ent)
{
stack[stackp] = suffix_of[code];
stackp++;
code = prefix_of[code];
}
finchar = suffix_of[code];
stack[stackp] = finchar;
stackp++;
/* and put them out in forward order */
while (stackp > 0)
{
stackp--;
OutByte(stack[stackp]);
}
/* generate new entry */
code = free_ent;
if (code < maxcodemax)
{
prefix_of[code] = oldcode;
suffix_of[code] = finchar;
while ((free_ent < maxcodemax) && (prefix_of[free_ent] != -1))
free_ent++;
}
/* remember previous code */
oldcode = incode;
}
}
/* ---------------------------------------------------------- */
void extract_member(void)
{
int b;
union {
struct ftime ft;
struct {
word ztime;
word zdate;
} zt;
} td;
for (b=0; b<sizeof(outbuf); b++) outbuf[b]=0;
pcbits = 0;
incnt = 0;
outpos = 0L;
outcnt = 0;
zipeof = 0;
outfd = creat(filename,S_IWRITE|S_IREAD);
if (outfd < 1)
{
printf("Can't create output: %s\n",filename);
exit(0);
}
close(outfd);
outfd = open(filename,O_RDWR|O_BINARY);
switch (cmethod) {
case 0: /* stored */
{
printf(" Extract: %s ...",filename);
while ((!zipeof))
{
ReadByte(&b);
OutByte(b);
}
}
break;
case 1: {
printf("UnShrink: %s ...",filename);
unShrink();
}
break;
case 2:
case 3:
case 4:
case 5: {
printf(" Expand: %s ...",filename);
unReduce();
}
break;
default: printf("Unknown compression method.");
}
if (outcnt > 0)
write(outfd,outbuf,outcnt);
/* set output file date and time */
td.zt.ztime = lrec.last_mod_file_time;
td.zt.zdate = lrec.last_mod_file_date;
setftime(outfd,&td.ft);
close(outfd);
printf(" done.\n");
}
/* ---------------------------------------------------------- */
void process_local_file_header(void)
{
read(zipfd,&lrec,sizeof(lrec));
get_string(lrec.filename_length,filename);
get_string(lrec.extra_field_length,extra);
csize = lrec.compressed_size;
cmethod = lrec.compression_method;
extract_member();
}
/* ---------------------------------------------------------- */
void process_central_file_header(void)
{
central_directory_file_header rec;
char filename[STRSIZ];
char extra[STRSIZ];
char comment[STRSIZ];
read(zipfd,&rec,sizeof(rec));
get_string(rec.filename_length,filename);
get_string(rec.extra_field_length,extra);
get_string(rec.file_comment_length,comment);
}
/* ---------------------------------------------------------- */
void process_end_central_dir(void)
{
end_central_dir_record rec;
char comment[STRSIZ];
read(zipfd,&rec,sizeof(rec));
get_string(rec.zipfile_comment_length,comment);
}
/* ---------------------------------------------------------- */
void process_headers(void)
{
longint sig;
while (1)
{
if (read(zipfd,&sig,sizeof(sig)) != sizeof(sig))
return;
else
if (sig == local_file_header_signature)
process_local_file_header();
else
if (sig == central_file_header_signature)
process_central_file_header();
else
if (sig == end_central_dir_signature)
{
process_end_central_dir();
return;
}
else
{
printf("Invalid Zipfile Header\n");
return;
}
}
}
/* ---------------------------------------------------------- */
void extract_zipfile(void)
{
zipfd = open(zipfn,O_RDONLY|O_BINARY);
if (zipfd < 1) {
printf("Can't open input file: %s\n",zipfn);
return;
}
process_headers();
close(zipfd);
}
/* ---------------------------------------------------------- */
/*
* main program
*
*/
void main(int argc, char **argv)
{
printf("\n");
printf("%s\n",version);
printf("Courtesy of: S.H.Smith and The Tool Shop BBS, (602) 279-2673.\n");
printf("\n");
if (argc != 2)
{
printf("Usage: UnZip FILE.zip\n");
exit(0);
}
strcpy(zipfn,argv[1]);
extract_zipfile();
exit(0);
}
در ضمن میشه از کتابخونه های آماده استفاده کرد یا یک نرم افزار خارجی رو فرا خوانی کرد تا این کار رو انجام بده...برنامه های قبلیتم کاری نداره نوشتنش
اینم یک مثال خوب از کپری و آن کمپرس در توربو سی
[quote=baghozi;947121]سلام
چندتا تمرین هم من میذارم
1- برنامه ای بنویسید که با استفاده ازتوابع آرایه ای به طول n را به صورت پویا ایجاد و سپس مقادیر آنرا بخواند و درنهایت انرا در خروجی چاپ نماید.
2- تابعی بنویسید که دو عدد صحیح گرفته ، عدد اول را به مبنای عدد دوم ببرد.(عدد دوم می تواند عددی در مبناهای 2 ، 8 ، 16 باشد)
#include<conio.h>
#include<iostream.h>
void func(int n)
{
int *arr=new int[n];
int i;
for(i=0;i<n;i++)
cin>>arr[i];
for(i=0;i<n;i++)
cout<<endl<<arr[i];
}
main()
{
int n;
cout<<"lotfan toole araye ra vared konid:";
cin>>n;
func(n);
getch();
}
#include<conio.h>
#include<iostream.h>
int mabna(int n,int m)
{
if(m==10)
{
cout<<n;
return 0;
}
int temp=0,remain;
while(n!=0)
{
remain=n%m;
temp=temp*10+remain;
n=n/m;
}
cout<<temp;
return 0;
}
main()
{
clrscr();
int n;
int m;
cout<<"lotfan adad ra vared konid: ";
cin>>n;
cout<<"\nlotfan mabna ra vared konid: ";
cin>>m;
mabna(n,m);
getch();
}