Как подготовится к сдачи ОКР по Эпштеину: |
|
К примеру у вас задание: Дана прога: #include <stdio.h> #include <conio.h> int : i=5, j=3, k, *p=&j; double : m=1.5e0, k1, *pp; main() {k=*pp=(++i==j)? i++/j+7/8 : i= ++k + k-- +m;} Дополнить эту прогу так, чтоб она выводила значения переменных i, j, k, m в файл file находящейся в директории dir на диске C: и на экран. Ну вот: Сначало просто переписываем на листок начало этой проги, как есть, только внимательно: на листочке могут не быть прописаны первые две или более строчек (#include.. #include..), не пропустите. Патом пишем: file *f - этим мы задаём файловую переменную. У всех одинаково.. f=fopen("C:\\dir\\file.txt","W") - У многих здесь могут быть по другому: вместо диска C: будет A: или директория dir на mydir или файл, ну что делать в этих случаях, я надеюсь в сами разберётесь, а остальное также. Записываем результаты вычеслений: fprintf(f,"i=%i j=%i k=%k m=%lf",i, j, k, m) Тут вам надо не запутатсяв переменных и их типах: Если переменная типа Int (напремер J, которая равна 3 (тип смотреть всерху)) то пишем J=%i, а если типа double, то (например M) M=%lf Теперь следует закрыть файловую переменную: Fclose(f) - Тоже у всех одинаково! Это мы выводили данные в файл, теперь на экран: printf("i=%i j=%i k=%i m=%lf",i, j, k, m) Тут почти также, как чуть выше, только за двумя изменениями, сами найдите. На этом построение программы заканчивается, тока не забудте поставить в конце значёк } Эта скобка должна быть только одна в проге, и соотв одна вот такая: { Прога примет вид: #include <stdio.h> #include <conio.h> int : i=5, j=3, k, *p=&j; double : m=1.5e0, k1, *pp; main() { k=*pp=(++i==j)? i++/j+7/8 : i= ++k + k-- +m; file *f; f=fopen("C:\\dir\\file.txt","W"); fprintf(f,"i=%i j=%i k=%k m=%lf",i, j, k, m); Fclose(f); printf("i=%i j=%i k=%i m=%lf",i, j, k, m); } |
Вычесления (без них параша): Ну попробую объяснить на таком примере: k1=k=(i+j++)- *p + --m Все вычесления будут записаны в переменные k1 и k Собственно вычесления (по шагам, подробно): i+j - это я думаю понятно 5+3, но у j стоит ++, это значит, шо после всех вычеслений прибавляем еденицу к j, но вычесляем до прибавления!! *p - это т.н. Адрес, если присмотрется, то выше написано: *p=&j - просто это значит, что p = j, вот и всё (j=3 и тогда p=3) --m - Сначала отнимаем еденицу, потом производим вычесления..!! Обратите внииание и запомните: Наверное вам не понятно, что такое 1.5e0 вот: 1.5 * 10 в степени 0 (т.е. 1.5*100 или 1.5*1 итого просто 1.5) Например 2e2 значит 2*102 или 2*100 = 200 Ну вот и настоящие вычесления: (5+3)-3+0.5 итого: 8-2.5 = 5.5, но это не всё: Ответы: k1=5.5 k=5.5 i=5 j=4 m=0.5 Но на листочек значение всех переменных переписывать не надо, только тех, которых просят! Вопросы в форум, если ещё не поздно, а если спешите, то на сотовый званькайте.. Удачи, без неё тоже параша.:) |