- •И.А. Васюткина основы алгоритмизации и программирования.
- •Содержание
- •1.Обзор языКа программирования с
- •2.Этапы создания программы
- •3.Структура программы на языке си
- •3.1. Внутренняя структура программы
- •3.2. Пример программы на си
- •4.Базовые элементы языка си
- •5.Данные в программе на си
- •5.1. Константы
- •5.2. Базовые стандартные типы переменных
- •6.2. Операции отношения
- •6.3. Логические операции
- •6.4. Операции с разрядами
- •6.5. Операции сдвига
- •6.6. Операция условия ?:
- •6.7. Преобразование типов
- •6.8. Операции приведения
- •6.9. Дополнительные операции присваивания
- •7.Операторы языка си
- •Оператор может быть простым и составным. Позволяет пропустить оператор или блок операторов, если условие ложно.
- •1.Схема выполнения оператора
- •8. Оператор множественного выбора
- •9. Операторы цикла while
- •8. Операторы безусловных переходов
- •8.Стандартные функции ввода и вывода
- •8.1. Функция вывода данных на экран printf ()
- •8.2. Модификаторы спецификаций преобразования
- •8.3. Функция ввода данных с клавиатуры sсanf()
- •8.4. Функции ввода/вывода одного символа getchar(), putchar()
- •8.5. Функции небуфиризированного ввода с клавиатуры
- •8.7. Форматирование вывода
- •Заключительная программа
- •9. Массивы
- •9.1. Одномерные массивы
- •Стандартные алгоритмы работы с одномерными массивами
- •Инициализация одномерных массивов
- •9.2. Многомерные массивы
- •Инициализация многомерных массивов
- •9.2.2 Стандартные алгоритмы работы с двумерными массивами
- •10. Функции
- •10.1.Cоздание и использование пользовательских функций
- •10.2.Параметры функции
- •10.3.Возвращение значения функцией
- •10.4.Inline-функции
- •10.5.Значение формальных параметров функции по умолчанию
- •10.6.Перегрузка функций
- •11. Классы памяти и область действия
- •11.1.Глобальные переменные
- •Extern - внешние переменные
- •Статистические внешние переменные - static
- •11.2.Локальные переменные
- •Внутренняя статическая переменная
- •Регистровая переменная
- •Автоматические переменные
- •11.3.Доступ к функциям в многомодульной программе
- •12. Препроцессор языка си
- •12.1. Подстановка имен
- •12.2.Включение файлов
- •12.3.Условная компиляция
- •13. Указатели
- •13.1.Операция косвенной адресации *
- •13.2. Описание указателей
- •13.3.Использование указателей для связи функций
- •13.4.Указатели на одномерные массивы
- •13.5.Указатели на многомерные массивы
- •13.6.Операции над указателями
- •13.7.Передача массива в качестве параметра в функцию
- •13.8.Указатель на void *
- •14. Символьные строки и функции над строками
- •14.1.Массивы символьных строк
- •14.2.Массивы указателей
- •14.3.Указатель как возвращаемое значение функции Передача указателя как параметра функции
- •14.4.Функции, работающие со строками Функции, определеные в заголовочном файле stdio.H
- •14.5. Стандартные библиотечные функции Функции, определеные в заголовочном файле string.H
- •14.6. Преобразование символьных строк
- •Функции, определеные в заголовочном файле ctype.H.
- •15. Ссылки
- •16. Параметры командной строки
- •17. Производные типы данных
- •17.1.Структуры
- •Массивы структур
- •Вложенные структуры
- •17.1.3 Указатели на структуры
- •Операции над структурами
- •Передача структуры в функцию
- •17.2.Объединения
- •17.3. Синоним имени типа
- •17.4.Определение именнованных констант
- •17.5.Перечисления
- •17.6.Битовые поля
- •18. Динамическое выделение памяти
- •2. Функция void* calloc(n,size type);
- •18.2.Операция new с массивами
- •18.3.Инициализаторы с операцией new
- •18.4.Ошибки при использовании динамичской памяти
- •19. Файл
- •19.1.Открытие файла fopen()
- •19.2.Закрытие файла fclose()
- •19.3.Функции ввода/вывода одного символа fgetc(), fputc()
- •19.4.Функции форматированного ввода/вывода в файл
- •Int fprintf(file *stream,”управл.Cтрока”,arg1,…)
- •Int fscanf(file *stream,”управл.Cтрока”,&arg1,…)
- •19.5. Функции ввода/вывода строки символов в файл
- •19.6.Функции управления указателем в файле
- •Int fseek(file *stream, смещение, start)
- •19.7.Ввод/вывод записей фиксированной длины
- •20. Динамические структуры данных
- •20.1.Однонаправленные связные списки
- •Вставка узла
- •Удаление узла из списка
- •20.2.Бинарные деревья
- •21. Размещение данных в памяти
- •22.Модели памяти
- •Список литературы
1.Обзор языКа программирования с
Разработан в 1972 году Д.Ритчи в фирме Bell Laboratories. Его предшественниками явились язык BCPL (Ричардсон, Кембридже, Англия) и язык В (1970 год, Томпсон) для ранней версии ОС UNIX для компьютера РDP 11.
У языка В не было типов данных, его единственным объектом было машинное слово. Для получения доступа к машинным словам использовались переменные, содержащие указатели. Язык Си устранил эти недостатки. Сохранились указатели, но появились и более сложные структуры данных: массивы, структуры.
Си - современный язык. Его структура позволяет программно использовать нисходящее проектирование, структурное программирование и пошаговую разработку модулей.
Си - мобильный язык. Легко переносится на другие типы машин с небольшими изменениями.
Си - эффективный язык. Программы на Си компактны и быстродействующие.
Си - мощный и гибкий язык. Большая часть UNIX написана на Си, компиляторы и интерпретаторы Fortran, Pascal, Basic, Лисп, Лого. Используются для решения физических, технических проблем, производства мультфильмов.
Си - удобный язык. Сняты многие ограничения.
С++ - язык программирования, используемый в задачах от системного программирования до проблем искусственного интеллекта. Разработал С++ сотрудник Bell Lab’s в 1983 году Брайен Страуструп.
В 1989 году фирма Borland создала Turbo C++ 1.0. А в 90г. фирам Borland C++ 2.0. Появилась возможность программировать в среде Windows Borland C++ 3.0 имеет библиотеку классов Objekt Windows. Язык Turbo Pascal 6.0 заимствовал часть идей из С++.
В 1991 году в Москве, на выставке программных продуктов 80% программ было написаны на Си и Pascal.
Си - олицетворяет гибкость и богатство возможностей, часто в ущерб безопасности и простоте, надёжность, в ущерб универсальности и изяществу Паскаль.
Borland С++ является интегрированной средой программирования имеющей текстовый редактор, компилятор, редактор связей, отладчик, мощные средства настройки среды.
Си - это язык "компилирующего" типа.
Компилятор - это системная программа, которая преобразует "язык высокого уровня" в язык компьютера - машинный язык. Компиляторы удобны при разработке больших программ, многократного использования.
Дальнейшим продолжением развития Си++ и объектно-ориентированного стиля программирования явилась разработка среды программирования Borland C++ Builder, позволяющая быстро создавать программы, работающие в среде Windows 95, 98.
2.Этапы создания программы
1) Программа готовится с помощью любого текстового редактора и запоминается в исходном файле с расширением *.С, *.СРР.
2) Преобразуется компилятором в объектный файл *.obj.
3) Вместе с другими объектными файлами преобразуется в исполняемый файл программой, называемой загрузчиком или редактором связей *.EXE.
Этот файл уже может быть исполнен компьютером.
3.Структура программы на языке си
Программа на языке Си определяется как совокупность одного или нескольких модулей. Модулем является самостоятельно компилируемый файл. Модуль содержит один или несколько функций. Функция состоит из операторов языка Си. Рис.1.
Рис.1 Структура программы на языке Си.