-
Седмица
Тема на упражнението: Езикът за програмиране С++
Задача 1. Да се напише програма която извежда на екрана думите „Hello Peter”.
#include
void main()
{
cout << "Hello Peter";
}
Задача 2. Да се напише програма, която извежда на екрана думите „ Hello Ivan” и на следващ ред “ How are you?”
#include
void main()
{
cout << "Hello Ivan"<<”\n”;
cout << "How are you?"<<”\n”;
}
Задача 3. Програма, която демонстрира оператора goto.
#include
void main()
{
cout << "Hello Ivan"<<”\n”;
goto ss;
cout << "How are you?"<<”\n”;
ss:
}
-
Седмица
Тема на упражнението: Система от типове в С++
Задача 1. Да се напише програма, в която се декларира целочислена променлива с име А инициализира се А със стойност 2 и се извежда на екрана стойността на А.
#include
void main()
{
int A=2;
cout << "A="<<”\n”;
}
Задача 2. Да се напише програма, която намира лицето на окръжност с радиус 2см.
#include
void main()
{
float pi=3.14;
int r=2;
cout << "Liceto na okrujnostta e s="<
}
Задача 3. Да се напише програма, която намира периметъра и лицето на правоъгълник със страни 2,3 и 3,7.
#include
void main()
{double a = 2.3;
double b = 3.7;
double p, s;
p = 2*(a+b);
s = a*b;
cout << "p= " << p << "\n";
cout << "s= " << s << "\n";
}
Задача 4. Да се напише програма, която намира обема на куб със страна А, която се въвежда от клавиатурата.
#include
void main()
{
double a;
cout<<”Vuvedtet duljinata na stranata a=”;
cin>>a;
double v=a*a*a;
cout<<”Obema na kuba e V=”<
}
Задача 5. Да се напише програма, която въвежда радиуса на окръжност и намира и извежда дължината на окръжността и лицето на кръга с дадения радиус.
#include
const double PI = 3.14159265;
void main()
{ double r;
cout << “r= “;
cin >> r;
double p = 2 * PI * r;
double s = PI * r * r;
cout << “p=” << p << “\n”;
cout << “s=” << s << “\n”;
}
Задача 6. Да се напише програма, която изчислява
#include
#include
void main()
{double a,b;
cout<<"vuvedete a=";cin>>a;
cout<<"vuvedete b=";cin>>b;
double y=(pow(a,3)+pow(b,4))/sqrt(a);
cout<<"y="<
}
-
Седмица__Тема_на_упражнението:_Дискретни_типове,_дефинирани_от_програмиста._Задача_1.'>Седмица
Тема на упражнението: Дискретни типове, дефинирани от програмиста.
Задача 1. Да се напише програма, която прочита трицифрено число въведено от клавиатурата и извежда на отделни редове цифрите на стотиците, десетиците и единиците.
#include
void main()
{int a;
cout<<"vavedete tricifreno chislo:";cin>>a;
int b,c,d;
b=a/100;
c=a/10%10;
d=a%10;
cout<<"Stotici:"<cout<<"Desetici:"<
cout<<"Edinici:"<
}
Задача 2. Да се напише програма, която прочита от клавиатурата две цели числа и извежда на екрана резултата от делението им.
#include
void main()
{int a;
cout<<"vavedete chislo:";cin>>a;
int b;
cout<<"vavedete chislo:";cin>>b;
float c=(float)a/b;
cout<<"Rezultat:"<
}
Задача 3. Да се напише която, при въведено от клавиатурата число за ден от седмицата определя дали е понеделник или не.
#include
enum Days
{
saturday,
sunday = 0,
monday,
tuesday,
wednesday,
thursday,
friday
};
void main() {
enum Days today = sunday;
switch (today)
{
case 1: cout << "\nIt's Monday" << endl;break;
default: cout << "\nNot Monday" << endl;
}
}
Задача 4. Програмата демонстрира setprecision( )
#include
#include
void main()
{double a = 209.5, b = 63.75658;
cout << setprecision(3)
<< setiosflags(ios::fixed);
cout << setw(10) << a << "\n";
cout << setw(10) << b << "\n";
cout << resetiosflags(ios::fixed);
cout << setw(20) << a << "\n";
cout << setw(20) << b << "\n";
}
-
Седмица
Тема на упражнението: Оператори за последователност.
Задача 1. Да се напише програма, която определя дали дадено число въведено от клавиатурата е четни или нечетно.
#include
void main()
{int a;
cout<<"Vavedete chislo:";cin>>a;
if(a%2==0)
cout<<"Chisloto e chetno!"<
else
cout<<"Chisloto e nechetno!"<}
Задача 2. Да се напише програма, която при число въведено от клавиатурата го увеличава с 3 ако е положително и увеличава с 2 ако е отрицателно.
#include
void main()
{int a;
cout<<"Vavedete chislo:";cin>>a;
if(a>0)
{cout<<"Chisloto e polojitelno!"<
else
{cout<<"Chisloto e otricatelno!"<
}
Задача 3. Да се напише програма, която намира най-голямото от три числа въведени от клавиатурата.
#include
void main()
{int a,b,c;
cout<<"vavedete a=";cin>>a;
cout<<"vavedete b=";cin>>b;
cout<<"vavedete c=";cin>>c;
if(a>b && a>c)
cout<<"A is maximum!"<
else if(b>a && b>c)
cout<<"B is maximum!"<
else
cout<<"C is maximum!"<}
Задача 4. Да се напише програма, която при зададени дължини на трите страни от клавиатурата определя дали триъгълника е равностранен, равнобедрен или разностранен.
#include
#include
void main()
{double a,b,c;
cout<<"vavedete a=";cin>>a;
cout<<"vavedete b=";cin>>b;
cout<<"vavedete c=";cin>>c;
bool x=a<=0 || b<=0 || c<=0 || a+b<=c || a+c<=b || b+c<=a;
if(x)
cout<<"No surch triugalnik!"<
else if(a==b && b==c)
cout<<"Triugalnika e ravnostranen!"<
else if (a==b || b==c || a==c)
cout<<"triugalnika e ravnobedren"<
else
cout<<"triugalnika e raznostranen"<
}
-
Седмица__Тема_на_упражнението:_Циклични_алгоритми:_Оператор_for._Задача_1.'>Седмица
Тема на упражнението: Оператори за последователност.
Задача 1. Да се напише програма, която демонстрира оператора за избор на варианти.
#include
void main()
{char figura;
double a,b,r,h,S;
cout<<"Vuvedete kod na figura O-okraj;T-triag;P-prav;K-kvadr:";
cin>>figura;
switch(figura){
case'O':cout<<"Vuvedete radius r=";cin>>r;S=3.14*r*r;
cout<<"Liceto na okraj. e S="<
case'T':cout<<"Vuvedete strana a=";cin>>a;cout<<"Vuvedete visochina
h=";cin>>h;S=(a*h)/2;
cout<<"Liceto na triag. e S="<
case'P':cout<<"Vuvedete strana a=";cin>>a;cout<<"Vuvedete strana
b=";cin>>b;S=a*b;
cout<<"Liceto na pravoag. e S="<
case'K':cout<<"Vuvedete strana a=";cin>>a;S=a*a;
cout<<"Liceto na kvadr. e S="<
default:cout<<"Greshen kod!"<
}
}
Задача 1. Да се напише програма, която по зададено реално число x намира стойността на един от следните изрази:
y = x - 5
y = sin(x)
y = cos(x)
y = exp(x).
#include
#include
void main()
{cout << "=================================\n";
cout << "| y = x-5 -> 1 |\n";
cout << "| y = sin(x) -> 2 |\n ";
cout << "| y = cos(x) -> 3 |\n";
cout << "| y = exp(x) -> 4 |\n";
cout << "=================================\n";
cout << " 1, 2, 3 or 4? \n";
int i;
cin >> i;
if (i == 1 || i == 2 || i == 3 || i == 4)
{cout << "x= ";
double x;
cin >> x;
double y;
switch (i)
{case 1: y = x - 5; break;
case 2: y = sin(x); break;
case 3: y = cos(x); break;
case 4: y = exp(x); break;
}
cout << "y= " << y << "\n";
}
else
cout << "Greshen Izbor! \n";
}
Седмица
Тема на упражнението: Циклични алгоритми: Оператор for.
Задача 1. Да се напише програма, която по дадено естествено число n, намира факториела му.
#include
int main()
{cout << "n= ";
int n;
cin >> n;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (n <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
int fact = 1;
for (int i = 1; i <= n; i++)
fact = fact * i;
cout << n << "! = " << fact << "\n";
return 0;
}
Задача 2. Област на променливите, дефинирани в заглавната част на for.
for (int i = 1; i <= n; i++)
{…
}
for (i = 1; i <= m; i++)
{…
}
Областта на променливата j от програмния фрагмент:
for (int i = 1; i <= n ; i++)
for (int j = 1; j <=m; j++)
{ …
}
в края на оператора for (int i = 1; …) …, т.е.
for (int i = 1; i <= n ; i++)
for (int j = 1; j <=m; j++)
{ …
}
for (j = …; ….) {…}
ще издаде съобщение за грешка заради недефинирана променлива j.
Аналогично, фрагментът ще съобщи за недефинирана променлива k
#include
int main()
{for (int i = 1; i<=3; i++)
{for (int j = 1; j<=3; j++)
{for (int k = 1; k<=3; k++)
cout << j << " " << k <<"\n";
…
}
cout << i << " " << k;
}
return 0;
}
тъй като областт на променливата k завършва в края на оператора for (int j = 1; ….
Препоръка: При вложени оператори for да не се дефинират променливи в заглавните части на операторите.
Използвайте оператора for само за реализиране на индуктивни циклични процеси. Освен това, ако for има вида:
for (i = start; i < (или i <= ) end; i = i + increment)
{ …
}
не променяйте i, start, end и increment в тялото на цикъла. Това е лош стил за програмиране. Ако цикличният процес, който трябва да реализирате, не се вмества в тази схема, не използвайте оператора for.
Задача 3. Д а се напише програма, която по дадени x – реално и n – естествено число, пресмята сумата
Програма Zad28.cpp решава задачата.
// Program Zad28.cpp
#include
int main()
{cout << "x= ";
double x;
cin >> x;
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
cout << "n= ";
short n;
cin >> n;
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
if (n <= 0)
{cout << "Incorrect input! \n";
return 1;
}
double x1 = 1;
double s = 1;
for (int i = 1; i <= n; i++)
{x1 = x1 * x / i;
s = s + x1;
}
cout << "s= " << s << "\n";
return 0;
}
-
Седмица__Тема_на_упражнението:_Скаларни_типове_–_символен_тип._Задача_1.'>Седмица
Тема на упражнението: Циклични алгоритми: Оператор while.
Задача 1. Да се напише програма, която по дадени реални числа x и ( > 0), приближено пресмята сумата
Сумирането да продължи докато абсолютната стойност на последното добавено събираемо стане по-малка от .
#include
#include
int main()
{cout << "x= ";
double x;
cin >> x;
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
cout << "eps= ";
double eps;
cin >> eps;
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
if (eps <= 0)
{cout << "Incorrect input! \n";
return 1;
}
double x1 = 1;
double s = 1;
int i = 1;
while (fabs(x1) >= eps)
{x1 = x1 * x / i;
s = s + x1;
i++;
}
cout << "s=" << s << "\n";
return 0;
}
Задача 2. Да се напише програма, която намира факториела на дадено естествено число. За целта да се използва операторът while.
#include
int main()
{cout << "n= ";
int n;
cin >> n;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (n <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
int fact = 1;
int i = 1;
while (i <= n)
{fact = fact * i;
i++;
}
cout << n << "! = " << fact << "\n";
return 0;
}
Задача 3. Да се напише програма, която въвежда от клавиатурата редица от цели числа и намира средноаритметичното им. Въвеждането да продължава до въвеждане на 0.
#include
int main()
{int count = 0;
double average = 0;
cout << "> ";
int number;
cin >> number;
while (number != 0)
{count++;
average = average + number;
cout << "> ";
cin >> number;
}
if (count != 0) average = average/count;
cout << "average= " << average << "\n";
return 0;
}
-
Седмица
Тема на упражнението: Циклични алгоритми: Оператор do/while. Вложени цикли.
Задача 1. Да се напише програма, която намира произведението на целите числа от m до n, където m и n са дадени естествени числа и m ≤ n. За целта да се използва операторът do/while.
#include
int main()
{cout << "m= ";
int m;
cin >> m;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (m <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
cout << "n= ";
int n;
cin >> n;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (n <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
if (m > n)
{cout << "Incorrect Input! \n";
return 1;
}
int prod = 1;
int i = m;
do
{prod = prod * i;
i++;
} while (i <= n);
cout << prod << "\n";
return 0;
}
Задача 2. Нека a е неотрицателно реално число. Да се напише програма, която приближено пресмята квадратен корен от a по метода на Нютон.
У пътване: (метод на Нютон) Дефинира се редица от реални числа x0, x1, x2, x3, … по следния начин:
Сумирането продължава докато абсолютната стойност на разликата на последните два констуирани елемента на редицата стане по-малка от , >0, е дадено достатъчно малко реално число.
#include
#include
#include
int main()
{cout << "a= ";
double a;
cin >> a;
if (!cin)
{cout << "Error! Bad Input! \n";
return 1;
}
if (a < 0)
{cout << "Incorrect Input! \n";
return 1;
}
cout << "eps= ";
double eps;
cin >> eps;
if (!cin)
{cout << "Error! Bad Input! \n";
return 1;
}
if (eps <= 0 || eps > 0.5)
{cout << "Incorrect Input! \n";
return 1;
}
double x0;
double x1 = 1;
do
{x0 = x1;
x1 = 0.5*(x0 + a/x0);
} while (fabs (x1-x0) >= eps);
cout << setprecision(6) << setiosflags(ios :: fixed);
cout << "sqrt(" << a << ")= " << setw(10) << x1 << "\n";
return 0;
}
Задача 3. Задача 43. Да се напише програма, която проверява дали съществува решение на деофантовото уравнение a1.x1 + a2.x2 + a3.x3 + a4.x4 = a в интервала [p, q], където a1, a2, a3, a4, a, p и q са дадени цели числа, pВ решението са пропуснати дефинициите и въвеждането на стойности на променливите a1, a2, a3, a4, a, p и q, тъй като са правени преди. Условието pint main()
{…
if (p>=q)
{cout << "Incorrect Input!\n";
return 1;
}
int x1 = p;
bool b;
do
{int x2 = p;
do
{int x3 = p;
do
{int x4 = p;
do
{b = a1*x1 + a2*x2 + a3*x3 + a4*x4 == a;
x4++;
} while (!b && x4 <= q);
x3++;
} while (!b && x3 <= q);
x2++;
} while (!b && x2 <= q);
x1++;
} while (!b && x1 <= q);
if (b) cout << "yes\n";
else cout << "no\n";
return 0;
}
-
Седмица
Тема на упражнението: Скаларни типове – символен тип.
Задача 1. Да се напише програма, която въвежда малка буква от латинската азбука и извежда съответната й главна буква.
#include
int main()
{char c;
cin >> c;
if (c < 'a' || c > 'z')
{cout << "Incorrect Input! \n";
return 1;
}
cout << (char)(c - 'a' + 'A') << '\n';
return 0;
}
Задача 2. Да се напише програма, която извежда цифрите, главните и малките букви на латинската азбука и ASCII кодовете им. Всеки символ и кодът му да са на един и същ ред. За разделител между символ и код да служи знакът за хоризонтална табулация.
#include
int main()
{for(char ch = '0'; ch <= '9'; ch++)
cout << ch << '\t' << (int)ch << '\n';
for(ch = 'A'; ch <= 'Z'; ch++)
cout << ch << '\t' << (int)ch << '\n';
for(ch = 'a'; ch <= 'z'; ch++)
cout << ch << '\t' << (int)ch << '\n';
return 0;
}
Задача 3. Да се напише програма, която извежда върху екрана следната таблица:
A B C D E
B C D E F
C D E F G
D E F G H
E F G H I
#include
int main()
{
for(int i = 0; i<5; i++)
{
for(ch = chr(65+i); ch <= chr(65+i+5); ch++)
cout << ch << ' ‘;
cout << endl;
}
return 0;
}
-
Седмица
Тема на упражнението: Структура данни от тип масив. Преговор и обобщение на изучаваното през триместъра.
Задача 1. Да се напише програма, която въвежда последователно n числа, след което ги извежда в обратен ред.
#include
int main()
{double x[100];
cout << "n= ";
int n;
cin >> n; // въвеждане на стойност за n
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
if (n < 0 || n > 100)
{cout << "Incorrect input! \n";
return 1;
}
// n е цяло число от интервала [1, 100]
// въвеждане на стойности за елементите на масива x
for (int i = 0; i <= n-1; i++)
{cout << "x[" << i << "]= ";
cin >> x[i];
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
} // извеждане на елементите на x в обратен ред
for (i = n-1; i >= 0; i--)
cout << x[i] << "\n";
return 0;
}
Задача 2. Дадени са редицата от цели числа a0, a1, …, an-1 (n ≥ 1) и цялото число x. Да се напише програма, която намира колко пъти x се съдържа в редицата.
#include
int main()
{int a[20];
cout << "n= ";
int n;
cin >> n; // въвеждане на дължината на редицата
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
if (n < 1 || n > 20)
{cout << "Incorrect input! \n";
return 1;
}
// въвеждане на редицата
int i;
for (i = 0; i <= n-1; i++)
{cout << "a[" << i << "]= ";
cin >> a[i];
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
}
// въвеждане на стойност за x
int x;
cout << "x= ";
cin >> x;
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
// намиране на броя br на срещанията на x в редицата
int br = 0;
for (i = 0; i <= n-1; i++)
if (a[i] == x) br++;
cout << "number = " << br << "\n";
return 0;
}
Задача 3. Дадени са редицата от цели числа a0, a1, …, an-1 (n ≥ 1) и цялото число x. Да се напише програма, която проверява дали x се съдържа в редицата.
#include
int main()
{int a[20];
…
i = 0;
while (a[i] != x && i < n-1)
i++;
if (a[i] == x) cout << "yes \n";
else cout << "no \n";
return 0;
}
Задача 4. Да се напише програма, която установява, дали редицата от цели числа a0, a1, ..., an-1 е монотонно намаляваща.
#include
int main()
{int a[100];
// дефиниране и въвеждане на стойност на n
…
// въвеждане на масива а
…
int br = 0;
for (i = 0; i <= n-2; i++)
if (a[i] >= a[i+1]) br++;
if (br == n-1) cout << "yes \n";
else cout << "no \n";
return 0;
}
Второ решение (по-ефективно):
#include
int main()
{int a[100];
//въвеждане на размерността n и масива a
…
i = 0;
while (a[i] >= a[i+1] && i < n-2) i++;
if (a[i] >= a[i+1]) cout << "yes \n";
else cout << "no \n";
return 0;
}
Сподели с приятели: |