Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-ОСНОВЫ ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
88
Добавлен:
10.04.2015
Размер:
650.24 Кб
Скачать
      1. Функция неформатированного ввода getch( )

Функция неформатированного ввода getch( ) не имеет аргументов и предназначена для ввода с клавиатуры одного символа. Об этом говорят символы ch (от английского слова character – буква, литера) в имени данной функции. Она описана в заголовочном файле conio.h.

Функция вводит с клавиатуры один символ, который на экран не выводится, при этом нажатие клавиши ENTER не требуется. В связи с этим данная функция часто используется для приостановки процесса выполнения программы до нажатия какой-либо клавиши на клавиатуре.

Если вводимый символ будет использоваться в дальнейшей работе программы, то он может быть получен с помощью оператора присваивания, в котором функция getch() записывается в правой части, например:

c = getch();

Этот символ при необходимости может быть выведен на экран следующим образом:

printf("\n %c", c);

либо

printf("\n %c", getch());

      1. Функция неформатированного ввода 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 будут помещена информация

Сидоров Пётр Иванович

На экране появится текст:

Очень приятно познакомиться, Сидоров Пётр Иванович

Для продолжения диалога нажмите любую клавишу

и выполнение программы приостановится до нажатия какой-либо клавиши на клавиатуре.

      1. Функция неформатированного вывода puts( )

Функция неформатированного вывода puts ( ) предназначена для вывода строки символов. Об этом информирует символ s в имени данной функции. Она описана в заголовочном файле stdio.h.

Функция неформатированного вывода puts ( ) используется в виде

puts(“строка символов”);

или:

puts(имя символьного массива);

В первом случае данная функция выводит на экран без кавычек строку символов, являющуюся аргументом функции, а во втором – те символы, которые хранятся в символьном массиве с указанным именем. После вывода строки символов выполняется перевод курсора на новую строку экрана.

    1. Программа – диалог

Проиллюстрируем использование рассмотренных функций и операторов на примере программы–диалога.

ПРИМЕР 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 курса специальности Строительство!

Текст будет оставаться на экране до нажатия любой клавиши.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]