Advertisement
Guest User

Untitled

a guest
Jul 17th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.02 KB | None | 0 0
  1.         1. Элементы синтаксиса.
  2. Расмотрим следующий код:
  3.  
  4. #include <stdio.h>
  5. #include <math.h>
  6.  
  7. double root(double x) {
  8.         return sqrt(x);
  9. }
  10.  
  11. int main(int argc, char *argv[]) {
  12.         printf("Hello, World\n");
  13.         printf("%f\n",ro\
  14. ot(2));
  15. }
  16.  
  17. По пунктам:
  18. 1. Терминалью строки является точка с запятой.
  19. 2. Строка кода переносится посредством вставки бэкслэша в конец строки.
  20. 3. Объявление функции начинается с типа возвращаемого значения. Далее следует
  21. её имя, в скобках идёт перечисление аргументов вместе с их типами. Тело функции
  22. заключается в фигурные скобки. Возвращение значения происходит по слову return.
  23. 4. Передача аргументов - в скобках через запятую перечисляются аргументы.
  24. 5. Блоки кода выделяются с помощью фигурных скобок {, }.
  25. 6. Для подключения внешних файлов используется директива include.
  26. 7.
  27.  
  28.         2. Данные
  29. 1. Типизация нестрогая.
  30.  
  31. 2. Базовые типы:
  32. void func() { }
  33. char c = 'a';
  34. int x = 4;
  35. float x = 3.5;
  36. double x = 3.55;
  37. int y[3] = { 1, 2, 3};
  38. Из элементов базовых типов можно составлять массивы. Делается с помощью
  39. добавления квадратных скобок после имени переменной. В квадратных скобках
  40. указывается размер массива. Чтобы инициализировать массив значениями,
  41. записываем в фигурных скобках начальные значения через запятую.
  42. char str[4] = "abc";
  43. Набор элементов char, оканчивающийся спец. символом '\0', называется строкой.
  44. Текст, заключённый в двойные кавычки, трактуется как строковая константа.
  45. int * a = &x;
  46. Ещё один тип данных - указатели. Объявление состоит из следующих частей:
  47. а) тип, на который указывает
  48. б) звёздочки
  49. в) имени указателя
  50. Указателю можно присвоить начальное значение - адрес к-л переменной. Он
  51. берётся с помощью амперсанда &.
  52.  
  53. 3. Управление памятью.
  54. int a = 3;
  55. double b = 4;
  56. Переменные, непосредственно определённые в программе, находятся в стеке.
  57. int * a = malloc(sizeof(int));
  58. free(a);
  59. При помощи функций malloc() и free() можно выделять и освобождать динамическую
  60. память в куче.
  61. static int c = 4;
  62. Переменные, определённые с помощью ключевого слова static сохраняют своё
  63. значение между вызовами функций.
  64.  
  65. 4. Пользовательские типы.
  66. typedef int points;
  67. points highscore;
  68. Пользователь может дать синонимы базовым типам с помощью ключевого слова typedef,
  69. за которым через пробел следуют имя базового типа и его синоним.
  70.  
  71.         3. Базовые конструкции программирования.
  72. 1. Условия.
  73. бинарные:
  74. Выражение истинно, если оно отлично от нуля и ложно в противном случае.
  75. Решим следующую задачу: На вход подается целое число. Если оно четное,
  76. разделить на два, если нечетное, удвоить.
  77. int decide(int x) {
  78.         if ((x % 2) == 0)
  79.                 return x / 2;
  80.         else
  81.                 return x*2;
  82. }
  83. Заметим, что перед else точка с запятой ставится.
  84.  
  85. множественные:
  86. Для проверки подобных условий используется операторы switch и case.
  87. Для иллюстрации напишем программу, которая по введенному целому числу от 1го
  88. до 4х пишет их эквивалент в английском языке.
  89. void many(int x) {
  90.         switch(x) {
  91.                 case 1: printf("One\n");
  92.                         break;
  93.                 case 2: printf("Two\n");
  94.                         break;
  95.                 case 3: printf("Three\n");
  96.                         break;
  97.                 case 4: printf("Four\n");
  98.                         break;
  99.                 default:
  100.                         printf("Something wrong dude!\n");
  101.         }
  102. }
  103. После switch в скобках указывается переменная, значение которой мы
  104. будем сравнивать с вариантами. Далее в блок заключаются операторы case.
  105. После case через пробел указывается значение-вариант. Затем идёт двоеточие,
  106. за которым указывается последовательность действий, соответствующая этому
  107. варианту. Если ни один из вариантов не подошёл, выполняются действия,
  108. описанные после ключевого слова default.
  109. Замечание: сравнение переменной с вариантами происходит последовательно.
  110. Если нужный вариант найден, дальнейшие сравнения не производятся,
  111. последующие операторы case и default игнорируются. Соответственно, действия
  112. из вариантов, описываемых этими операторами, тоже будут выполняться. Чтобы
  113. избежать этого, используем оператор break выхода из блока switch-case.
  114.  
  115.  
  116. 2. Итерации
  117. while-циклы
  118. Требуется написать функцию, слушающую ввод с клавиатуры до тех пор, пока в
  119. введенной строке не окажется символ q
  120. void hear() {
  121.         char s;
  122.         while (1) {
  123.                 s = getchar();
  124.                 if (s == 'q')
  125.                         break;
  126.         }
  127. }
  128. Для чтения из stdin использовалась функция getchar. Она посимвольно считывает
  129. данные из буфера стандартного потока ввода.
  130.  
  131. for-циклы
  132. Требуется вывести список чисел от 1 до 10, умноженных на 2
  133. int b;
  134. for (i = 1; i < 11; i++) {
  135.         b = 2 * i;
  136.  
  137.         printf("%d ",b);
  138. }
  139. После ключевого слова for в скобках, через точку с запятой записываются три
  140. части: первая выполняется перед началом выполнения цикла, вторая содержит
  141. условие продолжение цикла, третья - оператор, выполняемый после каждой итерации.
  142. Части могут быть и пустыми, но точки с запятой в качестве разделителей
  143. обязательны. Например, можно определить цикл, выполняющийся бесконечно:
  144. for (;;) {
  145.         printf("Infinite loop\n");
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement