- •Void main(void)
- •Void main(void)
- •Void main()
- •Void main()
- •Viod main()
- •Условные выражения
- •Void main()
- •If(Выраженне1) Выражение2;
- •If(Выражение1) Выраженпе2; else ВыражениеЗ;
- •Void main()
- •Циклические выражения
- •Void nain()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Массивы
- •Void main()
- •Void main()
- •Void main()
- •Viod main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Адреса и указатели
- •Void main()
- •Viod main()
- •Функции
- •Void main(void)
- •Void main(void)
- •Int I; double X,step();
- •Void decart(double r, double f)
- •Void main()
- •Void decart(double r,double f,double *X,double*y)
- •Void main()
- •Void rnain()
- •Void main()
- •Void main()
- •Void main()
- •Int length;
- •Объектно-ориентированное программирование и приложения с графическим интерфейсом
- •Void main(void)
- •Int MyFunc(int, int);
- •Void NewFunc(void);
- •Void main()
- •Void FuncOut();
- •Void prob::FuncOut()
- •Void main()
- •Void main()
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Int pascal
- •Int nCmdShow)
- •Void __fastcall tForm1::Timer1Timer(tObject *Sender)
- •Void __fastcall tForm1::okClick(tObject *Sender)
- •Int I,step;
- •Введение в численные методы
Void rnain()
{
int i=0; double a[10];
while(i<10) printf("%lf\n" ,a[i++]=RN());
}
Легко видеть, что функция RN, которой не нужны аргументы, с использованием заготовленной глобальной константы g реализует генерацию случайной величины в нужном диапазоне. Обратим внимание на то, что в главной программе производится печать очередного элемента массива, который прямо в функции печати и получает значение.
Следующая функция заполняет n первых элементов массива случайными целыми в диапазоне от 0 до 9:
void initarray(int *name, int n)
{
do *(name+- -n)=random(10); while(n);
}
Эта функция может быть использована, например, в следующей главной функции:
void main()
{
int mass[100],k;
printf("ЗАПОЛНИТЬ K="); scanf(“%d",&k);
initarray(mass,k);
printf("ЭЛЕМЕНТОВ МАССИВА\п");
while(k) printf(“%d\n",mass[- -k] ) ;
}
Файлы
До сих пор возможности общения наших программ с окружающим миром были весьма ограничены. Мы могли только вводить данные в программу с консоли и выводить их на экран. Теперь наша задача состоит в том, чтобы научиться записывать результаты работы программы на диск и считывать данные с диска в программу.
Как известно, любые данные хранятся на магнитных носителях информации (магнитных дисках) в виде файлов. Представляя файл как "папку" с информацией, что дословно и соответствует английскому слову file, мы должны освоить процедуры открытия и закрытия этих "папок" и процедуры чтения и записи файлов.
Сразу начнем со следующей программы:
Void main()
{ int i;
FILE *f;
f=fopen("one.dat","w");
for(i=l; i<15; i++) fprintf(f,"%d\n",i);
fclose(f); }
Здесь мы впервые столкнулись с еще одним типом данных. Название этого типа FILE (пишется именно заглавными буквами, что для СИ нехарактерно). Переменная f имеет отношение к этому новому типу. Поскольку она фигурирует в описании со стоящей перед ней звездочкой, многоопытный читатель сделает вывод о том, что f является указателем. Так оно и есть, и указывает этот указатель на файл. Иными словами, f является адресом начала файла. Пока, однако, этот указатель не инициализирован, не привязан ни к какому конкретному файлу. Инициализация указателя на файл (мы будем использовать также термин "файловая переменная") производится одновременно с открытием файла, предоставлением файла в распоряжение данной программе. Открытие файла производится функцией fopen и выглядит как выражение присваивания:
ИмяФайловойПеременной=fореn("Строка1", "Строка2");
Эта процедура действительно является присваиванием, поскольку функция fopen, возвращающая адрес файла, который она открывает, имеет тип FILE*. Функция имеет два аргумента. Строка1 задает имя открываемого файла. В DOS полное имя файла состоит, как правило, из собственно имени и расширения, разделенных точкой. В нашем примере открывается файл one.dat. Строка2 состоит из буквы, показывающей для каких операций открывается файл. Возможны следующие варианты:
"r" — файл открывается для чтения из него информации (read),
"w" — файл открывается для записи информации (write),
"a" — файл открывается для дозаписи информации в конец файла (append).
Буква w предполагает создание нового файла с указанным в Строке1 именем. Будьте внимательны: если на диске в рабочем каталоге уже существовал файл с таким именем, то его открытие для записи приведет к безвозвратной (и, вероятно, безвременной) утрате старого файла.
Данная программа создает новый файл и записывает в него 14 целых чисел от 1 до 14. Каждое число записывается в новую строку. Функция записи в файл fprintf весьма похожа на знакомую вам функцию печати на экран printf. Разница состоит в том, что сразу за открывающей скобкой пишется файловая переменная, а далее после запятой все полностью совпадает с правилами оформления печати на экран. Информация, записанная в файл, выглядит точно так, как и на экране. В этом можно убедиться, просмотрев созданный файл с помощью любого текстового редактора, в частности, и из системы TURBO С. Поработав с папкой, вы, наверное, ее закрываете. Это же следует сделать и с файлом. Функция закрытия файла fclose имеет в качестве аргумента имя файловой переменной. Можно отметить, что в случае успешного, как говорят военные - штатного, завершения программы все открытые файлы закрываются автоматически. Тем не менее, мы настоятельно рекомендуем вызывать функцию fclose сразу после того, как программа завершила работу с соответствующим файлом.
Теперь напишем программу, которая читает данные из файла. Считаем, что на диске существует файл one.dat, созданный предыдущей программой: