БИЛЕТ 3.
1. Вещественные типы данных, их представление в памяти.
float - число с плавающей точкой одинарной точности;
double - число
с плавающей точкой двойной точности.
Тип long double предназначен для арифметики с плавающей точкой повышенной точности.
Размеры объектов с плавающей точкой зависят от реализации; float, double и long double могут представляться одним размером, а могут - двумя или тремя разными размерами.
Операции: присваивания, все арифметические, сравнения,
2. Оператор цикла for.
Синтаксис: for (выражение; выражение; выражение) оператор
3. Даны два массива. Массив А состоит из N элементов , массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать программу для слияния этих массивов в отсортированный по убыванию массив С, не содержащий одинаковых элементов.
# include <stdio.h>
# include <stdlib.h>
const N=10,M=10;
int a[N],b[M],c[N+M];
void main()
{
randomize();
a[0]=-5;
b[0]=-5;
for (int i=1;i<N;i++)
{
a[i]=a[i-1]-random(3);
b[i]=b[i-1]-random(3);
}
int x=0,y=0;
i=0;
while ((x<N)|(y<M))
{
if (((a[x]>=b[y])|(y>M-1))&(x<=N-1))
{
if (c[i-1]!=a[x]) { c[i]=a[x]; i++;}
x++;
}
else if (((a[x]<=b[y])|(x>N-1))&(y<=M-1))
{
if (c[i-1]!=b[y]) { c[i]=b[y]; i++;}
y++;
}
}
}
4. Напишите функцию сложения двух простых дробей a/b и c/d. В результате должна получаться правильная несократимая дробь или смешанное число.
# include <stdio.h>
const a=3,b=5,c=7,d=13;
int ch,zn,cel;
void sokr(int &x,int &y)
{ int max=(x<y)?y:x;
for (int i=2;i<=max;i++)
if ((x%i==0)&(y%i==0))
{
x/=i;
y/=i;
max=(x<y)?y:x;
i=2;
}
}
void main()
{
if (b==d) {ch=a+c; zn=b;}
else {ch=a*d+b*c; zn=b*d;}
cel=ch/zn;
ch-=cel*zn;
sokr(ch,zn);
printf("\n%d %d/%d",cel,ch,zn);
}