Лекция 1-2 2017 Основы С (Лекции (2017))

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

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

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

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

Текст из PDF

Программирование — это процесс создания (разработки) программы,который может быть представлен последовательностью следующих шагов:1. Спецификация (определение, формулирование требований)Разработка алгоритма2. Кодирование (запись алгоритма на языке программирования)3. Отладка4. ТестированиеДля решения любой задачи, необходимо выполнить следующие этапы:1.

Четко определить условия задачи, входные данные и какой результат долженбыть получено после решения задачи.2. Какие дополнительные данные необходимы для решения задачи.3. Составить блок-схему решения задачи и записать ее в виду удобногоописания.4. Анализ всех возможных проблем и усовершенствование алгоритма.Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.ax  bx  c  02Постановка• Входными данными для нашей задачи являются три коэффициента: a, b и c.• Решение задачи предполагает вычисление возможных корней уравнения.• Так как количество корней возможно от 0 до 2, то необходимо в качестверешения указать количество корней и собственно перечислить их.Дополнительные данные• При решении квадратного уравнения необходимо вычислить значениедискриминанта. В нашей задаче, дискриминант является промежуточнымрезультатом, необходимым для решения задачи.Описание блок-схемы может производиться спомощью различных средств и обозначений.Основной принцип заключается в наглядностишагов исполнения и однозначности переходовпри ветвлении.Курс «Основы программирования».

НГУ, ФФ, 2017Лысаков К.Ф.ax  bx  c  02Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.ax  bx  c  02Анализ созданной блок-схемы решения задачи.При этом необходимо ответить на два вопроса:1. Будет ли схема корректно работать во всем диапазоне входныхпараметров?2. Возможны ли оптимизации, которые позволят ускоритьпроцесс выполнения задачи?При анализе совершаемых действий, очевидно, что при значениикоэффициента a = 0, происходит деление на 0! В качестве решенияданной ситуации можно предложить два основных метода:1. Добавить проверку корректности введенных пользователемзначений, и при вводе а=0, выдавать сообщение об ошибке:«Уравнение не является квадратным!».2.

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

На приведенной выше схеме,дублированным действием является извлечение квадратногокорня из дискриминанта.Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.Порядок создания программы1. Верстка исходного кодаДля написания исходного кода (текста) программы можно использовать обычные редакторы. Некоторые редакторы имеютвозможность подсветки синтаксиса и дополнительные расширения, которые превращают их в компактные IDE (Geany, KWrite, Gedit,Notepad++). Но лучшим решением будет использовать полноценные интегрированные среды разработки — IDE (IntegratedDevelopment Environment).2. КомпиляцияИспользуемый компилятор транслирует исходный код программы в объектный, машинно-ориентированный, код.

Созданный врезультате компиляции исполняемый модуль привязан как к данной платформе, так и к типу процессора. Компиляция завершитсяуспешно, если в программе не будут обнаружены синтаксические ошибки, в противном случае, компилятор выдаст сообщение обошибке и остановит свою работу.3. КомпоновкаКомпоновщик (он же линкер) завершает сборку программы объединяя (связывая) объектный код программы с объектным кодомбиблиотек в финальный продукт — исполняемый код.4.

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

По окончании строк, обозначающих директивы вязыке Си, точку с запятой можно не ставить.#include#define#undef#if#ifdef#ifndef#else#elif#endif#line#error#pragmaвставляет текст из указанного файлазадаёт макроопределение (макрос) или символическую константуотменяет предыдущее определениеосуществляет условную компиляцию при истинности выраженияосуществляет условную компиляцию при определённостиосуществляет условную компиляцию при неопределённостиветка условной компиляции при ложности выраженияветка условной компиляции, образуемая слиянием else и ifконец ветки условной компиляциипрепроцессор изменяет номер текущей строки и имя файлавыдача диагностического сообщениядействие, зависящее от конкретной реализации компилятора.Курс «Основы программирования».

