БИЛЕТ 7.
1)Объявления и определения в С-программах.
Важное отличие языка СИ от других языков является отсутствие принципа умолчания, что приводит к необходимости объявления всех переменных используемых в программе явно вместе с указанием соответствующих им типов.
Объявление говорит компилятору, что такое имя или программный элемент существует. Определение описывает данное имя. Любое имя для использования должно быть объявлено. Вводят одно или больше имен в программу.
Пример объявлений и определений:
int i;
int j = 10;
При объявлении простой переменной, структуры, смеси или объединения, а также перечисления, описатель - это простой идентификатор. Для объявления указателя, массива или функции идентификатор модифицируется соответствующим образом: звездочкой слева, квадратными или круглыми скобками справа.
2) Логические операции
В языке отсутствует особый базовый тип данных для представления логических значений "ИСТИНА" и "ЛОЖЬ". Для этой цели используются значения целой переменной. Значение 0 всегда является "ложью". Значение 1 -"истиной". Такие значения дают операции сравнения и логические операции. Вообще, в широком смысле любое ненулевое значение является истинным.
ЛОГИЧЕСКИЕ ОПЕРАЦИИ И (&&) , ИЛИ (||) и НЕ (!) едины для всех языков программирования и соответствуют логическим функциям И, ИЛИ и НЕ для логических (булевых) переменных. Операция И имеет результатом значение "истина" тогда и только тогда, когда оба ее операнда истинны, то есть по отношению к операндам -утверждениям звучит как "одновременно оба". Операция ИЛИ имеет результатом значение "истина", когда хотя бы один из операндов истинен, то есть характеризуется фразой "хотя бы один":
Особо следует отметить операцию логической инверсии (отрицания) -"!". Значение "истина" она превращает в "ложь" и наоборот.
ВЫВОД: Логические операции отношения задаются
следующими символами: && ("И"), || ("ИЛИ"), !
("НЕ"), >, >=, <, <= , = = (равно), != (не равно).
Традиционно эти операции должны давать одно из двух значений: истину или ложь.
В языке Си принято следующее правило: истина - это любое ненулевое значение;
ложь - это нулевое значение. Выражения, использующие логические операции и
операции отношения, возвращают 0 для ложного значения и 1 для истинного. Ниже
приводится таблица истинности для логических операций.
3. Напишите функцию перевода 10-тичного числа в р-ричное
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define TOP(c) (c<10?c+'0':c-10+'A')
void reverse(char*s)
{
reverse(s);
printf("%s",s);
}
void main()
{
clrscr();
unsigned long chislo;
unsigned sys;
int i;
char s[50];
printf("Enter count:");
scanf("%lu",&chislo);
printf("Enter system:");
scanf("%u",&sys);
if(sys!=0)
{
for (i=0;chislo>0;chislo/=sys)
s[i++]=TOP(chislo%sys);
s[i]='\0';
for (i=strlen(s)-1;i>=0;i--)
printf("%c",s[i]);
printf("\n");
}
getch();
}
4. Многочлен P (x) задан массивом своих коэффициентов A[n+1]. Вычислить значение многочлена для заданного x, используя схему Горнера.
#include<stdio.h>
#include<conio.h>
int A[]={3,4,5,1,6,3};
const n=sizeof(A)/sizeof(int);
int X[n-1];
unsigned long rez = 0;
int i,j=0,x=2;
void main()
{
clrscr();
for (i=0;i<n-1;i++)
{
j=i;
X[i] = 1;
for (;j<n-1;j++)
X[i]*=x;
rez += X[i]*A[i];
}
rez += A[i];
printf("%lu",rez);
getch();
}