- •1 Порядок разработки программного продукта
- •2 Структура программы на языке с
- •Int age; // Поле age
- •Void main(void) // Основная функция
- •3 Типы данных языка с
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Void show_string(char *string)
- •Void main(void)
- •4 Операции языка с
- •Арифметические операции
- •Void main(void)
- •Void main(void)
- •Логические операции
- •Void main(void)
- •Операции отношения
- •Поразрядные операции
- •Побитовые операции
- •Void main(void)
- •Адресные операции
- •Операция “условие”
- •Void main(void)
- •Операция sizeof()
- •Void main(void)
- •Int size;
- •Void main(void)
- •Int *iptr;
- •Void main(void)
- •Int *list,I;
- •Операция вызова функции
- •5 Операторы языка с
- •Условный оператор if
- •Оператор switch
- •Void main(void)
- •Void main(void)
- •Оператор цикла for
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Цикл while
- •Void main(void)
- •Цикл do ... While
- •Void main(void)
- •Вложенные циклы
- •Void main(void)
- •Void main(void)
- •Int I,j,score;
- •Int scores[line][column];
- •Оператор безусловного перехода
- •Оператор break
- •Void main(void)
- •Оператор continue
- •Void main(void)
- •If (I % 5) continue;
- •Оператор return
- •6 Организация функций
- •Int sum_vect(int V[], int n)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7 Библиотечные функции
- •7.1 Функции форматного ввода-вывода
- •Int printf(char*format[, argument,...]);
- •Void main(void)
- •Void main(void)
- •Int scanf(char *format[,argument,...]);
- •Функции для работы с файлами
- •Void main(void)
- •Int vect[line];
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7.3 Графические средства языка с
- •Void main(void)
- •Initgraph(&gdriver, &gmode, ""); // Инициализация графического режима
- •Int maxX, maxY;
- •Void far initgraph(int far *driver, int far *mode, char far *path);
- •Void main(void)
- •Int driver, mode, errorcode;
- •Void far rectangle(int left, int top, int right, int bottom);
- •Void far setviewport(int left, int top, int right, int bottom, int flag);
- •Void far circle(int X, int y, int radius);
- •7.4 Функции для работы со строками
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •7.5 Математические функции
- •Продолжение таблицы а.7
- •Продолжение таблицы а.7
Операция sizeof()
Операция sizeof() имеет две формы:
sizeof(тип). Результатом является целочисленное значение величины типа в байтах;
sizeof(выражение). Значение выражения не вычисляется, но определяется его тип и количество байт под этот тип.
Оба варианта показаны в примере 4.6.
//Пример 4.6.
// Определение объема памяти, занимаемой переменной и массивом
// Вычисление количества элементов массива
#include <stdio.h>
Void main(void)
{
Int size;
float a;
double am[10];
size=sizeof(int);
printf("Размер памяти в байтах под тип int: %d\n",size);
size=sizeof(a);
printf("Переменная a типа float занимает %d байта памяти\n",size);
size=sizeof(am);
printf("Размер памяти, отводимой под массив am типа double: %d\n",size);
size=sizeof(am)/sizeof(double);
printf("Количество элементов массива am = %d\n",size);
}
Прямое назначение оператора sizeof() — динамическое распределение памяти. В примере 4.7 резервируется память под один элемент, в примере 4.8 — под три элемента.
//Пример 4.7.
//Функция malloc() резервирует память под один элемент типа int
#include <stdio.h>
#include <alloc.h>
Void main(void)
{
Int *iptr;
iptr=(int*) malloc(sizeof(int)); // Распределение памяти
*iptr=421;
printf("Содержимое iptr:%p\n",iptr);
printf("Адресуемое значение: %d\n",*iptr);
}
//Пример 4.8.
// Динамическое pаспpеделение памяти с помощью операции sizeof()
// Функция calloc() резервирует память под несколько элементов
#include <stdio.h> // Функция printf()
#include <conio.h> // Функции clrscr(), getch()
#include <alloc.h> // Функция calloc()
Void main(void)
{
#define NUMINTS 3
Int *list,I;
clrscr();
list = (int *) calloc(NUMINTS, sizeof(int));
*list = 123;
*(list+1) = 456;
*(list+2) = 789;
printf(" Список адресов: ");
for (i=0; i<NUMINTS; i++) printf("%4p ",(list+i));
printf("\n Список значений: ");
for (i=0; i<NUMINTS; i++) printf("%4d",*(list+i));
printf("\n");
getch();
}
Операция вызова функции
Возможны две формы вызова функции:
имя_функции (параметры); (см. примеры 3.4, 3.7);
имя_переменной = имя_функции(параметры);
Запись printf(“Значение = %d\n”,i) — это тоже операция вызова функции.
5 Операторы языка с
Операторы языка С можно подразделить на следующие группы:
; — пустой оператор;
a = b; — оператор-выражение;
{ } — составной оператор;
управляющие операторы:
условного перехода if...else и выбора switch();
цикла: for, while, do...while;
безусловного перехода goto;
другие операторы: break, continue, return.
Условный оператор if
Первый вариант — полная форма оператора if:
if (условие) оператор1;
else оператор 2;
Структура данного оператора показана на рис. 5.1, а. Вариант использования формы см. в примере 4.3.
Второй вариант — усеченная форма оператора if (рис. 5.1, б, см. пример 5.8):
if (условие) оператор 1;
оператор 2;
...................
Третий вариант — вложенная форма оператора if (рис. 5.1, в, пример 5.7):
if (условие 1) оператор 1;
else if (условие 2) оператор 2;
else if (условие 3) оператор 3;
.......................................................
Условие может быть любой операцией (арифметической, логической, сравнения и т.д.). Если результатом ее выполнения является значение, не равное нулю, что равносильно “истине”, то переходят к оператору 1, иначе (результат равен нулю — “ложь”) переходят к оператору 2 в первом и втором вариантах или к проверке условия 2 вложенного оператора if.
Рис. 5.1
Оператор — это любое выражение языка С. Он может быть составным. Тогда его надо отделить фигурными скобками { }. Скобки необходимо использовать в операторе if для удобства чтения, а так же, чтобы избежать ошибки в порядке выполнения действий.