Давайте узнаем, что такое алгоритм, и какие существуют виды его исполнителей.
Алгоритм – это описание последовательности шагов в решении задачи, приводящих от исходных данных к требуемому результату.
Исполнитель - это объект выполнять алгоритмы с набора команд
Процесс создания алгоритмов называется –алгоритмизацией.
Всякий алгоритм составляется в расчете на определенного исполнителя. Им может быть человек, робот, компьютер и др.
Исполнитель алгоритма – это человек или автоматическое устройство, которое воспринимать и исполнять алгоритм.
Запишите исполнителей для приведённых ниже видов работ:
Уборка мусора во дворе – дворник
Перевозка пассажиров в поезде – машинист
Приём экзаменов в школе – учитель
Приготовление еды в ресторане – повар
Выполнение домашнего задания – ученик
Чтобы составить алгоритм для исполнителя, нужно знать, какие команды исполнитель может понять и исполнить, а какие нет.
Система команд исполнителя (СКИ) – это перечень элементарных предписаний (команд), которые исполнитель может исполнять.
Приведите еще примеры алгоритмов. ответы учащихся …
Из приведенных вами примеров видно, что мир алгоритмов очень разнообразен. Но, несмотря на это, можно выделить общие свойства, которыми обладает любой алгоритм.
Алгоритм обладает следующими свойствами:
Целенаправленность – любой алгоритм направлен на достижение определенной цели. Чаще всего целью алгоритма является получение результата при решении какой-нибудь задачи.
Дискретность– алгоритм состоит из элементарных предписаний (команд).
Понятность – элементарные предписания (команды) алгоритма должны быть точно сформулированы и однозначно понятны исполнителю, а исполнитель должен быть в состоянии их выполнить.
Однозначность – после исполнения очередного элементарного предписания (команды) исполнителю точно определено, что делать дальше.
Массовость – алгоритм можно использовать для решения той же задачи при других допустимых исходных данных.
Так как целевой язык НЕ указан, написал на C# (+ форматированный тест программы во вложениях. main.cs)
using System;
public class Test
{
/// <summary>
/// Метод для получения целого числа с клавиатуры
/// </summary>
/// <returns>Целое число, введённое с клавиатуры</returns>
public static int GetInt()
{
string input = Console.ReadLine();
return int.Parse(input);
}
/// <summary>
/// Метод для получения любого действительного числа с клавиатуры
/// </summary>
/// <returns>Действительное число, введённое с клавиатуры</returns>
public static double GetNumb()
{
string input = Console.ReadLine();
return double.Parse(input.Replace(",", "."));
}
/// <summary>
/// Точка входа в программу
/// </summary>
public static void Main()
{
//Получаем N
int N = 0;
for (; ; )
{
Console.Write("Введите количество цифр в последовательности - N: ");
try
{
N = GetInt();
break;
}
catch
{
Console.WriteLine("Некорректный ввод!\n");
}
}
// Создаём на основе полученного N массив чисел и заполняем его данными с клавиатуры
double[] A = new double[N];
for (int i = 0; i < N; ++i)
{
for (; ; )
{
Console.Write("A[{0}]: ", i + 1);
try
{
A[i] = GetNumb();
if (A[i] < -10000 || A[i] > 10000)
throw new Exception("Выход из диапазона");
break;
}
catch
{
Console.WriteLine("Некорректный ввод!\n");
}
}
}
// Задание 1
Console.Write("1) Числа, кратные 3, но НЕ кратные 5: ");
for (int i = 0; i < N; ++i)
if (A[i] % 3 == 0 && A[i] % 5 != 0)
Console.Write("{0} ", A[i]);
Console.WriteLine();
// Задание 2
Console.Write("2) Числа, входящие в диапазон: ");
for (int i = 0; i < N; ++i)
if (Math.Abs(A[i]) <= 100)
Console.Write("{0} ", A[i]);
Console.WriteLine();
// Задание 3
Console.Write("3) Количество НЕчётных чисел: ");
int K = 0;
for (int i = 0; i < N; ++i)
if (A[i] % 2 != 0) K++;
Console.WriteLine("{0}\n", K);
}
}