Специальности 2-45-01-03 Сети телекоммуникаций 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Специальности 2-45-01-03 Сети телекоммуникаций



Вопросы к срезу

по дисциплине «Программирование»

Для учащихся

Специальности 2-45-01-03 Сети телекоммуникаций

 

1. Алфавит языка СИ. Правила написания идентификаторов в ЯП Си, примеры. Структура программы в ЯП Си.

Алфавит языка

Совокупность символов, используемых в языке, называется алфавитом языка. При написании программы применяются латинские прописные и строчные буквы, цифры и специальные знаки. К таким знакам, например, относятся: точка (.), запятая (,), двоеточие (:), точка с запятой (;) и др.

Идентификаторы

Важным понятием языка является идентификатор, который используется в качестве имени объекта (функции, переменной, константы и др.). Идентификаторы должны выбираться с учетом следующих правил:

· Они должны начинаться с буквы латинского алфавита (а,...,z, А,...,Z) или с символа подчеркивания (_).

· В них могут использоваться буквы латинского алфавита, символ подчеркивания и цифры (0,...,9). Использование других символов в идентификаторах запрещено.

· В языке Си буквы нижнего регистра (а,...,z), применяемые в идентификаторах, отличаются от букв верхнего регистра (А,...,Z). Это означает, что следующие идентификаторы считаются разными: name, NaMe, NAME и т.д.

· Идентификаторы для новых объектов не должны совпадать с ключевыми словами языка и именами стандартных функций из библиотеки.

Например: a, _b, c1, summa.

Структура программы

Программа, написанная на языке Си, состоит из одной или нескольких функций, одна из которых имеет идентификатор main – главная (основная), с нее начинается выполнение программы и ее назначение – управлять работой всей программы.

Простейшая программа содержит только главную функцию и имеет следующую структуру:

директивы_препроцессора

Main()

{

определения_объектов;

ислолняемые_операторы;

}

 

 

2. Переменные (объявление, инициализация, область видимости примеры) в ЯП Си. Константы. Структура программы в ЯП Си.

Переменные

Все переменные до их использования должны быть определены (объявлены). При этом задается тип, а затем идет список из одной или более переменных этого типа, разделенных запятыми.

имя_типа список_переменных;

Например:

int a, b, c;

char x, y;

Одновременно с описанием можно задать начальные значения переменных. Такое действие называется инициализацией переменных:

тип имя_переменной = начальное_значение

Пример:

int a = 25, h = 6;

char g = 'Q', k = 'm';

float r = 1.89;

Областью действия описания объекта называется часть программы, в пределах которой действует это описание.

Если переменная описана внутри некоторого блока, то она локализована в этом блоке и из других блоков, внешних по отношению к данному, «не видна». Если описание переменной находится вне блока и предшествует ему в тексте программы, то это описание действует внутри блока и называется глобальным. Глобальная переменная «видна» из блока. Глобальные переменные доступны всем функциям, где они не описаны как локальные переменные. Все величины, описанные внутри функции, являются локальными. Областью их действия является функция.

Константы

Константами называются фиксированные величины, которые не могут быть изменены в программе. Это достигается добавлением ключевого слова const к спецификатору типа.

Примеры описания констант:

const float pi=3.14159;

const int iMIN=l, iMAX=1000;

 

 

3. Базовые типы данных в ЯП Си. Примеры.

Типы данных

В языке Си можно выделить пять базовых типов, которые задаются следующими ключевыми словами (спецификаторы типов):

1. char - символьный;

Значениями переменной типа char являются различные символы из кодовой таблицы, например: 'ф', ':',. Величины типа char могут рассматриваться в программе и как символы, и как целые числа

Пример:

char a=65;

printf("%c",а);/*На экране появится символ А*/

printf("%d",a);/*На экране появится число 65*/

Символы "%с" являются спецификацией формата ввода/вывода символьных данных

2. int - целый;

Размер переменной типа int в стандарте языка Си не определен. Например, в компиляторах для 16-разрядных процессоров переменная типа int имеет размер 2 байта. В этом случае знаковые значения этой переменной могут лежать в диапазоне от -32768 до 32767. "%d" — спецификация для целых чисел

3. float - вещественный;

Значения имеют дробную часть, отделяемую точкой, например: -5.6, 31.28 и т.п. Вещественные числа могут быть записаны также в форме с плавающей точкой, например: -1.09e+4. Число перед символом "е" называется мантиссой, а после "е" - порядком. Переменная типа float занимает в памяти 32 бита. Она может принимать значения в диапазоне от 3.4е-38 до 3.4e+38.

4. double - вещественный двойной точности;

5. void - не имеющий значения. Используется для нейтрализации значения объекта, например, для объявления функции, не возвращающей никаких значений

 

 

4. Способы записи алгоритмов: блок-схемы (элементы, примеры). Линейные алгоритмы. Примеры.

Алгоритм – точно определенное описание способа решения задачи, последовательность действий.

Существуют различные способы описания алгоритмов. Для этой цели можно использовать, например, естественный язык.

Наиболее удобным способом записи алгоритма на первых этапах его разработки является структурная схема алгоритма.

Она представляет собой графическое изображение последовательности действий при реализации данного алгоритма. Этапы решения задачи представляются в структурной схеме отдельными блоками, которые изображаются соответствующими геометрическими фигурами: прямоугольниками, ромбами, кругами, овалами и т.д.

По целевому назначению блоки структурных схем можно разделить на группы:

1. Вычислительный блок. Осуществляет вычисление функций или выполняет арифметические операции. Обычно имеет вид прямоугольника.

2. Логический блок. В нем происходит разветвление вычислительного процесса. Такие блоки используют, когда расчеты необходимо вести по различным формулам в зависимости от ситуации. Обычно имеет вид ромба (одна из вершин используется для входа, остальные – для выхода из блока).

3. Подготовительный блок. Выполняет функции подготовки других блоков к вычислениям. Например, функции ввода и вывода информации. Обычно имеет вид параллелограмма.

Типы структур в алгоритмах:

· Линейная (следование) состоит из простой последовательности действий, которые выполняются только один раз в порядке их следования.

· Разветвляющаяся (развилка) содержит блок проверки некоторого условия. В зависимости от результата проверки выполняется та или иная последовательность действий, называемая ветвью.

· Циклическая (повторение) содержит некоторую последовательность действий, выполняемых многократно.

Пример линейного алгоритма:

 

 

5. Выражения и операции. Арифметические операции в ЯП Си (алгоритм работы, примеры).

Выражения и операции

Выражение задает порядок выполнения определенных действий с данными и состоит из круглых скобок, знаков операций и операндов (констант, переменных, обращений к функциям).

Операнды — это константы, переменные и числовые значения, обращения к функциям.

Операции определяют действия, которые надо выполнить над операндами.

Операция, применяемая к одному операнду, называется унарной, а операция с двумя операндами — бинарной.

Арифметические операции.

К арифметическим операциям относятся:

- вычитание или унарный минус;

+ сложение или унарный плюс;

* умножение;

/ деление;

% деление по модулю;

++ унарная операция увеличения на единицу (инкремент);

-- унарная операция уменьшения на единицу (декремент).

Все операции, кроме деления по модулю, применимы к любым числовым типам данных. Операция % применима только к целым числам.

Рассмотрим особенности выполнения операции деления. Если делимое и делительцелые числа, то и результатцелое число.

Например, значение выражения 5/3 будет равно 1, а при вычислении 1/5 получится 0.

Если хотя бы один из операндов имеет вещественный тип, то и результат будет вещественным.

Например, операции 5./3, 5./3., 5/3. дадут вещественный результат 1.6666.

Операции инкремента и декремента могут применяться только к переменным и не могут — к константам и выражениям.

Операция ++ увеличивает значение переменной на единицу,

операция -- уменьшает значение переменной на единицу.

Оба знака операции могут записываться как перед операндом (префиксная форма), так и после операнда (постфиксная форма),

например: ++х или х++,

- - а или а--.

Три следующих оператора дают один и тот же результат:

х=х+1; ++х; х++

Различие проявляется при использовании префиксной и постфиксной форм в выражениях.

Первый пример:

а=3; b=2; с=а++*b++;

В результате выполнения переменные получат следующие значения:

а =4, b = 3, с= 6.

Второй пример:

а=3; b=2; с=++а*++b;

Результаты будут такими: а = 4, b = 3, с = 12.

Объяснение следующее: при использовании постфиксной формы операции ++ и -- выполняются после того, как значение переменной было использовано в выражении, а префиксные операции — до использования. Поэтому в первом примере значение переменной с вычислялось как произведение 3 на 2, а во втором — как произведение 4 на 3.

оператор

j = i++;

присваивает переменной j первоначальное значение переменной i.

оператор

j = ++i;

присваивает переменной j инкрементированное значение i.

 

 

6. Выражения и операции. Операции отношения в ЯП Си. Логические операции в ЯП Си.

Выражения и операции

Выражение задает порядок выполнения определенных действий с данными и состоит из круглых скобок, знаков операций и операндов (констант, переменных, обращений к функциям).

Операнды — это константы, переменные и числовые значения, обращения к функциям.

Операции определяют действия, которые надо выполнить над операндами.

Операция, применяемая к одному операнду, называется унарной, а операция с двумя операндами — бинарной.

Операции отношения.

< меньше,

<= меньше или равно,

> больше,

>= больше или равно,

== равно,

!= не равно.

В стандарте Си нет логического типа данных. Поэтому результатом операции отношения является целое число: если отношение истинно — то 1, если ложно — то 0.

Примеры отношений:

101>=105 результат 0 — ложь,

'а'= ='А’ результат 0 — ложь,

'а'!='А' результат 1 — истина.

Логические операции.

! операция отрицания (НЕ),

&& логическое И,

|| логическое ИЛИ.

Например, логическое выражение, соответствующее системе неравенств 0 < х< 1 в программе на Си запишется в виде следующего логического выражения:

х>0 && х<1

Примеры использования операции отрицания:

      x = 10;!(x > 0) ® 0

y > 0 && x = 7 ® истина, если оба выражения истинны;

e > 0 || x = 7                      ® истина, если хотя бы одно выражение истинно.

 

 

7. Структура программы в ЯП Си, пример.

Структура программы

Программа, написанная на языке Си, состоит из одной или нескольких функций, одна из которых имеет идентификатор main – главная (основная), с нее начинается выполнение программы и ее назначение – управлять работой всей программы.

Простейшая программа содержит только главную функцию и имеет следующую структуру:

директивы_препроцессора

Main()

{

определения_объектов;

ислолняемые_операторы;

}

Пример:

Даны стороны прямоугольника. Найдите его периметр.

#include <stdio.h>

#include <conio.h>

main()

{

int a,b,p;

clrscr();

printf("Введите 2 стороны \n");

scanf("%d%d", &a,&b);

p=2*(a+b);

printf("Периметр p=%d \n", p);

}

 

 

8. Функция ввода данных scanf() в ЯП Си (формат записи, примеры).

Операция присваивания.

Формат операции присваивания:

Операнд _1 = Операнд _2;

Операндом _1 может быть только переменная.

Операндом _2 могут быть: константа, переменная или любое выражение, составленное в соответствии с синтаксисом языка Си.

Присваивание значения в языке Cи рассматривается как выражение, имеющее значение левого операнда после присваивания. Таким образом, присваивание может включать несколько операций присваивания, изменяя значения нескольких операндов, например:

int i, j, k;

float x, y, z;

     ...

i = j = k = 0;                            «    k = 0, j = k, i = j;

x = i + (y = 3) – (z = 0); «    z = 0, y = 3, x = i + yz;

Например:

а=b=с=х+у;

Примеры недопустимых выражений:

– присваивание константе:                                        2 = x + y;

– присваивание результату операции:   (i + 1) = 2 + y;

 

В языке Си имеются дополнительные операции присваивания (сокращенная запись операции присваивания), совмещающие присваивание с выполнением других операций. Среди них: +=, -=, /=, *=, %=. Приоритет у них такой же, как и у простого присваивания. Примеры использования этих операций:

а+=2 эквивалентно а=а+2,

х-=а+b эквивалентно х=х-(а+b),

р/=10 эквивалентно р=р/10,

m*=n эквивалентно m=m*n,

г%=5 эквивалентно г=г%5.

 

 

11. Способы реализации условных алгоритмов в ЯП Си: оператор if (формат записи, блок-схема условного алгоритма, алгоритм работы, примеры).

Условный оператор if

Условный оператор IF обеспечивает выполнение или невыполнение некоторых операторов в зависимости от условия.

Алгоритмы, содержащие условные операторы, называют разветвляющимися.

В языке Си имеется две разновидности условного оператора: полная и неполная (простая).

Формат полногоусловного оператора:

if (выражение) оператор1; else оператор2;

Выражение — это условие, содержащее операции отношения и логические операции. Значение выражения приводится к целому и интерпретируется в соответствии с правилом: равно нулю — ложь, не равно нулю — истина.

Если выражение истинно, выполняется оператор1, если ложно — оператор2.

Необходимо обратить внимание на следующие особенности синтаксиса условного оператора:

выражение записывается в круглых скобках;

• точка с запятой после оператора1 ставится обязательно.

• если вместо оператора1 или оператора2 необходимо выполнить несколько операторов (более одного), их необходимо заключить в фигурные скобки.

Графическая схема:

Формат неполного условного оператора:

if (выражение) оператор;

Графическая схема:

Один оператор IF может входить в состав другого оператора IF (вложенный оператор). При вложенности операторов каждое ELSE связывается с ближайшим к нему предыдущим IF, не содержащим ветвь ELSE.

Пример 1:

int a=1, x=1;

if (a<0)x=0;x-=3;

В результате работы данных операторов переменная x получит значение -2.

Пример 2:

int a=1, x=1;

if (a<0) {x=0;x-=3;}

В результате работы данных операторов значение переменной x останется равным 1.

 

 

12. Способы реализации условных алгоритмов в ЯП Си: оператор switch (формат записи, алгоритм работы, примеры).

Операторы циклов

Циклы позволяют многократно выполнять отдельный оператор или последовательность операторов, причем при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз. Один проход цикла называется шагом или итерацией.

Существуют три типа операторов цикла: цикл с предусловием, цикл с постусловием и цикл с параметром.

Цикл с предусловием WHILE

Формат оператора цикла с предусловием:

while (выражение) оператор;

Перед каждым выполнением тела цикла вычисляется значение выражения (условие выполнения цикла). Если выражение в скобках – истина (не равно 0), то выполняется оператор (тело цикла). Это повторяется до тех пор, пока выражение не примет значение 0 (ложь). В этом случае происходит выход из цикла и выполняется оператор, следующий за конструкцией while. Если выражение в скобках изначально ложно (т.е. равно 0), то цикл не выполнится ни разу.

Тело цикла может включать любое количество операторов, которые нужно заключить в фигурные скобки, если их более одного.

Блок-схема:

Операторы циклов

Циклы позволяют многократно выполнять отдельный оператор или последовательность операторов, причем при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз. Один проход цикла называется шагом или итерацией.

Существуют три типа операторов цикла: цикл с предусловием, цикл с постусловием и цикл с параметром.

Операторы циклов

Циклы позволяют многократно выполнять отдельный оператор или последовательность операторов, причем при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз. Один проход цикла называется шагом или итерацией.

Существуют три типа операторов цикла: цикл с предусловием, цикл с постусловием и цикл с параметром.

Цикл с параметром FOR

Формат оператора цикла с параметром:

for (выражение_1; выражение_2; выражение_3) оператор;

Выражение 1 выполняется только один раз в начале цикла, определяет начальное значение параметра цикла (инициализирует параметр цикла).

Выражение 2 — это условие выполнения цикла. Если его результат не нулевой («истина»), – то цикл выполняется, иначе – происходит выход из цикла.

Выражение 3 обычно определяет изменение параметра цикла, оператор — тело цикла, которое может быть простым или составным. В последнем случае используются фигурные скобки.

Блок-схема: или   После вычисления выражения 3 происходит возврат к вычислению выражения 2 — проверке условия повторения цикла.  

Пример 1:

for(i=1;i<=20;i++)printf("*");

Оператор выведет на экран 20 символов «*» на одной строке.

Пример 2:

for(i=1;i<=20;i++)printf(" %d ",i);

Оператор выведет на экран числа от 1 до 20 в одной строке.

Пример 3:

for(i='z';i>='a';i--)printf(" %c\n ",i);

Оператор выведет в столбик буквы латинского алфавита в обратном порядке.

 

 

16. Тип данных массивы в ЯП Си: размер массива, индекс, размерность массива, формат описания. Примеры использования.

Массивы

