Алгоритм и его свойства

Определение понятия "алгоритм". Изображение схемы алгоритма. Разработка схемы действий и этапы решения задач. Рассмотрение функции разрабатываемого приложения. Распределение исходного кода по файлам проекта. Контрольный пример и описание результатов.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 28.09.2014
Размер файла 695,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

1. Алгоритм. Понятие алгоритма

2. Изображение алгоритма в виде схемы

3. Этапы решения задач

4. Разработка алгоритма

5. Функция разрабатываемого приложения

6. Распределение исходного кода по файлам проекта

7. Контрольный пример и описание результатов

Заключение

Список литературы

1. Алгоритм. Понятие алгоритма

Понятие алгоритма -- одно из основных в программировании и информатике [1]. Это последовательность команд, предназначенная исполнителю, в результате выполнения которой он должен решить поставленную задачу. Алгоритм должен описываться на формальном языке, исключающем неоднозначность толкования. Исполнитель может быть человеком или машиной. Исполнитель должен уметь выполнять все команды, составляющие алгоритм. Множество возможных команд конечно и изначально строго задано. Действия, выполняемые по этим командам, называются элементарными.

Запись алгоритма на формальном языке называется программой. Иногда само понятие алгоритма отождествляется с его записью, так что слова "алгоритм" и "программа" -- почти синонимы. Небольшое различие заключается в том, что под алгоритмом, как правило, понимают основную идею его построения. Программа же всегда связана с записью алгоритма на конкретном формальном языке.

Алгоритм обладает следующими основными свойствами, раскрывающими его определение:

· Дискретность (в данном случае, разделенность на части) и упорядоченность. Алгоритм должен состоять из отдельных действий, которые выполняются последовательно друг за другом.

· Детерминированность (однозначная определенность). Многократное применение одного алгоритма к одному и тому же набору исходных данных всегда дает один и тот же результат.

· Формальность. Алгоритм не должен допускать неоднозначности толкования действий для исполнителя.

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

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

2. Изображение алгоритма в виде схемы

При разработке алгоритма для представления его промежуточных вариантов часто используют язык схем.

Схемой называется наглядное графическое изображение алгоритма, когда отдельные действия (этапы) алгоритма изображаются при помощи различных геометрических фигур (блоков), а связи между этапами (последовательность выполнения этапов) указываются при помощи линий, соединяющих эти фигуры.

Схема позволяет наглядно представить структуру алгоритма. В частности, на схеме хорошо видны циклы: это последовательности этапов, после последнего из которых осуществляется возврат к началу последовательности (на схеме - замкнутые участки). Схемы обычно используются для изображения промежуточных вариантов алгоритма. Окончательный вариант, предназначенный для исполнителя - ЭВМ (программа). Должен быть записан на алгоритмическом языке.

В настоящее время существует технология разработки программ без использования схему. Однако независимо от этого на начальном этапе изучения программирования использование схем при разработке алгоритма целесообразно. Использование схем обеспечивает приобретение прочных навыков разработки алгоритмов с использованием типовых структур алгоритмов, являющихся основой так называемого структурного подхода, особенно плодотворного при постановке и решения на ЭВМ сложных задач.

Алгоритмические языки близки к естественному языку. Именно такая цель ставилась при их разработке. Однако правила построения конструкций в алгоритмическим языке более "жесткие". Это означает, что алгоритмические языки допускают меньшее разнообразие для описания действий алгоритма, чем естественный язык и привычная математическая символика, и машина однозначно понимает любую конструкцию языка. Небольшие ошибки или описки. Допускаемые в предложениях естественного языка и не искажающие, на наш взгляд, смысла, совершенно недопустимы в алгоритмическом языке, где каждый символ и его место в конструкции имеют строго фиксированное значение.

3. Этапы решения задач

