46760 (665624)

Файл №665624 46760 (Алгоритмы и структуры данных. Программирование в Cи)46760 (665624)2016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ТУЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ

ИМ. Л.Н. ТОЛСТОГО

Кафедра иностранных языков

РЕФЕРАТ

на право получения допуска к сдаче кандидатского экзамена

по иностранному языку

Тема: “Алгоритмы и структуры данных. Программирование в Cи”

Гордеев Вячеслав Валериевич, аспирант

кафедры информатики и вычислительной техники

ТГПУ им. Л.Н. Толстого

Материалы реферата: Grundlagen Computernetze, Prof. Jürgen Plate, FH München, FB 04, http://www.netzmafia.de/skripten/ad/index.html. р. 232.

Дата сдачи: апрель 2004 г.



Тула - 2004


Введение

Данная книга написана профессором Мюнхенского университета Юргеном Плате. Она входит в серию книг, посвященных информационным технологиям, которые выходят в рамках проекта «Netzmafia». Книга посвящена одному из главных разделов информатического образования - алгоритмизации и программированию и адресована тем, кто желает познакомиться и окунуться в мир алгоритмов и разработки программ. Она состоит из двух достаточно подробных лекций по темам «Алгоритмы и структуры данных» и «Программирование». В книге вводится понятие алгоритма и рассматриваются все необходимые понятия, связанные с алгоритмами. Затем обсуждаются принципы написания алгоритмов и составления программ на языке программирования Си.

Си – это структурный язык программирования высокого уровня, созданный в 1972 году Керниганом и Ритчи. Он создавался как язык для разработки операционной системы UNIX. Cи позволяет работать с данными практически так же эффективно, как на ассемблере (машинном языке), предоставляя при этом структурированные управляющие конструкции и абстракции высокого уровня (структуры и массивы). Именно с этим связана его огромная популярность и поныне. При этом компилятор C очень слабо контролирует типы, поэтому очень легко написать внешне совершенно правильную, но логически ошибочную программу.

Во введении Юрген Плате кратко рассказывает о структуре книги. Она состоит из двух основных частей – основных понятий алгоритмизации и основ программирования. Обе части достаточно тесно взаимосвязаны, так как при изучении основных понятий приходится прибегать к примерам решения задач на конкретных языках программирования, а при изучении программирования необходимо постоянно помнить основы алгоритмизации.

Автора побудило написать эту книгу ситуация, которая сложилась в мире создания программного обеспечения. Несмотря на то, что в последние годы в методике создания программного обеспечения сделан большой прогресс - появилась дисциплина программная инженерия (техника программного обеспечения), многие разработчики недостаточно квалифицированны в этой области. Поэтому необходимо лучше обучать искусству программирования. И эта книга в удобной форме излагает основные приемы программирования, что сопровождается большим количеством примеров на языке программирования С.

Каждый программист должен выполнять ряд правил при написании программ:

  • Основательно подумать перед тем, как нажимать на клавиши.

  • Иметь собственный стиль программирования.

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

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


1. Данные и алгоритмы

В этой главе автор собрал основной теоретический материал по алгоритмизации. Здесь представлен общий обзор как программного, так и аппаратного обеспечения. Но основной упор естественно делается на понятие алгоритма, способы записи алгоритмов, методы и этапы составления программ.

1.1 Основные понятия: сообщение и информация

В этом параграфе профессором рассматриваются следующие вопросы:

  • Что такое "информация"?

  • Что являются "сообщением"?

  • Как информация передается?

  • Как информация представляется?

Наряду с энергией и материей, информация – это базовое понятие универсального значения. В информатике понятие информации несколько отличается от обыденного. Информация – это знания о чем-либо. Сообщения служат для отображения информации.

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

После абстрактной информации автор переходит к конкретному отображению информации, сообщений. Для этого он приводит несколько определений:

  • Сообщение - набор символов для информационной передачи.

  • Символ - элемент символьного запаса, установленной конечной массы различных символов.

  • Алфавит - упорядоченный набор символов.

  • Слово - последовательность символов, которые рассматриваются в определенной связи в качестве единой величины.

Физически сообщения могут представляться через сигналы. При этом различаются аналоговые и цифровые сигналы. При аналоговых или непрерывных сигналах идет непрерывное распределение физической величины к объему информации сообщения, а при цифровых (дискретных) сигналах имеется только конечное число возможных состояний физической величины. Цифровая техника работает обычно с двумя значениями сигнала – 0 и 1.

1.2 Создание программного обеспечения (программирование)

Этот параграф Плате начинает с объяснения понятия алгоритм. Автор говорит о том, что алгоритмы должны разрабатываться не для специальных целей, а содержать шаги, которые нужно применять при решении определенного класса проблем, а не для отдельного примера.

Программа - это описание пути, исходя из определенных входных данных, к определенному результату или метод получения решения.

Отсюда выделяют следующие свойства алгоритмов:

  1. Полнота описания. Должна быть показана полная последовательность действий. Ссылки на неизвестную информацию должны отсутствовать.

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

  3. Корректность алгоритма. На практике корректность нужно подтверждать. Поэтому используются тесты, при которых уже известен для заявленных входных данных результат, и сравниваются затем данные с результатами.

  4. Эффективность описания и исполнения алгоритма.

После описания свойств необходимо дать достаточно краткое определение понятия алгоритм:

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

  1. Предписание описывается конечными средствами.

  2. Оно однозначно установленным способом для введенных данных выдает точный результат.

Далее Юрген Плате говорит о том, что программа состоит из конечного числа шагов и приводит конкретные примеры, наглядно это обосновывая. Для написания программ необходимо использовать особенные языки. Языки программирования - это нормированные языки, которые служат для описания инструкций обработки, структур данных, а также ввода и вывода данных.

Необходимо преобразовывать алгоритм всегда таким образом, чтобы выделять в нем "подалгоритмы". Теория разработки программного обеспечения основывается на этой идее. Сложные и комплексные структуры и виды деятельности реализуются известными структурами и более простыми подалгоритмами. Разработка и составление алгоритмов превратится в конструирование из готовых алгоритмов.

Простейший язык программирования состоит из системы команд. Это - встроенные команды, они сравнимы с командами микрокалькулятора, которые вы вызываете, нажимая клавиши. Этими командами можно выполнять арифметические операции и хранить результаты действий.

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

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

Программа на языке ассемблера - это последовательность команд, которые состоят из 2-4 букв и к которым прибавляются адреса ячеек памяти. Например, команда ADD R2, R6 складывает содержимого ячейки памяти R2 и содержимого R6 и сохраняет сумму в R6.

Однако со временем недостатки программирования на ассемблере становились все более очевидными: зависимость от модели компьютера, изобретение различных «трюков» в связи с ограниченными возможностями языка, трудность исправления ошибок, неудобная форма работы для человека. Это вело, в том числе, к развитию так называемых "более высоких языков программирования", которые более удобны для человека.

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

1.3 Алгоритмические языки

В этом разделе автор исследует, какие свойства должны иметь языки, которые используются для описания алгоритмов (алгоритмические языки). Речь идет о нормированных языках, которые служат описанию алгоритмов. Здесь Юрген Плате отвечает на 2 основных вопроса:

  • Как можно нормировать язык?

  • Что требуется для описания алгоритмов?

В результате нормирования естественного языка от многих вариаций сочетания остается только лишь единственная версия и сокращения с перестановками больше не допустимы.

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

"Более высокие" языки программирования как, например, BASIC, FORTRAN, Pascal или C разрабатывались, чтобы облегчить решение различных задач. Автор описывает разработчиков и назначение данных языков и особо останавливается на языках Pascal и C.

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

1.4 От проблемы до решения

В этом параграфе автор рассказывает о самом важном этапе создания программ - целях программирования: зачем и почему программное обеспечение должно создаваться и что должно уметь делать. Имеются минимум 2 участника процесса создания ПО: клиент и разработчик.

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

  • На следующем шаге разработчик предстает в роли дизайнера. Подобно архитектору он создает структуру программного обеспечения.

  • На 3 этапе он играет роль программиста.

  • На 4 этапе клиент испытывает программное обеспечение и рассчитывается.

Самая важная фаза при составлении алгоритма - это анализ постановки проблемы и размышление о решении. Эта часть требует больше времени, чем собственно работа с каким-либо языком программирования.

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

1.5 Развитие и изображение алгоритма

В этом параграфе Юрген Плате обращает внимание, что команды программы состоят из четырех основных структур: последовательностей, выбора, повторения и подпрограмм.

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

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

Характеристики

Тип файла
Документ
Размер
1,73 Mb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов реферата

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6559
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее