- •1.Основные компоненты программного обеспечения и их связь с аппаратурой. Ретроспектива развития программирования.
- •2 Этапы решения задач на эвм
- •3 Основные типы данных и структуры данных в программировании
- •3.1.1 Арифметические типы
- •3.1.2 Логический тип
- •3.1.3 Символьный тип
- •4 Методы решения задач программирования
- •5 Разработка алгоритмов Пример 5.8
- •Пример 5.9
- •Пример 5.10
- •6 Кодирование алгоритмов на языке си
- •- Семантические;
- •Тело директивы
- •Имя аргумента
- •Оператор
- •6.4.1 Имена переменных Имена переменных могут состоять из букв (только из латинского алфавита), цифр и символа подчеркивания, приравненного к букве. Начинаться имя должно с буквы.
- •Пример 6.3:
- •6.4.2 Типы и размеры данных
- •6.4.3 Константы
- •Пример 6.4:
- •Пример 6.5:
- •Пример 6.6:
- •Пример 6.7:
- •Пример 6.8:
- •7 Декларации в си
- •8 Операторы в языке си
- •9 Управление в си
- •10 Указатели и массивы
- •Литерные указатели
- •11 Структуры в языке си
- •Структуры, вложенные друг в друга
- •Пример 11.10
- •12 Функции и структура программы
- •Аппарат формальних і фактичних аргументів Приклад 12.4
- •Опис прототипу функції
- •Приклад 12.5
- •13 Передача аргументов
Пример 11.10
/*Список студентов с результатами экзаменов*/
# define KST 35
struct list
{char *fio; int r_l;
int math; int phys;};
struct list group[KST];
Элементам таблицы можно придать значение следующими способами:
ввести поэлементно;
присвоить поэлементно;
инициализировать массив структур.
Второй вариант объявления таблицы:
struct list gr[]=
{{“Андреев”,5,5,5},
{“Большаков”,5,5,4},
…
{“Якишенко”,5,4,5}}:
11.8 Оператор sizeof.
В Си вычисление размера любого объекта
-) sizeof <обьект>;
-) sizeof(<имя_типа>);
Результат:целое,которое равно размеру в байтах указанного объекта или типа.
Объект:
-)массив;
-)структура.
Имя типа:
-)имя базового типа(int,char,float);
-)имя произвольного типа(структура и указатель).
#define kst (sizeof group) sizeof(struct list) или
#define kst(size group)sizeof(group[0])
11.9 Декларация typedef
Такя декларация позволяет давать новые имена типам данных
Синтаксис:
tupedef <старое имя типа> <новое имя типа>;
Использование:
<тип объявления в typedef> <список объектов>;
Внимание:typedef не создает новый тип,а только синоним для существуещего типа!!!
Пример 11.12
typedef int Exz;
typedef char*String;
typedef struct list
{ Sting fio;
Ekz math;
Ekz phys;
Ekz r_l;
} Liststud;
Liststud group[kst];
Причины использования typedef:
1)“Эстетическая”-одним именем заменяется сложная декларация.
2) Стремление к ясности
struct list*pstr;-указатель на структуру типа struct list
typedef structlist*Plist;
Plist pstr;
Принято имена-синонимы объявлять в typedef с заглавной буквы!!!
3)Машинно-независимые программы.
От реализации зависят:
-)chort,
-)int,
-)long,
-)double,
-)long double.
При переносе на другие ЭВМ(или другую платформу)достаточно будет изменять только размеры с помощью typedef.
12 Функции и структура программы
Вспомогательным подзадачам на этапе разработки метода
решения задачи соответствуют вспомогательные алгоритмы.
В языке Си вспомогательным алгоритмам соответствует понятие
функция.
12.1 Определение функции
Синтаксис
<тип_результата> <имя_функции>
([<декларации_аргументов>])
{
<декларации> \ <тело
<иструкции> \ функции>
}
Могут быть опущены:
<тип_результат>~int
<декларация_аргументов>~()
<декларации> в <теле_функции>~нет локальных
переменных
<инструкции>~нет вычисления результатов
пример12.1
/*минимальная функция*/
dummy() {}
12.2 Функции вызывающие и вызываемые
main () a() b()
{ { {
.......... ......... ..........
a() b() }
.......... .........
b() }
}
Опр.
Функция, которая отдаёт управление другой называется
вызывающей, а которая управление получает называется
вызываемой.
В исходном файле Си программы функции могут следовать в
любом порядке.
12.3 Связь между функциями.
Связь между функциями реализуется одним из тех способов:
1. Через аргументы.
2. Через возвращаемые значения.
3. Через внешние переменные.
Через возвращаемые переменные
12.3.1
Вызов функции
<имя функции>(<список аргументов>)
Пример 12.3
/* Вызов printf */
Вызов функции есть выражение , поэтому оно может быть также
использовано в операторах
if (res==printf("как выражение"))
dummy();
else
exit(-1); /*Выход в MS-DOS*/
12.3.2 Инструкция возврата return
Использование
-возвращение результата из вызываемой в вызвавшую
Синтаксис
return <выражение>
return (<выражение>)
Так как это инструкция в конце надо писать ;.
Семантика
Выполняется приведение типа результата вычисляемого
функцией к типу заданному в вызывающей функции
-вызывающая функция может игнорировать то значение ,
которое возвращается из вызываемой функции.
-<выражение> может отсутствовать , тогда функция не
возвращает результата
-return может отсутствовать, тогда функция завершает работу по
достижению символа }
- допускается несколько инструкций возврата, если все они
возвращают значение одного типа.
- если разные return возвращают значения разного типа , то
программа нереентабельна