Duzunu desem men (if else )-den ibaret olan proqram kodunu size gonderenden sonra (swich,case) operatorundan istifade etdim orda da yoxladim ki,belke orda daha effektli olar. Amma esas fikir vermediyim sey,deyisenlerin elan olunmali oldugu yer ve blokun yaratmaq lazim oldugu idi. Sizden bu cavabi alan kimi birbasa (swich case) ile yoxladim. Cox sagolun!
c++ proqramini tam oyrenene kimi(belke ola biler o biri proqramlarda da) size coxlu muraciet etmeli olacam,Ehmed bey!
Məlumat üçün demək istəyirəm ki, adətən yoxlanmalı olan şərtlərin sayı çox olduqda seçim (switch) operatoundan istifadə etmək məsləhətdir.
[code]#include <iostream>
using namespace std;
int main(){
int birinci,ikinci;
//double tipli iki deyishn elan edirik
double dey1, dey2;
char mmmm;
cout<<"Birinci eded:";
cin>>birinci;
cout<<"Ikinci eded:";
cin>>ikinci;
cout<<"Birini secin\n+\n-\n*\n/\n%\n";
cin>>mmmm;
switch (mmmm){
case '+':
cout<<birinci<<"+"<<ikinci<<"="<<birinci+ikinci<<endl;
break;
case '-':
cout<<birinci<<"-"<<ikinci<<"="<<birinci-ikinci<<endl;
break;
case '*':
cout<<birinci<<"*"<<ikinci<<"="<<birinci*ikinci<<endl;
break;
case '/':
if (ikinci==0)
cout<<"bolen 0 ola bilmez"<<endl;
else
// emeliyyatlarin sayi 1-den cox olduguna gore block yaradiriq
{
//qiymetleri tam tipli deyishenlerden kesr tipli deyishenlere kocururuk
dey1 = birinci;
dey2 = ikinci;
//bolme emeliyyatin kesr tipli deyishenler uzerinde edirik
cout<<birinci<<"/"<<ikinci<<"="<<dey1/dey2<<endl;
// blocku baglayiriq
}
break;
case '%':
cout<<birinci<<"%"<<ikinci<<"="<<birinci%ikinci<<endl;
};
system("pause");
}[/code]
Cox sagolun Ehmed bey! İndi alindi))
[code]#include <iostream>
using namespace std;
int main(){
int birinci,ikinci;
//double tipli iki deyishn elan edirik
double dey1, dey2;
char mmmm;
cout<<"Birinci eded:";
cin>>birinci;
cout<<"Ikinci eded:";
cin>>ikinci;
cout<<"Birini secin\n+\n-\n*\n/\n%\n";
cin>>mmmm;
if(mmmm=='+')
cout<<birinci<<"+"<<ikinci<<"="<<birinci+ikinci<<endl;
else if(mmmm=='-')
cout<<birinci<<"-"<<ikinci<<"="<<birinci-ikinci<<endl;
else if(mmmm=='*')
cout<<birinci<<"*"<<ikinci<<"="<<birinci*ikinci<<endl;
else if(mmmm=='/') // bolme emeliyyatinin bashlangici
if (ikinci==0)
cout<<"bolen 0 ola bilmez"<<endl;
else
// emeliyyatlarin sayi 1-den cox olduguna gore block yaradiriq
{
//qiymetleri tam tipli deyishenlerden kesr tipli deyishenlere kocururuk
dey1 = birinci;
dey2 = ikinci;
//bolme emeliyyatin kesr tipli deyishenler uzerinde edirik
cout<<birinci<<"/"<<ikinci<<"="<<dey1/dey2<<endl;
// blocku baglayiriq
}
//bolme emliyyatinin sonu
else if(mmmm=='%')
if(ikinci==0)
cout<<"bolen 0 ola bilmez"<<endl;
else
cout<<birinci<<"%"<<ikinci<<"="<<birinci%ikinci<<endl;
system("pause");
}[/code]
Nəticə:
Birinci eded:32
Ikinci eded:45
Birini secin
+
-
*
/
%
/
32/45=0.711111
Alinmir Ehmed bey! Belke de men duzgun yazmiram.Mumkunse hemin kodu yazardiz,cox xahis edirem!
Alinmir Ehmed bey! Belke de men duzgun yazmiram.Mumkunse hemin kodu yazardiz,cox xahis edirem!
Salam. 4-cü sətirdə aşağıdakı kimi elan yerləşdirmisiniz:
int birinci,ikinci;
birinci və ikinci adlı dəyişənləri int tipli elan edirsiniz. int tipli ədədlər tam ədədlərlə işləmək üçündür, buna görə bölmədə kəsr alınanda avtomatik kəsr hissə silinir və tam hissə çapa verilir. Əgər kəsr hissəni görmək istəyirsinizsə onda int əvəzinə double tipindən istifadə edin. Amma daxil etdiyiniz kod hissəsində (27-ci sətirdə) qalıq əməliyyatından (%) istifadə etdiyinizə görə birinci və ikinci dəyişənlərin tipini int -dən double-lə çevirsəniz kompilyasiya xətası baş verəcək, çünki qalıq əməliyyatından double tipli dəyişənlərdə istifadə etmək olmaz.
Çıxış yolu double tipindən əlavə 2 dəyişən elan etmək. Kodun bölməyə aid hissəsində birinci və ikinci dəyişənin qiymətlərini müvafiq olaraq yeni elan etdiyiniz double tipili dəyişənlərə mənimsətmək və bölməni bu dəyişənlərə tətbiq etmək.
Birinci suala gəlincə. Əzbərləmək düzgün sayılmır, mütləq başa düşmək lazımdır. Artan sıra ilə düzmək çətindir. Əvvəlcə cərgənin ən böyük elementinin indeksini, cərgədə ən böyük elementin təkrarlanma sayını, cərgədə verilmiş iki indeksli elementlərin yerini dəyişən proqramlarını yazmaq lazımdır. Daha sonra artma sırası proqramını yazmaq olar.
Bu metnde bolme emeliyyati yerine yetirilen zaman kesr almaq ucun hansi emeliyyati elave etmek lazimdi. Proqram kodunun ozeyi qalmaq sertile.
Evvelceden tesekkurler!!!
[code]
#include <iostream>
using namespace std;
int main(){
int birinci,ikinci;
char mmmm;
cout<<"Birinci eded:";
cin>>birinci;
cout<<"Ikinci eded:";
cin>>ikinci;
cout<<"Birini secin\n+\n-\n*\n/\n%\n";
cin>>mmmm;
if(mmmm=='+')
cout<<birinci<<"+"<<ikinci<<"="<<birinci+ikinci<<endl;
else if(mmmm=='-')
cout<<birinci<<"-"<<ikinci<<"="<<birinci-ikinci<<endl;
else if(mmmm=='*')
cout<<birinci<<"*"<<ikinci<<"="<<birinci*ikinci<<endl;
else if(mmmm=='/')
if (ikinci==0)
cout<<"bolen 0 ola bilmez"<<endl;
else
cout<<birinci<<"/"<<ikinci<<"="<<birinci/ikinci<<endl;
else if(mmmm=='%')
if(ikinci==0)
cout<<"bolen 0 ola bilmez"<<endl;
else
cout<<birinci<<"%"<<ikinci<<"="<<birinci%ikinci<<endl;
system("pause");
}
[/code]