void main ()
{ int i;
long lng;
float flt;
double dbl;
printf (“Въведете i: “);
scanf (“%d”, &i);
printf (“Въведете lng: “);
scanf (“%ld”, &lng);
printf (“Въведете flt: “);
scanf (“%f”, &flt);
printf (“Въведете dbl: “);
scanf (“%lf”, &dbl);
}
Адресът на една променлива е адресът на полето в оперативната памет, където се намира първият байт от променливата;
Изчисляване на y = (1 + x + x2/2!)(1 + x3/3! + x5/5!)
#include
void main ()
{ int x, y;
printf (“Въведете x: “);
scanf (“%d”, &x);
y = (1 + x + x*x/2)*(1 + x*x*x/6 + x*x*x*x*x/120);
printf (“y = %d\n”, y);
}
Oт голямо значение в горната програма е типа на x и y; щом и двете променливи са от тип int, тогава всички аритметични операции са целочислени (връщат цели числа); например при x = 1 горната програма извежда y = 2; ако направим x променлива от float, тогава аритметичните операции връщат дробни числа, но тъй като y все още е int, резултатът ще е цялата част на израза; например при x = 1, програмата oтново ще изведе y = 2, но стойността на израза е 2.9375
Функция pow (x, n) – приема реални аргументи (x0) и връща като резултат x на степен n; горната програма може да се напише с функция pow;
24 октомври
suma = h.norma, h40; 40.norma + 1,5.(h-40).norma, h>40
#include
void main ()
{ int cod;
float h, norma, suma;
printf (“Въведете cod, h, norma: “);
scanf (“%d %f %f”,&cod,&h,&norma);
suma = (h<=40) ? (h*norma) : (40*norma + 1.5*(h-40)*norma);
printf (“cod = %6d”, cod);
printf (“suma = %10.2f\n”, suma);
}
%[n][.m]fs – задаване на форматна спецификация; променливата се изписва в поле от най-малко n символа (подравнена отдясно) и ако е дробно число – с точност m цифри; форматната спецификация е fs
Условен оператор
Синтаксис на пълен вариант:
i
Край
Начало
false
true
Е
S1
S2
f (E) S1 else S2
E – израз; S1 и S2 – оператори
Блок-схема:
Синтаксис на съкратен вариант:
if (E) S
E – израз; S – оператор
Б
Край
Начало
false
true
Е
S
лок-схема:
В последната програма можем да заменим операцията за условен израз с условния оператор: if (h<=40) suma = h*norma;
else suma = 40*norma + 1.5*(h-40)*norma;
Операцията за условен израз е по-ефективна от условния оператор и нейната употреба е за предпочитане в случай, че има възможност за избор;
Важно: Принципът за поставяне на “;” в C е различен от този в Pascal; в C “;” се поставя в края на всеки оператор
Съставен оператор – няколко оператора заградени с фигурни скоби; при условния оператор се използва, когато трябва да се изпълнят повече от един оператори. Пример:
float x, y, max;
if (x>y) { max = x; x--; }
else { max=y; --y; }
if (E1) if (E2) S1 else S2
Този израз допуска две различни тълкувания:
-
ако съпоставим else на втория if, вторият if е в пълна форма, а първия е в кратка форма; този начин е възприет в C; текста на програмата се обработва от ляво надясно и когато се попадне на else се търси първият if, който е наляво от този else
-
ако съпоставим този else на първия if, вторият if е в кратка форма; изразът написан в такъв формат няма да се изпълни по този начин, освен ако не заградим във фигурни скоби вторият if - if (E1) { if (E2) S1 } else S2 - тогава компилатора ще свърже else с първия if, тъй като вторият е част от съставен оператор
Добре е да се избягват сложните конструкции; опростяването на програмата повишава нейната ефективност; препоръчва се условният оператор да се използва в следния вид (ако алгоритъмът го позволява):
if (E1) S1
else if (E2) S2
else if (E3) S3
…
else if (En) Sn
[else Sn+1]
при условие, че Si не са условни оператори за всяко i; този условен оператор работи по следния начин: ако някое Еi е изпълнено, но Е1, Е2, ..., Еi-1 не са изпълнени тогава се изпълнява Si; ако никое Ei не е изпълнено, тогава ако последният ред присъства се изпълнява Sn+1, в противен случай нищо не се изпълнява
Пример за условен оператор с по-сложен вид на условието:
if (r=getchar())!=’Y’ && r!=’y’) оператор;
getchar е функция, която чете символ; в това условие съществено е, че r присвоява стойност в първия операнд на логическото “и”; трите операции, които изискват изпълнението да се започне от първи операнд са операция за условен израз, логическо “и” (&&) и логическо “или” (||). При това положение трябва да се внимава с комутативните операции.
Сподели с приятели: