Программирование на языке высокого уровня

Слайд 2

Что такое программирование?

Программировать умеют все! Даже моя жена Софья.
Знаменитая программа Софьи, которую

Что такое программирование? Программировать умеют все! Даже моя жена Софья. Знаменитая программа
копируют чаще всего:
(Называется «Банановый хлеб»)

Смешать:
1/3 ст. подсолнечного масла
1/4 ст. воды
1 ст. сахара
Добавить 2-3 размятых банана
По желанию добавить 1-2 взбитых яйца
Отдельно смешать сухими:
2 ст. муки
1 ч.л. соды
1/2 ч.л. соли
1/2 ч.л. корицы
ванилин
Все смешать и выпекать, пока не покоричневеет

Слайд 3

// исходные данные
double a, b, alpha;
a = 10.5;
b

// исходные данные double a, b, alpha; a = 10.5; b =
= 9.78;
alpha = Math.PI/3;
// вычисления
double c;
c = Math.Sqrt(a*a + b*b - 2*a*b*Math.Cos(alpha));

К делу! Пример программы на C#

// исходные данные
double a, b, alpha;
a = Convert.ToDouble(textBox1.Text);
b = Convert.ToDouble(textBox2.Text);
alpha = Convert.ToDouble(textBox3.Text);
// вычисления
double c;
c = Math.Sqrt(a*a + b*b - 2*a*b*Math.Cos(alpha));
// вывод результата
label5.Text = Convert.ToString(c);

Слайд 4

Условный оператор if

if (x < 0)
сделать-то-то;

if (x < 0)
сделать-то-то;
else
сделать-другое;

if

Условный оператор if if (x сделать-то-то; if (x сделать-то-то; else сделать-другое; if
(x < 0)
{
сделать-одно;
сделать-второе;
сделать-что-то-ещё;
}

if (x < 0)
{
сделать-одно;
сделать-второе;
}
else
{
сделать-другое;
и-ещё-кое-что;
}

Слайд 5

Решение квадратного уравнения

// исходные данные
double a, b, c;
a =

Решение квадратного уравнения // исходные данные double a, b, c; a =
Convert.ToDouble(textBox1.Text);
b = Convert.ToDouble(textBox2.Text);
c = Convert.ToDouble(textBox3.Text);
// вычисления
double D = b*b - 4*a*c;
if (D < 0)
{
// вывод результата
label6.Text = "???";
label8.Text = "???";
MessageBox.Show("Нет вещественных корней!");
}
else
{
double x1, x2;
x1 = (-b - Math.Sqrt(D))/2/a;
x2 = (-b + Math.Sqrt(D))/2/a;
// вывод результата
label6.Text = Convert.ToString(x1);
label8.Text = Convert.ToString(x2);
}

Слайд 6

Встроенные типы данных C#

Встроенные типы данных C#

Слайд 7

Цикл с заданным числом повторений
for (int i = 1; i <= N;

Цикл с заданным числом повторений for (int i = 1; i что-то-там;
i++)
что-то-там;
for (int i = 1; i <= N; i++)
{
что-то-там;
и ещё что-то;
и ещё;
}

// какой из циклов будет работать дольше?
for (int i = 1; i <= N; i++)
...
for (int i = 0; i < N; i++)
...

// какой из циклов будет работать дольше?
for (int i = -10; i <= 10; i++)
...
for (int i = 0; i < 21; i++)
...

// n - требуемое количество точек
for (int i = 1; i <= n; i++)
{
textBox1.Text = textBox1.Text + "Итерация " + i + "\r\n";
}

Слайд 8

Задачи на циклы: табуляция функции

double x, y;
// n - требуемое количество точек
for

Задачи на циклы: табуляция функции double x, y; // n - требуемое
(int i = 0; i < n; i++)
{
x = Math.PI * i / (n-1);
y = Math.Sin(x);
textBox1.Text = textBox1.Text + "x = " + x + ", y = " + y + "\r\n";
}

Слайд 9

double x, y, ymax = -1e300;
// n - требуемое количество точек
for (int

double x, y, ymax = -1e300; // n - требуемое количество точек
i = 0; i < n; i++)
{
x = -0.5 + 2.0*i/(n-1); // всегда в интервале [-0.5; 1.5]
y = x*x*x - x*x - x;
textBox1.Text = textBox1.Text + "x = " + x + ", y = " + y + "\r\n";
if (y > ymax)
ymax = y;
}
label3.Text = Convert.ToString(ymax);

Задачи на циклы: поиск минимума/максимума

double x, y;
double ymax = double.NegativeInfinity, xbest = double.NaN;
// n - требуемое количество точек
for (int i = 0; i < n; i++)
{
x = -0.5 + 2.0*i/(n-1); // всегда в интервале [-0.5; 1.5]
y = x*x*x - x*x - x;
textBox1.Text = textBox1.Text + "x = " + x + ", y = " + y + "\r\n";
if (y > ymax)
{
ymax = y;
xbest = x;
}
}
label3.Text = Convert.ToString(ymax);
label5.Text = Convert.ToString(xbest);

Слайд 10

У листа бумаги a×b отрезают по углам четыре квадрата со стороной h.

У листа бумаги a×b отрезают по углам четыре квадрата со стороной h.
Полученную крестообразную выкройку сворачивают в коробочку (параллелепипед).
При каком h коробочка будет иметь максимальный объём?

Задача про коробочку. Численное решение

double dh = a/2/9999;
double V, h, Vmax = 0, hbest = 0;
for (int i = 0; i < 10000; i++)
{
h = dh * i;
V = (a-2*h)*(b-2*h)*h;
if (V > Vmax)
{
Vmax = V;
hbest = h;
}
}
label3.Text = Convert.ToString(Vmax);
label5.Text = Convert.ToString(hbest);

Слайд 11

Домашнее задание

 

Домашнее задание
Имя файла: Программирование-на-языке-высокого-уровня.pptx
Количество просмотров: 171
Количество скачиваний: 0