Глинський Я.М. Вправи с. 13
Завдання
Типи користувача
Оголошення:
typedef <опис типу> <назва нового типу>;
Приклад:
typedef unsigned short int kilkist;
kilkist k1,k2;
Присвоєння
Загальний вигляд:
<назва змінної>=<вираз> або < назва змінної 1>=…=< назва змінної N>=< вираз >
Приклад: а=8-2; c=d=a+4; e=d/5+c;
Узгодження типів:
· Явне – Int b,a; float c;
a=2; c=3.8; b=(int)c*a;// результат 3*2 (дробову частину відкинене) b=6
b=(int)(c*a);// результат 3.8*2=7.6 b=7
· Неявне - b=c*a;// результат 3.8*2=7.6 b=7 (дробову частину відкинене)
Узгодження типів у виразах відбувається з урахуванням пріоритетів типів. Пріоритет типів за їхнім спаданням: double, float, long, int, short
1. Створіть програму з обміном значень двох змінних
2. Нехай задано сторони прямокутного чотирикутника а=3, в=4. Знайти периметр і площу трикутника
3. Описати відповідні змінні та вивести власну дату народження
Розв’язки завдань
- Опишіть
- Дві змінні x і a цілого типу – int x; int a; (int x,a;)
- Дві змінні дійсного типу – float x1,a1;
- Дві змінні символьного типу – char a2,b;
- Int x=1; a=3; float x1=0, a1=3.5; char a2=’a’, b=’b’;
- Створить тип даних користувача cina, значеннями якого є невід’ємні ціді числа – typedef unsigned char cina; (char -> short int, long int)
- Які значення можуть набувати змінні типу vaga, якщо typedef unsigned long int vaga? – 0…4294967295
- Опишіть тип користувача balans із допустимими значеннями даних з діапазону від –32000 до 32000 – typedef int balans;
Задача № 1
#include <iostream.h>
#include <conio.h>
int main()
{
int x=1, y=2; int temp;
temp=x;
x=y;
y=temp;
cout<<x<<”\t”<<y;
getch ();
return 0;
}
Задача № 2
#include <iostream.h>
#include <conio.h>
int main()
{
int a=3, b=4; int p; float s;
p=2*(a+b);
s=a*b;
cout<<”p=”<<p<<” s=”<<s<<endl;
getch ();
return 0;
}
Задача № 3
#include <iostream.h>
#include <conio.h>
int main()
{
int d, m, r;
d=12; m=1; r=1963;
cout<<d<<”\t”<<m<<”\t”<<r;
getch ();
return 0;}
Розв’язки завдань
Задача № 2a
#include <iostream.h>
#include <conio.h>
int main()
{
cout<<”1. “<<”\t Algebra”<<”\n”;
cout<<”2. “<<”\t Ukr. mova”<<”\n”;
cout<<”3. “<<”\t Geografia”<<”\n”;
cout<<”4. “<<”\t Informatika”<<”\n”;
getch ();
return 0;
}
Задача № 2b
#include <iostream.h>
#include <conio.h>
int main()
{
cout<<” v. Petrovskogo”<<endl;
cout<<”b. 30”<<”\n”;
getch ();
return 0;
}
Задача № 2c
#include <iostream.h>
#include <conio.h>
int main()
{
float r=1; float L, s;
s=3.1415926*r*r;
L=2*3.1415926*r;
cout<<”s=”<<s<<”\t L=”<<L<<endl;
getch ();
return 0;
}
Задача № 2d
#include <iostream.h>
#include <conio.h>
int main()
{
float a=5, b=4, c=3; float p;
p=a+b+c;
cout<<”p=”<<p<<endl;
getch ();
return 0;
}
Задача № 2e
#include <iostream.h>
#include <conio.h>
int main()
{
float d=2; float L, s;
s=3.1415926*d*d/4;
L=3.1415926*d;
cout<<”s=”x<<s<<”\t L=”<<L<<endl;
getch ();
return 0;
}
Задача № 2f
#include <iostream.h>
#include <conio.h>
int main()
{
float a=1, b=2, c=2; float p;
p=a+2*b+c;
cout<<”p=”<<p<<endl;
getch ();
return 0;
}
Задача № 2g
#include <iostream.h>
#include <conio.h>
int main()
{
int m1=10, m2=15, m3=12;
float s1, s2, s3, s;
s1=8.5*m1; s2=2.4*m2; s3=4.1*m3;
s=s1+s2+s3;
cout<<”s1=”<<s1<<”\t s2=”<<s2
<<”\t s3=”<<s3<<”\t s=”<<s<<endl;
getch ();
return 0;
}
Задача № 2h
#include <iostream.h>
#include <conio.h>
int main()
{
cout<<”doba=”<<24*60*60<<endl;
cout<<”t= “<<7*24*60*60<<endl;
cout<<”r= “<<365*24*60*60<<endl;
getch ();
return 0;
}
Приклади (Слайд № 4)
Нехай x=3, y=5. Тоді
- x==y – false
- x!=y – true
- x>y – false
- x<=(y-2) – true
- 2*-5+4=-6
- 2*(-5+4)=-2
- 7%3=1
- 12/4-2=1
- 12/(4-2)=6
- 7%3*-5=-5
Команда присвоєння, суміщена з арифметичною операцією
- x+=y рівносильне x=x+y
- x-=y рівносильне x=x-y
- x*=y рівносильне x=x*y
- x/=y рівносильне x=x/y
Приклад:
· a+=10 рівносильне a=a+10
· b*=4 рівносильне b=b*4
Операцій збільшення й зменшення
Збільшення значення змінної на одиницю i=i+1 мова С++ дозволяє скоротити:
· i++ (постфіксна операція інкременту)
· ++і (префіксна операція інкременту)
Зменшення значення змінної на одиницю
i=i-1 мова С++ дозволяє скоротити:
· i-- (постфіксна операція декременту)
· --і (префіксна операція декремкнту)
Увага! Форма збільшення (зменшення) впливає на порядок виконання операцій у виразах