Это моя личная ссылка-приглашение на Stepik для вас. Регистрируясь по этой ссылке, записываясь на курсы и решая задачи, Вы помогаете автору данного сайта принять участие в конкурсе платформы Stepik! Подробности конкурса здесь: https://vk.cc/75rKuS
понедельник, 17 октября 2011 г.
Занятие 3. Ввод и вывод данных.Справочники функций. Уроки программирования для чайников. Язык Си.
Добрый день уважаемые читатели.
В данном уроке мы подробно остановимся на вводе и выводе данных. Узнаем что такое стандартный поток ввода и вывода. Поговорим о том, зачем нужна стандартная библиотека функций. А так же научимся работать со справочниками по функциям. Это очень полезное умение.
Рассмотрим на простом примере, который как раз будет в тему нашего урока.
Прочитайте улучшенную версию этого урока «Ввод/вывод в языке Си».
- Дополнительные материалы
- Задачи с автоматической проверкой решения
- Исследовательские задачи
Пусть нам требуется ввести с клавиатуры в программу какое-то число. Дело в том, что в языке нет никаких специальных конструкций, определяющих ввод-вывод.
Программирование на Си для гуманитариев — Урок 1 — Установка ПО и первая программа
Если вы внимательно читали первый урок, то я уже вскользь упоминал об этом (помните для того чтобы вывести на экран строчку, нам надо было включить в программу заголовочный файл stdio.h) . Так вот, в самом языке нет даже такой операции как возведение в степень числа, или вычисление квадратного корня. Но обычно, сам по себе язык и не используется.
Вместе с языком программирования поставляется и стандартная библиотека функций. Это набор файлов с расширением *.h, в которых описаны различные дополнительные функции, которые любая программа может использовать. Как вы уже догадались, функции ввода вывода описаны в файле stdio.h.
Помимо стандартной библиотеки функции, программисты пишут и свои библиотеки функции, и еще существует много других библиотек функций, написанных для какого-то определенного круга задач. Таким образом, разных готовых функций для языка Си очень-очень много, и знать их все вряд ли возможно, а учитывая то, что знать надо не только название функции, но и какие данные она принимает, какие возвращает, что она делает, то это становится почти невозможно задачей.
Но к счастью, этого и не требуется. Для стандартной библиотеки функции существуют куча различных справочников и там подробно описано всё это. И вот именно работать с этими справочниками мы сегодня научимся. Так, приступим же.
Символьный ввод и вывод данных.
Стандартная библиотека включает несколько функций для чтения и записи одного символа. Простейшие из них мы сегодня и рассмотрим. Функции getchar и putchar.
getchar
Функция Вводит символ из потока stdin.
Синтаксис #include
int getchar(void);
Файл, содержащий stdio.h
Описание getchar — это макрокоманда, вводящая символ из
потока stdin. Она определена следующим образом:
Возвращаемое При успешном завершении функция getchar возвращает
значение считанный символ после предварительного
преобразования его в целое без расширения знака.
Программирование на Си — Урок 12 — Пишем первую простую игру про голодную собаку
При возникновении ситуации EOF или при ошибке она
возвращает EOF.
Переносимость Функция поддерживается на системах UNIX, описана
Керниганом и Ритчи. Поддерживается стандартом ANSI
C. Функция не совместима с Windows.
Смотрите также fdetc, fgetchar, getch, getche, gets, putc,
putchar, scanf, ungetc.
- Блок «функция».
Такая программа сначала считает в переменную а первый символ, а потом считает следующий символ, в переменную с. Пример, работы программы показан на рисунке ниже.
Добавьте подпись |
Не стоит забывать, что пробелы, переносы строк, табуляции и т.д., это тоже символы которые записываются во входной поток. Так например, если в программе листинга 3.4 ввести «2 865», то, в переменную с сохранился бы пробел. Убедитесь в этом самостоятельно.
Если надо с помощью getchar считать несколько символов, записанных через пробел, то можно например, использовать дополнительную переменную, в которую будем считывать пробел.Либо писать, несколько раз считывание одного символа.
Пример:
При таком считывании, например, строки «v 4», в переменную а считаем v, далее в переменную b считаем, пробел, и потом еще раз считаем в переменную b следующий символ, то есть 4. В итоге получим, то что нам и требуется.
Теперь перейдём к нашим функциям форматного ввода и вывода данных printf и scanf.
Называются они так, потому, что выводят и считывают данные в соответствии со строкой формата. Про это я уже говорил в конце второго урока. Основной принцип их работы разбирался там же. Сегодня мы рассмотрим специальный символы (начинаются со значка %) которые существуют, их еще называют спецификаторами формата. А так же поговорим о модификаторах формата, это такие значки, которые позволят задавать число знаков после запятой, или, например, по какому краю выравнивать символы.
- %d или % i для целых чисел
- %c для отдельный символ.
- %f для вещественных чисел ( с точкой) Выводятся в привычном виде. Например, 23.40000 Количество знаков после запятой задается точностью. По умолчанию точность равна 6.
- %e для вещественных чисел. Выводится в научном виде например, 23.4 будет выведено как 2.340000e+001. Это означает что число 2.34 надо умножить на 10 в степени +1. Тут тоже количество знаков после запятой задается точностью. По умолчанию точность равна 6.
- % если никаких аргументов нет, то не преобразуются и печатается просто %.
Источник: www.youngcoder.net
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
Сортировка вставками на Си
Рассмотрим один из методов сортировки данных, который называется сортировка вставками. Будет приведен алгоритм метода и его реализация на языке программирования Си с подробными комментариями.
Главная идея метода состоит в том, что при добавлении нового элемента в уже отсортированный массив его необходимо вставлять на нужное место, вместо того, что бы ставить его в произвольное, и потом заново сортировать всю последовательность.
Рассмотрим алгоритм метода сортировки вставками на примере сортировки по возрастанию. Первый элемент в массиве образует уже отсортированную последовательность. Сравниваем второй элемент с первым. Если порядок между ними нарушен, то первый элемент передвигается на одну позицию вправо. Теперь отсортированный массив состоит из двух элементов.
Далее, в течении каждой итерации, берем следующий элемент (третий, четвертый и т.д) и сравниваем его поочередно с другими элементами в уже отсортированном списке, начиная с конца этого списка. Если порядок между сравниваемыми элементами нарушен, то меняем их местами, если нет, то «вставка» нового элемента закончена, переходим к следующему.
Сортировка вставками имеет большую вычислительную сложность. Поэтому она эффективна на небольших наборах данных. Рекомендуется использовать этот метод на наборах размером до десятков элементов. Сортировка вставками эффективна на последовательностях с данными, которые уже частично отсортированы.
Реализуем описанный выше алгоритм сортировки с помощью языка программирования Си. Напишем функцию void InsertionSort(int n, int mass[]), которая в качестве аргументов принимает: число элементов в массиве и сам массив (если быть точным, то указатель на массив).
Источник: vscode.ru
Небольшие и простые программы на C
Давайте сначала начнем с очень маленьких и простых программ, чтобы получить базовое представление о структуре кода программирования на Си. Мы получим основную идею объявления переменных, сканирования и печати и т. Д.