- •ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С И С++
- •СОДЕРЖАНИЕ
- •ВВЕДЕНИЕ
- •1. ЛЕКСИКА ЯЗЫКА C
- •1.1. РАЗДЕЛИТЕЛИ
- •1.2. КОММЕНТАРИИ
- •2. ДАННЫЕ И ОПЕРАЦИИ
- •2.1. БАЗОВЫЕ ТИПЫ ДАННЫХ
- •Наименование
- •Диапазон
- •2.2. КОНСТАНТЫ
- •Целые константы
- •Константы с плавающей точкой
- •Символьные константы
- •2.3. ОПРЕДЕЛЕНИЕ ПЕРЕМЕННЫХ И ТИПИЗИРОВАННЫХ КОНСТАНТ
- •2.4. ОДНОМЕРНЫЙ МАССИВ
- •2.5. СТРОКИ, СТРОКОВЫЕ КОНСТАНТЫ
- •2.6. УКАЗАТЕЛИ
- •2.7. ПЕРЕИМЕНОВАНИЯ ТИПОВ
- •2.8. СТРУКТУРЫ
- •2.9. МАССИВЫ СТРУКТУР
- •2.10. МНОГОМЕРНЫЕ МАССИВЫ
- •2.11. ОБЪЕДИНЕНИЕ
- •2.12. ПЕРЕЧИСЛЕНИЕ
- •2.13. БИТОВОЕ ПОЛЕ ( ЗАПИСЬ )
- •3. ОПЕРАЦИИ И ВЫРАЖЕНИЯ
- •3.1. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
- •3.2. ОПЕРАЦИИ СРАВНЕНИЯ
- •3.3. ЛОГИЧЕСКИЕ ОПЕРАЦИИ
- •3.4. ПОБИТОВЫЕ (ПОРАЗРЯДНЫЕ) ОПЕРАЦИИ
- •3.5. ОПЕРАЦИИ ПРИСВАИВАНИЯ
- •3.6. АДРЕСНЫЕ ОПЕРАЦИИ
- •3.7. ДОСТУП К ПОЛЯМ СТРУКТУР, ОБЪЕДИНЕНИЙ И ЗАПИСЕЙ
- •3.8. ДРУГИЕ ОПЕРАЦИИ
- •3.9. ПОРЯДОК ВЫПОЛНЕНИЯ ОПЕРАЦИЙ В ВЫРАЖЕНИИ
- •4. ОПЕРАТОРЫ
- •4.1. ОПЕРАТОР-ВЫРАЖЕНИЕ
- •4.2. ПУСТОЙ ОПЕРАТОР
- •4.3. СОСТАВНОЙ ОПЕРАТОР
- •4.4. УСЛОВНЫЕ ОПЕРАТОРЫ
- •4.5. ОПЕРАТОРЫ ЦИКЛА
- •while( выражение) оператор;
- •do оператор while ( выражение );
- •for( выражение1; выражение2; выражение3 ) оператор;
- •4.6. ОПЕРАТОРЫ ПЕРЕХОДА
- •break;
- •switch
- •continue;
- •goto метка;
- •5. ФУНКЦИИ. КЛАССЫ ПАМЯТИ
- •5.1. ФУНКЦИИ
- •5.2. КЛАССЫ ПАМЯТИ
- •класс памяти
- •ключевое слово
- •существование
- •видимость
- •5.3. ВОЗВРАЩЕНИЕ ЗНАЧЕНИЙ
- •5.4. АРГУМЕНТЫ ФУНКЦИИ
- •6. ФУНКЦИИ ВВОДА С КЛАВИАТУРЫ И ВЫВОДА НА ДИСПЛЕЙ
- •6.1. ФОРМАТИРОВАННЫЙ ВЫВОД
- •6.2. ФОРМАТИРОВАННЫЙ ВВОД
- •6.3. ВВОД СТРОКИ
- •6.4. ВЫВОД СТРОКИ
- •6.5. ВВОД СИМВОЛА
- •6.6. ВЫВОД СИМВОЛА
- •7. ПРЕПРОЦЕССОР
- •7.1. ВКЛЮЧЕНИЕ ФАЙЛОВ
- •7.2. ВЫПОЛНЕНИЕ ПОДСТАНОВОК
- •7.3. УСЛОВНАЯ КОМПИЛЯЦИЯ
- •8. ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ, СПИСКИ
- •8.1. ВЫДЕЛЕНИЕ И ОСВОБОЖДЕНИЕ ДИНАМИЧЕСКОЙ ПАМЯТИ
- •8.2. СПИСКИ
- •Рис.1. Структура однонаправленного линейного списка
- •9. ФАЙЛЫ
- •9.1. ОТКРЫТИЕ И ЗАКРЫТИЕ ФАЙЛОВ
- •9.2. ЧТЕНИЕ И ЗАПИСЬ В ФАЙЛ
- •9.3. ПРОИЗВОЛЬНЫЙ ДОСТУП К ФАЙЛУ
- •10. ЛАБОРАТОРНЫЕ РАБОТЫ
- •10.1. МАССИВЫ И СИМВОЛЬНЫЕ СТРОКИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.2. ФУНКЦИИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.3. СТРУКТУРЫ И МАССИВЫ СТРУКТУР
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.4. ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ, СПИСКИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •10.5. РАБОТА С ФАЙЛАМИ
- •Цель работы
- •Пример выполнения работы
- •Варианты заданий
- •11. ВВЕДЕНИЕ В C++
- •12. КЛАССЫ
- •12.1. ОБЩИЕ ПОЛОЖЕНИЯ
- •12.2. КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
- •12.3. СОЗДАНИЕ И ВЫЗОВ ОБЪЕКТОВ
- •12.4. ДРУЖЕСТВЕННЫЕ ФУНКЦИИ
- •12.5. ПЕPЕГPУЖЕННЫЕ ОПЕPАЦИИ И ФУНКЦИИ
- •12.6. ПАРАМЕТРИЗИРОВАННЫЕ КЛАССЫ
- •12.7. ПРЕОБРАЗОВАНИЕ ТИПОВ
- •12.8. СТАТИЧЕСКИЕ КОМПОНЕНТЫ КЛАССА
- •13. ПРОИЗВОДНЫЕ КЛАССЫ, НАСЛЕДОВАНИЕ
- •13.1. ИЕРАРХИЯ КЛАССОВ
- •13.2. ДОСТУП К НАСЛЕДУЕМЫМ КОМПОНЕНТАМ
- •Доступ в базовом классе
- •Модификатор доступа
- •14. ВИРТУАЛЬНЫЕ ФУНКЦИИ
- •14.1. ОБЩИЕ ПОЛОЖЕНИЯ
- •14.2. ВИРТУАЛЬНЫЕ ДЕСТРУКТОРЫ
- •14.3. АБСТРАКТНЫЕ КЛАССЫ
- •15.1. ВЫВОД ДАННЫХ
- •15.2. ВВОД ДАННЫХ
- •15.3. ВВОД-ВЫВОД ДАННЫХ, ОПРЕДЕЛЕННЫХ ПОЛЬЗОВАТЕЛЕМ
- •15.4. РАБОТА С ДИСКОВЫМИ ФАЙЛАМИ
- •15.5. ОБРАБОТКА ИСКЛЮЧЕНИЙ
- •ЛИТЕРАТУРА
– 17 –
while(( ch=getchar())!='\n' ) putchar(ch);
for( выражение1; выражение2; выражение3 ) оператор;
Выражение1 определяет инициализацию параметра цикла, выражение2 (целое) – проверку условия окончания, выражение3 обеспечивает наращивание параметра.
Пример: подсчитать количество пробелов в символьной строке, состоящей из 10 симво-
лов.
for( i=0; i<10; i++ ) if( string[i] == " " )
count++;
Любое из трех выражений может быть пропущено(символ «;» должен остаться): for(;;); – бесконечный цикл.
В качестве выражения в заголовке цикла могут быть использованы любые выражения или функции.
Примеры:
for(i=0;string[i]!=’\0’;i++);/*пока в массиве не встретится символьный ноль*/ for(putchar(’a’); putchar(’b’); putchar(’c’) )
putchar(’d’);
На экран выводится бесконечная строка: abdcbdcbdcbdcbdc ...
В заголовке цикла можно использовать операцию «запятая» . Выражения, записанные через запятую, вычисляются последовательно слева направо.
Пример: перестановка символов в строке по типу: 1-ый – последний; 2-ой – предпоследний и т.д.
char s[10], с; int i, j; gets (s);
for ( i=0, j=9; i<j; i++, j-- ){ c=s[i]; s[i]=s[j]; s[j]=c; }
Операторы циклов могут быть вложенными. Пример вложенных циклов:
for ( i=0,j=9; i<j; i++, j-- )
for ( ii=0,ij=9; ii<ij; ii++, ij-- )
4.6. ОПЕРАТОРЫ ПЕРЕХОДА
break;
Прерывает выполнение циклов do, while, for. Управление передаётся следующему за циклом оператору. Если прерывание произошло внутри цикла, то управление передаётся ближайшему внешнему оператору.
Пример: подсчитать количество символов, вводимых с клавиатуры; конец ввода – нажатие клавиши «Enter». Если вводится не буква, то ввод прекращается.
count=0;
while((ch=getchar( ))!=’\n’){ if(!(isalpha(ch)){
//isalpha - возвращает истину, если аргумент-буква латинского алфавита puts(”При вводе встретилась не буква”);
© 1998 Калачев Д.П., Лутай В.Н.
– 18 –
break;
}
count++;
}
printf(”Кол-во введённых букв %d”, count);
switch
switch ( выражение ){ case константа_1:
оператор_1; break;
...
case константа_n: оператор_n; break;
default:
оператор_n+1; break;
}
Определяет вариант продолжения программы. Управление передаётся оператору, перед которым записана константа, являющаяся значением выражения в заголовке switch. Если значению выражения не соответствует никакая константа, то управление передаётся на оператор default. Оператор break обеспечивает выполнение только выбранного оператора (может отсутствовать). Константы должны быть целого типа.
Пример: int num;
printf (”Наберите номер телефона, \n а я укажу абонента”); scanf(”%d”, &num );
switch ( num ){
case 01: printf (”Пожарная \n”};break; case 02: printf (”Милиция \n”}; break; case 09: printf (”Cправочная \n”}; break; default :printf (”Вы ошиблись номером \n”);
}
continue;
При использовании в циклах вызывает пропуск записанных за ним операторов тела цик-
ла.
Пример: на экран последовательно выводятся цифры от 0 до 9 за исключением 5. for ( i=0; i<=9; i++){
if ( i==5) continue; printf (”%d”,i);
}
goto метка;
Осуществляет безусловный переход на оператор, имеющий метку. Метка представляет собой идентификатор.
Пример: a=5;
goto m1; b=6;
m1:
c=7;
© 1998 Калачев Д.П., Лутай В.Н.