'

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

Понравилась презентация – покажи это...





Слайд 0

Программирование на языке высокого уровня Лекция 1. Введение в программирование на C#. Условный оператор. Типы данных. Цикл for. Кафедра АСОИУ ОмГТУ, 2012 Богатов Р.Н.


Слайд 1

Что такое программирование? Программировать умеют все! Даже моя жена Софья. Знаменитая программа Софьи, которую копируют чаще всего: (Называется «Банановый хлеб») Смешать: 1/3 ст. подсолнечного масла 1/4 ст. воды 1 ст. сахара Добавить 2-3 размятых банана По желанию добавить 1-2 взбитых яйца Отдельно смешать сухими: 2 ст. муки 1 ч.л. соды 1/2 ч.л. соли 1/2 ч.л. корицы ванилин Все смешать и выпекать, пока не покоричневеет


Слайд 2

// исходные данные 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);


Слайд 3

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


Слайд 4

Решение квадратного уравнения // исходные данные 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); }


Слайд 5

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


Слайд 6

Цикл с заданным числом повторений for (int i = 1; i <= N; 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"; }


Слайд 7

Задачи на циклы: табуляция функции double x, y; // n - требуемое количество точек for (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"; }


Слайд 8

double x, y, ymax = -1e300; // 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; } 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);


Слайд 9

У листа бумаги 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);


Слайд 10

Домашнее задание Вычислить сумму ряда 1+ 1 1! + 1 2! + 1 3! +…+ 1 ??! для заданного ?? и сравнить полученный результат с числом Эйлера.


Слайд 11

Бонус Самостоятельно написать на C# какую-нибудь программу и выслать исполнимый модуль на адрес bogatovrn@asoiu.com Требования: программа должна отличаться от задач, разбираемых на лекциях или практических занятиях и заданных на дом программа должна сообщать ФИО и группу автора


×

HTML:





Ссылка: