Пятница, 17.05.2024, 04:27
Приветствую Вас, Гость

БИЛЕТ 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();

}