Чтение онлайн

ЖАНРЫ

Программирование на С, С++
Шрифт:

cout<<" | ";

dv(b);

cout<<" = ";

dv(c);

c=a&b;

cout<<endl;

dv(a);

cout<<" & ";

dv(b);

cout<<" = ";

dv(c);

return 0;

}

Ниже даны тесты для проверки задач программы.

Тест 1

a=10 b=8

Результат

1010 | 1000 =1010

1010 & 1000 =1000

Тест 2

a=11 b=3

Результат

1011 | 11 = 1011

1011 & 11 = 11

Сдвиг влево

Пример:

10 << 2 = 1000

Двоичная

запись числа передвинется на 2 знака влево, на их место проставятся 0. Необходимо быть внимательными, так как в типе int и т.д. хранится ограниченное количество бит.

Сдвиг вправо

Пример:

100 >> 2 = 1

Двоичная запись числа передвинется на 2 знака вправо. 2 бита исчезнут.

Одноместное поразрядное дополнение до единицы

С каждым битом выполняется инверсия.

Пример:

x = ~8;

8 – это 1000 в двоичной системе счисления, после инверсии с каждым битом: 1 меняется на 0, 0 на 1. При хранении числа, один бит отвечает за знак, поэтому знак числа тоже меняется. ~x=|~x|-1. Результат: ~8=-9.

Комментарии

Для красивого стиля и правил оформления кода, необходимо, чтобы в коде все функции, блоки и т.д. были расшифрованы. Комментарии бывают /*….*/ (все, что между косыми чертами и звездочкой есть комментарий), // (все, что после // и на одной строке есть комментарий), смотри Листинг 13.

Листинг 13

/*демонстративная программа*/

#include<iostream>

using namespace std;

int main

{

cout<<"Hello!"; //Вывод «Hello!» в консоль

}

Строки

Во второй программе мы уже использовали строки. Специальные функции для работы со строками определены в библиотечном файле <string.h>.

Некоторые функции для работы со строками, представлены ниже.

char* strcpy(str1,str2) – копирует строку str2 в строку str1 c ‘\0’, возвращает str1.

char* strcat(str1,str2) – присоединяет str2 в конец строки str1, возвращает str1.

Листинг 14

Работа со строками

#include<stdio.h>

#include<string.h>

int main

{

char str1[100];

char str2[100];

printf("Vvedite stroky: \n");

scanf("%s",str1);

printf("Vvedenai stroka:\n%s \n",str1);

printf("Vvedite stroky: \n");

scanf("%s",str2);

printf("Vvedenai stroka:\n%s\n",str2);

strcat(str1,str2);

printf("Vvedenai stroka:\n%s\n",str1);

}

Задания:

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

Закрепление материала

Операции

Присваивать значение переменной

a=10;

Вычислить значение выражения a^3+a^2-10.

Листинг 15

#include “stdio.h”

int main

{

int a,s;

printf(“Vvedite zna4enie a\n”);

scanf(“%d”,&a);

s=a*a*a+a*a-10;

printf(“Rezultat: %d”,s);

}

Операция

инкрементирования и декрементирования

++ – операция увеличения на 1,

– – – операция уменьшения на 1.

Операции ++ и – – бывают постфиксные и префиксные.

Пример:

N++;

++N;

–-N;

N–;

Разница в постфиксной и префиксной форме в том, что ++N – прибавление 1 до того, как переменная используется, N++ после того. Аналогично, с операцией –. Смотри Листинг 16, результат на Рисунке 5.

Листинг 16

#include<iostream>

using namespace std;

int main

{

int y=3;

cout<<y++;

y=3;

cout<<endl<<++y;

}

Рисунок 5

Приоритет операций и порядок выполнения

В любой операции важен приоритет, как в вычислительном примере порядок действий. Также порядок действий зависит от аппаратно-системной архитектуры, поэтому нужно быть аккуратными.

В Таблице 3 представлен приоритет с ассоциированием слева направо для ANSI C.

Таблица 3

Работа с файлами

С писался для написания Unix, операционной системы. Все устройство Unix – это потоки. Также есть понятие файла. Файл – именованный памяти компьютера. «Поток» – это абстракция, все программирование – это абстракции.

Рассмотрим Листинг 17. 4 строка – это файловый указатель. Об указателях в части 3.

Строка 5.

1 – функция для открытия файла

2 – название файла

3 – режим доступа

Строка 6.

fwrite(“ura”,1,sizeof(char)*u,F);

1 – функция для записи в файл

2 – что записываем, строку

3 – сколько таких строк

4 – размер, функция sizeof – вычисляет размер типа

5 – файловый указатель

После запуска программы, на компьютере в папке с программой будет текстовый файл «text».

Режимы доступа для функции fopen приведены в Таблице 4.

Таблица 4

Листинг 17

Ввод в файл. Способ первый

1 #include <stdio.h>

2 main

3 {

4 File *F;

5 F=fopen(“text”, “w+”);

6 fwrite(“ura”,1,sizeof(char)*u,F);

7 fclose(F);

8 }

Рассмотрим второй способ записи в файл, Листинг 18.

Листинг 18

Ввод в файл. Способ второй

1 #include <stdio.h>

Поделиться с друзьями: