- •Содержание
- •1.Введение
- •Рекомендуемая литература
- •1.1Этапы решения инженерных задач с помощью эвм.
- •1.2Алгоритмы решения задач.
- •1.2.1Понятие алгоритма, его свойства.
- •Свойства алгоритма
- •1.2.2Обозначения элементов алгоритмов (блоки).
- •1.2.3Базовые управляющие конструкции.
- •Основные блочные символы.
- •Базовые алгоритмические структуры.
- •1.2.4Некоторые стандартные приемы алгоритмизации.
- •1. Поменять местами содержимое двух переменных (три ведра).
- •Определить, имеют ли две переменные один знак.
- •Проверить делимость числа на 3.
- •Алгоритм обработки массива.
- •Найти сумму элементов массива.
- •Найти максимальный элемент массива.
- •Использование флага наступления события.
- •Построить таблицу значений функции на отрезке и найти ее максимальное значение.
- •1.3Системы программирования.
- •1.3.1Состав.
- •1.3.2Язык программирования, алфавит, синтаксис, семантика.
- •1.3.3Реализация языка.
- •1.4Характеристики языков программирования.
- •1.5Целевое назначение систем программирования.
- •1.5.1Машинно-ориентированные.
- •1.5.1.1Системы символического кодирования.
- •1.5.1.2Ассемблеры.
- •1.5.2Машинно-независимые.
- •1.5.2.1Процедурно-ориентированные.
- •1.5.2.2Проблемно-ориентированные.
- •1.6Этапы обработки программы машиной.
- •2.1История создания.
- •2.3Алфавит, структура программы.
- •2.3.1Алфавит.
- •2.3.2Структура программы.
- •2.4Типы данных Си. Константы. Переменные. Описания переменных.
- •2.5Выражения в языке Си.
- •2.5.1Арифметические операции и выражения.
- •2.5.2Логические операции и выражения.
- •2.5.3Некоторые другие операции в языке Си.
- •2.5.3.1Операция присваивания.
- •2.5.3.2Условная операция.
- •2.5.3.3Операция последовательного вычисления (запятая).
- •2.5.3.4Специфические формы операции присваивания.
- •2.5.3.5Приоритет выполнения операций.
- •2.5.4Стандартные функции.
- •2.5.4.1Правила записи.
- •2.5.4.2Основные математические функции.
- •2.6.2.2Оператор бесформатного ввода с клавиатуры.
- •2.6.2.3Функция форматного вывода на экран.
- •2.6.2.4Функция ввода символа с клавиатуры.
- •2.6.3Составной оператор.
- •3.Операторы управления.
- •3.1Условные операторы.
- •3.1.1Оператор if-else.
- •3.1.2Оператор else-if.
- •3.2Оператор-переключатель. Оператор break.
- •3.3Операторы для организации цикла.
- •3.3.1Оператор цикла с предусловием (while).
- •3.3.2Оператор цикла с постусловием (do).
- •3.3.3Оператор цикла с параметром (for) или пошаговый.
- •3.3.4Вложенные циклы.
- •3.3.5Операторы break и continue.
- •3.3.6Оператор безусловного перехода.
- •4.Использование массивов. Указатели.
- •4.1Массивы.
- •4.1.1Понятие массива. Описание массива.
- •4.1.2Инициализация массивов.
- •4.1.2.1Инициализация массивов при их объявлении.
- •4.1.2.2Инициализация массивов вводом с клавиатуры.
- •4.1.3Вывод массивов.
- •4.1.4Работа с массивами.
- •4.2Указатели.
- •4.2.1Адреса и указатели.
- •4.2.2Массивы и указатели.
- •4.2.3Строки и указатели.
- •5.Функции пользователя в языке Си.
- •5.1Назначение функций. Описание функции.
- •5.2Обращение к функции. Прототип функции. Область видимости и время жизни переменных.
- •5.3Правила соответствия формальных параметров и фактических аргументов.
- •5.4Передача данных по значению и по адресу. Функция scanf().
- •5.5Использование массивов в качестве аргументов функции.
- •Int na, nb; // количества введенных элементов этих массивов
- •Vvod_mas1(&na,a) // Ввод количества элементов na и массива a
- •Vvod_mas1(&nb,b) // Ввод количества элементов nb и массива b
- •If password("Мой пароль")
- •6.Работа с внешними файлами в Си.
- •6.1Файловый указатель. Открытие файла.
- •6.2Чтение данных из текстового файла.
- •6.3Запись данных в текстовый файл. Закрытие файла.
3.3Операторы для организации цикла.
Эти операторы предназначены для повторения какого-либо оператора несколько раз.
3.3.1Оператор цикла с предусловием (while).
Оператор цикла с предусловием имеет вид (синтаксис):
while ( условие )
оператор // тело цикла
Семантика: выполняется следующим образом:
Вычисляется условие.
Если оно истинно (0), то
Выполняется оператор.
Переход к пункту 1.
Иначе - выход из цикла (переход к следующему после while оператору.
Пример 11. Напечатаем список цифр от одного до 9 через побел.
i=0;
while (i<10)
{ printf(“%d “,i);
i++; // То же, что и i=i+1
}
Оператор (тело цикла) может не выполняться ни разу, если условие изначально ложно. Каждое повторение тела цикла называется итерацией.
3.3.2Оператор цикла с постусловием (do).
Оператор цикла с постусловием используется редко и имеет вид (синтаксис):
do
оператор // тело цикла
while ( условие );
Семантика: выполняется следующим образом:
Выполняется оператор.
Вычисляется условное выражение.
Если оно истинно (0), то
Переход к пункту 1.
Иначе - выход из цикла (переход к следующему после do оператору.
Пример 12. Напечатаем список чисел от 10 до 1 в столбик.
i=10;
do
printf(“%d\n“,i--);
while (i>0);
В отличие от while тело цикла выполнится хотя бы один раз.
3.3.3Оператор цикла с параметром (for) или пошаговый.
Оператор for имеет вид (синтаксис):
for( |
выражение1; |
условие ; |
выражение2 ) |
оператор |
|
|
|
|
|
for( |
начальное значение счетчика |
условие продолжения цикла |
изменение счетчика |
повторяемый оператор (тело цикла) |
Любое из выражений в скобках может отсутствовать, однако их разделители “;” обязательны.
Семантика: оператор for выполняется следующим образом:
Вычисляется выражение1 (начальное значение счетчика), если оно есть;
Вычисляется условие (условие продолжения цикла);
Если оно истинно (0) или его вообще нет, то
Выполняется оператор;
Вычисляется выражение2 (новое значение счетчика);
Переход к пункту 2.
Иначе - выход из цикла (переход к следующему после for оператору.
П
Изменение счетчика
p=1; s=0;
for(i=1; i<=8; i=i+1)
{ s=s+i;
p=p*i;
}
То же можно написать короче в ущерб читабельности, воспользовавшись операциями “,” , присваивания и постдекремента:
for(p=1, s=0, i=1; i<=8; s+=i, p*=i++);
В этом примере тело цикла отсутствует, поскольку при вычислении выражения2 изменяются и s, и p, а затем и i.
Пример 14. Напишем оператор задержки продолжения программы до нажатия клавиши “g”.
for(ch=‘A’; ch != ‘g’; ) ch=getch();
В данном примере отсутствует выражение2, поскольку значение переменной ch изменяется в теле цикла.
3.3.4Вложенные циклы.
В каждом из видов циклов тело цикла может быть тоже оператором цикла. Такие циклы называются вложенными. Важно, чтобы тело внутреннего цикла не выходило за пределы тела внешнего цикла.
Пример 15. Напишем программу печати таблицы умножения.
for(i=1; i<10; i++) // Для каждой строки i таблицы
{ for(j=1; j<10; j++) // Для каждого столбца j таблицы
// выводим j*i=произведение j на i
printf(“%d*%d=%2d “,j,i,j*i);
// В конце строки (после цикла по j)
cout << '\n'; // переход на новую строку
}
Попытайтесь исправить эту программу так, чтобы обойтись тремя операторами (без cout ). Подсказка: использовать условную операцию ( ? : ).

Смысл