Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 4 2017 Строки, массивы, структуры

Лекция 4 2017 Строки, массивы, структуры (Лекции (2017)), страница 2

PDF-файл Лекция 4 2017 Строки, массивы, структуры (Лекции (2017)), страница 2 Программирование (85818): Лекции - 2 семестрЛекция 4 2017 Строки, массивы, структуры (Лекции (2017)) - PDF, страница 2 (85818) - СтудИзба2021-01-26СтудИзба

Описание файла

Файл "Лекция 4 2017 Строки, массивы, структуры" внутри архива находится в следующих папках: Лекции 2017, Лекции 2017. PDF-файл из архива "Лекции (2017)", который расположен в категории "". Всё это находится в предмете "программирование" из 2 семестр, которые можно найти в файловом архиве НГУ. Не смотря на прямую связь этого архива с НГУ, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

НГУ, ФФ, 2017???Лысаков К.Ф.Структурное программированиеВ 1968 году Эдсгер Вибе Дейкстраопубликовал свое знаменитое письмо«Оператор GoTo считается вредным»методология разработки программного обеспечения,в основе которой лежит представление программыв виде иерархической структуры блоков.Предложена в 1970-х годах Э. Дейкстрой и др.• Любая программа строится без использования оператора goto• Три базовых управляющих структуры: последовательность, ветвление, цикл• Использование подпрограмм (функций)• Разработка программы ведётся пошагово, методом «сверху вниз»Курс «Основы программирования».

НГУ, ФФ, 2017Лысаков К.Ф.Метод «сверху вниз»1. Сначала пишется текст основной программы, в котором, вместо каждого связногологического фрагмента текста, вставляется вызов подпрограммы.2. Вместо настоящих, работающих подпрограмм, в программу вставляются фиктивныечасти — заглушки.• заглушка удовлетворяет требованиям интерфейса заменяемого фрагмента(модуля), но не выполняет его функций или выполняет их частично.3. После того, как программист убедится, что подпрограммы вызываются вправильной последовательности (то есть общая структура программы верна),подпрограммы-заглушки последовательно заменяются на реально работающие.• разработка каждой подпрограммы ведётся тем же методом, что и основнойпрограммы.Такая последовательность гарантирует, что на каждом этапе разработки программистодновременно имеет дело с обозримым и понятным ему множеством фрагментов.При сопровождении и внесении изменений в программу выясняется, в какие именнопроцедуры нужно внести изменения.

Они вносятся, не затрагивая части программы,непосредственно не связанные с ними. Это гарантирует, что при внесении изменений иисправлении ошибок не выйдет из строя часть программы, находящаяся в данныймомент вне зоны внимания.Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.Постановка задачи0! Выяснить особенности поставленной задачи – сформулировать ТЗЗадача:Отсортировать введенной пользователеммассив и распечатать на экранУточнения:1. Какие данные, диапазон2.

Размер массива – кто задает3. Способ сортировки• Трудоемкость• Где хранить данные• Предварительные знания••••••••••••Целочисленные данныеДиапазон от -1000 до 5000Размер задает пользовательСкорость сортировки не важнаРезультат сортировки вотдельном массивеТип данных intХранение в виде динамического массиваРазмер задается с консолиДанные вводятся с консоли, необходим контроль диапазонаСоздание второго массива с результатамиСортировка пузырькомВывод массива на консольКурс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.1. Текст основной программы, в котором, вместо каждого связногологического фрагмента текста, вставляется вызов подпрограммы.void main(){int *pMas, *pResMas;int size, order;printf("Input size: ");scanf("%d", &size);pMas = AllocateMemory(size);•••••••Тип данных intХранение в виде динамического массиваРазмер задается с консолиДанные вводятся с консоли, контроль диапазонаСоздание второго массива с результатамиСортировка пузырькомВывод массива на консольInitAndCheckMassive(pMas, size, -1000, 5000);pResMas = AllocateMemory(size);printf("0 to ascending order, else 1");scanf("%d", &order);BubbleSort(pMas, pResMas, size, order);PrintMas(pResMas, size);free(pMas);free(pResMas);••••Имена переменныхИмена функцийЧитаемость кодаПонятность действий• Параметры ивозвращаемые значения• Контроль памяти}Курс «Основы программирования».

НГУ, ФФ, 2017Лысаков К.Ф.2. Добавление «заглушек» функцийint* AllocateMemory(size){int* p = NULL;заглушка удовлетворяетreturn p;требованиям интерфейса}заменяемого фрагмента (модуля),void InitAndCheckMassive(int* pMas, int size, int Min, int Max) но не выполняет его функций иливыполняет их частично{}void BubbleSort(int* pSrcMas, int* pResMas, int size, int order){}void PrintMas(int* pMas, int size){}Цель:void main()1. Компиляция{…….2. Сборка (линковка)pMas = AllocateMemory(size);3. Запуск программыInitAndCheckMassive(pMas, size, -1000, 5000);4.

Исполнение программы……pResMas = AllocateMemory(size);BubbleSort(pMas, pResMas, size, order);• Корректное завершение……PrintMas(pResMas, size);…….}Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.3. Заглушки дополняются необходимой функциональностьюint* AllocateMemory(int size){int* p = NULL;p = malloc(size * sizeof(int));return p;}void InitAndCheckMassive(int* pMas, int size, int Min, int Max){int i, flag;•for(i = 0; i < size; i++)•{•do{•printf("mas[%d] = ", i);scanf("%d", (pMas+i));if(*(pMas+i) >= Min && *(pMas+i) <= Max)•flag = 1;elseflag = 0;} while(!flag);}}Курс «Основы программирования».

НГУ, ФФ, 2017Имена переменныхИмена функцийЧитаемость кодаПонятность действийОбъем кода для однойфункции не долженпревышать видимойобластиЛысаков К.Ф.3. Заглушки дополняются необходимой функциональностьюvoid CopyData(int* pSrcMas, int* pDstMas, int size){разработка каждой}int Compare(int* pMas, int i, int j)// 1 [i] > [j]подпрограммы ведётся{// -1 [i] < [j]тем же методом, чтоint res = 0;// 0 [i] = [j]и основной программыreturn res;}void Replace(int* pMas, int i, int j){}void BubbleSort(int* pSrcMas, int* pResMas, int size, int order){int res, n, i;CopyData(pSrcMas, pResMas, size);for(n = 0; n < size-1; n++)for(i = 0; i < size-2; i++){res = Compare(pResMas, i, i+1);if(res == order)Replace(pResMas, i, i+1);}}комментарии=документацияКурс «Основы программирования».

НГУ, ФФ, 2017Лысаков К.Ф.При сопровождении и внесении изменений в программувыясняется, в какие именно процедуры нужно внестиизменения. Они вносятся, не затрагивая части программы,непосредственно не связанные с ними.void BubbleSort(int* pSrcMas, int* pResMas, int size, int order){int res, n, i;CopyData(pSrcMas, pResMas, size);for(n = 0; n < size-1; n++)for(i = 0; i < size-2; i++){res = Compare(pResMas, i, i+1);if(res == order)Replace(pResMas, i, i+1);}}Изменения в алгоритме сортировки(оптимизации)затрагивают только одну функциюКурс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.Никлаус Вирт (Niklaus Wirth, род.

15 февраля 1934 года)• швейцарский учёный, специалист в области информатики• один из известнейших теоретиков в области разработки языковпрограммирования• создатель и ведущий проектировщик языков программированияПаскаль, Модула-2, Оберон...«Инструмент долженсоответствовать задаче.Если инструмент несоответствует задаче, нужнопридумать новый, который бы ейсоответствовал, а не пытатьсяприспособить уже имеющийся»технология структурного программированияразработана, обоснована и внедрена в жизньВиртом, Дейкстрой и Хоаром.Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.ЛитератураНиклаус Вирт.Алгоритмы иструктуры данных.•••фундаментальные принципыпостроения эффективных инадежных программНа примерах прорабатываютсятрадиционные темыалгоритмики: сортировка ипоиск, рекурсия, динамическиеструктуры данныхпрограммы на языке Модула-2Брайан У.

Керниган,Деннис М. Ритчи.Язык программирования C.Дональд Эрвин Кнут.Искусство программирования.••••••фундаментальная монографияв 1999 году признана одной издвенадцати лучших физикоматематических монографийстолетиятом 1. Основные алгоритмы.том 2. Получисленные алгоритмы.том 3. Сортировка и поиск.том 4, A. Комбинаторныеалгоритмы…..Курс «Основы программирования». НГУ, ФФ, 2017•••Классическая книга по языку С,написанная самимиразработчиками этого языкаявляется как практическиисчерпывающим справочником,так и учебным пособиемКнига не рекомендуется длячтения новичкам (требует знанияоснов программирования ивычислительной техники)Лысаков К.Ф..

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