Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 97; Нарушение авторского права страницы; Мы поможем в написании вашей работы!
infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.51.72 (0.007 с.)