Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otchet.doc
Скачиваний:
3
Добавлен:
22.07.2019
Размер:
1.28 Mб
Скачать

Федеральное агентство по образованию

ФГОУ СПО «Липецкий металлургический колледж»

Дисциплина «Основы алгоритмизации и программирования»

Лабораторные работы

Выполнил студент группы АСУ 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 «Линейные алгоритмы»

По заданным координатам двух точек найти площадь заштрихованной фигуры.

  1. Нахождение расстояния между точками (диагональ квадрата);

  2. П о теореме Пифагора находим сторону квадрата;

  3. Найдем площадь круга;

  4. Найдем площадь закрашенной фигуры;

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. Переводим обе величины в меньшую единицу измерения ( сек ) В1=T*3600+N*60+K;

B2=X*3600+Y*60+Z;

  1. Находим их сумму В=В1+В2;

  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));

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]