
- •Конспект лекций по предмету
- •Раздел 1. Основы языка.
- •Тема 1. История создания языка Си. Достоинства языка. Использование языка Си.
- •Тема 2.
- •Структура простой программы.
- •Описание переменных.
- •3.Использование комментариев. Читаемость.
- •Зарезервированные слова.
- •Раздел.2 Элементы языка. Выражения.
- •Тема 3.
- •3. Выражения
- •Раздел 3. Операторы языка. Условный оператор if
- •Оператор switch
- •Операторы цикла
- •Цикл с параметром (for)
- •Операторы передачи управления
- •Оператор goto
- •Оператор break
- •Оператор continue
- •Оператор return
- •Раздел 4. Указатели и массивы Указатели
- •Инициализация указателей
- •Присваивание указателю адреса существующего объекта:
- •Присваивание указателю адреса области памяти в явном виде:
- •Присваивание пустого значения:
- •Выделение участка динамической памяти и присваивание её адреса указателю:
- •Внимание!
- •Объявляется массив из 10 указателей на функции без параметров, возвращающих указатели на int.
- •Раздел 5. Строки. Работа со строковыми данными
- •Функции работы со строками и символами
- •Символьные строки и строковые функции
- •Ввод-вывод строк средствами с.
- •1) Scanf, printf – вводит/выводит одно слово:
- •2) Ввести предложение:
- •3) Специальные средства ввода – вывода строк – gets и puts
- •Различия между массивом символов и указателем на строку
- •Массивы строк
- •Функции с для обработки строк
- •Strcat(), strncat(). Соеденение строк.
- •Другие функции для строк(краткое описание)
- •Раздел 6. Структуры. Структуры (struct)
- •Раздел 7. Функции (подпрограммы). Функции
- •Объявление и определение функций
- •Глобальные переменные
- •Возвращаемое значение
- •Параметры функции
- •Передача массивов в качестве параметров
- •Раздел 8. Файлы(потоки) Функции ввода/вывода
- •Открытие потока
- •Ввод/вывод в поток
- •Закрытие потока
- •Обработка ошибок
Конспект лекций по предмету
«Программирование на языке С, С++».
Раздел 1. Основы языка.
Тема 1. История создания языка Си. Достоинства языка. Использование языка Си.
Язык «Си», первоначально предназначавшийся для написания ОС «UNIX» на ЭВМ DEC PDP-11, был разработан и реализован на этой системе Денисом Ричи. Он был разработан в начале 70-х годов, и его популярность быстро переросла за рамки конкретной ЭВМ. Этот язык ни связан ни с какими определенными аппаратными средствами или системами, и на нем легко писать программы, которые можно пускать без изменений на ЭВМ, имеющий «Си»-компилятор.
Язык «Си» - это универсальный язык программирования, для которого характерна экономичность выражения, современный поток управления и структуры данных, богатый набор операторов. Язык Си ни является языком «очень высокого уровня», ни «большим» языком, и не предназначается для некоторой специальной области применения. Но отсутствие ограничений языка делает его более удобным и эффективным для многих задач, чем язык более мощный.
«Си» - универсальный, т.к. кроме набора средств присущих современным языкам (структурность, определенные типы данных), в него включили средства для применения на уровне ассемблера (использование указателей, побитовые операции, операции сдвига).
Язык программирования Си работает как под управлением ОС UNIX, так и другими ОС.
Тема 2.
1. Структура простой программы.
2. Описание переменных
3. Использование комментариев. Читаемость программы.
4. Зарезервированные слова.
Структура простой программы.
Программа на языке С++ состоит из функций, описаний и директив препроцессора (с.16). Одна из функций должна иметь имя Main. Выполнение программы начинается с первого оператора этой функции. Простейшее определение функции имеет следующий формат:
Тип_возвращаемого_значения имя ([параметры]) {
операторы, составляющие тело функции
}
Как правило, функция используется для вычисления какого-либо значения, поэтому перд именем функции указывается его тип. О функциях рассказывается на с.73, ниже приведены лишь самые необходимые сведения:
Если функция не должна возвращать значение, указывается тип Void;
Тело функции является блоком и, следовательно, заключается в фигурные скобки;
Функции не могут быть вложенными;
Каждый оператор заканчивается точкой с запятой (кроме составного оператора).
Пример структуры программы, содержащей функции Main, F1 и F2:
директивы препроцессора
описания
Int main () {
операторы главной функции
}
int f1 () {
операторы функции F1
}
int F2 () {
операторы функции F2
}
Программа может состоять из нескольких модулей (исходных файлов). Несколько предварительных замечаний о вводе/выводе. В языке С++ нет встроенных средств ввода/вывода – он осуществляется с помощью функций, типов и объектов, содержащихся в стандартных библиотеках. Используется два способа:
функции, унаследованные из языка С, и объекты С++.
Основные функции ввода/вывода в стиле С:
Int scanf (const char* format, …) // ввод
Int printf (const char* format, …) // вывод
Они выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой формата Format. Строка формата содержит символы, которые при выводе копируются в поток (на экран) или запрашивается из потока (с клавиатруры) при вводе, и спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами. Список наиболее употребительных спецификаций преобразования приведён в приложении 2. Пример программы, использующий функции ввода/вывода в стиле С:
#include <stdio.h>
int main () {
int i;
printf (“Введите целое число \n”);
scanf (“%d”, &i );
printf (“Вы ввели число %d, спасибо! ”, i);
return 0;
}
Первая строка этой программы – директива препроцессора, по которой в текст программы вставляется заголовочный файл <stdio.h>, содержащий описание использованных в программе функций ввода/вывода (в данном случае угловые скобки являются элементом языка ). Все директивы препроцессора начинаются со знака #. Директивы препроцессора описаны на с.93. Третья строка – описание переменной целого типа с именем i. Переменные рассматриваются на с.28. Функция printf в четвёртой строке выводит приглашение «Введите целое число» и переходит на новую строку в соответствии с управляющей последовательностью \n. Функция scanf заносит введённое с клавиатуры целое число в переменную i (знак & означает операцию получения адреса), а следующий оператор выводит на экран указанную в нём строку, заменив спецификацию преобразования на значения этого числа. Ввод/вывод в стиле С рассмотрен в разделе «Функции ввода/вывода» (с.88). А вот как выглядит та же программа с использованием библиотеки классов С++:
#include<iostream.h>
int main () {
int i;
cout<< “Введите целое число \n”;
cin >>i;
cout<< “Вы ввели число” <<i << “, Спасибо! ”;
return 0;
}
Заголовочный файл <iostream.h> содержит описание набора классов для управления вводом/выводом. В нём определены стандартные объекты – потоки cin для ввода с клавиатуры и cout для вывода на экран, а также операции помещения в поток << и чтения из потока >>.
Структуру программы можно проследить, проанализировав следующую программу, печатающую таблицу температур по Фаренгейту и их эквивалентов по 100-градусной шкале Цельсия (по формуле с=(5/9)*(F-32))
Выводимая
программой таблица
Программа:
/* печать Фаренгейт-Цельсий
таблицы F=0, 20,…, 300*/ комментарий
main()
{
int nash, kon, shcag;
float far, cel;
nash=0;
while(far<=kon){
cel=(5.0/9.0)*(far-32.0);
printf(“%4.0f %6.1f\n”, far, cel);
far=far+shcag;
}
}
Программа на Си состоит из одной или более функций. Одна из этих функций должна иметь имя main. От других эта функция отличается тем, что ее нельзя вызывать из себя, а ее параметры если они есть, задаются операционной системой. MAIN обычно состоит первой в тексте программы, но это не обязательно прочие функции ничего не делают:
USELLET()
{
}
В примере это основная программа, которая состоит из одной функции, ее имя MAIN.