Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Операторы объявления типа данных .Содержание книги
Поиск на нашем сайте Все данные в программе должны быть описаны в программе с помощью операторов объявления типа данных, имеющих следующий вид: <имя_типа><список переменных> Типы данных задаются ключевыми словами Целочисленные типы 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; просмотров: 153; Нарушение авторского права страницы; Мы поможем в написании вашей работы!
infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.)