Первоначально ЭВМ были созданы для вычислений, но постепенно на ней стали решать задачи по физике, химии, биологии, управлению технологическими процессами, рисованию мультфильмов и т.д., т.е. для решения задач с математикой непосредственно не связанных. В общем случае выделяют несколько этапов в подготовке и решении задач на ЭВМ. На первом этапе анализируется условие задачи, определяются исходные данные и результаты, устанавливается зависимость между величинами, рассматриваемыми в задаче. Некоторые задачи имеют множество способов решения, поэтому необходимо выбрать способ решения (сделать постановку задачи, составить модель задачи). Для этого необходимо определить математические соотношения между исходными данными и результатом. Выполнив перевод задачи на язык математики, получают математическую модель.

Второй этап заключается в составлении алгоритма решения задачи по выбранной модели.

На третьем этапе алгоритм записывается на языке программирования и полученная программа вводится в ЭВМ. Далее проводится отладка программы, т.е. поиск и ошибок. Различают логические и семантические ошибки. Семантические ошибки возникают, когда программист неправильно записывает конструкции языка программирования. Семантические ошибки отыскать легче, т. к. современные трансляторы языков программирования способны их выявить. Логические ошибки возникают, когда инструкции записаны правильно, но последовательность их выполнения дает неверный результат.

Далее проводится тестирование, которое заключается в запуске программы с использованием контрольных примеров - тестов. Тесты выбирают таким образом, чтобы при работе с ними программа прошла все возможные ветви алгоритма, поскольку на каждом из них могут быть свои ошибки.

После отладки и тестирования программа выполняется с реальными исходными данными и проводится анализ полученных результатов, т.е. сопоставление их с экспериментальными фактами, теоретическими воззрениями и другой информацией об изучаемом объекте. Если результаты работы программы не удовлетворяют пользователей по каким-либо параметрам, то производится уточнение модели. При уточнении модели правится алгоритм программы, снова проводятся отладка, тестирование, расчеты и анализ результатов. Так продолжается до тех пор, пока результаты работы программы не будут удовлетворять знаниям об изучаемом объекте.

Общая схема решения задач с помощью ЭВМ выглядит так:

Язык C#.

Объектно-ориентированное программирование.

Основным понятием C# является объектно-ориентированное программирование(ООП). Методика ООП неотделима от C#, и поэтому все программы на C# являются объектно-ориентированными хотя бы в самой малой степени. В связи с этим очень важно и полезно усвоить основополагающие принципы ООП, прежде чем приступать к написанию самой простой программы на C#.

ООП представляет собой эффективный подход к программированию. Методики программирования претерпели изменения с момента изобретения компьютера, постепенно приспосабливаясь, главным образом, к повышению сложности программ. Когда, например, появились первые ЭВМ, программирование заключалось в ручном переключении на разные двоичные машинные команды с переднего пульта управления ЭВМ. Такой подход был вполне оправданным, поскольку программы состояли всего из нескольких сотен команд. Дальнейшее усложнение программ привело к разработке языка ассемблера, который давал программистам возможность работать с более сложными программами, используя символическое представление отдельных машинных команд. Постоянное усложнение программ вызвало потребность в разработке и внедрении в практику программирования таких языков высокого уровня, как, например, FORTRAN и COBOL, которые предоставляли программистам больше средств для того, чтобы как-то справиться с постоянно растущей сложностью программ. Но как только возможности этих первых языков программирования были полностью исчерпаны, появились разработки языков структурного программирования, в том числе и С.

На каждом этапе развития программирования появлялись методы и инструментальные средства для обуздания неуклонно растущей сложности программ. И на каждом таком этапе новый подход вбирал в себя все самое лучшее из предыдущих, знаменуя собой прогресс в программировании. Это же можно сказать и об ООП. До ООП многие проекты достигали (а иногда и превышали) предел, за которым структурный подход к программированию оказывался уже неработоспособным. Поэтому для преодоления трудностей, связанных с усложнением программ, и возникла потребность в ООП.

ООП вобрало в себя все самые лучшие идеи структурного программирования, объединив их с рядом новых понятий. В итоге появился новый и лучший способ организации программ. В самом общем виде программа может быть организована одним из двух способов: вокруг кода (т.е. того, что фактически происходит) или же вокруг данных (т.е. того, что подвергается воздействию). Программы, созданные только методами структурного программирования, как правило, организованы вокруг кода. Такой подход можно рассматривать как "как код, воздействующий на данные".

Совсем иначе работают объектно-ориентированные программы. Они организованы вокруг данных, исходя из главного принципа: "данные управляют доступом к коду". В объектно-ориентированном языке определяются данные и код, которому разрешается воздействовать на эти данные. Следовательно, тип данных точно определяет операции, которые могут быть выполнены над данными. Для поддержки принципов ООП все объектно-ориентированные языки программирования, в том числе и С#, должны обладать тремя общими свойствами:

· Инкапсуляцией; Инкапсуляция - это механизм программирования, объединяющий вместе код и данные, которыми он манипулирует, исключая как вмешательство извне, так и неправильное использование данных.

· Полиморфизмом; Полиморфизм (по гречески "множество форм") - это свойство, позволяющее одному интерфейсу получать доступ к общему классу действий.

· Наследованием; Наследование-представляет собой процесс, входе которого один объект приобретает свойства другого объекта.

4. Разработка алгоритма

Разработка стратегии:

1. Разработка формы для отображения данных.

2. Разработка метода, для разумного и правильного хода противника

3. Разработка более продуманного интерфейса программы посредством WindowsFormApplication.

4. Придание каждой кнопке интерфейса свое собственное действие: сделать ход, анализ данных, вывод.

5. Вывод очков на экран.

Для написания программы использовались:

· Алфавит языка, или его символы - это основные неделимые знаки, с помощью которых пишутся все тексты на языке

· Лексемы, или элементарная конструкция, - минимальная единицы языка, имеющая самостоятельный смысл

· Выражения задают правило вычисления некоторых значений

· Операторы задают законченное описание некоторого действия

· Константы - неизменные величины

· Комментарии

· Основные типы данных - внутреннее представление данных в памяти компьютера или множество значений, которые могу принимать величины этого типа или операции и функции, которые можно применять к величинам этого типа

· Переменные - это именованная область памяти, в которой хранятся данные определенного типа

· Унарные операции (++,--…), бинарные и тернарные операции (+,-,<,==…)

· Операторы выражения, ветвления, цикла, передачи управления.

· Указатели и массивы

· Классы - являются абстрактным типом данных, определяемым пользователем, и представляет собой модель реального объекта. Данные класса называются полями, а функции класса - методами. Поля и методы называются элементами класса.

5. Функция разрабатываемого приложения

алгоритм схема код файл

· Запуск игры (приложения) "X/0"

· Искусственный соперник, который обдуманно делает ходы

· Счет побед (пользователь/соперник)

· Новая игра

· Выход из игры

Варианты использования

Приложение используется для игры в "Крестики-нолики".

1. dataGridView1 - поле, в которое вводятся данные с помощью клика мышки, а именно "Х","O".

2. label1 - текст, который показывает количество побед пользователя.

3. Label2 - текст, предназначенный для знака ":".

4. Label3 - текст, в который показывает количество побед компьютера.

5. menuStrip1 - меню, в котором содержаться подзаголовки "игроToolStripMenuItem", "выходToolStripMenuItem", "справкаToolStripMenuItem", "оПрограммеToolStripMenuItem"

Есть три исхода игры:

1. Победа игрока.

2. Победа компьютера

3. Ничья

Победа игрока

Когда игрок победил, ему начисляется 1 очко.

Победа компьютера

Когда игрок проиграл, то компьютеру начисляется 1 балл

В случае ничьи никто из игроков не получает баллы.

Описание классов, их полей и методов

class X0 Поля класса: string массив, int индексы массивов; Виртуальный метод Step:

1. считывает данные с "dataGridView1.Rows[i].Cells[j]"

2. все данные переносит в массив массивов "W[i][j]"

3. проверяет количество "X", "0" в строках/столбцах/диагоналях

4. возвращает значение, исходя из полученных данных

class X0 Поля класса: string массив, int индексы массивов; Переопределяющий метод Conv: конвертирует индексы массива "W[i][j]", чтобы в массиве "A[i,z]" не было выхода за пределы массива.

Описание переменных

Namespace: System.Windows.Forms

· DataGridView - отвечает за отображение данных

· Label1,2,3 - отвечает за счет игры

· ToolStripMenu - отвечает за функции программы

· MessageBox - показывает кто победитель и правила игры

Методы, локальные и глобальные переменные в Form.cs

· i,j - переменные счетчика цикла

· s[,] - двумерный массив, служащий для передачи данных из dataGridView1.Rows[i].Cells[j] в метод Step.

· X0.Step(ref s) - класс X0, метод Step, который возращает 1, 2 или 3

Методы, локальные и глобальные переменные в X0.cs

В данной библиотеке классов есть 2 метода (Conv, Step).

· W[i][j] - массив массивов, служит для более удобной работой с массивом 3х3

· i,j,z - переменные счетчика цикла

· k - считывает сколько крестиков или ноликов находится в строке/диагонале

· ran - Random, служит для случайной постановки нолика.

· ir и jr - индексы массива массивов(от 0 до 3), нужны для случайного хода.

· n и m - параметры, которые нужны, чтобы не было выхода за пределы массива

· Conv(ref i, ref z) - метод, которые меняет значение i и z

6. Распределение исходного кода по файлам проекта

a. Проект Main

Является запускаемым проектом.

Содержит ссылки на проекты Library.

Основное окно приложения, реализующее отображение выходных данных и основные элементы управления:

· Новая игра

· О программе

· Выход

b. Проект Library

Библиотека классов приложения, организующая взаимоотношения между классом, его методами.

7. Контрольный пример и описание результатов

1. запустим приложение

2. при нажатии "О программе" появиться окно с правилами игры

3. нажимая на ячейки, появляется "X", следом ходит противник "0" (компьютер делает обдуманный шаг)

4. выигрыш или проигрыш пользователя

5. можно посмотреть счет побед

6. при нажатии на "Новая игра" игра начинается заново

7. выход из приложения

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

c. Код библиотеки классов X0

1. public static void Conv(ref int n,ref int m)

2. {

3. //n=i, m=z

4. for (int i = 0; i < 3; i++) if (n == 3 && m == i) { m = 0; n = i; };

5. for (int i = 0; i < 3; i++) if (n == 4 && m == i) { m = 1; n = i; };

6. for (int i = 0; i < 3; i++) if (n == 5 && m == i) { m = 2; n = i; };

7. for (int i = 0; i < 3; i++) if (n == 6 && m == i) { m = i; n = i; };

8. for (int i = 0; i < 3; i++) if (n == 7 && m == i) { m = 2-i; n = i; };

9.

10. // 00 01 02

11. // 10 11 12

12. // 20 21 22

13.

14. }

15. public static int Step(ref string[,] A)

16. {

17. string[][] W = new string[8][];

18.

19. //все линии -> массивы (массив массивов)

20. for (int i = 0; i < 3; i++) // по строкам

21. {

22. W[i] = new string[3];

23. for (int j = 0; j < 3; j++)

24. {

25. W[i][j] = A[i, j];

26. }

27. }

28.

29. for (int j = 0; j < 3; j++) //по столбцам

30. {

31. W[j+3] = new string[3];

32. for (int i = 0; i < 3; i++)

33. {

34. W[j + 3][i] = A[i, j];

35. }

36. }

37. W[6] = new string[3]; //главня диаг.

38. for (int i = 0; i < 3; i++)

39. {

40.

41. W[6][i] = A[i, i];

42. }

43. W[7] = new string[3]; //диаг

44. for (int i = 0; i < 3; i++)

45. {

46.

47. W[7][i] = A[i, 2-i];

48. }

49. //проверяем победы

50. for (int i = 0; i < 8; i++)

51. {

52. if (W[i][0] == "x" && W[i][1] == "x" && W[i][2] == "x") return 1; //PLAYER WIN

53. if (W[i][0] == "o" && W[i][1] == "o" && W[i][2] == "o") return 2; //COMP WIN

54. }

55. //если 2 нолика -> третий : COMP WIN

56. for (int i = 0; i < 8; i++)

57. {

58. int k = 0;

59. for (int j = 0; j < 3; j++)

60. {

61. if (W[i][j] == "o") ++k;

62. }

63. if (k == 2)

64. {

65. for (int z = 0; z < 3; z++) if (W[i][z] == "")

66. {

67. Conv(ref i, ref z);

68. A[i, z] = "o"; return 2;

69. }

70. }

71. }

72. //если 2 крестика -> закрываем

73. for (int i = 0; i < 8; i++)

74. { int k=0;

75. for (int j = 0; j < 3; j++)

76. {

77. if (W[i][j] == "x") ++k;

78. }

79. if (k == 2) { for (int z = 0; z < 3; z++) if (W[i][z] =="") {Conv(ref i, ref z);

80. A[i, z] = "o"; return 0; } }

81.

82. }

83. //если есть один О -> ещё О

84. for (int i = 0; i < 8; i++)

85. {

86. int k = 0, n = 0;

87. for (int j = 0; j < 3; j++)

88. {

89. if (W[i][j] == "o") ++k; if (W[i][j] == "") ++n;

90. }

91. if (k == 1&&n==2) { for (int z = 0; z < 3; z++) if (W[i][z] =="") {Conv(ref i, ref z);

92. A[i, z] = "o"; return 0; } }

93.

94. }

95.

96. //случайно ставим O

97. bool e = false;

98. for (int i = 0; i < 3; i++)

99. for (int j = 0; j < 3; j++)

100. if (A[i, j] != "o" && A[i, j] != "x") e = true;

101. if (e == false) return 3;

102. else

103. {

104. Random ran = new Random();

105. int ir = ran.Next(3); int jr = ran.Next(3);

106. if (A[ir, jr] != "o" && A[ir, jr] != "x") { A[ir, jr] = "o"; return 0; }

107. else

108. while (A[ir, jr] == "o" || A[ir, jr] == "x") { ir = ran.Next(3); jr = ran.Next(3); }

109. A[ir, jr] = "o"; return 0;

110. }

111.

112.

113. }

114.

115.

116. }

117. }

d. Код Form1(Main)

1. public partial class Form1 : Form

2. {

3. public Form1()

4. {

5. InitializeComponent();

6. dataGridView1.RowTemplate.Height = 95;

7. dataGridView1.RowCount = 3;

8. dataGridView1.ColumnCount = 3;

9. for (int i = 0; i < 3; i++)

10. for (int j = 0; j < 3; j++)

11. dataGridView1.Rows[i].Cells[j].Value = "";

12. }

13.

14.

15.

16.

17. private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

18. {

19.

20. }

21.

22. private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

23. {

24.

25.

26. if (dataGridView1.CurrentCell.Value != "") return;

27.

28. dataGridView1.CurrentCell.Value = "x";

29. string[,] s = new string[3, 3];

30. for (int i = 0; i < 3; i++)

31. for (int j = 0; j < 3; j++)

32. s[i, j] = dataGridView1.Rows[i].Cells[j].Value.ToString(); //в массив dataGridView1

33.

34. switch (X0.Step(ref s))

35. {

36.

37. case 0:

38. for (int i = 0; i < 3; i++)

39. for (int j = 0; j < 3; j++)

40. {

41. dataGridView1.Rows[i].Cells[j].Value = s[i, j];

42. if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

43. }

44. break;

45. case 1: for (int i = 0; i < 3; i++)

46. for (int j = 0; j < 3; j++)

47. {

48. dataGridView1.Rows[i].Cells[j].Value = s[i, j];

49. if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

50. }

51. label2.Text = (int.Parse(label2.Text) + 1).ToString(); MessageBox.Show("Вы выйграли!", "Ура!");

52. for (int i = 0; i < 3; i++)

53. for (int j = 0; j < 3; j++)

54. { dataGridView1.Rows[i].Cells[j].Value = ""; dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Red; }

55. break;

56. case 2: for (int i = 0; i < 3; i++)

57. for (int j = 0; j < 3; j++)

58. {

59. dataGridView1.Rows[i].Cells[j].Value = s[i, j];

60. if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

61. }

62. label3.Text = (int.Parse(label3.Text) + 1).ToString(); MessageBox.Show("Вы проиграли!", "Увы!");

63. for (int i = 0; i < 3; i++)

64. for (int j = 0; j < 3; j++)

65. {dataGridView1.Rows[i].Cells[j].Value = ""; dataGridView1.Rows[i].Cells[j].Style.ForeColor=Color.Red;} break;

66. case 3: for (int i = 0; i < 3; i++)

67. for (int j = 0; j < 3; j++)

68. {

69. dataGridView1.Rows[i].Cells[j].Value = s[i, j];

70. if (dataGridView1.Rows[i].Cells[j].Value == "o") dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Blue;

71. } MessageBox.Show("Ничья!", "Жаль...");

72. for (int i = 0; i < 3; i++)

73. for (int j = 0; j < 3; j++)

74. {dataGridView1.Rows[i].Cells[j].Value = ""; dataGridView1.Rows[i].Cells[j].Style.ForeColor=Color.Red;} break;

75.

76. }

77.

78.

79.

80. }

81.

82. private void label2_Click(object sender, EventArgs e)

83. {

84.

85. }

86.

87. private void label3_Click(object sender, EventArgs e)

88. {

89.

90. }

91.

92. private void Form1_Load(object sender, EventArgs e)

93. {

94.

95. }

96.

97. private void label4_Click(object sender, EventArgs e)

98. {

99.

100. }

101.

102.

103.

104. private void выходToolStripMenuItem_Click(object sender, EventArgs e)

105. {

106. Application.Exit();

107. }

108.

109. private void игроToolStripMenuItem_Click_1(object sender, EventArgs e)

110. {

111. for (int i = 0; i < 3; i++)

112. for (int j = 0; j < 3; j++)

113. {

114. dataGridView1.Rows[i].Cells[j].Value = "";

115. label2.Text = "0"; label3.Text = "0";

116. }

117. }

118.

119. private void ToolStripMenuItem_Click(object sender, EventArgs e)

120. {

121.

122. }

123.

124. private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

125. {

126. MessageBox.Show("Правила игры: \nИгроки по очереди ставят на свободные клетки поля 3х3 знаки (один всегда крестики, другой всегда нолики). Первый, выстроивший в ряд 3 своих фигуры по вертикали, горизонтали или диагонали, выигрывает. Первый ход делает игрок, ставящий крестики.", "Крестики-нолики");

127.

128. }

129. }

130. }

Заключение

Разрабатывать, придумывать алгоритмы могут только разумные существа (например, человек). А вот формально (не думая и не оценивая) исполнять, могут какие-либо машины (например, компьютеры, бытовые приборы). В чем польза такого разделения труда? Дело в том, что человек освобождается от рутинной деятельности, которая часто может занимать много времени, и поручает ее машинам.

Однако машины не люди: приборы понимают лишь ограниченное число команд и могут обрабатывать данные (объекты) далеко не всех типов. Отсюда следует, что разработчик алгоритма в конечном итоге должен описать алгоритм в допустимых командах определенного исполнителя (той машины, которой будет поручено выполнение алгоритма). Совокупность команд, которые данный исполнитель может выполнять, называется системой команд исполнителя. Объекты (данные), над которыми исполнитель может выполнять действия, формируют среду исполнителя.

Список литературы

1. Угринович Н.Д. Информатика и информационные технологии. М.: БИНОМ, Лаборатория знаний, 2008 г;

2. Акулов О.А., Медведев Н.В. Информатика, М.: АСТ-ПРЕСС, Инфорком-Пресс, 2009 г;

3. Информатика и информационно-коммуникационные технологии Учебник / Под ред. проф. Н.В. Макаровой. - М.: 2011 г;

