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

Технология и языки программирования

Иллюстративный материал к проведению лабораторных работ по практическому освоению языка программирования С

Преподаватель

Бочаров Юрий Иванович

кафедра микро- и наноэлектроники НИЯУ МИФИ

Часть VI

Дополнительные материалы

Сравнение популярности языков программирования

Технология и языки программирования

2

Особенности решения математических и физических задач методами компьютерного моделирования

Пример – задача про овцу.

Луг с травой имеет форму равнобедренного треугольника.

У вершины напротив основания вбит кол, к которому веревкой привязана овца.

Требуется методом компьютерного моделирования определить длину веревки, при которой овца не сможет съесть больше половины травы на лугу.

Технология и языки программирования

3

Особенности решения математических и физических задач методами компьютерного моделирования

Аналитическое решение не представляет сложности

Площадь треугольника

ST

 

b

a2

 

b2

 

 

 

 

2

 

4

Угол при вершине напротив основания

 

 

Площадь сектора со стороной l и углом α

Из условия Ss

1

ST

 

 

 

2

 

 

находим окончательное решение,

l

которое может нам понадобиться

 

для тестирования программы.

 

.

arcsin( 2ba ).

Ss l2 . 2

b a2

b2

 

 

 

 

 

 

4

 

 

.

4 arcsin(

 

b

)

 

 

 

 

 

 

2a

 

Технология и языки программирования

4

Особенности решения математических и физических задач методами компьютерного моделирования

Однако, для большинства задач нет возможности найти аналитическое решение или оно оказывается неудобным при анализе или для практического применения.

Поэтому используют вычислительные методы, основанные на компьютерном моделировании. В качестве примера рассмотрим предыдущую задачу с овцой.

Очевидно, что для нахождения нужной длины веревки надо предварительно вычислить площадь треугольника, затем постепенно увеличивать длину веревки, начиная с нуля, с небольшим шагом, вычисляя каждый раз площадь полученного сектора, до тех пор, пока эта площадь не окажется равной половине площади треугольника. Шаг приращения длины веревки определяет погрешность этого вычислительного метода. Его можно задать исходя из практических соображений, например, равным 1 см, если ввести реальные размерности или, например, задать в виде малой части длин сторон треугольника.

Технология и языки программирования

5

Особенности решения задач методами компьютерного моделирования. Текст программы

//Yuri Bocharov. Date 20-10-2017. Rev.0

//One must find the length of the cord to which the sheep is tied

//so that she can eat grass only from half the area of the field

//Initial data:

//the field has the shape of an isosceles triangle

//length of sides - a and length of base - b

//Result: cord length - l

#include <stdio.h> #include <math.h>

int main(int argc, char *argv[])

{

float a, b, l = 0;

float St; //triangle area float Ss = 0; //sector area

printf("Enter in line the length of sides and the base: a b -> ");

scanf("%f%f", &a, &b);

Технология и языки программирования

6

Особенности решения задач методами компьютерного моделирования. Текст программы

float dl = a/10000; // l-change step

if(b >= 2*a) puts("Invalid data!"); else

{

St = b/2*sqrt(a*a-b*b/4); do

{

l += dl;

Ss = l*l*asinf(b/a/2);

}

while(Ss < St/2);

printf("\nThe length of cord is %.2f in relative units\n\n", l);

}

return 0;

}

Технология и языки программирования

7

Особенности решения задач методами компьютерного моделирования. Тестирование

Тестирование является обязательной частью маршрута проектирования программы!

Для этой задачи тестирование не представляет проблемы, поскольку есть аналитическое решение. Используем следующие наборы тестовых данных:

1.Длины сторон такие, что треугольник не существует,

то есть b >= 2a (a = 100, b = 200 и b = 201). Должно появиться сообщение Invalid data!. Тесты прошли успешно!

2.Треугольник равносторонний (a = 100, b = 100). Вычисление с помощью калькулятора дает ответ 64.3037. Программа – 64.31. Тест прошел успешно!

3.Этим можно ограничиться, но если нет аналитической модели, то надо всегда рассмотреть экстремальные значения, например (a = 100, b = 1) и (a = 100, b = 199). Результаты работы программы 70.72 и 18.39 не вызывают принципиальных сомнений.

Технология и языки программирования

8

Иллюстративно-развлекательный материал к рассмотренной задаче

Получила широкую известность история, в которой гениальный американский ученый и инженер, один из основоположников направления, связанного с созданием аналоговых интегральных микросхем – Роберт Видлар (Robert John Widlar, 1937-1991), использовал овцу, примерно, как в рассмотренной задаче.

В декабре 1970 года, когда Боб Видлар работал в компании National Semiconductor, из-за жёстких мер экономии компания отказалась от стрижки газонов перед главным зданием. Видлар, недовольный видом заросшей поляны, на которой он привык парковать свой белый двухместный мерседес, занял у знакомого фермера овцу (в изложении его друга Боба Пиза он купил её за шестьдесят долларов) и выпустил её «подстригать газон» National Semiconductor, а заодно пригласил репортёра из San Jose News. История попала в газету. Менеджмент компании не оценил инициативу, и однажды ночью овцу таинственно похитили.

Со временем история овцы Видлара обросла мифическими подробностями. По одной версии, Видлар сам увёз овцу в ближайший бар и то ли просто оставил её там, то ли разыграл её на дружеском аукционе. По другой версии, овца была козой или даже козлом. Пиз возмущённо отметил, что «это абсурд. Видлар не мог так поступить. Он привёз именно овцу – на заднем сидении своего мерседеса!».

Источник — «https://ru.wikipedia.org/w/index.php?title=Видлар,_Роберт&oldid=87937992»

Далее – относящиеся к этому фотографии

Технология и языки программирования

9

Роберт Видлар

Технология и языки программирования

10

Соседние файлы в папке Бочаров презентации 1 семестр