Знакомство с шаблоном ввода-вывода в потоки ( файлы)
В своем рабочем каталоге найдите файл 2100.C и загрузите его в Dev-Cpp для компиляции.
Программа аналогична программе 1100.for , которую мы рассматривали на Lab_F1.
FILE *inf, *outf; - так мы готовим «потоки» inf, outf для работы с файлами
inf = fopen("input.txt", "rt"); - связываем «поток» inf с файлом input.txt, режим работы –чтение текста ("rt" - read text)
outf = fopen("output.txt", "wt"); - связываем «поток» outf с файлом output.txt, режим работы – запись текста ("wt" - write text)
fprintf(outf, "#2100\n"); - вывод строки "#2100\n" в «поток» outf
fscanf (inf, "%i", &a); - чтение перемнной a из «потока » inf
строка "%i" задает формат вводимого числа - integer
fprintf(outf, "%d\n", a); - вывод перемнной a в «потока » outf
строка "%d\n" задает формат выводимого числа – decimal и переводит строку(\n)
Задание: Решите задачу 2100 Поменяйте заголовок и вывод заголовка так, чтобы программа стала Вашей и служила бы шаблоном для следующих файлов.
Уберите ВСЕ лишние комментарии!!!
Возможно всё работает без ошибок, а возможно - нет. Тогда вспомните, что intзадает короткое целое. Поэтому поменяйте int на longint и дескрипоры форматных преобразований
i на li и d на ld .
Отправьте отредактированный файл 2100.c сетевой тестирующей системе.
Задание: Решите задачу 2101
Указание: скопируйте файл 2100.C в файл 2101.C и отредактируйте файл 2101.C . При редактировании пользуйтесь операциями Копирования (Ctrl-C) и Вставки (Ctrl-V)
Отправьте файл 2101.C сетевой тестирующей системе.
5. Разбор работы программ BC_3. CPP
Программа использует вывод языка С++ для удобства написания. На этом занятии мы не разбираем как написана программа, а только смотрим НА РЕЗУЛЬТАТ её работы.
Запустите программу на исполнение и посмотрите на результат её работы.
Математические операции
Основные операции аналогичны Фортрану. Результат работы с целыми – целый.
Появилась операция - % - Остаток аналог функции MOD(J,K)
Фортран: N = MOD( J, K)
Си: n = j % k ;
Появляется группа операций вида += - , т.е операция не сложения 2-х слагаемых, а операция увеличения первого слагаемого на второе. Она выполняется быстрее, чем сложение.
6. Разбор работы программ - BC_4.CPP
Программа использует вывод языка С++ для удобства написания. На этом занятии мы не разбираем как написана программа, а только смотрим НА РЕЗУЛЬТАТ её работы.
Запустите программу на исполнение и посмотрите на результат её работы.
Математические операции
Часто используются операции увеличения на 1 и уменьшения на 1. (Они реализуются аппаратно)
Это операции вида j++ и j--
++ j - префиксная форма, т.е. операция пишется ДО операнда
j ++ - постфиксная форма, т.е. операция пишется ПОСЛЕ операнда
В обоих случаях операнд (j) увеличится на 1.
А что взять в качестве результата Выражения, которое печатает print( ) ?
Ответ: если можем взять переменную сразу, то берем, а если нет, то немного ждём.
Поэтому для j++ можно сразу взять j, а для ++ j сразу надо брать ++ , а это не число, значит ждем, т.е. увеличиваем j и берем результат, т.е. j +1
j=1; print("j++ ", j++); печатается результат операции 1 , но j=2
j=1; print("++j ", ++j); печатается результат операции 2 , и j=2
Операции отношения возвращают значения истина, как 1 , а ложь, как 0
Логические операции && - и ,
|| - или.
Как логическое значение рассматривается значение выражения, если значение =0, то это Ложь , а если значение не равно 0, то это истина.
7. Разбор работы программ - BC_5.C
Условные операторы
if( i && j ) printf(" i && j = %i \n\n", i&&j);
Рассматривается условие i && j
Если оно истинно, то вполняется вывод printf(" i && j = %i \n\n", i&&j);
Обратите внимание, что на экран выводится не i&&j , а значение этого логического выражения, т.е. обязательно 0 или 1 .
if( i < j ) начало аналогично
printf(" i < j %i \n",i<j);
else if( i > j ) здесь появился альтернативный выбор else, в нем
printf(" i > j %i \n",i>j); стоит новый (другой) оператор else-if
else
printf(" i = j %i \n",i==j);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.