Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по программированию СУА.doc
Скачиваний:
12
Добавлен:
11.11.2019
Размер:
1.3 Mб
Скачать

1 Цели и задачи дисциплины

Дисциплина «Алгоритмические языки и программирование» преподается с целью формирования у студентов знаний и умений разработки программного обеспечения на языках С и С++ в современных средах программирования. В качестве базовой среды программирования определен VISUAL STUDIO 2005.

В результате изучения дисциплины студенты должны

Знать:

  • теоретические основы алгоритмизации и проектирования программ;

  • методы структурного программирования;

  • методы анализа и синтеза алгоритмов;

  • абстрактные типы данных;

  • динамические информационные структуры;

  • алгоритмы сортировки массивов.

  • теоретические основы проектирования программ в С++;

  • типы данных и операции в С++, их приоритет;

  • операторы ветвления и циклов С++;

  • разработку функций в С++;

  • организацию ввода-вывода в С++;

  • понятия указателя и ссылки, операции над ними, работу с динамической памятью;

  • основы объектно-ориентированного программирования;

  • проектирование и программирование классов в С++;

  • основные библиотеки функций и классов С++.

Уметь:

  • разрабатывать алгоритмы для решения широкого круга задач;

  • владеть методами сортировки и упорядочивания элементов массива;

  • формировать алгоритмы обработки текстовой информации;

  • проводить структурную декомпозицию задачи с целью формирования функций и процедур;

  • использовать в алгоритмах динамические структуры данных (деревья, очереди, стеки);

  • использовать приемы работы с динамическим выделением памяти, выполнять операции с указателями.

  • разрабатывать структуру программы в С++;

  • создавать программное обеспечение для вычислительных задач, обработки текстовой информации;

  • организовывать ввод-вывод как на экран, так и в файлы;

  • использовать приемы работы с динамическим выделением памяти, выполнять операции с указателями;

  • проектировать и программировать классы в С++, решать задачи с использованием библиотеки классов.

Контрольные вопросы:

    1. Что является предметом изучения по дисциплине «Алгоритмические языки и программирование»?

    2. Что должен знать студент, изучивший дисциплину «Алгоритмические языки и программирование»?

    3. Что должен уметь студент, изучивший дисциплину «Алгоритмические языки и программирование»?

2 Теоретические основы программирования

2.1 Основные сведения в области информатики Общее понятие алгоритма

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

В математике рассматриваются различные виды алгоритмов - программы для машин Тьюринга, алгоритмы Маркова (нормальные алгоритмы), частично рекурсивные функции и т.п. Знаменитый тезис Чёрча утверждает, что все виды алгоритмов эквивалентны друг другу, т.е. классы задач, решаемых разными типами алгоритмов, всегда совпадают. Тезис этот недоказуем (можно лишь доказать совпадение для двух конкретных типов алгоритмов, например, машин Тьюринга и нормальных алгоритмов), но никто в его верности не сомневается. Так что все языки программирования эквивалентны друг другу и различаются лишь тем, насколько они удобны для решения конкретных классов задач. Например, объектно-ориентированные языки оптимальны для программирования в оконных средах, а язык Фортран успешно применяется в научных и инженерных расчетах.

Большинство используемых в программировании алгоритмических языков имеют общие черты. В то же время, при изложении идеи алгоритма, например, при публикации в научной статье, не всегда целесообразно пользоваться каким-либо конкретным языком программирования, чтобы не загромождать изложение несущественными деталями. В таких случаях применяется неформальный алгоритмический язык, максимально приближенный к естественному. Язык такого типа называют псевдокодом. Для специалиста не составляет труда переписать программу с псевдокода на любой конкретный язык программирования. Запись алгоритма на псевдокоде зачастую яснее и нагляднее, она дает возможность свободно выбирать уровень детализации, начиная от описания в самых общих чертах и кончая подробным изложением.

Псевдокод объединяет существенные черты множества алгоритмических языков. Для записи алгоритмов в данном курсе будет использоваться как псевдокод, так и конкретные языки: Си, C++ и C#.