- •Основы программирования
- •Средства создания программ
- •Работа в интегрированной среде разработки программ turbo c (Borland c)
- •Основные функциональные клавиши и сочетания клавиш в Turbo c
- •Контрольные вопросы
- •Основы языка Си
- •Составляющие языка Си
- •Понятия алгоритмических языков (На примере языка Си)
- •Структура программы на языке Си
- •Директивы препроцессора
- •Главная функция
- •Переменные и массивы
- •Объявления переменных и массивов
- •Комментарии
- •Основные операции в Си
- •Арифметические операции
- •Логические операции и операции отношения
- •Операции присваивания
- •Функции ввода и вывода
- •Функция форматированного вывода printf( )
- •Функция форматированного ввода scanf( )
- •Функция неформатированного ввода getch( )
- •Функция неформатированного ввода gets( )
- •Функция неформатированного вывода puts( )
- •Программа – диалог
- •Контрольные к лабораторной работе «Программа-диалог»
- •Программа–тест
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Конструкция switch/case/default
- •Операторы цикла
- •Цикл for
- •Стандартные математические функции
- •Пример выполнения лабораторной работы «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Вложенные циклы.
- •Использование оператора break в циклах
- •Оператор continue
- •Оператор безусловного перехода goto
- •Действия с одномерными массивами
- •Инициализация массива
- •Ввод значений элементов массива с клавиатуры
- •Заполнение массива случайными числами
- •Вычисление суммы и произведения элементов массива
- •Поиск максимального элемента массива и его номера
- •Вычисление среднего арифметического
- •Перестановка элементов в массиве
- •Сортировка массива
- •Заполнение массива элементами из другого массива.
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
- •Контрольные к лабораторной работе «Программа-диалог»
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
Контрольные вопросы к лабораторной работе «Вычисление значения функции»
Назначение директивы #define.
Оператор условия в Си. Формы записи.
Оператор цикла в Си. Виды циклов в Си.
Ввод нескольких переменных в Си. Способы записи.
Математические функции в Си.
Функция очистки экрана. Особенности её применения.
Вложенные циклы.
Когда один цикл находится внутри другого, то говорят, что это вложенный цикл. Например, рассмотрим программу печати таблицы умножения целых чисел от 2 до 9.
Внешний цикл содержит оператор printf для перехода на новую строку при смене первого множителя и внутренний цикл для смены второго множителя и вывода результатов. Каждый раз при новом значении i во внешнем цикле внутренний цикл полностью повторяется заново.
ПРИМЕР 22:
Задание
Составить программу, позволяющую вывести на экран таблицу умножения чисел от 2 до 9
Решение
Программа |
Блок-схема |
#include <stdio.h> void main ( ) { int i, j; for(i=2; i<10; i++) /*внешний цикл*/ { printf(“\n”); for(j=2; j<10; j++) /*внутренний цикл*/ printf(“%d * %d = %2d “, i , j , i*j); } } |
Рассмотрим еще один пример, в котором используется сложный цикл. Приведенная далее программа позволяет найти в заданном интервале все совершенные числа. Напомним, что натуральное число называют совершенным, если оно равно сумме всех своих делителей, не считая его самого. Известно, что все совершенные числа - четные и что первое совершенное число из натурального ряда равно 6. Этим объясняется начальное значение параметра внешнего цикла. Так как все натуральные числа имеют своим делителем единицу , полагаем начальное значение суммы делителей числа S=1. Во внутреннем цикле организуется перебор всех множителей текущего значения N. Из теории чисел известно, что такому испытанию имеет смысл подвергать числа от 2 до N/2, либо даже. Это очень не совершенный алгоритм и если вы захотите выполнить его на ЭВМ, имейте в виду, что программа работает слишком долго. Более эффективный алгоритм можете реализован самостоятельно.
Использование оператора break в циклах
Оператор передачи управления break служит для немедленного завершения цикла, не связанного с проверкой обычного условия окончания цикла. Когда оператор break встречается внутри оператора цикла, то происходит немедленный выход из цикла и переход к выполнению оператора, следующего за оператором цикла. Необходимость в использовании оператора break в теле цикла возникает, когда условие продолжения цикла нужно проверять не в начале итерации (циклы for, while), не в конце итерации (циклы do - while), а в середине тела цикла. В этом случае тело цикла может иметь вид:
{ операторы
if (условие) break;
операторы
}
ПРИМЕР 23:
Задание
Для чисел i и j , причём i<j, определить наименьшее целое, не меньшее их среднего арифметического. Цикл может быть следующим:
Решение
while (i<j) { i++; if (i == j) break; j--; } |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ |
Так, для начального i=1 и j=6 с помощью оператора break достигается результат, равный 4.
ПРИМЕР 24:
Задание. Вычислить и напечатать в столбик кубы натуральных чисел, начиная с 1. Вычисления прекратить, когда очередное значение будет больше 10000.
Решение
#include <stdio.h> void main( ) { int i; for(i=1; i<500; i++) { printf(“\n %d - %d \n", i, i*i*i); if (i*i*i>= 10000) break; } } |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ |
Пояснение. Конечное значение переменной i , равное 500, взято заведомо большее, чем будет получено самое большое натуральное число, чтобы цикл закончился не по условию i<500 , а с помощью оператора break.