Массив представляет собой упорядоченную конечную совокупность элементов одного типа, занимающих непрерывную область памяти. Число элементов массива называют его размером. Каждый элемент массива определяется идентификатором массива и своим порядковым номером – индексом. Индекс – целое число, по которому производится доступ к элементу массива.

Массивы могут быть одномерными, двумерными, трехмерными и т.д. Для двумерных, трехмерных и т.д. многомерных массивов индексов будет несколько. В этом случае количество индексов одного элемента массива является его размерностью.

Формат описания массива:

тип_элементов имя [константное_выражение];

Константное выражение задает количество элементов в массиве. Индексы массивов в языке Си начинаются с 0, т.е. в массиве а первый элемент: а [0], второй – а [1], … пятый – а [4].

Например, набор значений температуры воздуха за неделю можно представить как одномерный массив из 7 значений целого типа:

Пример 1:

int A[7];

объявлен массив с именем А, содержащий 7 элементов целого типа.

Размер массива может явно не указываться, если при его объявлении производится инициализация значений элементов.

Пример 2:

int p [ ] = { 2, 4, 6, 10, 1 };

В этом случае создается массив из пяти элементов со следующими значениями:

р [ 0 ] = 2, р [ 1 ] = 4, р [ 2 ] = 6, р [ 3 ] = 1 0, р [ 4 ] =1

Если в группе {…} список значений короче, то оставшимся элементам присваивается 0.

Пример 3:

В результате следующего объявления массива

int М[6]={5, 3, 2 };

будет создан массив из шести элементов. Первые три элемента получат инициализированные значения. Значения остальных будут либо неопределенными, либо равны нулю, если массив внешний или статический.

Примеры использования:

Посчитать количество дней недели, в которые температура была ниже 16 градусов.

for(i=0;i<=6;i++)if(a[i]<16)k++;

printf("количество дней=%d\n",k);

Получить среднее значение температуры воздуха за 7 дней:

sum=0;for(i=0;i<=6;i++)sum+=a[i];

f=sum/7;printf("средняя температура=%f\n",f);

 

 

17. Одномерные массивы в ЯП Си (определение, формат объявления, обращение к элементам, пример).

Массивы

Массив представляет собой упорядоченную конечную совокупность элементов одного типа, занимающих непрерывную область памяти. Число элементов массива называют его размером. Каждый элемент массива определяется идентификатором массива и своим порядковым номером – индексом. Индекс – целое число, по которому производится доступ к элементу массива.

Массивы могут быть одномерными, двумерными, трехмерными и т.д. Для двумерных, трехмерных и т.д. многомерных массивов индексов будет несколько. В этом случае количество индексов одного элемента массива является его размерностью.

Одномерные массивы

Формат описания массива:

тип_элементов имя [константное_выражение];

Константное выражение задает количество элементов в массиве. Индексы массивов в языке Си начинаются с 0, т.е. в массиве а первый элемент: а [0], второй – а [1], … пятый – а [4].

Например, набор значений температуры воздуха за неделю можно представить как одномерный массив из 7 значений целого типа:

Пример 1:

int A[7];

объявлен массив с именем А, содержащий 7 элементов целого типа.

Размер массива может явно не указываться, если при его объявлении производится инициализация значений элементов.

Пример 2:

int p [ ] = { 2, 4, 6, 10, 1 };

В этом случае создается массив из пяти элементов со следующими значениями:

р [ 0 ] = 2, р [ 1 ] = 4, р [ 2 ] = 6, р [ 3 ] = 1 0, р [ 4 ] =1

Если в группе {…} список значений короче, то оставшимся элементам присваивается 0.

Пример 3:

В результате следующего объявления массива

int М[6]={5, 3, 2 };

будет создан массив из шести элементов. Первые три элемента получат инициализированные значения. Значения остальных будут либо неопределенными, либо равны нулю, если массив внешний или статический.

Примеры использования:

Посчитать количество дней недели, в которые температура была ниже 16 градусов.

k=0; for(i=0;i<=6;i++)if(a[i]<16)k++;

printf("количество дней=%d\n",k);

Получить среднее значение температуры воздуха за 7 дней:

sum=0;for(i=0;i<=6;i++)sum+=a[i];

f=sum/7;printf("средняя температура=%f\n",f);

 

 

18. Алгоритмы обработки одномерных массивов в ЯП Си (ввод, вывод в строку, вывод в столбец, поиск элементов).

