Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Структура программы. примеры простейшей программы, использующей ввод/вывод на экран(сложить 2 числа)





Рассомтрим следующую программу:


#include<stdio.h> /* Пример 1 */ main() { int year; year=2000; printf("Сейчас %d год\n",year); }  

Первая строка #include<stdio.h> сообщает о необходимости подключения файла stdio.h. Этот файл содержит информацию, необходимую для првильного выполнения функций библиотеки ввода/вывода. Язык Си предусматривает использование таких файлов, которые называются заголовочными. В данном случае использование файла stdio.h необходимо, так как в этом файле находится информация о функции printf(), которая используется в нашей программе.
Вторая строка /* Пример 1 */ является комментарием.
Строка main() определяет имя функции. Любая программа на языке Си включает минимум одну или более функций. Выполнение программы всегда начинается с функции main(). Поэтому каждая программа на языке Си должна содержать её.
Следующая строка содержит открывающеюся фигурную скобку, обозначающую начало тела функции main(). Фигурные скобки в языке Си Всегда используются парами (открывающая и закрывающая). Закрывающая скобка встретится в данной программе далее.

 


Строка int year; объявляет переменную, названную year, и сообщает компилятору, что это переменная целого типа. В языке Си все переменные должны быть объявлены прежде, чем они будут использованы. Процесс объявления переменных включает в себя определение имени и указания типа переменных.
Строка year=2000; является оператором присваивания. Здесь переменной с именем year присваивается значение 2000. Заметим, что в языке Си в операторе присваивания используется просто знак равенства. Все операторы в языке Си заканчиваются символом точки с запятой (;).
Строка printf("Сейчас %d год\n",year); является вызовом стандартной функции printf(), которая выводит на экран некоторую информацию. Эта строка состоит из двух частей: имени фукции printf() и двух её аргументов "Сейчас %d год\n" и year, разделённых запятой. Функция printf() является универсальной функцией форматного вывода. Для вызова функции нужно правильно написать имя функции и в скобках указать необходимые фактические аргументы. Первый аргумент функции ptintf() - это строка в кавычках "Сейчас %d год\n", которую называют управляющей строкой. Эта строка может содержать любые символы или спецификации формата, начинающиеся с символа %. Обычные символы просто отображаются на экран в том порядке, в котором они следуют. Спецификация формата, начинающаяся с символа %d указывает формат, в котором будет выводится значение переменной year, являющейся вторым аргументом функции printf(). Спецификация %d указывает, что будет выводится целое число в десятичной записи. Комбинация символов '\n' сообщает функции printf() о необходимости перехода на новую строку. Этот символ называется символом новой строки.
Последняя строка программы содержит закрывающую фигурную скобку. Она обозначает, в данном случае, конец функции main().

-------------- Рассмотрим второй пример, в котором будет использоваться ввод данных с клавиатуры. Для этого будет использоваться библиотечная функция scanf(), которая позволяет вводить информацию с клавиатуры во время выполнения программы:


#include<stdio.h> /* Пример 2: вычисление длины окружности */ main() { int radius; float length; printf("Введите значение радиуса: \n"); scanf("%d",&radius); length=3.1415*2*radius; printf("Радиус - %d\n, длина - %f\n",radius,length); }  

В этой программе по сравнению с предыдущей появились новые моменты.
Во-первых, объявлены переменные двух разных типов: radius - типа целое(int); length - типа с плавающей запятой (float), содержащую дробную часть.
Во-вторых, используется функция scanf() для ввода с клавиатуры значения радиуса окружности. Первый аргумент функции scanf() "%d" указывает, что будет вводится целое десятичное число. Второй аргумент - имя переменной, которой будет присвоено введенное значение. Символ & (амперсанд) перед именем переменной radius необходим для правильной работы функции scanf(). Более подробно использование этого символа будет обсуждаться позднее.
в следующей строке программы целые числа - 2 и radius умножаются на число с плавающей точкой 3.1415 и результат присваивается переменной типа float. Язык Си допускает использование в выражениях переменных разных типов. Для вывода результатов используется функция printf(), которая содержит 4 аргумента. Спецификатор формата %f используется для печати значения переменной length типа float.
В рассмотренном примере длина окружности вычисляется только для целых радиусов. Для того чтобы программа могла вычислять длину окружности для любых радиусов, необходимо объявить переменную radius как float, а в функции scanf() использовать спецификатор"%f".

3. использование переменных. Способы задания, идентификатор, основные операции языка С++ с примерами

Здесь тип должен быть одним из существующих в Си типов переменных, а список переменных может состоять из одной или нескольких переменных, разделенных запятыми. При объявлении переменных компилятор выделяет место в памяти компьютера, необходимое для размещения переменной указанного типа. Примеры объявления переменных:

int a,b,c;
float radius,length;
unsigned char ch1,ch2;
long double integral;


Очень важное значение имеет вопрос о месте объявления переменной в программе. Правило, оределяющее место объявления переменной в программе, называется правилом видимости.
В языке Си могут быть три места, где переменная может быть объявлена. Во-первых, вне каких либо функций, в том числе и main(). Такая переменная называется глобальной и может использоваться в любом месте программы (за исключением глобальных статических переменных, речь о которых далее). Во-вторых, переменная может быть объявлена внутри блока, в том числе внутри тела функции. Такая переменная называется локальной и может использоваться только внутри этого блока. Такая переменная неизвестна вне этого блока. Кроме того, переменная может быть объявлена как формальный параметр функции. Переменная, объявленная как формальный параметр функции, используется для передачи информации этой функции, а также может расматриваться как локальная переменная функции. Рассмотрим пример объявления переменных в разных местах программы:

#include<stdio.h> #include<conio.h> /* Пример 3 */ /*Объявляем переменные в разных местах программы*/ char ch; /*Объявляем глобальную переменную*/ main() { int n; /*объявление локальной переменной внутри функции*/ printf("Введите символ:"); ch=getch(); /*использование глобальной переменной*/ printf("Введите количество символов в строке:"); scanf(%d,&n); /*использование локальной переменной*/ print_str(n); /*вызываем собственную функцию по печати строки из одного символа (количество символов в строке задает пользователь)*/ } /*А это уже наша функция, не из библиотеки*/ int print_str(int m) /*заголовок функции print_str() с объявлением формального параметра m*/ { int j; /*объявление локальной переменной для функции print_str()*/ for(j=0;j<m;j++) printf("%c\n",ch); /*используем локальную переменную j и глобальную ch*/ }  


При написании программ необоходимо помнить следующие правила:

  • две глобальные переменные не могут иметь одинаковые имена;
  • локальная переменная одной функции может иметь такое же имя как локальная переменная другой функции (или формальный параметр другой функции);
  • две локальные переменные в одном блоке не могут иметь одинаковые имена, в том числе формальный переметр функции не должен совпадать с локальным параметром, объявленным в функции.

Константы

В языке Си константы представляют фиксированные величины, которые не могут быть изменены в программе. Константы могут быть любого базового типа данных. Пример констант:

char - 'a','\n','8'
int - 1, 134, -500
unsigned int - 53500
long int - 87000, -37, 7L
short int - 11, 13, -128
float - 133.34, 3.36E-6, 5E+5
double - 133.45, 133340, -2.789


Правила определения типа констант следующие. Целая константа относится к типу int, если эта константа входит в интервал значений типа int.
Если эта константа не входит в интервал значений типа int, например - 37750 (а как известно тип int, как правило принимает значения в диапазоне от -32768 до 32767), то она считается константой типа unsigned (применительно к int это уже от 0 до 65535). Если же и этого мало, то она считается константой типа long (т.е. long int).
Константа с десятичной точкой считается константой типа double, если она помещается в соответствующий интервал измерения.
Для явного задания типа констант используется механизм суффиксов. В качестве суффиксов целочисленных (int) констант используются u,l,h,U,L,H. Для чисел с плавающей точкой - l,L,f,F.

