- •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
Void main(void)
{
Int *iptr; // Объявление указателя
int count = 1;
iptr = &count; // Инициализация указателя
printf(“Значение iptr равно %x,\nЗначение count равно %d\n”,iptr,count);
printf(“Адрес count равен %x \n”,&count);
}
В результате выполнения программы будут выведены: адрес (например ffce), значение (1), адрес(ffce).
// Пример 3.2.
//Изменение значения по указателю
#include <stdio.h>
Void main(void)
{
int count = 10;
Int *iptr; // Объявление указателя
iptr=&count; // Инициализация указателя
printf(“По адресу iptr %x находится значение *iptr %d\n”,iptr,*iptr);
*iptr=25;
printf(“Новое значение count равно %d \n”,count);
}
Массив — это несколько объектов, хранимых в памяти последовательно друг за другом. Обращение к массиву осуществляется с помощью индекса (целое число). Все массивы в качестве нижней границы индекса имеют нуль. Верхняя граница задается при описании массива. Форма объявления массива размерности N:
тип имя_массива[размер 1][размер 2]...[размер N];
Многомерные массивы хранятся в памяти по строкам, т.е. быстрее всего изменяется последний индекс. Размер массива обычно задается константой, которая определяется директивой #define вначале программы. Размер памяти, отводимый под один элемент массива, определяется базовым типом. Линейный массив — это вектор. В примерах 3.3 и 3.4 показаны: описание, инициализация и вывод элементов массива в цикле в основной программе и в функции show_array().
// Пример 3.3.
// Описание, инициализация, вывод в цикле элементов массива
#include <stdio.h>
void main(void)
{
int i, values[5]={80, 70, 90, 85, 80};
for(i=0; i<5; i++)
printf("values[%d] = %d \n", i, values[i]);
}
// Пример 3.4.
// Использование функции для вывода элементов массива
#include <stdio.h>
void show_array(int values[], int number)
{
int i;
for(i=0; i<number; i++)
printf(" %d \n", values[i]);
}
void main(void)
{
int scores[5]={20, 10, 30, 15, 40};
show_array(scores,5);
}
Имя массива является его адресом. При передаче имени массива в функцию размер массива для компилятора не имеет значения. Компилятор рассматривает массивы как указатели и помещает в стек только адрес первого элемента массива.
// Пример 3.5.
//Вывод адресов массивов
#include <stdio.h>
void main(void)
{
int count[10];
float salaries[5];
long distances[10];
printf("Начальный адрес массива count - %x\n",count);
printf("Начальный адрес массива salaries - %x\n",salaries);
printf("Начальный адрес массива distances - %x\n",distances);
}
Классическим примером линейного массива (размерности 1) является строка символов. В языке С нет переменной типа string (строка). Символьная строка — это одномерный массив типа char, заканчивающийся нулевым байтом. Нулевой байт – это байт, каждый бит которого равен нулю. Для нулевого байта определена специальная символьная константа ‘\0’. Поэтому при описании массива надо отводить лишний байт. Если строка содержит N символов, надо задавать размер массива N + 1.
// Пример 3.6.
// Пример массива символов
#include <stdio.h>