If условиеthenдействие. При этом если оператор действиеявляется условным оператором первого типа ему соответствует конструкция If
Скачать 204.5 Kb.
|
28) Трансляторы языка Си называются компиляторами: они переводят (транслируют) сразу всю программу в машинный код, а не транслируют строчка за строчкой во время выполнения, как это делают интерпретаторы. Это позволяет значительно ускорить выполнение программы и не ставить интерпретатор на каждый компьютер, где программа будет выполняться. В задачи препроцессора (preprocess – предварительно обрабатывать) входит подключение при необходимости к данной программе на Си внешних файлов, указываемых при помощи директивы #include, и подстановку макросов (macro – общий, macros – макроопределение). 29) Условный оператор имеет следующий вид: Условный оператор первого типа – If условиеthenдействие.При этом: если оператор действиеявляется условным оператором первого типа ему соответствует конструкция: Ifусловие1then Ifусловие2thenдействие В этом случае оператор действиеопределяется однозначно Условный оператор второго типа – Ifусловие thenдействие1 else действие2. Оператор действие1 – условный оператор первого типа, оператор действие2не является условным оператором (рис. 2.4.). Получаем конструкцию: Ifусловие1then beginIfусловие2thenдействие1endelseдействие2. Условный оператор позволяет выбирать одно из двух действий, причем выбор осуществляется во время выполнения программы. В повседневной жизни мы часто сталкиваемся с ситуациями, в которых осуществляется какой-либо выбор, другими словами, выполняется одно из возможных действий в зависимости от результата проверки определенного условия. С точки зрения программирования нас, конечно, интересуют ситуации, когда выбор осуществляет компьютер. ля реализации таких действий существуют специальные конструкции, называемые условными операторами или операторами выбора. В языке Си существуют два условных оператора: конструкция if-else и конструкция switch-case. Без операторов не возможно делать выборы при при решении задач. 30) Цикл for(цикл с индексированием)- он не скрывает ячейку-счетчик, а требует явно объявить ее (выделить под нее память), и даже позволяет использовать ее значение в теле цикла.Цикл for используется тогда, когда количество повторений цикла заранее известно или может быть вычислено.Цикл for состоит из заголовка и тела цикла. Цикл while-цикл с предусловием, будет выполняться, пока условие, указанное в круглых скобках является истиной. Цикл while используется тогда, когда количество повторений цикла заранее неизвестно и не может быть вычислено.Цикл while состоит из заголовка и тела цикла. Цикл do-while- цикл с постусловием, то есть условие проверяется не в начале, а в конце цикла .Циклы нужны для экономии памяти отводимой под програмные инструкции при необходимости повторять одни и те же действия много раз, отдать их выполнение машине. 31) Функция – это вспомогательная программа (подпрограмма), предназначенная для получения некоторого объекта-результата (например, числа). Она также может выполнять какие-то полезные действия. Логическая функция – это функция, возвращающая 1 (если ответ «Да») или 0 (если ответ «Нет»). – это функции выбора Логические функции используются, главным образом, в двух случаях: если надо проанализировать ситуацию и ответить на вопрос, от которого зависят дальнейшие действия программы; если надо выполнить какие-то сложные операции и определить, была ли при этом какая-то ошибка. Функции, возвращающие два значения: По определению функция может вернуть только одно значение-результат. Если надо вернуть два и больше результатов, приходится использовать специальный прием — передачу параметров по ссылке. 32) Глобальные переменные доступны из любой процедуры или функции. Поэтому их надо объявлять вне всех подпрограмм. Остальные переменные, объявленные в процедурах и функциях, называются локальными (местными), поскольку они известны только той подпрограмме, где они объявлены. Модификаторы переменных: Extern-изменяет область действия переменных и указывает на то, что переменная определена в другом модуле программы(Пример: extern float a;) Static-используется при объявлении переменных в функциях, кроме главного модуля, позволяет хранить значения локальной переменной при выходе из функции, где она объявлена(если модификатор не указан, то значение теряется). 33) Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива. Фактически одномерный массив — это массив, у которого может быть только одна строка, и n-е количество столбцов. Столбцы в одномерном массиве — это элементы массива. В памяти все массивы любой размерности хранятся как одномерные. Это позволяет с одной стороны работать с ними как с массивами указанной размерности, с другой стороны это позволяет обращаться к ним напрямую в память через указатели, игнорируя их размерность. Объявление одномерного массива: int a[10]; Работа с одномерными массивами: Ввод одномерного массива: for (i=0;i<5;i++) {printf (“a[%d]=,”i); scanf (“%d”&a[i]);} Вывод одномерного массива: for (i=0;i<2;i++) {printf (“%d,”a[i]); printf (“a[%d]=%d,”I,a[i]);} Присвоение первому элементу массива значения N: A[0]=N; 34) Двумерный массив — это обычная таблица, со строками и столбцами. Фактически двумерный массив — это одномерный массив одномерных массивов. Структура двумерного массива, с именем a, размером m на n. где, m —количество строк двумерного массива; n — количество столбцов двумерного массива; m * n— количество элементов массива. Объявление двумерного массива: int a[10][10]; Ввод двумерного массива: for (i=0;i<5;i++) { for (j=0;i<5;j++) {while (t<30){пустая строка}printf (“ввод[%d][%d]=,”I,j); scanf (“%d”&b[i][j]);}} Вывод одномерного массива: for (i=0;i<2;i++){for(j=0;i<2;j++) {printf (“Вывод в[%d][%d]=%d,”I,j,b[i][j]); printf (“%d ”I,b[i][j]);} printf(“\n”);} 35) Символьная строка – это последовательность символов. Мы будем рассмат- ривать строки, в которых на каждый символ отводится 1 байт. В этом случае можно использо- вать 28=256 различных символов. Каждый символ имеет свой код (от 0 до 255), эти коды опре- деляются по специальной таблице. Строка, как и другие переменные, записывается в память, причем компьютеру все равно, какие данные записаны – для него это набор байтов. Как же определить, где заканчивается строка? Есть два решения: 1) хранить длину строки в отдельной ячейке (как в языке Паскаль); 2) выбрать один особый символ, который будет обозначать конец строки, причем в середине строки этот символ не может встречаться. Символьная строка – это последовательность символом, которая заканчивается символом с кодом 0. Символ с кодом ноль не имеет никакого изображения, в программе его записывают как '\0'. Символ с кодом ноль (обозначается как '\0') и цифра ноль (обозначается '0', имеет код 48) – это два разных символа. Объявление строки: Ввод и вывод строк: Функция для работы со строками: Сравнение строк: Копирование строк: 36) Указатель – это переменная, в которой хранится адрес другой переменной или участка па- мяти. • указатель – это переменная, в которой записан адрес другой переменной; • при объявлении указателя надо указать тип переменных, на которых он будет указывать, а перед именем поставить знак *; • знак & перед именем переменной обозначает ее адрес; • знак * перед указателем в рабочей части программы (не в объявлении) обозначает значе- ние ячейки, на которую указывает указатель; • нельзя записывать по указателю, который указывает непонятно куда – это вызывает сбой программы, поскольку что-то стирается в памяти; • для обозначения недействительного указателя используется константа NULL; • при изменении значения указателя на n он в самом деле сдвигается к n-ому следующему числу данного типа, то есть для указателей на целые числа на n*sizeof(int) байт; • указатель печатаются по формату %p. 36) |