Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы программирования на языке C_4.docx
Скачиваний:
44
Добавлен:
25.03.2016
Размер:
299.55 Кб
Скачать

Переключение ввода

Теперь рассмотрим случай, когда нам нужно ввести текст с клавиатуры в файл с именем my_words. Для этого мы должны ввести команду

get_put > my_words

и начать ввод символов. Символ > служит обозначением операции переключения, используемой в OC UNIX. Ее выполнение приводит к тому, что создается новый файл с именем my_words, а затем результат работы программы "ввод-вывод_ф", представляющий собой копию вводимых символов, направляется в данный файл. Если файл с именем my_words уже существует, он обычно уничтожается, и вместо него создается новый. На экране появляются вводимые слова. Их копии будут направлены в указанный файл. Чтобы закончить работу, мы вводим EOF, в OC UNIX это обычно [CTRL/d].

Комбинированное переключение

Предположим, что мы хотим создать копию файла my_words и назвать его my_words2. Нужно ввести для этого команду

get_put < my_words > my_words2

и требуемое задание будет выполнено.

Команда

get_put > my_words2 < my_words

приведет к такому же результату, поскольку порядок указания операций переключения не имеет значения. Нельзя в одной команде использовать один и тот же файл и для ввода, и для вывода.

Операционные системы, отличные от oc unix

Чем отличаются другие операционные системы от OC UNIX? Все отличия можно разделить на две группы:

  1. В других операционных системах реализована операция переключения.

  2. Компиляторы с языка Си предоставляют возможность использовать операцию переключения.

У нас нет возможности рассмотреть все компиляторы с языка Си. Однако в пяти из шести версий компилятора, предназначенных для микрокомпьютеров, для указания операции переключения используются символы < >. Операция переключения отличается от аналогичной операции в двух аспектах:

  1. Указанная операция выполняется при работе программ, написанных только на Си, в то время как в OC UNIX она может использоваться при работе любой программы.

  2. Между именем файла с откомпилированной программой и знаком операции должен быть один пробел, а между знаком операции и именем файла пробел должен отсутствовать. Например:

get_put <words

Лекция 7. Выбор вариантов

Выбор вариантов. Оператор if. Расширение оператора if. Операции отношения. Логические операции. Операция условия: ?:. Множественный выбор.

Выбор вариантов

Язык Си обеспечивает три основные формы управления процессом выполнения программ. Согласно теории вычислительных систем, хороший язык должен обеспечивать реализацию следующих трех форм управления процессом выполнения программ:

  1. Выполнение последовательности операторов.

  2. Выполнение определенной последовательности операторов до тех пор, пока некоторое условие истинно.

  3. Использование проверки истинности условия для выбора между различными возможными способами действия.

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

Оператор if

Подсчитаем число строк в файле. Это можно сделать путем счета числа символов "новая строка" в файле.

Пример:

/*подсчет строк */

#include <stdio.h>

main( )

{

int ch;

int line_count=0;

while((ch = getchar( )) != EOF)

if(ch == '\n') line_count++;

printf("Мы насчитали %d строк. \n", line_count);

}

Оператор if служит указанием компьютеру увеличить значение переменной line_count на 1, если только что прочитанный символ, содержимое переменной ch, представляет собой символ "новая строка". Что происходит в случае, когда значение переменной ch не является символом "новая строка"? Тогда в цикле while производится чтение следующего символа. Оператор if считается одиночным оператором, начинающимся от ключевого слова if и завершающимся символом "точка с запятой". Модифицируем программу. Подсчитаем одновременно число символов и строк в файле:

/* подсчет числа строк и символов */

#include <stdio.h>

int main( )

{

int ch = 0;

int line_count = 0;

int char_count = 0;

while((ch = getchar( )) != EOF) {

char_count++;

if(ch == '\n')

line_count++;

}

printf("Мы насчитали %d символов и %d строк.\n",

char_count, line_count);

}

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