
- •Л абораторная работа №1 «Линейные алгоритмы»
- •Лабораторная работа №2 «Целочисленные операции»
- •Лабораторная работа №3
- •Лабораторная работа №4 «Логические выражения»
- •Лабораторная работа №5 « Исполнительный оператор if и операция ? в организации ветвление»
- •Лабораторная работа №6 «Ветвящиеся алгоритмы»
- •Лабораторная работа №7 «Оператор выбора»
- •Лабораторная работа №8 «Циклические алгоритмы»
Федеральное агентство по образованию
ФГОУ СПО «Липецкий металлургический колледж»
Дисциплина «Основы алгоритмизации и программирования»
Лабораторные работы
Выполнил студент группы АСУ 10-1 Куницина Ирина
Проверила Москалёва И.Ю.
Липецк
2010 год
Оглавление
Лабораторная работа №1 3
«Линейные алгоритмы» 3
Лабораторная работа №2 4
«Целочисленные операции» 4
Лабораторная работа №3 6
«Вычисление на С++» 6
Лабораторная работа №4 7
«Логические выражения» 7
Лабораторная работа №5 9
«Исполнительный оператор if и операция ? в организации ветвление» 9
Лабораторная работа №6 10
«Ветвящиеся алгоритмы» 10
Лабораторная работа №7 13
«Оператор выбора» 13
Лабораторная работа №8 14
«Циклические алгоритмы» 14
Л абораторная работа №1 «Линейные алгоритмы»
По заданным координатам двух точек найти площадь заштрихованной фигуры.
Нахождение расстояния между точками (диагональ квадрата);
П
о теореме Пифагора находим сторону квадрата;
Найдем площадь круга;
Найдем площадь закрашенной фигуры;
int X1,X2, Y1,Y2;
double d, r, S;
X1=Edit1->Text.ToInt();
Y1=Edit2->Text.ToInt();
X2=Edit3->Text.ToInt();
Y1=Edit4->Text.ToInt();
d=sqrt(pow(X1-X2,2)+(Y2-Y2,2));
r=d/sqrt(8);
S=3*M_PI*r*r/4;
Label5->Caption="Площадь заштрихованной фигуры =
"+FormatFloat("#,##0.00",S);
Лабораторная работа №2 «Целочисленные операции»
Задача 1
.Текущее показание электронных часов T час (0<T<23), N мин (0<N<59), K сек (0<K<59).
К
акое
время будут показывать часы через X
часов Y
мин Z
секунд.
Переводим обе величины в меньшую единицу измерения ( сек ) В1=T*3600+N*60+K;
B2=X*3600+Y*60+Z;
Находим их сумму В=В1+В2;
Из общих секунд выделяем число часов, минут и секунд а=В/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. Результаты отладки сохраните в файл. На форму поместите рисунок с закрашенной областью
Внутри круга
(выше прямой
левее оси Y
и
и
или
правее оси Y)
ниже прямой
и
и
(
и
или
и
)
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));
M
emo1->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));