Содержание
- 2. Что делает эта программа? // n - заданное натуральное число for (int i = 2; i
- 3. Метод. Алгоритм. Программа Ме́тод (от греч. «способ») — систематизированная совокупность действий для решения определенной задачи. Алгори́тм
- 4. В чем разница между методом и алгоритмом? * Метод – это совокупность действий. Алгоритм – конкретная
- 5. Пример: вычисление числа сочетаний Метод: число сочетаний вычисляется по формуле Оптимизация метода: сократим на k! Алгоритм:
- 6. Пример: вычисление числа сочетаний Реализация алгоритма на языке C#: // вычисление числителя int x = 1;
- 7. Проблема реализации вычисления факториалов … 12! = 479 001 600 13! = 6 227 020 800
- 9. Скачать презентацию
Что делает эта программа?
// n - заданное натуральное число
for
Что делает эта программа?
// n - заданное натуральное число
for
if (n % i == 0)
textBox1.Text = textBox1.Text + " " + i;
if (textBox1.Text == "")
label3.Text = "Да";
else
label3.Text = "Нет";
// n - заданное натуральное число
bool flag = true;
for (int i = 2; i < n; i++)
if (n % i == 0)
flag = false;
if (flag == true)
label3.Text = "Да";
else
label3.Text = "Нет";
// n - заданное натуральное число
bool flag = true;
for (int i = 2; i < n && flag; i++)
if (n % i == 0)
flag = false;
if (flag == true)
label3.Text = "Да";
else
label3.Text = "Нет";
// n - заданное натуральное число
bool flag = true;
for (int i = 3; i <= Math.Sqrt(n) && flag; i = i + 2)
if (n % i == 0)
flag = false;
if (!flag || n % 2 == 0)
label3.Text = "Нет";
else
label3.Text = "Да";
Дальнейшие оптимизации:
http://ru.wikipedia.org/wiki/Тест_простоты
Метод. Алгоритм. Программа
Ме́тод (от греч. «способ») —
систематизированная совокупность действий для решения определенной задачи.
Алгори́тм —
точный набор инструкций,
Метод. Алгоритм. Программа
Ме́тод (от греч. «способ») —
систематизированная совокупность действий для решения определенной задачи.
Алгори́тм —
точный набор инструкций,
Компью́терная програ́мма — последовательность инструкций, предназначенная для исполнения вычислительной машиной.
В чем разница между методом и алгоритмом? *
Метод – это совокупность действий.
Алгоритм –
В чем разница между методом и алгоритмом? *
Метод – это совокупность действий.
Алгоритм –
Алгоритм более подробен, чем метод.
Один метод могут реализовывать несколько алгоритмов.
Разные алгоритмы, реализующие один и тот же метод, могут давать совершенно разные результаты.
По алгоритму можно понять метод, но описание метода даст более полное представление об идеях, реализованных в алгоритме.
В методе ошибок быть не может. Ошибочным может быть выбор метода.
Программа – это реализация, «воплощение» алгоритма на одном из языков программирования.
Таким образом, общая схема написания любой программы следующая:
постановка задачи;
выбор метода;
разработка алгоритма;
написание программы;
тестирование, отладка и оптимизация.
* А. Ратушняк. Замечание о методах, алгоритмах и программах // Методы сжатия данных. – М. : ДИАЛОГ-МИФИ, 2002. – 384 с.
Пример: вычисление числа сочетаний
Метод: число сочетаний вычисляется по формуле
Оптимизация метода: сократим
Пример: вычисление числа сочетаний
Метод: число сочетаний вычисляется по формуле
Оптимизация метода: сократим
Алгоритм:
1 Вычислить числитель x
1.1 Пусть x = 1
1.2 Для i = k + 1, k + 2, ..., n выполнить x = x ∙ i
2 Вычислить знаменатель y
2.1 Пусть y = 1
2.2 Для i = 2, 3, ..., n – k выполнить y = y ∙ i
3 Вычислить искомое отношение x / y
Пример: вычисление числа сочетаний
Реализация алгоритма на языке C#:
// вычисление числителя
int x
Пример: вычисление числа сочетаний
Реализация алгоритма на языке C#:
// вычисление числителя
int x
for (int i = k + 1; i <= n; i++)
x = x * i;
// вычисление знаменателя
int y = 1;
for (int i = 2; i <= n - k; i++)
y = y * i;
// вычисление отношения
int c = x / y;
Проблема реализации вычисления факториалов
…
12! = 479 001 600
13! = 6 227
Проблема реализации вычисления факториалов
…
12! = 479 001 600
13! = 6 227
Диапазон переменной типа int: –2 147 483 648 … +2 147 483 647
Программа работает только при n ≤ 12 :-(
int f = 1;
for (int i = 1; i <= n; i++)
{
f *= i;
textBox1.Text += "" + i + "! = " + f + "\r\n";
}