Язык си примеры программ

Справочник по языку программирования си с примерами программ

Название темы Структура оператора Пример программы
Общая структура программы на си //объявление заголовочных файлов
#include < название подключаемого файла >
//объявление переменных
тип переменной имя переменной;
main() // начало основной программы
<
Операторы через ;

Пример подключения заголовочного файла в Cи
#include //

Пример объявления переменной в Cи
int a;

Пример условия в Cи. Программа выводит

«Значение переменной a больше двух»,
если значение переменной a больше двух.
if (a>2) printf(«Значение переменной a больше двух»);
>

if (( условие 1 ) || ( условие 2 )) <
Операторы через ;
>

Пример логической операции И в Cи.
Программа выведет «Значение переменной a больше 2 и меньше 10»,

Язык C за 100 секунд [перевод на русский]


если значение переменной a больше 2 и меньше 10.
if ((a>2) (a <10)) <
printf(«Значение переменной a больше 2 и меньше 10»);
>

Пример логической операции ИЛИ в Cи.
Программа выведет «Модуль числа a больше 10»,
если значение переменной а меньше -10 или больше 10.
if ((a<-10) || (a>10)) printf(«Модуль числа a больше 10»);
>

for ( счетчик=начальное значение;

условие на счётчик; оператор изменения счётчика )
<
Операторы через ;
>

Структура программы с графикой в Си

#include // подключение заголовочного файла с графическими функциями
#include
main()
<
i nitwindow ( 500, 500 ); // инициализировали и открыли окно размером 500 на 500
Графические операторы через ;
getch(); // ждем нажатия клавиши
closegraph(); // закрываем графический режим
>

void имя процедуры ( тип параметра 1 параметр1, тип параметра2 параметр2 …. )
<
Операторы через ;
>
main()
<
имя процедуры ( значения параметров );
>

Пример программы с функцией на C расчет среднего арифметического
#include
#include
float srar(float a,float b)
float s;
s =(a+b)/2;
return s;
>
main()
float a;
float b;
printf(«Введите значение a «);
scanf(«%f»,

Пример программы с массивом в Cи

ввод массива с клавиватуры и вывод на экран

Пример программы с матрицей в C++. Программа задаёт целочисленную матрицу размером 10 на 10
и заполняет ее случайными числами в диапазоне,
который укажет пользователь и выводит ее на экран.
#include
#include
#include
main()
int a[9][9];
int i,j;
int range;
scanf(«%d»,
for (i=0; i for(j=0; j a[i][j]=rand() % range+1;

Создание сборщика мусора | С


>
>
for (i=0; i for(j=0; j printf(» %d», a[i][j]);
>
printf(» «);
>
getch();>

Считывание информации из файла

Задание указателя на файл в Cи
FILE * имя указателя на файл;

Открытие файла в режиме чтения в Cи
Имя указателя на файл = fopen(» путь к файлу «, «r»);

Считывание из файла в Cи

fscanf( указатель на файл,»%формат ввода данных1% форматввода данных2…»,переменная2… );

Закрытие файла в Cи
fclose( имя указателя на файл )

Пример задания указателя на файл в Cи
FILE *fin;

Пример открытия файла в режиме чтения
fin = fopen(«C:\Users\user\Desktop\data.txt», «r»);

Пример считывания данных из файла

Пример закрытия файла

Работа с файлами в Cи

Запись информации в файл

Источник: itrobo.ru

7. ПРИМЕРЫ на языке Си (+литература)

Привет, сегодня поговорим про примеры на языке си, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое примеры на языке си , настоятельно рекомендую прочитать все из категории Алгоритмизация и программирование. Структурное программирование. Язык C. Рассмотрим примеры программ, в которых используются различные конструкции языка Си. Первый из них демонстрирует использование управляющих символов n в функциях printf( ) и scanf( ).

/* Пример 1 */ #include void main(void)
Результаты работы этой программы имеют вид:
Введите целое число от -32768 до 32767 234 x = 234 n1 = 3, n2 = 7

Значение n1 определяет число введенных цифр, а n2 — число выведенных символов в строке x = 234 (с пробелами). Следующий пример показывает использование спецификаций %[], а также символов * и #.

/* Пример 2 */ #include void main(void) < char str_b[21], str_c[21]; /* Последний элемент резервируем под */ int x, n1, n2; float y; printf(«Введите строку до 20 символовn»); scanf(«%[Computer]%s», str_b, str_c); printf(«str_b = %s, str_c = %sn», str_b, str_c); y = 12.345678; n1 = 8; n2 = 3; x = 0x100; printf(«y = %*.*fn», n1, n2, y); printf(«x(16) = %#x, x(16) = %x, x(10) = %in», x, x, x); >
Результаты работы программы имеют следующий вид:

Введите строку до 20 символов Comp-1-2-3-4-5 str_b = Comp, str_c = -1-2-3-4-5 у = 12.346 x(16) = 0x100, x(16) = 100, x(10) = 256

Здесь пользователем введена строка Comp-1-2-3-4-5. Из нее только четыре символа (Comp) совпадают с первыми символами, заданными в квадратных скобках рассматриваемой спецификации [Computer].

Поэтому только эти четыре символа попадут в первую строку, а оставшиеся символы (1-2-3-4-5) попадут во вторую строку. Число n1 определяет минимальную ширину поля для вывода, а число n2 = 3 — количество цифр после запятой. В результате число 12.345678 будет смещено относительно левой границы, и после запятой будут выведены три цифры. Шестнадцатеричное число 0х100 выведено функцией printf( ) с префиксом 0x, без префикса 0x и в десятичной форме. Третья программа демонстрирует использование условного оператора if. else и оператора for для организации цикла.

Читайте также:
Программа корел лазер как пользоваться

/* Пример 3 */ #include #define SYM ‘X’ /* Выводимый символ */ #define SPACE ‘ ‘ /* Определение пробела */ #define LF 10 /* Перевод строки */ #define CR 13 /* Возврат каретки */ #define LEFT 24 /* Левая граница символа */ #define RIGHT 51 /* Правая граница символа */ #define BOTTOM 25 /* Нижняя граница символа */ void main(void) < int col, line; /* col — номер колонки для вывода символа */ /* line — номер линям для вывода символа */ clrscr( ); for (line = 1; line getch( ); /* Ожидание нажатия клавиши */ >

После ее запуска на весь экран будет выведен символ X. Новая библиотечная функция clrscr( ) имеет следующий прототип:

void clrscr (void);

Она выполняет очистку экрана и объявлена в заголовочном файле conio.h. Четвертая программа демонстрирует использование рекурсивной функции для вычисления факториала. (Отметим, что определение функции factorial( ) может находиться и после функции main( ), но в этом случае функция factorial( ) должна быть объявлена перед функцией main( ), т.е. до main( ) необходимо поместить строку: long factorial(int);.)

/* Пример 4 */ #include #include #include long factorial(int value) /* Рекурсивная функция */ < long result = 1; if (value != 0) < result = factorial(value — 1); /* Проверка возможности вычисления факториала */ if (result >MAXLONG / (value + 1)) < fprintf(stderr, «Очень большое числоn»); getch( ); /* Ожидание нажатия клавиши */ exit (1); >result *= value; > return(result); > /* Рекурсивное вычисление факториала числа value */ void main(void) < int value; /* Факториал этого значения вычисляется */ long result; /* Переменная для результата */ puts(«Факториал какого числа?»); scanf(«%d», result = factorial(value); printf(«Результат: %ldn», result); getch( ); /* Ожидание нажатия клавиши */ >
Результаты работы этой программы:
Факториал какого числа? 10 Результат: 362880

Пятая программа подсчитывает число символов и слов во вводимых строках (новые символы и слова суммируются с предыдущими; пробелы входят в число введенных символов).

/* Пример 5 */ #include #include #define ESC 27 /* 27 — ASCII-код клавиши ESC */ void CountOfLines(void) < /* Статические переменные будут сохранять старые значения при каждом новом вызове функции CountOfLines */ static int words = 0, symbols = 0; /* words-число слов, symbols-число символов */ char temp, t = 0; /* Временные переменные */ ++symbols; /* Число символов и слов выдается после нажатия клавиши */ while ((temp = getche( )) != ‘r’ ) < ++symbols; /* Подсчитывается каждый символ */ /* После одного или нескольких пробелов подсчитывается слово */ if ((temp == ‘ ‘) (t == 1)) continue; if (temp == ‘ ‘) < t = 1; ++words; >else t = 0; > if (t == 1) —words; else ++words; printf («n Слов: %d; символов: %dn», words, symbols); > void main(void) < puts(«Для завершения программы нажмите в начале строки»); puts(«Строка не должна начинаться с пробела и с нажатия клавиши» «»); puts(«Строка не должна завершаться пробелом»); while (getche( ) != ESC) CountOfLines(); putch(‘b’); putch(‘ ‘); putch(‘b’); >
Результаты работы этой программы:
Для завершения программы нажмите в начале строки Строка не должна начинаться с пробела и с нажатия клавиши Строка не должна завершаться пробелом Mouse Keyboard Слов: 2 символов: 14

  • занесение фамилии абонента и номера телефона в справочник;
  • поиск в справочнике номера телефона по фамилии абонента;
  • удаление из справочника фамилии абонента и номера его телефона.

Ниже приведен текст головной программы main.c:

// Пример 6 //——————————————————— // Головная программа для работы с телефонным справочником //——————————————————— #include «A:my.h» //Заголовочный файл с глобальными //переменными и константами #include «A:findt.c» //Поиск строки str в файле #include «A:choicet.c» //Проверка наличия строки в файле #include «A:addt.c» //Добавление строки в файл #include «A:subt.c» //Удаление строки из файла void main(int argc, char *argv[ ]) < if (argc == 3) if (*argv[1] == ‘+’) //Добавить запись < if (Choice(argv[2]) == 0) //Нет ли такой //записи в файле? < puts(«Эта фамилия есть в справочнике»); exit(1); >Add(argv[2]); //Добавление записи > else if (*argv[1] == ‘-‘) Sub(argv[2]); //Удалить запись else puts(«Ошибочное значение аргумента»); else if (argc == 2) Find(argv[1]); //Поиск записи else puts(«Ошибочное число аргументов»); >

С помощью директив #include в головную программу включаются файлы: my.h, findt.c, choicet.c, addt.c и subt.c. Считается, что все они находятся в корневом каталоге диска A:. Если это не так, то необходимо изменить соответствующие директивы #include. В файле my.h определены глобальные переменные и некоторые символьные значения.

Читайте также:
Bloody a91 программа для настройки

//Файл заголовков my.h //——————————————————— //Определения глобальных переменных и символьных значений //——————————————————— #include #include #include #define MAX_NAME 20 //Максимальное число символов в фамилии #define MAX_NUMBER 10 //Максимальное число цифр в телеф. номере char Name[MAX_NAME]; // Массив фамилий char Number[MAX_NUMBER]; //Массив для телефонного номера char File[ ] = «A:\tel\tel_num.txt»; //Имя файла справочника int Count; //Число фамилий в справочнике FILE *F_tel; //Логическое имя файла справочника

Файл my.h, в частности, определяет, что телефонный справочник будет организован в каталоге tel диска A:. Поэтому необходимо перед запуском программы main.exe создать этот подкаталог либо использовать другой подкаталог. В последнем случае необходимо изменить строку:

char File[ ] = «A:\tel\tel_num.txt»;

которая задает имя файла с телефонным справочником (tel_num.txt).

Модуль findt.c, текст которого приведен ниже, содержит функцию Find( ) для поиска строки str в файле tel_num.txt.

//Модуль findt.c //———————————————————- //Функция Find( ) для поиска строки str в файле tel_num.txt //———————————————————- void Find(char *str) < int i; //Если файл невозможно открыть для чтения, то программа //завершает работу if ((F_tel = fopen(File, «r»)) == NULL) < fprintf(stderr, «»%s» : невозможно открытьn», File); exit(1); >//Чтение числа записей (Count) в файле if (fread( fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >//В цикле for осуществляется поиск нужной записи for (i = 1; i < Count; i++) < fread(Name, 1, MAX_NAME, F_tel); //Чтение имени fread(Number, 1, MAX_NUMBER, F_tel); //Чтение номера if (ferror(F_tel)) //Проверка отсутствия ошибки < fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >if (strcmp(str, Name) == 0) //Если имя совпадает //с введенным, то фамилия //и найденный номер //выводятся на экран < printf(«Фамилия : %sn», Name); printf(«Номер телефона: %sn», Number); fclose(F_tel); return; >> //Если результат поиска отрицательный, то выводится //следующее сообщение fprintf(stderr,»»%s» : запись в файле отсутствуетn», File); fclose(F_tel); return; >

Модуль choicet.c содержит функцию Choice( ), позволяющую проверить есть ли заданная строка в файле tel_num.txt.

// Модуль choicet.c //———————————————————————- //Функция Choice( ), проверяющая есть ли строка str в файле tel_num.txt //———————————————————————- int Choice(char *str) < int i; char temp[MAX_NAME + MAX_NUMBER]; if ((F_tel = fopen(File, «r»)) == NULL) return 1; //Строки str нет в файле if (fread( fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >for (i = 0; i < Count; i++) < fread(temp, 1, MAX_NAME + MAX_NUMBER, F_tel); if (ferror(F_tel)) < fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >if (strcmp(str, temp) == 0) < fclose(F_tel); return 0; //Строка str есть в файле >> fclose(F_tel); return 1; //Строки str нет в файле >

Модуль addt.c содержит функцию Add( ), которая добавляет заданную строку в файл tel_num.txt.

//Модуль addt.c //——————————————————- //Функция Add( ) добавляет строку str в файл tel_num.txt //——————————————————- void Create(void) //Создает файл, если он не существует < if ((F_tel = fopen(File, «wb+»)) == NULL) < fprintf(stderr, «%s» : невозможно открытьn», File); exit(1); >Count = 0; if ( ! fwrite( fprintf(stderr, «»%s» : ошибка записиn», File); exit(1); >> void Add(char *s) //Добавляет запись в файл < char str[MAX_NAME], sn[MAX_NUMBER]; //Временные массивы int i; for (i = 0; i < MAX_NAME; i++) str[i] = ‘ ‘; //Пробелы в str strcpy(str, s); //Копирование строки в str if ((F_tel = fopen(File, «rb+»)) = = NULL) Create(); //Создаем файл, если он не //существует else if (fread( fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >printf(«Номер телефона : «); //Запрашивается и вводится номер if (gets(Number) == NULL || *Number == ‘’) < fclose(F_tel); return; //Возврат, если номер не введен >//Установка указателя в файле на первую свободную запись if (fseek(F_tel, (long)((MAX_NAME+MAX_NUMBER)*Count), SEEK_CUR)!=0) < fprintf(stderr, «»%s» : ошибка поискаn», File); exit(1); >fwrite(str, 1, MAX_NAME, F_tel); //Запись в файл фамилии for (i = 0; i < MAX_NUMBER; i++) sn[i] = ‘ ‘; //Пробелы в sn[ ] strcpy(sn, Number); //Копирование сроки Number в строку sn fwrite(sn, 1, MAX_NUMBER, F_tel); //Запись в файл номера if (ferror(F_tel)) //Проверка наличия ошибки < fprintf(stderr, «»%s» : ошибка записиn», File); exit(1); >//Установка указателя в файле на первый байт if (fseek(F_tel, 0L, SEEK_SET) != 0) < fprintf(stderr, «»%s» : ошибка позиционированияn», File); exit(1); >++Count; //Увеличение числа записей на единицу //Запись Count в файл if (fwrite( fprintf(stderr, «»%s» : ошибка записиn», File); exit(1); >fclose(F_tel); return; >

Модуль subt.c содержит функцию Sub( ), которая удаляет заданную строку из файла tel_num.txt.

//Модуль subt.c //———————————————————— //Функция Sub( ) удаляет заданную строку из файла tel_num.txt //———————————————————— void Sub(char *str) < int i, j; char temp[MAX_NAME + MAX_NUMBER]; //Временный массив if ((F_tel = fopen(File, «r+»)) == NULL) < fprintf(stderr, «»%s» : невозможно открытьn», File); exit(1); >if (fread( fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >//В цикле осуществляется поиск удаляемой строки в файле for (i = 0; i < Count; i++) < fread(temp, 1, MAX_NAME + MAX_NUMBER, F_tel); if (ferror(F_tel)) < fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >if (strcmp(str, temp) == 0) //Если срока найдена < for (j = i; j < Count; j++) //она удаляется < fread(temp, 1, MAX_NAME + MAX_NUMBER, F_tel); fseek(F_tel, (long)(j*(MAX_NAME+MAX_NUMBER)+2L), SEEK_SET); fwrite(temp, 1, MAX_NAME + MAX_NUMBER, F_tel); fseek(F_tel, (long)((j+2)*(MAX_NAME+MAX_NUMBER)+2L), SEEK_SET); if (ferror(F_tel)) < fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >> —Count; //При удалении строки декремент Count fseek(F_tel, 0L, SEEK_SET); //Установка указателя //Запись уменьшенного значения Count в файл if (fwrite( fprintf(stderr, «»%s» : ошибка записиn», File); exit(1); >fclose(F_tel); puts(«Запись удалена из файла»); return; > > fprintf(stderr, «»%s» : отсутствует в базе данныхn», File); fclose(F_tel); >

Читайте также:
Отечественные антивирусные программы список

Ниже приводится возможный сценарий работы с программой main.

main + Петров Номер телефона: 77-17-89 main + Иванов Номер телефона: 52-98-02 main Иванов Фамилия: Иванов Номер телефона: 52-98-02 main — Петров Запись удалена из файла main Петров «tel_num.txt» : запись в файле отсутствует

Последняя программа showt.c позволяет вывести на экран содержимое телефонного справочника.

//Программа showt.c //————————————————- //Выводит на экран все записи из файла tel_num.txt //————————————————- #include «my.h» void Show(void) < int i; //Если файл невозможно открыть для чтения, то завершение работы программы if ((F_tel = fopen(File, «r»)) == NULL) < fprintf(stderr, «»%s» : невозможно открытьn»,File); exit(1); >//Чтение числа записей (Count) в файле if(fread( fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >//В цикле осуществляется вывод всех записей for (i=0; i < Count; i++) < fread(Name, 1, MAX_NAME, F_tel); //Читается имя fread(Number, 1, MAX_NUMBER, F_tel); //Читается номер if (ferror(F_tel)) //Проверяется отсутствие ошибки < fprintf(stderr, «»%s» : ошибка чтенияn», File); exit(1); >printf(«Фамилия: %s; номер телефона: %sn», Name, Number); > fclose(F_tel); > void main(void)

7. ПРИМЕРЫ на языке Си (+литература)

ЛИТЕРАТУРА

  1. Скляров В.А. Программирование на языках Си и Си++.- М.: Высшая школа, 1996.
  2. Березин Б.И., Березин С.Б. Начальный курс С и С++.- М.: ДИАЛОГ-МИФИ, 1999.
  3. Керниган Б., Ритчи Д. Язык программирования Си.- М.: Финансы и статистика, 1992.
  4. Подбельский В.В., Фомин С.С. Программирование на языке Си. Учеб. пособие.- М.: Финансы и статистика, 2000.
  5. Павловская Т.А. C/C++, Программирование на языке высокого уровня.- СПб.: Питер, 2005.
  6. Касаткин А.И. Профессиональное программирование на языке Си. Системное программирование .- Минск: Высшая школа, 1993.
  7. Касаткин А.И. Профессиональное программирование на языке Си. Управление ресурсами.- Минск: Высшая школа, 1993.
  8. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си. От Turbo C к Borland C++.- Минск: Высшая школа, 1995.

Напиши свое отношение про примеры на языке си. Это меня вдохновит писать для тебя всё больше и больше интересного. Спасибо Надеюсь, что теперь ты понял что такое примеры на языке си и для чего все это нужно, а если не понял, или есть замечания, то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Алгоритмизация и программирование. Структурное программирование. Язык C

Источник: intellect.icu

Язык си примеры программ

Дадим некоторые пояснения. В языке Си любая пограмма, состоит из нескольких программных едениц и каждая из них — функция. Функции в Си подобны функциям или подпрограммам в Фортране или процедурам в Паскале, Имена функций выбираются произвольно (только латинскими буквами), но одно из них main, именно с нее начинается выполнение программы. Такая главная функция обычно обращается к другим функциям, которые находятся в одном файле с головной программой или извлекают из библиотеки предварительно подготовленных функций.Функция main не имеет аргументов, поэтому список ее выглядит так: ( ) . Скобки обрамляют операоры, которые реализуют собственно алгоритм. Эти скобки аналогичны BEGIN — END в Паскале.
Строка int a,b,c; объявляет a,b,c переменными целого типа. Все используемые в программе переменные должны быть объявлены. Далее идут опрераторы присваивания к a значение 5, а к b — 7, с — значение их суммы. Значения переменных типа int лежат в диапазоне [-32768; 32767]. Функция printf выводит на экран: СУММА = 12.

Рассмотрим теперь функцию scanf предназначенную для форматного ввода данных. Функция scanf в качестве фактических параметров использует адреса переменных, а не их значения. Для этого перед соответствующим параметром ставят знак XL означает «адрес перменной XL», а не значение, которое переменная имеет в данный момент.

Строка форматов функции scanf указывает, какие данные ожидаются на входе. Если функция встречает в форматной строке знак % , за которым следует символ преобразования, то она будет пропускать на входе символы до тех пор, пока не встретит какой-нибудь не пустой символ.

Предыдущяя программа страдает одним недостатком: программа вычисления суммы годится только для одного конкретного случая, когда a=5, b=7. Улучшим ее, заменив соответствующие операторы присваивания вызовом функции scanf (пример 1.2) :

Форматная строка предписывает функции scanf ввести десятичное число, которое надо поместить в переменную a, затем через пробел ввести второе десятичное число, которое надо присвоить переменной b.Обратите внимание, что программа начинается со строки коминтарием : /* .. */ , транслятор пропускает любые символы между /* и */ и их можно использовать для пояснений.

Источник: www.helloworld.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru