Язык программирования С++

Автор работы: Пользователь скрыл имя, 01 Марта 2010 в 23:39, Не определен

Описание работы

Язык программирования С++
(Лекции)

Файлы: 1 файл

90146_lekcii_programmirovanie_na_yazyke_si.doc

— 1.04 Мб (Скачать файл)
">      /* Рисование окна и ввод фамилии  */                        

      #include <conio.h>

      void main()

      {

      char name[15];/*объявление массива символов для ввода строки*/

      clrscr();                      /* очистка экрана            */

      textcolor(YELLOW);             /* задание цвета символов    */

      textbackground(BLUE);          /* задание цвета фона        */

      gotoxy(30,11);                 /* задание положения курсора */

      cprintf(“┌────────────────────┐”);

      gotoxy(30,12); 

      cprintf(“│ Введите фамилию    │”);

      gotoxy(30,13); 

      cprintf(“│                    │”);

      gotoxy(30,14); 

      cprintf(“└────────────────────┘”);

      textcolor(CYAN);               /* задание цвета символов    */

      gotoxy(35,13); 

      cscanf(“%s”,name);             /* ввод строки               */

      }

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

    218 ┌ 196 ─ 191 ┐

   

    179 │       179 │

 

    192 └ 196 ─ 217 ┘

     3.5. Функция ввода  одиночного символа  getch()

     Функции scanf() и cscanf() требуют аккуратного ввода данных с клавиатуры, незначительная ошибка при вводе информации приводит к сбоям в работе программ. В добротных программах используется посимвольный ввод данных с помощью функции getch(), определяемую в той же библиотеке <conio.h>. Эта функция имеет два варианта применения:

     а) для остановки программы до нажатия  произвольной клавиши, например, перед ее завершением. В этом случае листинг программы может быть таким

     {

     

     getch();             /* Ожидание ввода произвольной клавиши */

     }

     б) получение кода ASCII нажатой клавиши. Для получения кода клавиши необходимо объявить целую переменную и присвоить результат исполнения функции getch() этой переменной. При этом синтаксис использования функции может быть следующим:

     {

     int i;

     

     i=getch();           /* Ожидание нажатия клавиши и присвоение

                             ее кода символа переменной i         */

     

     }

     3.5.1. Пример 3.3

     Написать  программу, принимающую символ с  клавиатуры и выдающую его код  на экран

      Листинг 3.3

     /* программа вывода на экран  кода нажатой клавиши */       

      #include <conio.h>

      void main()

      {

      int kod;                         /* объявление переменной */

      clrscr();                        /* очистка экрана        */

      cprintf(“Нажмите клавишу: ”);    /* вывод сообщения       */

      kod=getch();                     /* ввод клавиши          */

      cprintf(“\nКод клавиши: %d\n”);  /* вывод кода клавиши    */

      getch();                         /* ожидание нажатия

                                          произвольной клавиши  */

      }

     3.6. Задание для самостоятельной  работы 

     3.6.1. Записать отдельные строки программы,  используя функции форматированного ввода-вывода:

     а) вывод на экран двух переменных типа символ, целой переменной в восьмеричном формате и переменной типа длинное  целое (идентификаторы выбрать самостоятельно);

     б) вывод на экран значения переменных типа строка (массив символов) family, name, gruppa в следующем виде (после символов … должны идти значения указанных переменных):

     Фамилия: …

     Имя: …

     Группа: …

     в) вывести на экран две вещественные переменные в заданном формате: 10 позиций  общая ширина поля переменной, 3 позиции – точность;

     г) ввод двух переменных типа беззнаковое целое first и second;

     д) ввод целой переменной x в шестнадцатеричном формате, вещественной переменной y и вещественной переменной двойной точности z;

     е) выполнить ввод вещественных переменных power, moment и velocity, используя функции ввода-вывода в следующем формате (после символов … должен идти ввод указанных переменных):

     Параметры двигателя:

         мощность  двигателя – …

         момент  двигателя – …

         скорость  двигателя – …

 

     3.6.2. Записать отдельные строки программы,  используя только функции консольного ввода-вывода:

     а) очистить экран и далее вывести  в центре экрана значения двух целых  переменных  
a и b, изменив при этом цвет символа и фона;

     б) вывести значения четырех вещественных переменных  a, b, c и d  в следующем виде (ширина поля каждой переменной – 8 позиций, точность – 0 позиций):

     a= … 

           b=…

           c=…

                 d=…

     в) выполнить предыдущий пример, но совмещенный  с вводом значений этих переменных.

     3.6.3. Написать программу: выполняется  очистка экрана, вводится вещественное  число, на экран выводится корень из введенного числа (функция корня находится в математической    библиотеке и вызывается так: y=sqrt(x); ). Вывод корня выполнить в следующем формате – выравнивание по левому краю, общая ширина поля – 10 позиций, точность – 2 символа после десятичной точки.  

     3.6.4. Составить программу, в которой:  выполняется очистка  экрана, рисуется на экране изображение  окна, внутри окна выполняется  ввод трех параметров двигателя  (см. задачу 3.6.1,е).

 

4. ОСНОВНЫЕ ОПЕРАЦИИ  ЯЗЫКА

     4.1. Операции языка  Си

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

     а) каждой операции соответствует определенное количество операндов:

      – унарные операции, имеющие только один операнд, например, операция взятия адреса переменной x запишется так: &x, а операция инкрементирования переменной i: i++;

      – бинарные операции, имеющие два операнда, например, простейшие арифметические операции сложения, вычитания и т.д.:   a+b  или  4*x;

      – единственная трехоперандная операция в языке – операция выполнения условия <операнд1> ? <операнд2> : <операнд3>.

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

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

      г) в сложных выражениях последовательность исполнения операций определяется их приоритетом (см. крайнюю правую колонку в табл. 4.1, где 1 – наибольший приоритет исполнения операции).

      Таблица 4.1.

Опера-ция Назначение Пример Прио-ритет
  Первичные операции    
[] индекс массива x[2][0]=5; 1
() вызов функции, очередность выполнения y=sin(6.28*(x+1)); 1
. элемент структуры (прямой доступ) time.tm_hour=5; 1
-> элемент структуры (косвенный доступ) time->tm_hour=5; 1
  Унарные операции    
++ инкремент (увеличение на единицу) i++ 2
–– декремент (уменьшение на единицу) i–– 2
sizeof размер в  байтах x=sizeof(int); 3
(тип) преобразование  типа y=(float)5/2; 3
- унарный минус (изменение знака) y=-x; 3
* косвенная адресация int x=*y; 3
& взятие адреса scanf(“%d”,&x); 3
  Арифметические  операции    
* умножение 20*x 4
/ деление x/10 4
% деление по модулю x%10 4
+ сложение x+20 5
вычитание 40–x 5
  Битовые операции    
~ побитовое НЕ y=~x; 3
<< побитовый сдвиг  влево y=x<<1; 6
>> побитовый сдвиг  вправо y=x>>1; 6
& побитовое И y=x&15; 9
^ побитовое исключающее  ИЛИ y=x^15; 10
| побитовое ИЛИ y=x|15; 11

 

Продолжение таблицы 4.1.

Опера-ция Назначение Пример Прио-ритет
  Операции  отношения    
< меньше if (x<6) 7
> больше if (x>6) 7
<= меньше или  равно if (x<=6) 7
>= больше или  равно if (x>=6) 7
== равно if (x==6) 8
!= не равно if (x!=6) 8
  Логические операции    
! логическое  отрицание (операция НЕ) if (!x) 3
&& логическое  умножение (операция И) if (x>0 && x<6) 12
|| логическое  сложение (операция ИЛИ) if (x<0 || x>6) 13
 

     Условная  операция

   
?: при условии  a>b?10;-10 14
  Операции  присваивания    
= присваивание x=5 15
*= присвоение  произведения x*=3 15
/= присвоение  частного x/=3 15
%= присвоение  остатка x%=3 15
+= присвоение  суммы x+=3 15
–= присвоение  разности x–=3 15
<<= присвоение  левого сдвига x<<=3 15
>>= присвоение  правого сдвига x>>=3 15
&= присвоение  И x&=3 15
^= присвоение  исключающего ИЛИ x^=3 15
|= присвоение  ИЛИ x|=3 15
  Прочие  операции    
, запятая a=1, b=2; 16

Информация о работе Язык программирования С++