НГУ, ФФ, 2017Лысаков К.Ф.ПрепроцессорДиректива #include позволяет включать в текст программы указанный файл.Если файл является стандартной библиотекой и находится в папке компилятора, онзаключается в угловые скобки.Если файл находится в текущем каталоге проекта, он указывается в кавычках. Дляфайла, находящегося в другом каталоге необходимо в кавычках указать полный путь.#include <stdio.h>#include "func.c"Директива #define позволяет вводить в текст программы константы имакроопределения.Идентификатор не заменяется, если он находится в комментарии, в строке или какчасть более длинного идентификатора.#define A 280U // unsigned int#define B 280LU // unsigned long int#define C 280 // int (long int)#define D 280L // long int#define K 28.0 // double#define L 28.0F // float#define M 28.0L // long doubleКурс «Основы программирования».

НГУ, ФФ, 2017#define SIN(x) sin(PI*x/180)Лысаков К.Ф.Основы языка С. ПеременныеПеременная — это именованная область памяти, в которую могут бытьзаписаны различные значения.Тип данных – определяет значения:• char— целое значение, 8 бит (диапазон от –128 до 127);• int— целое значение, обычно 4 байта, зависит от платформы;• float— вещественные числа;• double— вещественные числа удвоенной точности.Имя переменной – набор символов для обращения к значению переменной.Объявление переменной – устанавливает свойства объекта: его тип(например, целый), размер (например, 4 байта) и т.д. Определение наряду сэтим вызывает выделение памяти для хранения данных.int a;float my, w;char ch;double lenght;Курс «Основы программирования». НГУ, ФФ, 2017!Начальное значениене определеноЛысаков К.Ф.Основы языка С.

ПеременныеИнициализация переменных— процесс присвоение первоначального значенияfloat b;b = 0.78;int a = 5;Варианты присвоения значенийint a, b, c;a = 15;b = a;c = a = b;Преобразование типовint a;float b;a = (int)b;Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.Основы языка С. Понятия.Оператор - это наименьшая исполняемая единица программы.Для обозначения конца оператора в языке Си используется точка с запятойБлок - набор логически связанных операторов, помещенных междуоткрывающей { и закрывающей } фигурными скобками. После блока ; не ставится{int a = 5;int b, c;c = a + b;c = a - b;c = a * b;c = a / b;}!!!Объявление переменных происходитв начале блока! (*)Оператора возведения в степень (^)в языке Си НЕ СУЩЕСТВУЕТ!При делении учитываются типыпеременных a и b (*)Курс «Основы программирования». НГУ, ФФ, 2017Лысаков К.Ф.Основы языка С.

Вывод данных.Функция printf( ) (прототип содержится в файле stdio.h)обеспечивает форматированный вывод.рrintf ("управляющая строка", аргумент _1, аргумент _2,...);Управляющая строка содержит компоненты трех типов:• обычные символы, которые копируются в стандартный выходной поток (на экран дисплея);• спецификации преобразования;• управляющие символьные константы.Каждая спецификация преобразования начинается со знака % и заканчивается некоторымсимволом, задающим преобразование:• с - значением аргумента является символ• d или i - значением аргумента является десятичное целое число• е - значением аргумента является вещественное десятичное число в экспоненциальной формевида 1.23e+2• f - значением аргумента является вещественное десятичное число с плавающей точкой• s - значением аргумента является строкаint a = 5;printf("%d", a);float b = 0.755;printf("%f", b);Курс «Основы программирования».

НГУ, ФФ, 2017printf("Hello World");Лысаков К.Ф.Основы языка С. Вывод данных.рrintf ("управляющая строка", аргумент _1, аргумент _2,...);Управляющая строка содержит компоненты трех типов:• обычные символы, которые копируются в стандартный выходной поток• спецификации преобразования• управляющие символьные константыСреди управляющих символьных констант наиболее часто используются следующие:\а - для кратковременной подачи звукового сигнала\b - для перевода курсора влево на одну позицию\n - для перехода на новую строку\r - для возврата каретки\t - горизонтальная табуляция\v - вертикальная табуляция\\ - вывод символа \printf("Hello World\n");int a = 5;printf("\tMy number is\n%d\n", a);Курс «Основы программирования».

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