Например:

13h, 35H - short int
25L, -223l - long int
87lu, 88Lu, 89ul - unsigned long int
55uh - unsigned short int
27.43f, 7.7E-6F - float
1.41l, 3.2E+12L - double

Символьная переменная - это величина размером в 1 байт, которая используется для представления литер и целых чисел в диапазоне от 0 до 255 или от -128 до 127, в зависимости от того, знаковая переменная или беззнаковая. Символьные константы заключаются в одинарные кавычки. Примеры символьных констант: 'd', '+', '8'. Приведем пример программы с использованием символьных переменных и констант:

#include /* Пример 4 */ main() { char ch; ch='c'; printf("%c",ch); ch='+'; printf("%c%c", ch,ch); }  

В функции printf() появилась новая спецификация - %c. В таком формате печатается символ. Этот же формат можно использовать в функции scanf() для ввода символа с клавиатуры. В языке Си в стандартной библиотеке ввода/вывода есть специальная функция getche(). Эта функция ожидает, пока не будет нажата какая-либо клавиша клавиатуры, и затем вводит код этой клавиши. Рассмотрим пример программы, использующей указанную функцию:

4. Условный оператор, оператор переключатель-свитч

Условный оператор

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

if(условие) оператор;
else оператор;


Если значение условия истинно, о выполняется оператор (это может быть и составной оператор), следующий за условием. Если же условие принимае значение ложно, о выполняется оператор, следующий за словом else. В записи оператора if вторая часть (т.е. оператор else) может отсутствовать. Тогда, если условие принимает значение ложно, выполняется следующий оператор программы. В качестве условия может стоять произвольное выражение. В операторе if лишь проверяеся, является ли значение эого выражения ненулевым (истинным) или нулевым (ложным). Рассморим пример программы определения знака воодимого с клавиатуры вещественного числа с использованием нашего оператора if.

#include<stdio.h> /* Пример 9 */ main() { int sgn; float x; printf("Введите число: \n"); scanf("%f",&x); if(x>0) { sgn=1; printf("Число %f\n, положительное sgn = %d\n", x, sgn);} if(x==0) { pritf("Число %f\n равно нулю sgn = %d\n", x, sgn);} if(x<0) {sgn=-1; printf("Число %f отрицательное sgn=%d\n", x, sgn);} }  


Нередко возникает необходимость в использовании конструкции вложенных if-else-if:

if(условие1) оператор1;
else if(условие2) оператор2;
else if(условие3) оператор3;
...
else оператор;


В такой форме условия оператора if проверяютсяч сверху вниз. Как только некоторое условие принимает значение истинно, выполняется оператор, следующий за этим условием, а вся остальная часть конструкции будет проигнорирована. Поэтому, предыдущую программу можно было бы написать следующим образом:

#include<stdio.h> /* Пример 9 */ main() { int sgn; float x; printf("Введите число: \n"); scanf("%f",&x); if(x>0) { sgn=1; printf("Число %f\n, положительное sgn = %d\n", x, sgn);} if(x<0) {sgn=-1; printf("Число %f отрицательное sgn=%d\n", x, sgn);} else { pritf("Число %f\n равно нулю sgn = %d\n", x, sgn);} }  


Для того чтобы проверить, равно число x нулю или нет, можно написать

if(x==0) printf("Число равно нулю...");
else printf("Число не равно нулю...");


Такой же результат можно получить, написав более компактный код

if(!x) printf("Число равно нулю...");
else printf("Число не равно нулю...");


Вложенным оператором if называется конструкция вида

if(x)
if(y) printf("...");
else операторX....;


В такой форме непонятно, к какому из операторов if относится else. В языке Си оператор else ассоциируется с ближайшим if в соответствующем блоке. Поэтому в указанной конструкции else относится к if(y). Для того чтобы отнести else к if(x), необходимо соответствующим образом расставить операторные скобки:

if(x){
if(y) printf("...");
if(x)}
else операторX....;


Теперь if(y) относится к другому блоку.







ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.