Лабораторная работа №2
«Целочисленные операции»
Задача 1
.Текущее показание электронных часов T час (0<T<23), N мин (0<N<59), K сек (0<K<59).
Какое время будут показывать часы через X часов Y мин Z секунд.
1. Переводим обе величины в меньшую единицу измерения (сек)
В1=T*3600+N*60+K;
B2=X*3600+Y*60+Z;
2. Находим их сумму
В=В1+В2;
3. Из общих секунд выделяем число часов, минут и секунд
а=В/3600;
в=В/60%60;
с=В%60;
int T, N, K, X, Y, Z, B1, B2, B, a, b, c;
T=CSpinEdit1->Value;
N=CSpinEdit2->Value;
K=CSpinEdit3->Value;
X=CSpinEdit4->Value;
Y=CSpinEdit5->Value;
Z=CSpinEdit6->Value;
B1=T*3600+N*60+K;
B2=X*3600+Y*60+Z;
B=B1+B2;
a=B/3600;
b=B/60%60;
c=B%60;
Label1->Caption=(String) a + " часов "
+(String) b+ " минут " + (String) c+ " секунд";
Задача 2.
С начала суток прошло N секунд (N-целое). Найти количество секунд, прошедших с начала последнего часа.
Находим количество секунд прошедших с последней минуты
X=N%3600
int x, N;
N=CSpinEdit1->Value;
x=N%3600;
Label1->Caption=(String)x+" количество секунд,
прошедших с начала последнего часа.";
Задача 3.
Дни недели пронумерованы следующим образом:
0-воскресенье, 1-понедельник, 2-вторник, 6-суббота.
Дано целое число К, лежащее в диапазоне 1-365. Определить номер дня недели для К-го дня года если известно, что в этом году 1 января было четвергом
Находим число соответствующее дню недели
Y=(x+3)%7
int x, y;
x=CSpinEdit1->Value;
y=(x+3)%7;
Label1->Caption=(String)y+"номер дня недели.";
Лабораторная работа №3
«Вычисление на С++»
Вариант № 3
Разработайте программу для расчета значения выражения, используя заданные значения констант. На форму поместите выражение, используя объект Image. Сделайте проверку правильности расчета в MS Ekcel.
double a0=2.35, a1=-1.01, b=0.8, x, d, z, t, y;
x=pow(b,a1)+a0;
d=pow(-b*a1,3);
z=fabs(b-a0+pow(2,d));
t=fabs(a0-1);
y=cos(b)/x*(pow(log(z),4)+pow(t, 1./3));
Label1->Caption=y;
Лабораторная работа №4
«Логические выражения»
Задача 1.
Составить программу, которая будет выводить true или false в зависимости от принадлежности точки с координатами x, y закрашенной области.
Для ввода координат используйте объекты CSpinEdit, для вывода результата — окно Memo. Результаты отладки сохраните в файл. На форму поместите рисунок с закрашенной областью
и ( и или и )
int x,y;
x=CSpinEdit1->Value;
y=CSpinEdit2->Value;
Image1->Canvas->Ellipse(
249./12*(4+x)-3, 241./12*(9-y)-2,
249./12*(4+x)+1, 241./12*(9-y)+2);
bool f=pow(x-2,2)+pow(y-3,2)<=25 && (y>=-x+2&&x<=0||y<=-x+2&&x>=0);
Memo1->Lines->Add("Точка (" +(String)x+ ", " +(String)y+ ") - " + BoolToStr(f, true));
Memo1->Lines->SaveToFile(GetCurrentDir()+"\\1.txt");
Задача 2.
Составить программу, которая будет выводить true, если указанное высказывание является истинным и false — в противном случае.
Треугольник, заданный своими сторонами является разносторонним.
X не равно Y и X не равно Z и Y не равно Z
и и
int x,y,z;
x=CSpinEdit1->Value;
y=CSpinEdit2->Value;
z=CSpinEdit3->Value;
bool f=x!=y&&x!=z&&y!=z;
Memo1->Lines->Add("Треугольник со сторонами ("+(String)x+","+(String)y+","+(String)z+")-"+BoolToStr(f,true));