- •Основы программирования
- •Средства создания программ
- •Работа в интегрированной среде разработки программ turbo c (Borland c)
- •Основные функциональные клавиши и сочетания клавиш в Turbo c
- •Контрольные вопросы
- •Основы языка Си
- •Составляющие языка Си
- •Понятия алгоритмических языков (На примере языка Си)
- •Структура программы на языке Си
- •Директивы препроцессора
- •Главная функция
- •Переменные и массивы
- •Объявления переменных и массивов
- •Комментарии
- •Основные операции в Си
- •Арифметические операции
- •Логические операции и операции отношения
- •Операции присваивания
- •Функции ввода и вывода
- •Функция форматированного вывода printf( )
- •Функция форматированного ввода scanf( )
- •Функция неформатированного ввода getch( )
- •Функция неформатированного ввода gets( )
- •Функция неформатированного вывода puts( )
- •Программа – диалог
- •Контрольные к лабораторной работе «Программа-диалог»
- •Программа–тест
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Конструкция switch/case/default
- •Операторы цикла
- •Цикл for
- •Стандартные математические функции
- •Пример выполнения лабораторной работы «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Вложенные циклы.
- •Использование оператора break в циклах
- •Оператор continue
- •Оператор безусловного перехода goto
- •Действия с одномерными массивами
- •Инициализация массива
- •Ввод значений элементов массива с клавиатуры
- •Заполнение массива случайными числами
- •Вычисление суммы и произведения элементов массива
- •Поиск максимального элемента массива и его номера
- •Вычисление среднего арифметического
- •Перестановка элементов в массиве
- •Сортировка массива
- •Заполнение массива элементами из другого массива.
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
- •Контрольные к лабораторной работе «Программа-диалог»
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
Функция неформатированного ввода getch( )
Функция неформатированного ввода getch( ) не имеет аргументов и предназначена для ввода с клавиатуры одного символа. Об этом говорят символы ch (от английского слова character – буква, литера) в имени данной функции. Она описана в заголовочном файле conio.h.
Функция вводит с клавиатуры один символ, который на экран не выводится, при этом нажатие клавиши ENTER не требуется. В связи с этим данная функция часто используется для приостановки процесса выполнения программы до нажатия какой-либо клавиши на клавиатуре.
Если вводимый символ будет использоваться в дальнейшей работе программы, то он может быть получен с помощью оператора присваивания, в котором функция getch() записывается в правой части, например:
c = getch(); |
Этот символ при необходимости может быть выведен на экран следующим образом:
printf("\n %c", c); |
либо
printf("\n %c", getch()); |
Функция неформатированного ввода gets( )
Функция неформатированного ввода gets( ) предназначена для ввода с клавиатуры строки символов. Об этом напоминает символ s в имени данной функции. Она описана в заголовочном файле stdio.h.
Функция ввода строки gets( ) используется в виде:
gets(<имя символьного массива> ) ;
Эта функция читает символы, вводимые с клавиатуры, до тех пор, пока не встретится символ ‘\n’ (который создается при нажатии клавиши ENTER), заменяет этот символ нуль – символом (‘\0’) и записывает полученную строку по адресу символьного массива.
ПРИМЕР 11:
Задание
Рассмотрим работу следующего фрагмента диалоговой программы, в котором используется символьный массив name.
Решение
printf(“\n Здравствуйте! Как вас зовут?”); gets(name); printf(“\n Очень приятно познакомиться, %s!”, name); printf(“\n Для продолжения диалога нажмите любую клавишу“); getch(); |
/*1*/ /*2*/ /*3*/ /*4*/ |
Предположим, что в процессе выполнения программы после появления на экране с новой строки слов
Здравствуйте! Как вас зовут? |
на клавиатуре были набраны символы
Сидоров Пётр Иванович |
и нажата клавиша ENTER. В результате в массив name будут помещена информация
Сидоров Пётр Иванович |
На экране появится текст:
Очень приятно познакомиться, Сидоров Пётр Иванович Для продолжения диалога нажмите любую клавишу |
и выполнение программы приостановится до нажатия какой-либо клавиши на клавиатуре.
Функция неформатированного вывода puts( )
Функция неформатированного вывода puts ( ) предназначена для вывода строки символов. Об этом информирует символ s в имени данной функции. Она описана в заголовочном файле stdio.h.
Функция неформатированного вывода puts ( ) используется в виде
puts(“строка символов”);
или:
puts(имя символьного массива);
В первом случае данная функция выводит на экран без кавычек строку символов, являющуюся аргументом функции, а во втором – те символы, которые хранятся в символьном массиве с указанным именем. После вывода строки символов выполняется перевод курсора на новую строку экрана.
Программа – диалог
Проиллюстрируем использование рассмотренных функций и операторов на примере программы–диалога.
ПРИМЕР 12:
Задание
Составить программу-диалог от имени персонального компьютера со студентом..
Решение
#include<stdio.h> #include<conio.h> void main( ) { int x, y; char name[50],let[10], vuz[25], spez[20], kurs[10] ; printf("\n Здравствуйте, как вас зовут?"); gets(name); P("\n %s, сколько Вам лет? ", name); gets(let); x=atoi(let); printf ("\n %s, неужели уже %d? А мне показалось, что Вам только %d.", x, x-2); printf ("\n %s, Если Вам уже %d лет, то Вы, наверное уже учитесь в Вузе.\ \ В каком ВУЗе Вы учитесь?", name, i); gets(vuz); printf ("\n %s лучший ВУЗ нашего города! %s, Вы сделали правильны выбор!", vuz, name); printf ("\n А на какой специальности в %s Вы учитесь?", vuz); gets(spez); printf ("\n %s – очень перспективная специальность! ", spez); printf ("\n %s, а на каком курсе Вы учитесь в %s?", name, vuz); gets(kurs); y=atoi(kurs); printf ("\n Уже на %d? Я снова ошибся, думая, что Вы ещё на %d курсе. “, y, y-1); printf ("\n %s, приятно было пообщаться со студентом %s %d курса специальности\ \ %s! Досвидания! ", name,vuz, y, spez); getch(); } |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*/ /*12*/ /*13*/ /*14*/ /*15*/
/*16*/ /*17*/ /*18*/ /*19*/ /*20*/ /*21*/ /*22*/
/*23*/ /*24*/ /*25*/ |
Предположим, что в процессе выполнения программы после появления на экране с новой строки слов
Здравствуйте! Как вас зовут? |
на клавиатуре были набраны символы
Сидоров Пётр Иванович |
и нажата клавиша ENTER. В результате в массив name будет помещена информация Сидоров Пётр Иванович
На экране появится текст:
Сидоров Пётр Иванович, а сколько Вам лет? |
на клавиатуре были набраны символы
18 лет |
и нажата клавиша ENTER. В результате в массив let будет помещена информация 18 лет, а целочисленной переменной x будет присвоено значение, равное 18.
На экране появится текст:
Сидоров Пётр Иванович, неужели уже 18? А мне показалось, что Вам только 16 Сидоров Пётр Иванович, Если Вам уже 18лет, то Вы, наверное уже учитесь в Вузе. В каком ВУЗе Вы учитесь?" |
на клавиатуре были набраны символы
ВИСТех |
и нажата клавиша ENTER. В результате в массив vuz будет помещена информация ВИСТех. На экране появится текст:
ВИСТех лучший ВУЗ нашего города! Сидоров Пётр Иванович, Вы сделали правильны выбор! А на какой специальности в ВИСТех Вы учитесь? |
на клавиатуре были набраны символы
Строительство |
и нажата клавиша ENTER. В результате в массив spez будет помещена информация Строительство. На экране появится текст:
Строительство – очень перспективная специальность! Сидоров Пётр Иванович, а на каком курсе Вы учитесь в ВИСТех ?" |
на клавиатуре были набраны символы
2 курс |
и нажата клавиша ENTER. В результате в массив kurs будет помещена информация 2 курс, а целочисленной переменной y будет присвоено значение, равное 2.
На экране появится текст:
Уже на 2? Я снова ошибся, думая, что Вы ещё на 1 курсе. Сидоров Пётр Иванович, приятно было пообщаться со студентом ВИСТех 2 курса специальности Строительство! |
Текст будет оставаться на экране до нажатия любой клавиши.