Содержание
- 2. 6.СИМВОЛЬНЫЕ ЧИСЛОВЫЕ И СТРОКОВЫЕ КОНСТАНТЫ Константа — это ограниченная последовательность символов алфавита языка, представляющая собой изображение
- 3. 8.ОПЕРАТОРЫ ЦИКЛА Цикл-это команда ,которая обеспечивает многократный повтор некоторых действий . Для корректного выполнения цикла необходимо
- 4. 9.Операторы перехода: goto, break. Continue, return. goto, break. Continue, return изменяют порядок выполнения программы. Их применение
- 5. Явное приведение типа В языке C Для явного приведения типов некоторой переменной перед ней следует указать
- 6. 16.Форматирование при выводе. Управляющие последовательности Форматированный вывод Функция форматированного вывода printf получает в качестве аргументов строку
- 7. 17.Этапы создания исполняемой программы. Компиляция и интерпритация. Компиляция в программировании – преобразование программы, представленной на одном
- 8. 19.Указатели: объявление, операции, инициализации. Указатель – переменная, которая содержит адрес другой переменной. Адрес – большое число,
- 9. 22.Организация подпрограмм(функции). функция – относительно самостоятельная часть программы, которая выполняет некоторую задачу . функцию можно использовать
- 11. Скачать презентацию
6.СИМВОЛЬНЫЕ ЧИСЛОВЫЕ И СТРОКОВЫЕ КОНСТАНТЫ
Константа — это ограниченная последовательность символов алфавита
языка, представляющая
6.СИМВОЛЬНЫЕ ЧИСЛОВЫЕ И СТРОКОВЫЕ КОНСТАНТЫ Константа — это ограниченная последовательность символов алфавита языка, представляющая
Двоичная система представления данных непосредственно в языке Си не поддерживается. Однако можно воспользоваться файлом binary.h, в котором определены двоичные константы в пределах байта.
Вещественные константы
Константа с плавающей точкой (вещественная константа) всегда представляется числом с плавающей точкой двойной точности, т. е. как имеющая тип double, и состоит из следующих частей:
целой части — последовательности цифр;
точки - разделителя целой и дробной части;
дробной части — последовательности цифр;
символа экспоненты е или E;
экспоненты в виде целой константы (может быть со знаком).
Любая часть (но не обе сразу) из нижеследующих пар может быть опущена:
целая или дробная часть;
точка или символ е (Е) и экспонента в виде целой константы.
Примеры вещественных констант
345.
3.14159
2.1Е5
.123ЕЗ
4037е-5
По умолчанию компилятор присваивает вещественному числу тип double. Если программиста не устраивает тип, который компилятор приписывает константе, то тип можно явно указать в записи константы с помощью следующих суффиксов: F (или f) — float для простых вещественных констант, L (или l) — long double для вещественных констант двойной расширенной точности.
Примеры:
· 3.14159F — константа типа float, занимающая 4 байта;
· 3.14L — константа типа long double, занимающая 10 байт.
Символьные константы
Символьная константа — это один символ, например: 'z'. В качестве символьных констант также могут использоваться управляющие коды, не имеющие графического представления. При этом код управляющего символа начинается с символа '\' (обратный слеш).
Строковые константы
Строковая константа — это последовательность символов, заключенная в кавычки, например:
"Это строковая константа"
Кавычки не входят в строку, а лишь ограничивают её. Технически строковая константа представляет собой массив символов, и по этому признаку может быть отнесена к разряду сложных объектов языка Си.
В конце каждой строковой константы компилятор помещает '\0' (нуль-символ), чтобы программе было возможно определить конец строки. Такое представление означает, что размер строковой константы не ограничен каким-либо пределом, но для определения длины строковой константы её нужно полностью просмотреть.
Поскольку строковая константа состоит из символов, то она имеет тип char. Количество ячеек памяти, необходимое для хранения строковой константы на 1 больше количества символов в ней (1 байт используется для хранения нуль-символа).
Символьная константа 'x' и строка из одного символа "x" - не одно и то же. Символьная константа - это символ, используемый для числового представления буквы x, а строковая константа "x"содержит символ 'x' и нуль-символ '\0' и занимает в памяти 2 байта. Если в программе строковые константы записаны одна за другой через разделители, то при выполнении программы они будут размещаться в последовательных ячейках памяти.
7.Структура программы
В начале программы находятся команды, которые подключают другие файлы. Эти команды называются предпроцессорные директивы. #include. Может быть несколько разных include с указанием разных подключаемых файлов по необходимости. Любая программа на языке С должна содержать функцию. Функция: имя ( ). Обязательная функция в программе называется main ( )(в скобках аргументы). В скобках после названия ф-ии могут присутствовать, так называемые, аргументы ф-ии main, они используются для передачи данных из командной строки при запуске программы. Если они не используются, то скобки могут быть пустыми. Перед именем ф-ии пишется тип результата, который получается после работы ф-ии.
int тип результата main ( ) имя ф-ии int – целочисленный тип данных
В языке С для вычисления блока операторов используются фигурные скобки. { }
Все операторы ф-ии должны помещаться только внутри скобок. Поскольку ф-ия возвращает результат внутри ф-ии должен быть оператор return 0;
Выполнение оператора return приводит к завершению работы ф-ии, операторы после не выполняются.
Минимальная программа на языке С
#include “stdafx.h”
int main ( )
{
return 0;}
Программа = переменные(хранение данных) + операторы (команды, которые изменяют данные)
После объявления переменной ее значение известно.
10.УСЛОВНЫЙ ОПЕРАТОР И УСЛОВНАЯ ОПЕРАЦИЯ
Условный оператор предназначен для выбора одного из двух альтернативных действий и имеет следующую форму записи:
условный оператор =
"if" "("выражение")" оператор_1 ["else" оператор_2]
При выполнении условного оператора вначале вычисляется <выражение>. Если его значение не равно нулю, то выполняется <оператор_1>, а <оператор_2> пропускается. Если значение выражения равно нулю, то выполняется <оператор_2>, а <оператор_1> пропускается.
8.ОПЕРАТОРЫ ЦИКЛА
Цикл-это команда ,которая обеспечивает многократный повтор некоторых действий .
Для корректного
8.ОПЕРАТОРЫ ЦИКЛА
Цикл-это команда ,которая обеспечивает многократный повтор некоторых действий .
Для корректного
9.Операторы перехода: goto, break. Continue, return.
goto, break. Continue, return изменяют порядок
9.Операторы перехода: goto, break. Continue, return. goto, break. Continue, return изменяют порядок
11.Оператор множественного выбора
Применяется для выбора одного действия из набора.
switch (переключатель)(выражение)
{case конст1:оператор п1 break;
case конст2:оператор п2 break;
case конст3:оператор п3 break;
default:оператор п}
Выражение обычно является переменной, значение которой используется для выбора пункта. Тип это переменной должен совпадать с типом констант. Тип переменной констант можетможет быть либо целым, либо символьным. Все константы должны иметь разные значения, но один тип данных. Значение переменной последовательно сравнивается с каждой константой до обнаружения совпадения. После совпадения выполняются операторы по соотв. Пункту. В конце каждого блока операторов по case должен стоять оператор break.
Break – оператор, который прекращает выполнение текущего блока и передает правление оператору, который следует после switch.
Default – необязательная часть (может и не быть), выполняется, если не было совпадения ни с одной константой.
Switch используется, например, для орг-ии меню в программе.
12.УНАРНЫЕ ОПЕРАЦИИ
++, --, sizeof,~,!,-,+,&
*-разадресация(взятие адреса)
New,delete-выделение памяти, освобождение памяти в с++
Операции ++ --
Инкримент +1, декримент -1
Префиксная форма
++х ;--х;
Сначала значение увеличивается на еденицу , потом используется
Постфиксная форма (имя переменной , знак операции)
х++;х--; значение переменной используется, а потом увеличивается на еденицу
sizeof-определяет размер объекта или типа в байтах
sizeof y=sizeofx; выражение
sizeof y=sizeof(int); тип
&-унарная операция , взятие адреса переменной
Int a,* pint;
Pint=&a;
&-переменная ,* разадресация(разименовывание)
New,delete-операции для работы с динамической памятью в с++
Поразрядные операции (побитовые)
(&,|,^,~)
Поразрядные операции применяются к целочисленным операторам и работают с их двоичной формой
&-и
|-или
^-искл .или
~-побитовое отрицание не
13.Бинарные операции
Операция – действие, которое включается в выражение. Операции характеризуются знаком, смыслом действия, кол-ом операторов.
Унарные 1 i++
Бинарные 2 a+b
Тенарные 3
Операция преобладает приоритетом, которая показывает порядок выполнения нескольких операций в одном вложении.
Бинарные:
*, /, %, +, -, << >>(побитовый сдвиг влево и вправо)
<, <=, >, >=, ==, !=
&, ^, I (побитовые и, искл. Или, или)
&& и, II лог. Или =
*=, /=, %=, +=, -=, <<=, >>=, &=, I=, ^=
.(точка) - последовательное вычисление
Операции ++, -- Инкримент +1, декримент-1
Префиксная форма ++х; --х; Сначала значение увелич. На единицу, потомиспользуется.
Постфиксная ф-ма (имя переменной, знак операции) х++; х--; Знач-ие переменной исп., а потом увелич. На единицу.
20.Указатели и массивы. Работа с элементами массива через указатель
Указатели- переменная , которая содержит адрес другой переменной. Если переменная содержит адрес некоторого другого элемента , то говорят, что переменная указывает на этот элемент
Указатель имеет тип данных , по типу определяют сколько байт адресуется указателю
Указатели используют для работы с массивами и динамич. Структурами данных
Динамич. Структуры данных означают , что память выделяется спец. Командой во время работы программы
Массив- индексы a[i], указатели*(a+i)
Имя массива это указатель константы на первый элемент
Если константа, то значение менять нельзя
Действие с указателями в массиве выполняются быстрее, чем с указателями.
Int a[10],*i,k;
K=a[2]
i=a+2;
k=*(a+3);//k=a[3];
Явное приведение типа
В языке C
Для явного приведения типов некоторой переменной перед
Явное приведение типа
В языке C
Для явного приведения типов некоторой переменной перед
15.Функции ввода-вывода в языках С и С++
Ввод и вывод выполняется через специальные стандартные ф-ии. С(printf() scanf())
Применение Cin, cout. Для использования cin, cout необходимо включить библиотеку #include
16.Форматирование при выводе. Управляющие последовательности
Форматированный вывод
Функция форматированного вывода printf получает в
16.Форматирование при выводе. Управляющие последовательности Форматированный вывод Функция форматированного вывода printf получает в
Функция проходит по строке и заменяет первое вхождение %<спецификатор формата> на первый аргумент, второе вхождение %<спецификатор формата> на второй аргумент и т.д. Далее мы будем просто рассматривать список флагов и примеры использования.
Общий синтаксис спецификатора формата %[флаги][ширина][.точность][длина]спецификатор Спецификатор – это самый важный компонент. Он определяет тип переменной и способ её вывода. Управляющие последовательности представляют собой последовательность символов для представления специальных символьных констант. При введении управляющая последовательность начинается с символа обратный слеш '\' (обязательный первый символ), затем пишется комбинация латинских букв, либо цифр.
Последовательность вида '\ddd' и '\xddd' позволяют представить символ из набора кодов ЭВМ как последовательность восьмеричных или шестнадцатеричных цифр соответственно.
Например, символ возврата каретки может быть представлен различными способами:
'\r' – общая управляющая последовательность;
'\015' – восьмеричная управляющая последовательность;
'\x00D' – шестнадцатеричная управляющая последовательность.
В языке С++ нет встроенных средств ввода и вывода – они осуществляется с помощью функций, типов и объектов, которые находятся в стандартных библиотеках.
Существует два основных способа:
1. форматированный ввод-вывод данных (функции, унаследованные из С);
2. стандартные потоки ввода-вывода данных (объекты С++).
18.ОДНОМЕРНЫЕ И МНОГОМЕРНЫЕ МАССИВЫ
Массивы- это множество элементов , которые имеют одинаковый тип данных. Массив имеет имя, которое одновременно является указателем на первый элемент массива
При объявлении массива создается тип элементов: имя и размер
Одномерный массив
Имя
Тип массив [размер];
Int a[10];a=const
Многомерный массив
Тип имя [размер 1][размер 2][размер 3]
Нумерация начинается <0
A[0],a…
Const int n=10;
Void main()
{int a[n];
}
Размер массива должен быть целым числом, это должна быть const
Обращение к элементу массива выполняется через index
Нет контроля выхода за границу массива. При объявлении массива возможна его инициализация, т.е. присваивание начальных значений Например:
Int b[4]={10,7,8,9,};
Размер массива рекомендуется задавать через глобальную константу вне функции
Матрицы- двумерные массивы. При объявлении задается два размера : количество строк и столбцов. Размеры рекомендуется задавать через глобальные константы
Тип имя массива [21][r2]
Const int n=3;
Const int m=4;
Void main()
{int matz[n][m];
Инизиализация
Int m [][]={{1,1},{0,2},{1,0}};
Int mt [3][2]={1,1,0,2,1,0};
В памяти элементы матрицы располагаются последовательно по строкам.
17.Этапы создания исполняемой программы. Компиляция и интерпритация.
Компиляция в программировании – преобразование
17.Этапы создания исполняемой программы. Компиляция и интерпритация.
Компиляция в программировании – преобразование
Режим интерпретации можно использовать при отладке программ на языке высокого уровня.
Интерпретация в разработке программ – процесс непосредственного покомандного выполнения программы без предварительной компиляции, «на лету». В большинстве случаев интерпретируемая программа работает намного медленнее, чем скомпилированная программа, но не требует затрат на компиляцию, что в случае небольших программ может повышать общую производительность. Интерпретация связана с получением переменными значений в процессе работы программы.
Интерпретация и компиляция не позволяют изменить семантику (смысл) языка программирования. Обычно при описании семантики в рамках операционного подхода исполнение конструкций языка программирования трактуется с помощью некоторой воображаемой (абстрактной) ЭВМ.
Интерпретация и компиляция не позволяют изменить синтаксис языка – набор правил построения фраз алгоритмического языка, позволяющий определить осмысленные предложения в этом языке.
Создание исполняемого файла из исходного текста программы предполагает выполнение этапов а и б (компиляции и компоновки).
Исполняемый файл – это файл, который может быть обработан или выполнен компьютером без предварительной трансляции. Обычно исполняемый файл получается в результате компиляции и компоновки объектных модулей и содержит машинные команды и/или команды операционной системы.
Интерпретатор анализирует и тут же выполняет программу покомандно, по мере поступления ее исходного кода на вход интерпретатора.
Алгоритм работы простого интерпретатора:
1) прочитать инструкцию;
2) проанализировать инструкцию и определить соответствующие действия;
3) выполнить соответствующие действия;
4) если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.Утверждение «Языковый процессор, который построчно анализирует исходную программу и одновременно выполняет предписанные действия, а не формирует на машинном языке скомпилированную программу, которая выполняется впоследствии» справедливо для интерпретатора
19.Указатели: объявление, операции, инициализации.
Указатель – переменная, которая содержит адрес другой переменной.
19.Указатели: объявление, операции, инициализации. Указатель – переменная, которая содержит адрес другой переменной.
21.Работа с текстовыми файлами
Файлы используются для постоянного хранения информации. Переменная находится в оперативной памяти только во время работы программы, а файлы хранятся на жестком диске. Для работы с файлом требуется указатель на файл.
FILE *pfile; - библиотечный тип, который описывает конструкцию для доступа к файлу.
Для работы с файлом используется набор библиотечной функции.
stdio.h
std.afx(visual studio)
1.Обявить указатель на файл
2.Открыть файл в open_s( )
pfile=fopen(“t.txt”, “r”);(старый вариант)
r-read – открытие файла для чтения (можно читать, нельзя писать, файл должен существовать)
w-write – режим записи (если файла нет, он будет создан, если файл есть, то старое содержимое будет потеряно)
a-append – добавление, запись в конец существующего файла
fopen_s(&pfile, “t1.txt”, “r”); (новый вариант)
3.Рекомендуется проверить успешно ли открылся файл
if(pfile==NULL)
printf(“ошибка”)
else//обработка
Для работы с файлами его необходимо прочитать с винчестера и записать в оперативную память. Поскольку файл может быть большого размера, чтение выполняется фрагментами(блоками).
Блоки файла записываются в участок памяти, который называется буфер. При открытии файла в зависимости от режима открытия указатель файла устанавливается на начало или на конец. Позиция указателя автоматически изменяется после каждой операции ввода/вывода(чтения записи). Позиция меняется на некоторое кол-во символо, которое прочитано или записано.
4.Цикл чтения из файла
чтение выполняется в цикле до тех пор пока не встретился символ конца файла.
while(!feof()pfile)
{…..}
5.Чтение из файла
fgets(s,100, pfile);
Читает указанное число символов, пока не встретился символ перевода строки или конец файла. В конец строки дописывается ‘\0’ символ
a=fgets(pfile);
6.После завершения работы с файлами желательно его закрыть
fclose(pfile);
Особенно важно, если была запись.
23.Способы передачи параметров в функцию (по значению, по адресу)
передача по адресу. Функция получает адреса фактических параметров.
Адрес тоже самое, что и указатель. Номер ячейки памяти
Через адреса функция может возвращаться к исходным значениям и их изменять.
Если функция должна возвращать несколько результатов, то используют передачу по адресу. Так же передачу по адресу используют если переменная имеет большой размер
Передача параметров по значению
При передаче параметра вызываемой процедуры или функции по значению, изменение значения формального параметра внутри процедуры или функции никак не влияет на фактический параметр, передаваемый при вызове процедуры или функции. Указание, что параметр нужно передавать по значению, осуществляется с помощью ключевого слова Знач.
Пример:
Процедура Процедура2(Знач ФормальныйПараметр1)
ФормальныйПараметр1 = 2 * 3;
КонецПроцедуры
ФактическийПараметр = 10;
Процедура2(ФактическийПараметр);
// будет выведено значение 10 - изменение формального
// параметра внутри процедуры НЕ повлияло на изменение
// значения фактического параметра, переданного при
// вызове процедуры: параметр передан по значению!
Сообщить (Фактический Параметр);
22.Организация подпрограмм(функции).
функция – относительно самостоятельная часть программы, которая выполняет некоторую задачу
22.Организация подпрограмм(функции). функция – относительно самостоятельная часть программы, которая выполняет некоторую задачу
24.Рекурсивные функции 29.Переименование типов (typedef)
Для удобства и понятности программы, можно задать типу новое имя с помощью ключевого слова typedef: typedef тип новое_имя [ размерность ] ; Квадратные скобки - элементом синтаксиса. Размерность может отсутствовать.
Примеры:
Переопределение typedef unsigned int UINT: Использование вместо стандартных: UINT i , j ; // переменные типа unsigned int
Функция, которая вызывает сама себя, называется рекурсивной функцией.
Рекурсия - вызов функции из самой функции.
Пример рекурсивной функции - функция вычисления факториала.
#include
if(num==1) return(1);
else return(num*fact(num-1)); // рекурсивный вызов
}
int main() {
int a, r;
printf("a= ");
scanf("%d",&a);
r = fact(a);
printf("%d! = %d",a,r);
getchar();getchar();
return(0);
}
typedef char Msg[100];
typedef struct{
char fio[30];
int date, code;
double salary;} Worker;
Msg str[10]; // массив из 10 строк по 100 символов
Worker staff[100]; // массив из 100 структур