Главная страница

вопросы. общие вопросы. Программа ипрограммирование


Скачать 1.45 Mb.
НазваниеПрограмма ипрограммирование
Анкорвопросы
Дата28.06.2022
Размер1.45 Mb.
Формат файлаdocx
Имя файлаобщие вопросы .docx
ТипПрограмма
#619339
страница9 из 12
1   ...   4   5   6   7   8   9   10   11   12

Комментарии в языке Си


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

/* — начало комментария;
*/ — конец комментария.


Вся последовательность, заключенная между этими символами, является комментарием.

Это удобно для написания многострочных комментариев:


 
 

Int a; /* целая
переменная */

Многострочные комментарии также удобно использовать при отладке для сокрытия от выполнения части кода.

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


 

float b; // вещественная переменная


    1. Главная функция


При выполнении консольного приложения, написанного на языке Си, операционная система компьютера передаёт управление функции с именем main(). Функцию main() нельзя вызывать из других функций программы, она является управляющей.

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

Главную функцию можно записать по-разному:

  • int main()

  • void main().

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

При этом запись int main() сообщает компилятору о возвращении целочисленного значения, которое необходимо операционной системе и сообщает ей о том, что программа завершилась корректно. Если же это значение не возвращено, то операционная система понимает, что программа завершилась в аварийном режиме.
Для возврата целочисленного значения перед завершением функции добавляется строка


 

return 0; // вещественная переменная
 
В фигурные скобки заключены описания и операторы.

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

 
Пример: Вывод на экран сообщения "Hello, world!".


1
2
3
4
5
6
7

#include   // Подключение библиотеки ввода-вывода
int main()         // Главная функция
{
  printf("Hello, world!"); // Вывод сообщения
  getchar();               // Задержка окна консоли
  return 0;
}



Результат работы программы:


Теперь попробуем написать текст на русском языке.


1
2
3
4
5
6
7

#include 
int main()
{
  printf("Здравствуй, мир!");
  getchar();
  return 0;
}



1
2
3
4
5
6
7
8
9
10

#include 
#include 
int main()
{
  system("chcp 1251");        // Текущая кодовая страница 1251
  system("cls");              // Очистка консоли
  printf("Здравствуй, мир!"); // Вывод сообщения
  getchar();
  return 0;
}



Результат работы программы:

Проблема русского языка в консольных приложениях заключается в том, что консоль и редактор кода Microsoft Visual Studio поддерживают разные кодовые страницы. Для того, чтобы увидеть русские символы в консоли необходимо поменять кодовую страницу в консоли, чтобы она соответствовала кодовой странице редактора (1251). С этой целью вызывается функция system("chcp 1251") с соответствующей командной строкой. Прототип функции system() содержится в библиотеке .

При этом текст программы будет выглядеть следующим образом:

Результат работы программы:

44 Структуры данных и управления языка программирования Си
Наряду с простыми одинарными переменными одного из базовых типов язык Си позволяет объявлять массивы. Под массивом понимается набор (упорядоченное множество) элементов одного типа. При этом возможен доступ к элементам массива путем указания индекса (то есть номера элемента в массиве). При этом, в отличие от многих языков программирования, в языке Си принято соглашение о том, что элементы массива нумеруются, начиная с нуля, то есть первый элемент — элемент с номером 0. Смысл подобной нумерации, несколько странной для читателя, не являющегося специалистом в программировании, заключается в том, что индекс можно рассматривать как величину смещения от начальной ячейки памяти, от которой в памяти помещается массив. При этом Си оказал огромное влияние на другие языки — даже современные языки Паскаль-семейства.

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

int a,b,c; float x[20]; char c,str[40];

Здесь описаны массив вещественных чисел из 20 элементов, а также массив символов (строка) размерностью 40. Обратите внимание на то, что в языке Си строки представляют собой массивы символов, при этом на конец строки указывает символ с кодом (значением), равным нулю.

При работе с массивами часто используют цикл по его элементам, при этом значение переменной, используемой в качестве индекса, либо увеличивается, либо уменьшается на единицу. Поскольку нумерация элементов начинается с нуля, переменная-индекс имеет значение от 0 до N – 1, где N — количество элементов массива. Связано это с тем, что фактически индекс элемента в массиве на Си представляет собой смещение относительно значения указателя в памяти на первый элемент массива.

Массивы могут фигурировать в качестве формальных и фактических параметров функций. Пример:

/* обработка массива в Си */

#include #include

int Pecat_kornei(float args[],int kol)

{

int i; float res;

for (i=0;i

{

if (args[i]>0)

{

res=sqrt(args[i]);

printf("Корень из %d — го элемента равен %f\n",i,res);

}

else

printf("Элемент массива номер %d меньше нуля !",i);

}

}

Используется стандартная библиотека математических функций, описанных в заголовочном файле math.h. Функция sqrt() возвращает значение квадратного корня числа.

В приведенной программе используется цикл for языка программирования Си, который является весьма гибким инструментом. После ключевого слова for в круглых скобках, разделенные точками с запятой, идут три выражения. Первое — группа операторов языка, разделяемых запятыми, которые должны выполниться до первого выполнения цикла. Второе — логическое условие, проверяемое перед каждым выполнением цикла и определяющее, продолжать выполнение или нет. Наконец, третье выражение — действия (через запятую), которые выполняются по окончании каждой итерации. Само тело цикла, то есть действия, выполняемые циклически, заключается в фигурные скобки, если это — не один оператор, в противном случае это просто следующий за круглыми скобками оператор. Выглядит все следующим образом:
    1. for ([<ид1>, <ид2>,…]; [<условие>]; [<ит1>, <ит2>, <ит3>…]) <тело цикла>

Здесь <идn> — инициализирующее действие с номером n, <итn> — действия-итераторы. Цикл выполняется следующим образом. Сначала производятся действия, приписываемые <идn>. Затем проверяется условие, и если оно истинно, выполняется тело цикла.

ид1

 

 

После выполнения тела цикла по очереди

 

 

 

выполняются

действия-итераторы,

снова

 

 

 

 

проверяется условие и т. д. Процедура может

 

ид2

 

 

быть проиллюстрирована рис. 14.

 

 

 

 

 

Рис. 14

 

Услов

 

 

ЗАМЕЧАНИЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
1   ...   4   5   6   7   8   9   10   11   12


написать администратору сайта