4. Л.З. Щауцукова, Информатика, под ред. Т.А. Бурмистрова. М: Просвещение, 2010 г;

5. Гейн А.Г., Григорьев С.Г. Информатика и информационные технологии. / Урал, 2008 г;

6. Информатика. Вычислительная техника. Крылов С.С., Лешинер И.Р., Якушкин П.А., 2009 г;

7. Алексеев А.П. Информатика и ИКТ 2001. - М.: СОЛОН-Р, 2001. - 364 с. В.А. Лебедев -- Уфа, 2007 г;

8. Информатика и компьютерная техника, Базовый курс / С.В. Симонович и др. - СПБ.: Питер, 2009 640 с;

9. Информатика: Учеб. пособие для студ. Вузов / А.В. Могилев, Н.И. Пак, Е.К. Хённер; Под ред. Е.К. Хённера. - М., 2011 г. - 816 с;

10. Острейковский В.А., Информатика, М., "Высшая школа", 2010 г. В.Г. Олифер;

11. Компьютерные сети, СПб., "Питер", 2010 г. Н.А. Олифер, Н.В. Макарова.

Размещено на Allbest.ru


Подобные документы

  • Разработка программной реализации для решения задач бесприоритетного и приоритетного распределений. Контрольный пример решения задачи бесприоритетного распределения со структурой иерархии 5-4-2. Алгоритм расчета задачи одноресурсного распределения.

    курсовая работа [2,3 M], добавлен 05.01.2013

  • Алгоритм как четкая последовательность действий, направленная на решение задачи. Свойства алгоритмов и их характеристика. Способы описания алгоритма. Понятия алгебры логики. Логические переменные, их замена конкретными по содержанию высказываниями.

    презентация [337,7 K], добавлен 18.11.2012

  • Создание блок-схемы алгоритма и реализующей его программы, снабженных пояснениями, для решения задач. Реализация программы в среде Delphi как проекта консольного приложения. Основные алгоритмические структуры, соответствующие операторы для их реализации.

    контрольная работа [447,4 K], добавлен 08.10.2012

  • Основные этапы и принципы решения задач на ЭВМ, порядок постановки задачи и построения алгоритма. Сущность теории алгоритмов, ее основные элементы и взаимосвязь, свойства, методика представления в виде схемы, ее обозначения и использующиеся символы.

    лекция [136,3 K], добавлен 11.03.2010

  • Описание алгоритма и исходного кода программы формирования графовой модели заданного фрагмента принципиальной электрической схемы. Разработка схемы алгоритмов решения задачи. Результаты решения контрольных примеров, выполненные с помощью программы.

    контрольная работа [47,8 K], добавлен 14.10.2012

  • Особенности применения компьютерных программ Pascal, Excel, MathCAD и Delphi для вычисления значения функции y(x) с заданным промежутком и шагом. Виды результатов вычислений, их сравнение и вывод. Изображение блок-схемы алгоритма решения задания.

    контрольная работа [760,0 K], добавлен 08.03.2011

  • Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.

    курсовая работа [527,1 K], добавлен 27.09.2014

  • Обзор и комплексный анализ операционной системы Windows Vista, оценка ее преимуществ и недостатков. Разработка программы, которая реализует алгоритм очереди на 20 элементов. Построение блок-схемы и листинг алгоритма, контрольный пример его работы.

    курсовая работа [4,2 M], добавлен 20.11.2013

  • Методика разработки и листинг программы для управления динамиком системного блока, обеспечения установки частоты и длительности формируемых сигналов. Алгоритм и этапы работы проектируемого приложения, анализ полученных результатов. Пример его работы.

    лабораторная работа [79,0 K], добавлен 17.12.2015

  • Задачи, решаемые методом динамического программирования. Основные этапы нахождения деревянного алгоритма решения задачи. Выполнение алгоритма Прима. Построение Эйлерового цикла. Решение задач средствами Excel. Алгоритм основной программы - Derevo.

    курсовая работа [586,3 K], добавлен 04.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.