Массивы

Массив представляет собой упорядоченную конечную совокупность элементов одного типа, занимающих непрерывную область памяти. Число элементов массива называют его размером. Каждый элемент массива определяется идентификатором массива и своим порядковым номером – индексом. Индекс – целое число, по которому производится доступ к элементу массива.

Массивы могут быть одномерными, двумерными, трехмерными и т.д. Для двумерных, трехмерных и т.д. многомерных массивов индексов будет несколько. В этом случае количество индексов одного элемента массива является его размерностью.

Формат описания массива:

тип_элементов имя [константное_выражение];

Константное выражение задает количество элементов в массиве. Индексы массивов в языке Си начинаются с 0, т.е. в массиве а первый элемент: а [0], второй – а [1], … пятый – а [4].

Например, набор значений температуры воздуха за неделю можно представить как одномерный массив из 7 значений целого типа:

Инициализация. Инициализация — это присваивание всем элементам массива одного и того же значения. Выполняется поэлементно.

Пример 4: Присвоение всем элементам одномерного массива из 10-ти элементов значения 0

for(i=0;i<=9;i++)a[i]=0;

Ввод. Ввод элементов массива также осуществляется поэлементно:

for(i=0;i<=9;i++)scanf("%d",&a[i]);

Вывод. Выполняется аналогично:

for(i=0;i<=9;i++)printf("%d ",a[i]); \\вывод в строку

for(i=0;i<=9;i++)printf("%d \n",a[i]); \\вывод в столбец

Примеры поиска элементов:

Поиск количества элементов, меньших 16:

k=0; for(i=0;i<=6;i++)if(a[i]<16)k++;

printf("количество дней=%d\n",k);

Поиск минимального элемента и его номера:

nom=0;min=a[0];

for(i=0;i<=n-1;i++)if(a[i]<min){min=a[i];nom=i;}

printf("минимальное=%d номер=%d\n",min,nom);

 

 

19. Двумерные массивы в ЯП Си (определение, формат объявления, обращение к элементам, пример).

Массивы

Массив представляет собой упорядоченную конечную совокупность элементов одного типа, занимающих непрерывную область памяти. Число элементов массива называют его размером. Каждый элемент массива определяется идентификатором массива и своим порядковым номером – индексом. Индекс – целое число, по которому производится доступ к элементу массива.

Массивы могут быть одномерными, двумерными, трехмерными и т.д. Для двумерных, трехмерных и т.д. многомерных массивов индексов будет несколько. В этом случае количество индексов одного элемента массива является его размерностью.

Двумерные массивы

Если доступ к элементу массива осуществляется по двум индексам, то массив называется двумерным. Для наглядности двумерный массив можно изобразить в виде таблицы.

 

  1 2 3
1      
2      
3   5  
4      

Двумерный массив трактуется как одномерный массив, элементами которого является массив с указанным в описании типом элементов.

Например, оператор

float R[5][10];

объявляет массив из пяти элементов, каждый из которых есть массив из десяти вещественных чисел. Отдельные величины этого массива обозначаются именами с двумя индексами: R[0] [0], R[0][1],..., R[4][9].

Пример описания трехмерного массива:

double X[3][7][20];

При описании многомерных массивов их также можно инициализировать.

Делать это удобно так:

i n t M[3][3]={ 11,12,13,

21,22,23,

31,32,33 };

 

 

20. Алгоритмы обработки двумерных массивов в ЯП Си (ввод, вывод, поиск элементов).

Массивы

Массив представляет собой упорядоченную конечную совокупность элементов одного типа, занимающих непрерывную область памяти. Число элементов массива называют его размером. Каждый элемент массива определяется идентификатором массива и своим порядковым номером – индексом. Индекс – целое число, по которому производится доступ к элементу массива.

Массивы могут быть одномерными, двумерными, трехмерными и т.д. Для двумерных, трехмерных и т.д. многомерных массивов индексов будет несколько. В этом случае количество индексов одного элемента массива является его размерностью.

Двумерные массивы

Если доступ к элементу массива осуществляется по двум индексам, то массив называется двумерным. Для наглядности двумерный массив можно изобразить в виде таблицы.

 

  1 2 3
1      
2      
3   5  
4      

Двумерный массив трактуется как одномерный массив, элементами которого является массив с указанным в описании типом элементов.

Например, оператор

float R[5][10];

Функции

В языке Cи задача может быть разбита на более простые подзадачи при помощи подпрограмм-функций. Использование подпрограмм в коде программы и ведет к упрощению ее структуры, поскольку функцию записывают один раз, а вызывать ее на выполнение можно многократно из разных точек программы. Кроме того, упрощается процесс отладки программы, содержащей подпрограммы.

В языке Си вся программа строится только из функций. Всякая программа обязательно включает в себя основную функцию с именем main. Если в программе используются и другие функции, то они выполняют роль подпрограмм.

Функция – это именованная последовательность инструкций, выполняющая какое-либо законченное действие. Описывается один раз, а вызываться для выполнения может любое количество раз. Функции могут располагаться в исходном файле в любом порядке.

Объявление функции пользователя, выполняется в двух формах – в форме описания (объявления) и в форме прототипа.

Формат объявления(описания) функции:

тип_результата имя_функции (список формальных параметров)

{тело_ функции}

Пример:

int sum(int a, int b)

{return a+b;}

Тип результата — это тип возвращаемого функцией результата. Если функция не возвращает никакого результата, то для нее указывается тип void.

Имя функции — идентификатор, задаваемый программистом, или main для основной функции.

Список параметров — это список имен формальных параметров функции с указанием типа для каждого из них, разделенных запятыми (может отсутствовать, круглые скобки необходимы в любом случае). Если у функции отсутствует список параметров, то при декларации такой функции желательно в круглых скобках указать void.

Например, void main(void).

Тело функции — это либо составной оператор, либо блок. Признаком блока является наличие описаний программных объектов (переменных, массивов и т.д.), которые действуют в пределах этого блока. Блок, как и составной оператор, ограничивается фигурными скобками.

В Си действует правило: тело функции не может содержать в себе определения других функций.

Оператором возврата из функции в точку ее вызова является оператор return. Он может использоваться в функциях в двух формах:

return; или return выражение;

В первом случае функция не возвращает никакого значения в качестве своего результата. Во втором случае результатом функции является значение указанного выражения. Тип этого выражения должен либо совпадать с типом функции, либо относиться к числу типов, допускающих автоматическое преобразование к типу функции.

В функции может быть несколько операторов return, но может и не быть ни одного, тогда его присутствие подразумевается перед закрывающей тело функции фигурной скобкой. Если функция не должна возвращать значение, указывается тип void, оператор return можно не ставить.

Прототип - предварительное описание функции, задает имя функции, тип возвращаемого результата, количество и типы параметров.

Прототип функции:

тип_результата имя_функции (список);

В списке перечисляются типы параметров данной функции, идентификаторы переменных в круглых скобках прототипа указывать необязательно, т.к. компилятор языка их не обрабатывает.

Точка с запятой в конце прототипа ставится обязательно!

Пример:

int sum(int, int); или   int sum(int a, int b);

Функции

В языке Cи задача может быть разбита на более простые подзадачи при помощи подпрограмм-функций. Использование подпрограмм в коде программы и ведет к упрощению ее структуры, поскольку функцию записывают один раз, а вызывать ее на выполнение можно многократно из разных точек программы. Кроме того, упрощается процесс отладки программы, содержащей подпрограммы.

В языке Си вся программа строится только из функций. Всякая программа обязательно включает в себя основную функцию с именем main. Если в программе используются и другие функции, то они выполняют роль подпрограмм.

Функция – это именованная последовательность инструкций, выполняющая какое-либо законченное действие. Описывается один раз, а вызываться для выполнения может любое количество раз. Функции могут располагаться в исходном файле в любом порядке.

Объявление функции пользователя, выполняется в двух формах – в форме описания (объявления) и в форме прототипа.

Формат объявления(описания) функции:

тип_результата имя_функции (список_формальных_параметров)

{тело _ функции }

Пример:

int sum(int a, int b)

{return a+b;}

Вызов функции может находиться в любом месте программы, где по синтаксису допустимо выражение того типа, который формирует функция.

Формат обращения к функции (вызов функции):

имя_функции(список_фактических_праметров)

Пример:

Z=sum(x, y);

Ввод – вывод строк

Ввод



Поделиться:


Последнее изменение этой страницы: 2021-01-08; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.89.60 (0.311 с.)