Операторы объявления типа данных . 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операторы объявления типа данных .



Все данные в программе должны быть описаны в программе с помощью операторов объявления типа данных, имеющих следующий вид:

<имя_типа><список переменных>

Типы данных задаются ключевыми словами

Целочисленные типы

char - символьный, целый длиной не менее 8 бит;

short int - короткий целый (можно short);

int – целый;

long - длинный целый.

Каждый из целочисленных типов может быть определён либо как знаковый signed либо как беззнаковый unsigned (по умолчанию signed).

Вещественные типы

float - вещественный одинарной точности;

double -вещественный удвоенной точности;

long double - вещественный максимальной точности;

 

void – без типа.

                        Основные типы данных                                 Таблица

Тип данных

Размер, бит Диапазон значений Спецификатор

Char

8 -128 - +127 %c, %d, %o, %x

Unsigned char

8 0 - 255 %u

Int

16 -32768 - +32767 %d, %i, %o,%x

Unsigned int

16 0- 65535 %u

Long

32 -2147483648 - +2147483647 %ld

Float

32 3.4E-38 - 3.4E+38 %f, %e

Double

64 1.7E-308 - 1.7E+308 %lf, %e

Pointer

 

16   32 указатели типа near,_ cs,_ ds, _ es, _ ss указатели типа far, huge   %p
  short int 2

-32 768 / 32 767

 
  unsigned short int 2

0 / 65 535

 
  int 4

-2 147 483 648 / 2 147 483 647

 
  unsigned int 4

0 / 4 294 967 295

 
  long int 4

-2 147 483 648 / 2 147 483 647

 
  unsigned long int 4

0 / 4 294 967 295

 
 

типы данных с плавающей точкой

 
  float 4

-2 147 483 648.0 / 2 147 483 647.0

 
  long float 8

-9 223 372 036 854 775 808.0 / 9 223 372 036 854 775 807.0

 
  double 8

-9 223 372 036 854 775 808.0 / 9 223 372 036 854 775 807.0

 
           

 

 

Инициализация переменных.

При определении переменных их можно инициализировать, т.е. присваивать переменным какие – либо значения.

Пример 2: int i=1;

           int k=5;

           char ch1=’*’;

Массивы так инициализировать нельзя.

Инициализировать переменные можно в тексте программы, обычно после объявления переменных они инициализируются обнулением.

 Пример 3: i= k=0;

либо в другом месте

Пример 4: i=1; k=5;

 

Функции ввода/вывода.

Функция вывода.

В языке С имеется большой набор различных функций ввода / вывода.

Формат функции вывода:

printf (“ <управляющая_строка> [, список_аргументов] );

 

список_аргументов – последовательность констант, переменных или выражений, значения которых выводятся на экран дисплея в соответствии с форматом управляющей строки;

управляющая_строка – содержит объекты трёх типов: обычные символы (текст, выводимый на экран), спецификации преобразования (вызывают вывод на экран значения очередного аргумента), управляющие символьные константы.

Пример 5: вывести на экран числа 4, 19.1, 27

#include <stdio.h>

#include <conio.h>

void main()

{ char a,b;

float c;

a=4; b=27; c=19.1;

clrscr();

printf (“\n a=%d b=%x c=%f”,a,b,c);

getch();

}

 

2.6.2 Спецификации преобразования.

% [ <выравнивание>] [ <ширина>] [ <доп_признаки>] <символ_преобразования>

выравнивание вправо – по умолчания;

                        влево - символ ' -'.

ширина определяет минимальное число выводимых символов. Она может задаваться целым числом. Символ * обозначает, что число выводимых символов будет определяться текущим значением переменной.

  Пример: printf(“ %d”,width_number);

Дополнительные признаки

+ - печать знака «+»;

. число – количество знаков после точки в экспоненциальном виде;

l – указывает, что соответствующий аргумент имеет тип long;

L -double long.

Символы преобразования могут быть следующими:

d –аргумент преобразуется в десятичное представление (% d -> 43, %+ d -> +43,

                                                                                             % d -> ь43);

o- аргумент преобразуется в восьмеричное представление (% o-> 0 5627);

x, X- аргумент преобразуется в шестнадцатеричное представление(% x -> 2e59a3d,

                                                                                                              % X -> 2E59A3D);

c- значением аргумента является символ ( ->А, %3с ->ььА, %-3с ->Аьь);

s- значением аргумента является строка символов (%6 s -> abcdef, %6.2 s -> ьььь ab,

                                                                                   %-6.2 s-> abьььь);

e - значением аргумента является величина типа float или double в форме с плавающей точкой (%.3е -> 1.235е+03, %.4е ->1.2345+03);

f - значением аргумента является величина в форме с фиксированной точкой

  (%5.2 f -> 679.41);

u - значением аргумента является целое безнаковое число (% u -> 77626577);

p - значением аргумента является указатель (адрес).

 

Ввод данных.

scanf (“управляющая строка”, список аргументов);

Аргументами scanf должны быть указателями на соответствующие значения (для этого перед именем переменной, не являющейся указателем, записывается символ взятия адреса &).

Управляющая строка содержит спецификации преобразования и используется для установления количества и типа аргументов. В неё могут включаться:

· пробелы, символы табуляции и перехода на новую строку (все они игнорируются при вводе);

· спецификации преобразования, состоящие из знака %, возможно символа запрещения (*), возможно числа, задающего максимальный размер поля, и самого символа преобразования.

Примеры 6:

1. float x;

char id[8+1];

int n;

scanf (“%f % * f %8[a-z 0-9]%d”,&x, id, &n);

ввод  12.45 1048.73              ae405271                              438

вывод 12.45 символы             переменной id     438

                 пропускаются             присваивается          переменной n присваивается        

                                             строка символов ae405271 значение 438

 

2.int i;

float x;

 char name[50];

 scanf(“%d %f %s”, &i, &x, name); //name уже адрес

ввод  25      54.32е-01                  monday

вывод 25       5.432                         Monday

ввод по адресу переменной i, x

 

Арифметические операции.

В языке С существуют арифметические операции сложения +, вычитания -, умножения *, деления /, деления по модулю %.

Особенности операции деления. Эта операция даёт целый результат, если оба операнда целые. Чтобы получить действительный результат, необходимо иметь хотя бы один действительный операнд.

9/5 =1 9./5 =1.8.

Деления по модулю a % b даёт остаток от целочисленного деления a на b. 9 % 5=4.

В языке существуют две нетрадиционные операции – операция увеличения (инкремента) «++» и операция уменьшения (декремента) «--» на единицу значения операнда. Операции имеют префиксную (++а или - - а значениеоперации стоит до операнда)и постфиксную (а++ или а-- значениеоперации стоит после операнда) формы записи. Префиксная - значение операнда а сначала изменяется, а затем используется для дальнейших вычислений. Постфиксная - значение операнда а сначала используется, а затем изменяется.

sum=a + d++;  // сложить числа a и d, присвоить результат sum

        // и увеличить d на единицу

sum=a + ++d; //увеличить d на единицу, сложить числа a и d,

        //присвоить результат sum

а=5;

х=++а; // х=6, а=6 сначала происходит увеличение а на 1, а затем

  // использование операнда в выражении

х=а++; // х=5, а=6 сначала использование операнда в выражении,

  // затем увеличение а на 1

Приоритет операций * и / выше, чем у операций сложения и вычитания => требуется применение скобок.

Язык C поддерживает стандартные механизмы по автоматическому преобразованию одного типа данных в другой. Если в выражении присутствуют операнды различных типов, то они преобразуются в некоторый общий тип. (Тип результата при выполнении любой арифметической операции с двумя переменными а и в зависит от типа этих переменных)

 

а             в char int long float double
char char int long float double
int int int long float double
long long long long float double
float float float float float double
double double double double double double

 


 

Примеры составления линейных программ.

Программы с линейной структурой являются простейшими и используются, как правило, для реализации обычных вычислений по формулам. Инструкции в них выполняются последовательно, одна за другой.

Алгоритм программы с линейной структурой может иметь вид:

  

1. Написать программу вычисления площади параллелограмма.

Рекомендуемый вид экрана:

Вычисление площади параллелограмма

Введите исходные данные:

Длина (см) -> 9

Ширина (см) -> 7.5

Площадь параллелограмма: 67.50 кв.см.

 

#include <stdio.h>

#include <conio.h>

void main()

{ char len;

float w,s;

clrscr();

printf(“Вычисление площади параллелограмма \nВведите исходные данные);

printf(“\nДлина (см) ->);

scanf (“%d”,&len);

printf(“\Ширина (см) ->);

scanf (“%f”,&w);

s=len*w;

printf(“\n Площадь параллелограмма: % 6.2f кв.см.->”,s);

 getch();

}

 

2. Дано расстояние в сантиметрах. Найти число полных метров в нём.

#include <stdio.h>

#include <conio.h>

void main()

{ char len;

clrscr();

printf(“\nВведите расстояние в сантиметрах);

scanf (“%d”,&len);

len=len/100;

printf(“\n Число полных метров: % d ->”,len);

 getch();

}

 

3. Описать переменную k и записать выражение, вычисляющее сумму цифр числа, считая, что переменная содержит двухзначное число.

#include <stdio.h>

#include <conio.h>

void main()

{ char k,k1;

clrscr();

printf(“\nВведите двухзначное число ->”);

scanf (“%d”,&k);

k1=k/10;

printf(“\n Число десятков равно: % d ”,k1);

k1=k%10;

printf(“\n Число единиц равно: % d ”,k1);

getch();

}

 



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2020-12-09; просмотров: 80; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.193.232 (0.047 с.)